Programming Leftovers
-
CPython without a global interpreter lock
The global interpreter lock (GIL) has been a part of CPython since the beginning—nearly—but that seems likely to change over the next five or so years. As we described last week, the Python steering council has announced its intention to start moving toward a no-GIL CPython, potentially as soon as Python 3.13 in October 2024 for the preliminaries. The no-GIL version of CPython comes from Sam Gross, who introduced it as a proof-of-concept nearly two years ago; now, the idea has been formalized in a Python Enhancement Proposal (PEP) that describes no-GIL mode and how it interacts with the rest of the Python ecosystem.
[...]
Gross obviously recognized that acceptance of the PEP might be something of a struggle; one of the ways he dealt with that was by giving PEP 703 one of the more extensive "Motivation" sections ever seen. It looks at multiple different Python use cases (AI, numerical libraries, GPU-heavy workloads) and gets quotes from Python developers and maintainers about the problems they have encountered because of the GIL—and the lengths they have had to go to in order to work around the GIL. One project has already switched to using Gross's experimental no-GIL fork in order to avoid communication bottlenecks in its data-acquisition system.
-
Charles Plessy: I forgot about the “make clean” command.
-
Mastering Data Approximation with R’s approx() Function
Are you tired of dealing with irregularly spaced data points that just don’t seem to fit together? Do you find yourself struggling to interpolate or smooth your data for better analysis? Look no further! In this blog post, we’ll dive deep into the powerful world of data approximation using R’s approx() function. Buckle up, because by the end of this journey, you’ll have a new tool in your R toolkit that can help you tame even the wildest datasets.
-
Career advice for young system programmers
Barriers to entry in systems programming are usually higher. Writing a Kernel, a Compiler, or a Database takes years. You can write toy versions of those, but that’s still a large surface area that will take at least months to complete, and you’re now in an environment that is so unrealistic, that you’re not really learning much.
It is possible to get a job somewhere and learn, but that’s much harder. We live in a society that requires 5 years of experience for tools that only exist for 3 years for entry level jobs. Finding a job that will give you access to world class systems programming challenges, albeit possible, is challenging.
Thankfully, lots of cornerstone systems software have their code wide open. If you are interested in compilers, you don’t have to struggle imagining how very basic things could work in your toy compiler. You can just go and play with LLVM.
-
8 Excellent C++ Natural Language Processing Tools
Natural language processing (NLP) is an exciting field of computer science, artificial intelligence, and computational linguistics.
-
Embedded Linux audio training course: materials published
End of June, we announced the availability of a brand new training course, Embedded Linux Audio, which is targeted at engineers working with audio on embedded Linux systems, and that covers topics ranging from audio hardware, audio support in the Linux kernel (ASoC, DAI and codec drivers, Device Tree representation)...
-
How Testing Farm makes testing your upstream project easier
Although continuous integration is widely used in public projects, it has many limitations such as the size of resources or execution time. For instance, when you use GitHub actions free tier, you are limited to agents with 2 cpu and 7 GB of memory and total execution time of 2000 minutes per month. Other CI providers, like Azure Pipelines or Travis CI, have similar limitations. Continuous integration systems are popular, but free tier is not enough for some use cases. Fortunately, there is the Testing Farm for community projects maintained or co-maintained by Red Hat or Fedora/CentOS projects.
-
Navigating the Array Jungle: PHP Array Fundamentals
Arrays serve as fundamental data structures in most programming languages, and PHP is no exception. They provide a way to store and organize collections of data, making them a cornerstone of any developer’s toolkit.
-
Demystifying Dynamic Content: A Guide to PHP Integration
In today’s digital landscape, creating interactive and personalized web experiences is essential for engaging users and delivering dynamic content. One powerful tool for achieving this is PHP (Hypertext Preprocessor), a server-side scripting language designed for web development.
-
Troubleshooting Apache Server Issues Using Log Analysis
When it comes to hosting websites and applications, Apache HTTP Server (commonly referred to as Apache) stands out as one of the most widely used and robust web servers available.
-
Logging Best Practices for Security and Performance in Apache Servers
In the realm of web server management, Apache stands as a cornerstone, powering a significant portion of websites worldwide. However, the convenience of Apache’s functionality also brings along the need for diligent security and performance measures. Effective logging practices play a pivotal role in maintaining a secure and high-performing Apache server environment.
-
Creating Reusable Code: Functions in PHP
In the world of programming, the ability to create reusable and modular code is a fundamental skill. Functions play a pivotal role in achieving this goal. In this article, we will delve into the concept of functions in PHP, a widely used scripting language for web development.
-
Looping Like a Pro: Exploring PHP’s Looping Structures
-
Control Structures in PHP: Conditional Magic Unveiled
-
PHP Variables and Data Types: A Crash Course
PHP is a versatile scripting language widely used for web development due to its ease of use and integration with HTML. One of its fundamental concepts is variables, which allow programmers to store and manipulate data.
-
Mastering PHP Scripts: Creating Dynamic Web Pages
In the realm of web development, PHP (Hypertext Preprocessor) has emerged as a robust and versatile scripting language, enabling developers to craft dynamic web pages and applications. This tutorial dives into the intricacies of harnessing PHP scripts to create dynamic web pages, providing a comprehensive guide for both beginners and experienced developers.
-
Getting Started with PHP: Installation and Configuration Guide
PHP is a popular server-side scripting language widely used for web development. It’s known for its simplicity, flexibility, and ability to seamlessly integrate with HTML, making it an ideal choice for building dynamic and interactive web applications.
-
Remi Collet: PHP version 8.1.23RC1 and 8.2.10RC1
Release Candidate versions are available in testing repository for Fedora and Enterprise Linux (RHEL / CentOS / Alma / Rocky and other clones) to allow more people to test them. They are available as Software Collections, for a parallel installation, perfect solution for such tests, and also as base packages.
-
Collaborating on projects with Pop!_OS and Git
In the realm of open-source projects and collaborative software development, Pop!_OS and Git emerge as powerful tools for developers worldwide. Pop!_OS, with its user-centric design, combined with the version control capabilities of Git, can supercharge your collaboration efforts.