Programming Leftovers
-
AppSignal BV ☛ What's New in Ruby on Rails 8
The first Rails 8 beta has officially been released, bringing an exciting set of features, bug fixes, and improvements. This version builds on the foundation of Rails 7.2, while introducing new features and optimizations to make Rails development even more productive and enjoyable.
Key highlights include an integration with Kamal 2 for hassle-free deployments, the introduction of Propshaft as the new default asset pipeline, and extensive ActiveRecord enhancements. Rails 8 also brings several SQLite integration upgrades that make it a viable option for production use.
-
Buttondown LLC ☛ How to convince engineers that formal methods is cool
I have an open email for answering questions about formal methods, and one of the most common questions I get is "how do I convince my coworkers that this is worth doing?" usually the context is the reader is really into the idea of FM but their coworkers don't know it exists. The goal of the asker is to both introduce FM and persuade them that FM's useful.
-
Daniel Miessler ☛ How My Projects Fit Together
When people look at the various projects I’ve put out over the last year, they often ask which is the main one, or if they’re all related. And if so—how?
-
University of Toronto ☛ Things syndication feed readers do with 'conditional GET'
For reasons beyond the scope of this entry, I recently looked at my feed fetching logs for Wandering Thoughts. As usually happens when you turn over any rock involving web server logs, I discovered some multi-legged crawling things underneath, and in this case I was paying attention to what feed readers do (or don't do) for conditional GETs. Consider this a small catalog.
-
Arjen Wiersma ☛ Enhance testability with selmer
This is my first article in a series called Rock Solid Software. In it I explore different dimensions of software that does not simply break. You can write good software in any programming language, although some are more suited to a disciplined practice then others, Clojure is definitely in the relaxed space of discipline here.
-
Rlang ☛ How to Combine Two Columns into One in R With Examples in Base R and tidyr
As a beginner R programmer, you’ll often encounter situations where you need to manipulate data frames by combining columns. This article will guide you through the process of combining two columns into one in R, using both base R functions and the tidyr package. We’ll provide clear examples and explanations to help you master this essential skill.
-
Karl Seguin ☛ TCP Server in Zig - Part 3 - Minimizing Writes & Reads
Before we look at making our server multi-threaded, and then move to polling, there are two optimization techniques worth exploring. You might think that we should finalize our code before applying optimizations, but I think optimizations in general can teach us things to look out for / consider, and it's particularly true in both these cases.
In the previous parts, we made use of numerous system calls to setup our server and then communicate with the client. System calls (aka, syscalls) is how our program asks the operating system to do something, like writing bytes to a socket. There's overhead to making syscalls, so it's something we want to keep an eye on and, if possible, minimize. This overhead is small (100-200ns plus some trashing of various caches, from what I could find), therefore it isn't a concern for infrequent calls like the ones we used to setup our server - socket, setsockopt, bind and listen. read and write are a different story though: they're often in a loop and, for a server, the number of calls to read and write will grow with the number of active connection.
-
Jeremy Bowers ☛ This Post Is Not About Python
What this post is about is the engineering risks of being a fan.
Engineering is about solving problems. At the highest level, tool choice decisions are complicated. You need to consider what engineers you have on hand, what skills they have, what skills they may be able to acquire, what the business needs are, what the costs of a whole range of different possible solutions are, where those costs are themselves usually ranges of risk rather than rigid promises that this approach will cost exactly $1,353,374.54, etc. And I mean this only as a partial list intended to make you think about not just “does this language have a particular library”, but all the way up and down what a senior engineer ought to be considering.
In the process of making that decision, you are going to find that every option has downsides. Every single one. If you haven’t found them, you aren’t looking hard enough.
-
Bryan Lunduke ☛ No, You Don't Need Telemetry Data to Make Software
If you need telemetry and usage data...
-
Bryan Lunduke ☛ Best Alternatives to Woke Software
Because we should all be able to use software that doesn't hate us for being normal.
-
Collabora ☛ Mesa CI and the power of pre-merge testing
Having multiple developers work on pre-merge testing distributes the process and ensures that every contribution is rigorously tested before merging.
-
Qt ☛ Qt 6.8 LTS Released!
We are thrilled to announce the release of Qt 6.8, packed with support for new desktop, mobile, and embedded platforms, hundreds of improvements, and exciting new features to boost your development experience and meet the needs of demanding applications.
-
Rlang ☛ Use nanoparquet instead of readr/CSV
-
Python
-
Adriaan de Groot ☛ Python and SysV shared memory
At work-work the system uses, for historical reasons, a lot of SystemV shared memory. The SysV shared memory API has C functions like
shmat(2)
. There is also a different shared memory Hey Hi (AI) POSIX shared memory, which has functions likeshm_open(3)
. For reasons, on some work-work systems we’re constrained to Python 3.7 and no additional libraries. I wanted to mess with the shared memory on such a system, from Python for convenience, so I wrote some very simple wrappers. Here’s a recap.As usual, corrections are welcome, or tips (by email). I write these notes as much for future me as anyone else.
-
-
Shell/Bash/Zsh/Ksh
-
[Repeat] Linuxiac ☛ Tmux 3.5 Released with Extended Keys Support and New Features
Tmux 3.5 has been recently released, bringing several updates and improvements over its previous version, 3.4. This new release primarily focuses on enhanced key handling, user interface tweaks, and better compatibility with various terminal environments.
-
-
Standards/Consortia
-
RIPE ☛ Saying Goodbye to an API
On 5 December 2014, we received a resource request, which would normally be an uneventful occurrence. However, this was the first time we received such a request via the API. Nearly ten years and many requests later, we have decided to terminate the Resource Requests API. This will take place on 6 January 2025 as announced on the RIPE NCC Services Working Group mailing list.
-