news
Programming Leftovers
-
Ryan Himmelwright ☛ Clojure Script for Project Git Logs
As mentioned in my last week notes post, I wrote a simple Clojure script to help me review what I’ve completed across projects during a given time period.
-
James Brown ☛ roguelazer's website: what makes programming great?
Most of the time, when I'm actually doing it, I love my job. There's a reason that computer programming (or "software engineering" if you're highfalutin) attracts so many people, and it's not just the unsustainably high salaries at overvalued tech companies or the promise of free gogurt in a corporate cafeteria. I want to take this post to try and make a case for what makes it so great.
The first aspect I wanted to discuss, which I think is pretty well covered, is that programming is fundamentally a creative act. Even in the worst slop-house where you're writing boring Java or Go code that converts one form of ProtoBuf to another, you are making the decisions on how to do that, you are structuring the code, and you get to enjoy the satisfaction of building something yourself. Creating and building something is one of the most essential human joys there is, and is essential to human satisfaction1. Most of the time, there's more than one way to do it, and even for the simplest program, the design space is enormous enough that no two people will come up with the same approach. Exploring this space and deciding how to tackle a problem is beautiful.
-
SICP ☛ Structure and Interpretation of Computer Programmers
The only thing required of or provided to users is a sustainable pace. No satisfaction, job security, dignity, mental health, or value (unless the users happen to be the customers, but in many contexts that isn’t true).
And the users are really an afterthought to the main goal, which is generating customer value in software form. Nowhere does the rest of society get a look in. The people who get run over by your self-driving car? Not mentioned. The people who breathe in your diesel engine’s fumes? Nope. The people whose personal connections are interrupted by the valuable ads that you sell to your valuable customers as your highest priority? Who even are they?
-
Carlo Zancanaro ☛ Setting Up Cuirass Locally
Recently I've been trying to get a PR merged with some fixes for Lua. I thought this would be a pretty straightforward thing to merge, but it turns out that modifying the Lua packages leads to 990 packages needing to be rebuilt. This is more than the 300 limit for a merge to master, so instead of merging my changes directly Andreas has kindly pushed them to a lua-team branch and queued it up behind go-team, gnome-team, and rust-team.
-
S R Creigh ☛ Error payloads in Zig
I do error payloads in Zig by making a union(enum)-based Diagnostics type for each function. These types have special methods which remove code bloat at call sites. A Diagnostics type can be defined inline, and the errorset can be generated inline from the Diagnostic’s enum tag.
-
John S J Anderson ☛ The only developer productivity metrics that matter « genehack.blog
Here are the only two things you should be worried about when it comes to the question of how productive a given team of software developers is:
1. How often does the team routinely ship new versions of the software they build?
2. How often do things break when the team ships a new version?THAT’S IT. Story points per sprint doesn’t matter; lines of code, doesn’t matter; Jira tickets closed, for the love of everything, do. not. matter.
-
Qt ☛ Rain effect with Quick3D Particles
Here is an overview on the new features added to the Quick3D.Particles module for Qt 6.10 and 6.11. The goal was to support effects that look like they are interacting with the scene and to do this without expensive simulations/calculations. Specifically we'll be using rain effect as an example when going trough the new features.
-
Jens Gustedt ☛ Defer available in gcc and clang – Jens Gustedt's Blog
About a year ago I posted about defer and that it would be available for everyone using gcc and/or clang soon. So it is probably time for an update.
Two things have happened in the mean time: [...]
-
Perl / Raku
-
Philipp Kern: What is happening with this "connection verification"?
You might see a verification screen pop up on more and more Debian web properties. Unfortunately the Hey Hi (AI) world of today is meeting web hosts that use Perl CGIs and are not built as multi-tiered scalable serving systems. The issues have been at three layers:
-
-
Python
-
The New Stack ☛ Python virtual environments: isolation without the chaos
A virtual machine, aka virtual environment, is an isolated installation that lives directly in your project directory. Think of it as a self-contained workspace for a single project.
In Python, each virtual environment includes its own Python interpreter, package installer (pip), and installed libraries. These aren’t unique to virtual environments, these elements are included in every Python project. The difference with projects built with virtual environments is that everything is isolated. Each environment has its own copies of the Python interpreter, pip, and libraries, so changes in one project won’t affect any other project or the system Python.
-
-
Shell/Bash/Zsh/Ksh
-
HowTo Geek ☛ This Bash script replaced 3 apps I use everyday
My system never breaks, but it constantly decays. Caches pile up, duplicates multiply, and filenames slowly turn into nonsense. Keeping things clean became a job of its own.
For a long time, I relied on a small collection of tools to keep this under control. They all worked well, but they shared the same flaw. They were reactive, manual, and required me to remember to run them. Eventually, I realized they were all enforcing simple rules I already understood. So I stopped opening apps and wrote a single Bash script to apply those rules automatically.
-