Language Selection

English French German Italian Portuguese Spanish


Programming: CMake, LLVM/Clang and Python

Filed under
  • CMake 3.15.4 landed in FreeBSD

    We (and this is a “we” that means “I pushed a button, but other people did all the real work”) just landed the latest CMake release, version 3.15.4, in the official FreeBSD ports tree.

    This is part and parcel of the kind of weekly maintainence that the KDE-FreeBSD group goes through: building lots of other stuff. We’re happy to be responsible for code that hundreds of other ports depend on, but it brings a bunch of extra work with it. I probably build gcc and llvm a few times a week just testing new KDE bits and pieces (because in between those tests, the official ports for other parts, like those compilers, have updated as well).

  • Intel OpenCL Stack Updated Against LLVM/Clang 9.0

    This Intel open-source compute runtime continues to be heavily invested in by Intel ahead of their Xe graphics hardware expected next year. This compute stack continues offering OpenCL 2.1 currently on Broadwell through Icelake hardware. Using an LLVM-based compiler stack continues working out well for them while on the graphics side they continue with their own compiler back-end and as revealed this week are developing the new Intel "IBC" back-end for OpenGL and Vulkan. At least Intel has the resources to sufficiently maintain multiple compiler back-ends for their different stacks.

  • How to Convert Strings into Integers in Python
  • Casual Python, Part 9
  • Norbert Preining: RIP (for now) Calibre in Debian

    The current purge of all Python2 related packages has a direct impact on Calibre. The latest version of Calibre requires Python modules that are not (anymore) available for Python 2, which means that Calibre >= 4.0 will for the foreseeable future not be available in Debian.

Programming Leftovers

Filed under
  • Episode #232: Become a robot developer with Python

    When you think about the types of jobs you get as a Python developer, you probably weight the differences between data science and web development.

    But did you consider programming robots in Python? And not just toys, but serious, productive machines. It turns out there is a gap in the industry where we could use more Python developers in robotics.

  • CFP: Southern California Linux Expo 2020 (SCALE 18x)

    Important Dates
    14 Sep, 2019: CFP Opens
    30 Nov, 2019: Deadline for abstracts/proposals submissions
    5 Mar, 2020: Conference starts

  • Hiding from cats

    /usr/bin/cat is a tool which reads data from one locations and writes it to another; in most cases, it is used to read text from a file and write it to STDOUT. Cat also supports some control characters, such as line-feeds \f, carriage returns \r, and newlines \n.

    Here's a fun little proof-of-concept of how \r could be used to hide shell-script commands from cat: [...]

Programming Leftovers

Filed under
  • PHPUnit 8.4

    RPM of PHPUnit version 8.4 are available in remi repository for Fedora ≥ 29 and for Enterprise Linux (CentOS, RHEL...).

  • A concise resource repository for machine learning!

    This is the reflection of our Machine Learning journey so far. So, along with our learning journey, we'll continue to update this repository and will remain concise but yet comprehensive to highlight the most relevant resources from time to time. The main points are:
    - Concise and comprehensive
    - Keep updating
    - Turning web-bookmark into git-repo

    However, ML-Bookmarks is still of its early stage. There's a lot of modification of this repository still left. We need your support and constructive feedback to turn this repository more robust and reliable to everyone.

  • Django vs Ruby on Rails: Web Frameworks Comparison

    There are more than 90 web development frameworks out there. No wonder it’s hard to choose the one that’ll suit your project best. Still, there are at least two major frameworks that are widely used by the tech giants of nowadays, and for good reason. Ever heard of Django or Ruby on Rails? If both web frameworks are quite good, how do you compare Django and Ruby on Rails to choose which one to use for web development?

    Instagram, YouTube, Spotify, Dropbox and other online and app-based services that we use daily are powered by Django, a Python programming language framework. On the other hand, Airbnb, Bloomberg, Shopify, and other leading companies use Ruby on Rails, a Ruby programming language framework. Both languages were created to serve the web and make web applications (including mobile web apps) possible.

  • Getting to Know Go, Python, and Benchmarks

    Hello, my name is Vadym, and this is my story about how I started learning Go, what it felt like compared to Python (the language I currently use at work), and benchmarking.

    I believe that every developer should learn constantly to be good at what they do. And it's not only about knowing new frameworks, databases, or platforms like AWS Lambda. It’s about knowing how the services you use from day to day interact with each other, differentiate when your favorite language uses a link to an object or a copy of the object, and many other things.

    I've been using Python as my main language for writing production code for 10 years. But even as a devoted Python developer, I’ve tried different languages over time. I like to learn new languages, because I might pick up something for my daily work – even from ones I won’t use or from languages I don’t really like, such as Ruby or Java. Also, it’s not very important for me to learn new languages only. I like to spend time on old and rarely used languages as well. For example, I’ve tried Lisp for more than writing a config for Emacs. I also like Erlang a lot, but it’s not very popular nowadays.

  • Code Challenge 64 - PyCon ES 2019 Marvel Challenge

    This weekend is Pycon ES and in the unlikely event you get bored, you can always do some coding with PyBites.

  • Solving Systems of Linear Equations with Python's Numpy

    The Numpy library can be used to perform a variety of mathematical/scientific operations such as matrix cross and dot products, finding sine and cosine values, Fourier transform and shape manipulation, etc. The word Numpy is short-hand notation for "Numerical Python".

