Inspired by Jedda’s Postroll, here is an incomplete list of blog posts that I’ve read and enjoyed in the last 3 months. This list refreshes daily.
On not taking it personally by
Commonly, active software projects evolve with time and with the demands of their users. This is different than a lot of creative professions, where outside of preservation techniques, the work stays largely unmodified. Even so, it's easy to feel an attachment to the coding work we've done, and become upset when it's no longer needed. Joel provides a new perspective in this post. He reminds us that we're paid to solve problems, and not for the lines of code we write.
Added: 2025-01-31
Planet Scale by
It's common to measure success by what is quantifiable. For example, a blog post is succesful if it obtains 100 views. Often what ends up happening though, is that the goal posts move. Only 100 views? That's failure territory, it needs at least 10000 to be successful. The Internet, as interconnected it is, enables this as it's possible for millions of people to consume your work. Mark reminds us that we don't need to live life this way. In fact, he notes that often we matter the most to those that are closest to us.
Added: 2025-01-29
When I say databases, we normally think of SQL-powered systems such as Postgres/SQLite, or JSON-document based systems like MongoDB. But what if we say that a simple text log can be a database? This post starts from those humble beginnings, to GNU Recutils, to finally SQLite. Before this post, I haven't heard of GNU Recutils. It allows for your data to be structured with mandatory fields and arbitrary constraints all while being text-based!
Added: 2025-01-29
Reverse engineering a car key fob signal (Part 1) by
Many years ago I attempted to decode my keyfob with a friend using GNURadio. We didn't complete the project, so it's great to see Sami here write about their experience. I recommend checking it out if you have any interest in RF technologies. The post covers many topics you need to graple such as hardware, modulation, encoding, and cryptographic codes.
Added: 2025-01-29
Unplugged by
Definitely relate to Chris on the greatness of the outdoors. I think as people who work all day with text on a computer, the outdoors stimulates our senses in a totally healthy way. Go enjoy a hike!
Added: 2025-01-29
Many Different Ways to Have a Place on The Web by
A list showing from Bare Metal to Serverless of different ways to host something on the web. The fun part of this post is that he relates it to different living situations. I don't know if I want to live off a locker though...
Added: 2025-01-29
Can We Retain the Benefits of Transitive Dependencies Without Undermining Security by
As this post describes, the computer process is an excellent abstraction in which programs cannot affect each other. However, we don't have similar mitigations within the process itself. As more and more of the code that runs an application comes not from the author themselves, but in their dependencies and their dependency's dependencies; it becomes important for us to know how to prevent a rogue actor from stealing sensitive information. This post presents some potential solutions, and I look forward to seeing how this area progresses.
Added: 2025-01-29
Maximizing Communication, not Traffic by
As a reader of many blogs on the Internet, I imagine that I take inspriration and absorb the styles of others in my own writing. I haven't really sat down and thought about the intentions others have when writing. However like Jeff, I'm also among the minority that doesn't monetize their website. Therefore, the tactics that some writers use to captivate attention and increase the amount of time that a reader spends on their website doesn't necessarily apply to me. It's a great reminder to be mindful and think about the style of communication that I'm trying to cultivate on this website.
Added: 2025-01-29
Making a pub table -- with an old oak tabletop by
Solid looking table! Thanks for sharing the process of assembly and refinement.
Added: 2025-01-29
Well said. Even if your job doesn't use the technology that you're interested in, doesn't mean you shouldn't pursue it. Your career may end up transitioning beyond your current job, and pursuing your interests creates oppurtunities that may not exist otherwise.
Added: 2025-01-29
Januartuary by
The first of an exciting series of seven posts. Within it, we get a peek at Zak's life through a daily drawing. Even though it's summer right now in New Zealand, I always find it crazy to think of seeing luscious green hills when it's actively snowing where I live right now.
Added: 2025-01-29
How does your URL parser handle Unicode? by
Specifications exist for many popular data formats and algorithms, but it is up to the implementor to faithfully follow it. Unfortunately, this doesn't always happen. This post explores the URL parsers that exist in the standard library of many popular programming languages.
Added: 2025-01-29
Nobody Gets Fired for Picking JSON, but Maybe They Should? by
Wow. From a human-readable standpoint, I enjoyed working with JSON. However, when it comes to using it for inter-process communication, I always felt that it didn't quite cut it. I mostly thought of this issue in terms of data efficiency, however, it turns out that the problem goes deeper than that. This post shows that since many details are left to the implementors, there are JSON (de)serializers out in the wild today that will result in data loss when parsing integers with more than 16 digits. Some credit cards have more than 16 digits.
Added: 2025-01-29
How does your URL parser handle Unicode? by
Added: 2025-01-29
If I am to embed comments on my website, I think I would do it in this exact way. I haven't heard of the Remark42 commenting system before, but from the looks of it, the system checks all of my requirements as well. Unfortunately at this point, I'm not convinced to have comments on my blog. I really enjoy the emails that my readers send. Maybe some day...
Added: 2025-01-27
SQLite: a simple database for smol projects by
Great list of tips and tricks on using SQLite. Including some I haven't heard of before like VACUUM and EXPLAIN.
Added: 2025-01-27
Putting a Dumb Weater Station on the Internet by
This is exactly the post that tickles my amateur radio spirit. I've been curious about the Industrial, Scientific, and Medical (ISM) bands for a while and setting up a weather station seems like a perfect use case! I'll have to set up rtl_433 on my software-defined radio and see what transmissions are going on in my area. For all I know, someone has already set up a weather station for me :D
Added: 2025-01-27
My 18-Months Rule for Open-Source Contributions by
It makes a lot of sense to me to close PRs that's been open for longer than 18 months. If the maintainer ended up wanting to merge the code, likely they will request changes from the author. At that point, the author of the change would have forgotten the context of the codebase and the reasons for their changes. However, I feel that bugs and issues are different. I feel that it's still important for others to know whether a bug still exists in the software.
Added: 2025-01-26
What are the Rosettas of formal specification? by
Back in the day, my favorite program to write when learning a new programming language was estimating pi through a Monte Carlo simulation. Funny enough, I haven't thought of a Rosetta for formal specification languages. Mainly, I end up following a tutorial to do something standard like common list operations. This is fun to think about, and the article shares some Rosettas for formalizing concurrent systems.
Added: 2025-01-26
Service Reliability Mathematics by
I haven't before seen laid out exactly how much downtime each percentage uptime corresponds to for a given year. According to my monitoring service, my website in the last 6 months had 31 minutes of downtime. Extrapolating, this would put me around a 99.99% uptime -- Not quite at the five-nines availability. The Wikipedia page on High Availability includes a large table of uptime percentages and how much downtime is permitted by year, quarter, month, week, and day. That and this blog post really gives you an appreciation on the amount of work it takes for our lives to run smoothly.
Added: 2025-01-26
I repaired my Steam Deck and it was fine, actually by
This is great news! I have a Steam Deck myself; while I don't use it all the time, it's reassuring to hear that Steam cares about repairability.
Added: 2025-01-26
Doing dumb stuff with docker and saving containers for offline installs by
A nice and simple technique for keeping docker images you care about around, given that you already have a Forejo instance running. I currently sync copies of GitHub repositories I care about, but I haven't thought to do the same about docker images, linux system packages, etc. Worth thinking about in case there's an Internet glitch someday, or one of our benevolent corporations decide they don't want to provide free hosting anymore.
Added: 2025-01-26
Be aware of the Makefile effect by
There's too many languages to learn as a developer, and this blog post highlights a byproduct of this. I admit to copy-pasting prior conceptions of Makefiles/CMake build scripts myself. This is also why I'm extremly hesitant to fully learning new build languages. For example in GithHub actions and Ansible, I call out to external bash scripts that I write by hand. Another separate issue is that I have a slight aversion to introducing build-dependencies. If I determine that the package is performing a task that I can quickly write myself, I often will. That way I'm not trusting yet another software party that I feel I don't need to.
Added: 2025-01-25
21c/Q2 – new habits for a new quarter-century by
I love it when people think big. Instead of only trying to make it to the end of the week, to think about life in years or even quarter-centuries! I resonate with the vision to "check stuff less often". I did this with checking investments myself; deleted the app from my phone. Unfortunately, however, another habit fills its place. I find it difficult to as Johnny said "embrace boredom." Do check out the rest of Johnny's list though, and think about how you want to live your next quarter-century.
Added: 2025-01-25
Underground conduits to garage and shed by
Given all that hard work, adding extra unused conduits is a great idea. Thanks for sharing photos of the progress!
Added: 2025-01-05
There are many great year in review posts, but I had to highlight this one. Visually, it's incredible. Check it out!
Added: 2025-01-05
As a self-hoster myself, I really enjoyed reading a full post on how someone else's infrastructure looks like. In fact, this makes me want to write of version of this myself. I currently have a smattering of posts that cover some of these topics. However, a comprehensive post would be awesome. Nudge me if you're interested to motivate me to write it faster :)
Added: 2025-01-05
So you want to study Library and Information Science in Australia? by
Great advice for those looking to get into the field. Honestly, parts of this advice applies across industries as well. For example, it's a good idea to gather a wide range of work experience and act professional.
Added: 2025-01-05
An Unreasonable Amount of Time by
A beautiful story on how putting in time and effort into your craft yields magical results.
Added: 2025-01-05
Quirks, Caveats, and Gotchas In SQLite by
It's not everyday you see a page listing all the quirks in your software. Some of these are no so much of quirks, but explicit design decisions. For example, not having a server-client architecture and not enforcing database column types.
Added: 2025-01-05
The Relationship Between Luck and Skill by
This post explores defining luck and skill in the context of games. I agree with most of the points and intuitions brought up in this blog post, except I don't believe that "imperfect information" is a necessary component of luck. For example, consider the heads-tails game. The player tosses a coin and with a 50% probability it will land heads, otherwise tails. The goal is to land as many heads as possible. If the player tosses the coin 1000 times and each of them land heads, then I would consider the player incredibly lucky. This is regardless of the fact that the player has perfect information regarding the probabilities of each outcome.
Added: 2025-01-05
Great things about Rust that aren't just performance by
I agree with everything on this list. If you haven't had a chance to program with Rust yet, I encourage you to give it a chance.
Added: 2025-01-11