news
Programming Leftovers
-
Web Performance Calendar ☛ Web Performance Calendar » Improve TTFB and UX with HTTP streaming
If you have a statically generated website hosted on a CDN, it’s probably very fast (unless you add too much client-side JavaScript).
However, for dynamically generated pages that load content from a database, one of the most overlooked ways to speed up the perceived page load speed is HTTP streaming.
Unless you do streaming on your server, when you load rows from your database, it’s usually loaded into an array (or a similar structure), and only when the whole database query is done, the server continues assembling the HTML. And only when the whole page’s HTML is completely assembled, the server starts sending it over the wire to the browser. In JavaScript, this usually has the await keyword in front of the db.query() call. This is especially slow if you have a slow database, or a database call returning many rows.
-
Yordi Verkroost ☛ Advent of Code 2025 - Day 1
Today's problem features a safe, protected by a dial with numbers from 0 to 99. At the start, the dial points at number 50. We are given a list of instructions, where each instruction tells us if we need to rotate the dial left (towards a lower number) or right (towards a higher number) and it also tells how many clicks we need to rotate. For example, the instruction 'L42' means we need to rotate left towards a lower number 42 times. As we are dealing with a rotating dial, whenever we reach the number 0 when rotating left, we continue at number 99. The same is true in the other direction: whenever we reach the number 99 when rotating right, we continue at number 0.
-
Yordi Verkroost ☛ Advent of Code 2025 - Day 2
I'll refrain from writing out the whole problem description, as you can find that on the website itself. What it boils down to is this: given a number (or a list of characters, actually), decide if it contains a repeating pattern. For example: 55, 6464 and 123123 all contain a repeating sequence, while something like 242 does not.
-
The Weekly Challenge ☛ Advent Calendar - December 1, 2025
We find all 3 variations of digits, and check if it is even, then remove the duplicates: [...]
-
Sean Conner ☛ Semantic versioning is hard; let's go build a rocket
Wow! I found another bug from the depths of time in mod_blog, or rather, CGILib, which mod_blog uses. And again, this goes back right when I first wrote the code, possibly back in the late 1990s. And again, it's amazing that it took me this long (less than an hour ago) to trigger it!
-
Ian Duncan ☛ Punycode: My New Favorite Algorithm
I recently implemented a pure Haskell version of Punycode for my idn package, which I needed to support the JSON Schema library I’m working on. Going into it, I expected a straightforward encoding problem where we’d just map Unicode to base-36 and call it a day. I was completely wrong, but in a really delightful way–
-
Eric P Hanson ☛ LibImageQuant.jl
libimagequant is a GPL Rust library (originally C, ported to rust by the maintainers) which performs color quantization (available from the command line as pngquant). I got it building with Binary Builder and wrote a small Julia wrapper called LibImageQuant.jl to make it easier (and slightly more efficient) to use from Julia. Instead of saving a PNG to disk and then calling pngquant, you can do it in-memory with quantize_image(figure_or_matrix).
LibImageQuant.jl is in the 3-day waiting period for registration, and will likely be available tomorrow. In the meantime, you can do pkg> add https://github.com/ericphanson/LibImageQuant.jl if you want to try it out.
-
Connor Tumbleson ☛ A history of fastlane
This change hit in February of 2016 when fastlane became a monorepo with all the tools unified into one large repository. Extreme care was taken to not disrupt the experience for end users which led to a project that was growing quicker and easier than once before. For the next year the project continued to excel or expand with features until a larger announcement that hit in January of 2017.
-
Arjen Wiersma ☛ Advent of Code 2025 Day 1
My language this year is Clojure. My solution is quite simple and straightforward. I read the data using split-instructions, transforming the L into a subtraction. For part 1 it is enough to then take the reductions and then filter out all the times we land on the digit 0.
-
Boosting PySide with C++ models
In a recent series of blog posts, we have demonstrated that Python and Qt fit together very well. Due to its accessibility, ease-of-use and third-party ecosystem, it is really straightforward to prototype and productize applications. Still, Python has one significant disadvantage: It is not necessarily the most performant programming language.>
-
Adrian Roselli ☛ Web Design / Dev Advent Calendars for 2025
Every year I miss a few on December 1, so add a comment or hit me up on the Fediverse if you have more. I delayed posting again this year because I am a bit tired of people who just copy the entire thing and share their version on the socials. Also, this content originally appeared on AdrianRoselli.com and if you aren’t reading it there then the site you are on is a thieving site which should be held in the most contemptible disdain. Happy holidays!
-
Perl / Raku
-
Perl ☛ Perl Advent Calendar 2025 - All I Want for Christmas Is the Right Aspect Ratio
The post was talking about a module called App::BlurFill. It promised to take a source image and produce a new one at a fixed width and height, filling the “spare” space with a blurred version of the same image instead of ugly borders.
-
Rakulang ☛ 2025.48 Advent is Here
Head on over to https://raku-advent.blog to see the first of this year’s posts from Nigel Hamilton… thanks for setting the trend!
-
Rakulang ☛ Raku Advent Calendar – Raku is a multi-paradigm language where there's more than one way to do it
Dancer, Dasher and the other reindeer work overtime on Christmas Eve delivering billions of gifts. Each year the DevOps elves try and make things flow a bit smoother. The team use dosh (Do-Shell) – a Raku-powered command-line utility for turning natural language into platform-friendly shell commands. Instead of remembering all those pesky command-line utilities and
-