Programming, Open Hardware and BSD

Filed under


  • The rise of open-source computing



    is a set of open-source designs for microchips that was initially developed a decade ago at the University of California, Berkeley. These days it is attracting attention from many big technology firms, including Google, Nvidia and Qualcomm (see article). In August IBM made its Power chip designs open-source. These moves are welcome, for two reasons.

  • A Message to Our Readers

    We ask for your help in getting the word out (in addition to hopefully buying the issue when it's released). We know there are many thousands out there who no longer have bookstores that carry 2600 in their neighborhoods or who live in parts of the world where getting our publication has always been, at best, a challenge.

    Please show your support and buy this issue which you can then enjoy forever - and let everyone know what we're doing. Because if this is a success, we will be able to invest more into the magazine (paper and digital) to make it even better, as well as support more projects like HOPE.

  • Binary Hardening in IoT products

    Unfortunately, with few exceptions (notably Synology) we see there is very little coverage, and even Synology struggles to adopt basic hardening features like ASLR and stack guards.

    A perfect score, where all binaries had all 5 basic safety features, would result in a chart that looks like a regular pentagon. Instead, in most vendors’ cases, they struggle to achieve polygon status at all.


  • Milky Way v0.3 release



    LibreSSL as the default provider of SSL and TLS protocols
    Xenocara as the default provider of display server for the X Window System


  • sysupgrade(8) Added to OpenBSD 6.5



    In a move bound to be greeted with great enthusiasm, the newly-released Patch 012 for OpenBSD 6.5 adds sysupgrade(8) to the system.

Programming: MicroProfile, PyGotham and Deep Neural Network Library (DNNL)

Filed under
  • Autowire MicroProfile into Spring with Quarkus

    Eclipse MicroProfile and Spring Boot are often thought of as separate and distinct APIs when developing Java microservices. Developers default to their mental muscle memory by leveraging the APIs that they use on a daily basis. Learning new frameworks and runtimes can be a significant time investment. This article aims to ease the introduction to some popular MicroProfile APIs for Spring developers by enabling them to utilize the Spring APIs they already know while benefiting from significant new capabilities offered by Quarkus.

    More specifically, this article covers the scope and details of the Spring APIs supported by Quarkus so Spring developers have a grasp of the foundation they can build on with MicroProfile APIs. The article then covers MicroProfile APIs that Spring developers will find helpful in the development of microservices. Only a subset of MicroProfile is covered.

    Why Quarkus? Live coding is one reason, where any change is automatically reloaded whether MicroProfile, Spring, or any other Java API. Just run mvn quarkus:dev. That’s it. A second compelling reason is that the example project‘s Person service, which compiles Spring, MicroProfile, and JPA APIs to a native binary using GraalVM’s native-image, starts in 0.055 seconds and uses ~90MB of RAM (RSS) after hitting the application RESTful endpoints. Run mvn package -Pnative to compile to a native binary. That’s it.

  • PyGotham 2019: Talking Python in NY!

    We are arriving at New York! Part of our team is on their way to PyGotham 2019, the biggest event of the Python community in New York. The experience last year was amazing, so we decided to come back. We are also sponsoring it this year, so if you are going to the event make sure to stop by our booth, we are bringing lots of cool swags and some brazilian coffee!

  • Intel MKL-DNN 1.1 Released, Now Branded As The Deep Neural Network Library

    Intel's open-source crew has had a busy week with their first public OpenVKL release, OSPray 2 hitting alpha, and now the release of MKL-DNN where they are also re-branding it as the Deep Neural Network Library (DNNL).

    The MKL-DNN crew today did their version 1.1 release while now calling it the Deep Neural Network Library. MKL-DNN is the interesting Intel deep learning effort we've been benchmarking since earlier this summer and experienced good results. This performance-oriented library provides the "building blocks for neural networks optimized for Intel IA CPUs and GPUs." MKL-DNN/DNNL is designed to work with PyTorch, Tensorflow, ONNX, Chainer, BigDL, Apache MXNet, and other popular deep learning applications.

Programming: PyCharm, Qt and More

Filed under
  • 2019.3 EAP 4

    This week’s Early Access Program (EAP) for PyCharm 2019.3 is available now! Download it from our website.

  • Bring in the WhiteNoise, Bring in Da Funk - Building SaaS #34

    In this episode, we added WhiteNoise to the app as a tool for handling static assets. This lets us move away from depending on Nginx for the task and gives shiny new features like Brotli support.

  • A fast and thread-safe pool allocator for Qt - Part 2

    In part 1 of this blog series, we developed a pool allocator that is optimized for small allocations. We confirmed that we do that a lot in Qt when we allocate QEvent or QObject instances, and a specialized allocator might be useful for application developers as well. So far, our solutions will allocate complete pages of memory as needed, and hand out memory chunks of a fixed size that is specified at compile time through a template parameter. It supports different threading models, with different tradeoffs regarding performance, memory efficiency, and concurrency. The results were giving us a very promising performance, beating the general-purpose allocators by a factor of 3-10 in our multi-threaded benchmarks.

    However, with an allocator that can only handle one chunk-size, and never returns memory back to the operating system, we still have a way to go before we can really support our QEvent and QObject use cases within Qt. We can't just make our library waste and hog memory, or require application developers to reimplement operator new/delete to be able to allocate instances of their larger subclasses!

  • KDE & Qt Applications and High DPI Displays with Scaling

    In the past, most displays had (or the OS pretended to have) around 96 PPI, more or less.

    If you differed a bit and had too small/large UI elements, you mostly just resized your default font size a bit and were kind of happy.

    In the last years, more and more displays arise that have a much higher PPI values, which allows for e.g. very crisp rendering of text.

    I arrived late in that era for my Linux machines by now starting to use two 163 PPI displays.

    Just tweaking your fonts doesn’t help here, all other things will still be unbearable small, even if you in addition increase e.g. icon sizes.

    A solution for this is the current trend to just “scale” your UI by some factor, for my displays some factor of 1.5 leads to the most pleasant sizes.

  • dup2 System Call in C

    The dup2() system function is used to create a copy of an existing file descriptor. In Linux, there are 3 standard file descriptors. They are:
    stdin: This is the standard input file descriptor. It is used to take input from the terminal by default. scanf(), getc() etc functions uses stdin file descriptor to take user inputs. The stdin file descriptor is also represented by the number 0.

    stdout: This is the standard output file descriptor. It is used to print something to the console/terminal by default. The widely used printf() function uses stdout to print your desired output to the console/terminal. The stdout file descriptor is also represented by the number 1.

    stderr: This is the standard error file descriptor. It does the same thing as the stdout file descriptor. The stderr file descriptor is used to print error messages on the console/terminal. The only difference is if you use stderr file descriptor to print the error messages, and stdout file descriptor to print normal outputs, then you can later separate them. For example, you can redirect the error messages to a file and normal outputs to the console or another file. The stderr file descriptor is also represented by the number 2.

Programming: Node.js, Python, PicoLibC

Filed under
  • File Management with AWS S3, Python, and Flask

    One of the key driving factors to technology growth is data. Data has become more important and crucial in the tools being built as technology advances. It has become the driving factor to technology growth, how to collect, store, secure, and distribute data.

    This data growth has led to an increase in the utilization of cloud architecture to store and manage data while minimizing the hassle required to maintain consistency and accuracy. As consumers of technology, we are generating and consuming data and this has necessitated the requirement of elaborate systems to help us manage the data.

    The cloud architecture gives us the ability to upload and download files from multiple devices as long as we are connected to the internet. And that is part of what AWS helps us achieve through S3 buckets.

  • Node.js VS Python: Which is Better?

    Both Node.js (majorly used as a backend framework ), and Python ( front-end and back-end programming language) are used extensively for programming of a web app. It is vital to select a suitable framework or programming language for web app development because it is the backbone of every web app.

    Node.js and Python are extensively used for this purpose. When you talk about Node.js or python,you are actually comparing JavaScript with Python. This is because Node.js is actually a framework built on Google Chrome’s JavaScript.

    Both of them are among the top programming languages according to the TOIBE index.

    Here is the list with May 2018 and May 2019 rankings.

  • How to edit a qcow2 file from C

    Suppose you want to edit or read or write the data inside a qcow2 file? One way is to use libguestfs, and that’s the recommended way if you need to mount a filesystem inside the file.

    But for accessing the data blocks alone, you can now use the libnbd API and qemu-nbd together and this has a couple of advantages: It’s faster and you can open snapshots (which libguestfs cannot do).

    We start by creating a libnbd handle and connecting it to a qemu-nbd instance. The qemu-nbd instance is linked with qemu’s internal drivers that know how to read and write qcow2.

  • PicoLibC is a Lightweight C library for Embedded Systems

    Well-known developer, Keith Packard has recently announced the launch of “picolibc” through his blog.

Programming: Forth, Bash and Python

Filed under
  • 7 Excellent Free Books to Learn Forth

    Forth is an imperative stack-based programming language, and a member of the class of extensible interactive languages. It was created by Charles Moore in 1970 to control telescopes in observatories using small computers. Because of its roots, Forth stresses efficiency, compactness, flexible and efficient hardware/software interaction.

    Forth has a number of properties that contrast it from many other programming languages. In particular, Forth has no inherent keywords and is extensible. It is both a low level and high level language. It has the interesting property of being able to compile itself into a new compiler, debug itself and to experiment in real time as the system is built. Forth is an extremely flexible language, with high portability, compact source and object code, and a language that is easy to learn, program and debug. It has an incremental compiler, an interpreter and a very fast edit-compile-test cycle. Forth uses a stack to pass data between words, and it uses the raw memory for more permanent storage. It also lets coders write their own control structures.

    Forth has often being deployed in embedded systems due to the compactness of object code. Forth is also used in boot loaders such as Open Firmware (developed by Sun Microsystems) as well as scientific fields such as astronomy, mathematics, oceanography and electrical engineering.

  • Writing Comments in Bash Scripts

    When writing Bash scripts, it is always a good practice to make your code clean and easily understandable. Organizing your code in blocks, indenting, giving variables and functions descriptive names are several ways to do this. Another way to improve the readability of your code is by using comments. A comment is a human-readable explanation or annotation that is written in the shell script. Adding comments to your Bash scripts will save you a lot of time and effort when you look at your code in the future.

  • 13 Python Natural Language Processing Tools

    Natural language processing (NLP) is an exciting field of computer science, artificial intelligence, and computational linguistics concerned with the interactions between computers and human (natural) languages. It includes word and sentence tokenization, text classification and sentiment analysis, spelling correction, information extraction, parsing, meaning extraction, and question answering.

    In our formative years, we master the basics of spoken and written language. However, the vast majority of us do not progress past some basic processing rules when we learn how to handle text in our applications. Yet unstructured software comprises the majority of the data we see. NLP is the technology for dealing with our all-pervasive product: human language, as it appears in social media, emails, web pages, tweets, product descriptions, newspaper stories, and scientific articles, in thousands of languages and variants.

  • Calculating Rayleigh Reflectance using Py6S

    A user of Py6S recently contacted me to ask if it was possible to get an output of Rayleigh reflectance from Py6S. Unfortunately this email wasn’t sent to the Py6s Google Group, so I thought I’d write a blog post explaining how to do this, and showing a few outputs (reminder: please post Py6S questions there rather than emailing me directly, then people with questions in the future can find the answers there rather than asking again).

    So, first of all, what is Rayleigh reflectance? Well, it’s the reflectance (as measured at the top-of-atmosphere) that is caused by Rayleigh scattering in the atmosphere. This is the wavelength-dependent scattering of light by gas molecules in the atmosphere – and it is an inescapable effect of light passing through the atmosphere.

    So, on to how to calculate it in Py6S. Unfortunately the underlying 6S model doesn’t provide Rayleigh reflectance as an output, so we have to do a bit more work to calculate it.

  • Using the Python zip() Function for Parallel Iteration

    Python’s zip() function creates an iterator that will aggregate elements from two or more iterables. You can use the resulting iterator to quickly and consistently solve common programming problems, like creating dictionaries. In this tutorial, you’ll discover the logic behind the Python zip() function and how you can use it to solve real-world problems.

Programming: QBSP, Test Software and PHP in Ubuntu

Filed under
  • QBSP for TechNexion boards added to downloads

    In the past we have been talking about what is QBSP here: and from the official documentation here:

    We are happy to announce that our Hardware Technology partner TechNexion has just released new Qt Board Support Packages (QBSP) for their hardware platforms. The QBSP's are now available also for TechNexion iMX8MQ and iMX8M-Mini boards for Qt 5.12 LTS and Linux hosts. You can find them through your Qt Account under

  • 9 Organizational Test Practices Guaranteed to Lower Quality and Customer Satisfaction

    Another device for distracting from quality is requiring test automation for every feature. It guarantees that your Test organization spends most of its time doing software development instead of test engineering.

    The goal should change from validating a product attribute, to counting how many automated tests ran to verify it.

    Rather than thinking through the test breakdown that validates various code paths or fundamentals of a function, engineers will spend time and resources executing multiple iterations of the same test. It leads to higher counts.

  • Ubuntu Server team update (Sprint edition) - 23 September 2019

    Last week the Canonical Ubuntu Server team as well as nearly all the other engineering teams were in Paris having a sprint. This is a week long time for the teams to come together face to face. During the time large pushes on various efforts are made, the teams review processes and procedures, and make decisions for how work will be done for the next 6 months.

    I do not expect there to be too many replies to this thread since we were all in a room talking to each other for the most part, but I invite the team to provide some decisions that were made or other things that they were able to accomplish during their time last week.

  • PHP 7.3 Is In Ubuntu 19.10, PHP 7.4 Hopefully Will Make It Into Ubuntu 20.04 LTS

    One of the benefits of upgrading to Ubuntu Server 19.10 this month is for a newer version of PHP7 providing new features and better performance. While that took close to one year to land PHP 7.3 in Ubuntu 19.10, it looks like next spring's Ubuntu 20.04 LTS will be pulling in PHP 7.4 that is shipping later this year. 

    Bryce Harrington is back working at Canonical following the demise of Samsung's Open-Source Group. Bryce shared that over the past month he's been transitioning Ubuntu over to PHP 7.3. At the end of September, PHP 7.2 was finally able to be removed from the Eoan archive. 

Syndicate content

More in Tux Machines

5 Practical Examples of the Read Command in Linux

With read command, you can make your bash script interactive by accepting user inputs. Learn to use the read command in Linux with these practical examples. Read more

Programming: C++, C and Python

  • Extend C++ capabilities with LLVM STLExtras.h

    The LLVM compiler project provides a header file called STLExtras.h that extends the capabilities of C++ without any dependency on the rest of LLVM. In this article, we take a quick look at its basic functionality.

  • Rewriting Old Solaris C Code In Python Yielded A 17x Performance Improvement

    While we normally hear of rewriting code from Python and other scripting languages into C/C++ when its a matter of performance, in the case of Oracle Solaris it was taking old C code and modernizing it in Python 3 to yield a ~17x performance improvement. Shared today on Oracle's official Solaris blog was an interesting anecdote about their listusers command being rewritten in Python 3 from C. Oracle's Darren Moffat noted the C code was largely untouched since around 1988 and given its design at a time when systems were less dense than today with hundreds or even thousands of users per system.

  • Python Projects for Beginners: The Best Way to Learn

    Learning Python can be difficult. You can spend time reading a textbook or watching videos, but then struggle to actually put what you've learned into practice. Or you might spend a ton of time learning syntax and get bored or lose motivation. How can you increase your chances of success? By building Python projects. That way you're learning by actually doing what you want to do! When I was learning Python, building projects helped me bring together everything I was learning. Once I started building projects, I immediately felt like I was making more progress.

  • PyCon 2019: The People of PyCon

    I can’t tell you how amazing it was to meet the individuals I read, listen to, or who make the tools I use. I was so happy to meet the authors that helped me to grow over the last few years, especially Dan Bader, Peter Baumgartner, Matt Harrison, Reuven Lerner, Harry Percival , and Lacey Williams Henschel. I love podcasts, so it was wonderful to meet Michael Kennedy and Brian Okken in person. And I was happy to meet Paul Ganssle, Russell Keith-Magee, Barry Warsaw, and other maintainers and contributors. It was a delight to meet Bob Belderbos and Julian Sequeira from PyBites.

  • Find the first non-consecutive number with Python

    Your task is to find the first element of an array that is not consecutive. E.g. If we have an array [1,2,3,4,6,7,8] then 1 then 2 then 3 then 4 are all consecutive but 6 is not, so that’s the first non-consecutive number. If the whole array is consecutive then return None.

  • Perceiving Python programming paradigms

    Early each year, TIOBE announces its Programming Language of The Year. When its latest annual TIOBE index report came out, I was not at all surprised to see Python again winning the title, which was based on capturing the most search engine ranking points (especially on Google, Bing, Yahoo, Wikipedia, Amazon, YouTube, and Baidu) in 2018.

OSI Announces Appointment of New Board Directors

The Open Source Initiative (OSI) is pleased to announce the appointments of Deb Bryant and Tracy Hinds to fill the two vacant seats on the OSI Board of Directors. Their terms will begin immediately and run through October 2021. We hope you will join us in welcoming both to the OSI. Deb Bryant is returning to the OSI Board after spending several years away. After spending her days as the Senior Director of the Open Source Programs Office at Red Hat, Deb volunteers for open source organizations and supports the open source community. Bryant is passionate about open and transparent governments, bringing open source technology and ideas into the public sector. Tracy Hinds has an impressive history of managing development, operations, and growth for non-profit and for-profit organizations. Previous Education and Community Manager as well as Board Director of the OpenJS(formerly Node.js) Foundation, Hinds now works as Head of Platform at Samsung NEXT and is the president of GatherScript, where she works to support startup engagement and community, inspired by her prior work as a web engineer, community builder, OSS advocate, and strategist. Read more

A Trustworthy Free/Libre Linux Capable 64bit RISC-V Computer

My goal is to build a Free/OpenSource computer from the ground up, so I may completely trust that the entire hardware+software system's behavior is 100% attributable to its fully available HDL (Hardware Description Language) and Software sources. More importantly, I need all the compilers and associated toolchains involved in building the overall system (from HDL and Software sources) to be Free/OpenSource, and to be themselves buildable and runnable on the computer system being described. In other words, I need a self-hosting Free/OpenSource hardware+software stack! Read more Also: COM offers 9th or 8th Gen Coffee Lake with 10Gbps USB 3.2 and up to 96GB RAM