Programming Leftovers
-
Leon Mika ☛ UCL: Iterators
Still working on UCL in my spare time, mainly filling out the standard library a little, like adding utility functions for lists and CSV files. Largest change made recently was the adding iterators to the mix of core types. These worked a lot like the streams of old, where you had a potentially unbounded source of values that could only be consumed one at a time. The difference with streams is that there is not magic to this: iterators work like any other type, so they could be stored in variables, passed around methods, etc (streams could only be consumed via pipes).
-
Cassidy Williams ☛ Re-ordering Git commits
Let’s say you have commits in the order of a, b, d, and c, and you want their order to be a, b, c, and d, instead.
This is a job for git rebase! The “official” description for rebasing is “reapply commits on top of another base tip” which is… kind of helpful. There are docs. Let’s just go over our use case because there’s a lot you can do with rebase and not enough time to go through it all.
-
The New Stack ☛ Infrastructure as Code: From Imperative to Declarative and Back Again
From an imperative approach, where admins wrote detailed scripts to provision and configure infrastructure, the industry moved to declarative IaC, driven by the desire for scalability, repeatability, and reduced human error. Declarative tools like Terraform made it possible to define what the infrastructure should look like rather than specifying how to create it. This reduced complexity and improved reliability.
In 2025, we’re seeing a subtle but meaningful return to imperative methods — albeit with a twist. Let’s explore how the industry has shifted between imperative and declarative approaches, converging toward today’s hybrid models.
-
Java
-
Linuxiac ☛ How to Install Java on Arch Linux: A Step-by-Step Guide
If you’re looking to get Java up and running on your Arch Linux system, you’re in the right place. This guide will take you through everything you need step by step. By the end, you’ll have a fully set up development environment ready to run or build Java applications.
But before installing Java on your Arch box, let me share a bit of theory that will clarify what follows.
-