The self-hosted to DevOps engineer pipeline

What’s the best way to get a job? Show someone with a job to do that you can do the job within their iron triangle. What’s the best way you can show someone you can handle a complicated k8s deployment, with 7 different CNCF-approved add-ons, zero-downtime rollouts and a whole bunch of YAML files? Probably by competently and publicly running your own complicated k8s infrastructure. Self-hosters remind me a lot of the sysadmins of yore, who mostly ended up in the profession because they just couldn’t help but mess around with their underlying computing machine until they knew all kinds of weird nooks and crannies within it. I trace my own lineage in software deveopment back to the day my parents finally purchased a Dell laptop and a 300 Kbps Internet connection (residential wiring in Boston left something to be desired), and promptly broke the Windows registry and installed Ubuntu without them ever realizing anything had changed. The next year I got my first internship through a high school program as a Unix admin intern at Akamai, and the rest is history. ...

September 18, 2024

PHP, Go, and Braindead Deployment

If you’ve been following my posts recently, you might have noticed that I’ve been working more and more with PHP lately. As someone who was curiously allergic to web dev as a teenager, it has been a strangely healing experience for me. I’d like to say it’s because my experiments with Laravel, the only OSS work of which I can point to is testing the Homestead VM’s compatibility for Shell Bling Ubuntu, convinced me. But no – Laravel is pretty sweet, but so is Django, but Django has the advantage of using an underlying language that ...

September 16, 2024

What I would recommend to teens in 2024 who want to get into development

September 8, 2024

PHP and Web Dev Phobia

PHP is, for better and for worse, the Python of web dev in my eyes. It is exceptionally easy to get started, in a way which I think younger developers may not be fully aware of. So here I’d like to make them aware of it! That’s right, this is a Slowstart for people who have never touched PHP or web dev before. Start the way we usually do on this blog, with the “tutorial-in-a-box” by installing Vagrant and Virtualbox so you can create a disposable virtual machine with just a few commands. ...

September 3, 2024

How I ask GPT-4 to make tiny Python scripts in practice

First get a working script. “Hey GPT-4, write me a ChatGPT script that does .” Manually check over the script and iterate until it’s giving me what I want. “Now wrap the script into a click command-line interface.” I almost always specify to use an --input flag and an --output flag. If the data it’s working with is human-readable, “Make it so that if --input is not specified, it reads data from stdin.” If the data it’s writing is human-readable, “Make it so that if --output is not specified, it emits data to stdout.” If the script is complicated enough that error logging is warranted: “Add logging and colorlog. Ensure all error messages are written to stderr so that it does not clash with output.” This advice is optimized for small Python scripts, usually under 200 lines in total, for automating semi-mundane tasks like ...

August 22, 2024

The highest personal ROI program I have written so far

It would have to be finstem, a simple command-line program I wrote to reduce Finnish words down to their root form. Finnish is a lot like Latin or Russian in that its words often become lumbering behemoths of rewritten consonants, suffixes upon suffixes, and this makes it hard to look up in a dictionary – that is, until you factor in its very regular orthography and the phenomenal efforts of the Finnish programming industry: finstem is basically a very specialized UI for the OpenOffice spell checker, and I have no shame in admitting that. ...

July 30, 2024

My pet theory of how great software gets started

(Inspired by yungporko’s Ask HN post, which got me thinking.) Pretty much every community, dojo, workplace, subculture, scene you can imagine in the modern day had a software sub-scene embedded within it. It can be as small as “that guy who does our Excel”, or as large as the scene itself . This is owing to the fantastic generality of software as a way to make almost anything more efficient, but we won’t go on that tangent now. ...

July 16, 2024

What scripting languages come out of the box on Debian 12?

Poking around in a fresh VM in Vagrant, I see bash dash, a POSIX compliant shell linked under sh python3, 3.11.2 at the time of writing awk, specifically mawk sed, if you count that (I do) perl, specifically Perl 5 There may be others I missed. Why I’m curious: Knowing that a language is installed by default on the most popular Linux distribution can simplify certain concerns considerably, which are of special interest to people who don’t work on Internet-connected boxes. Knowing that Python/Perl is already on there means that, provided your script only relies on the standard library, you should be able to just scp it over in a pinch and have it “just work”. ...

June 23, 2024

Valuable software is about letting people do new things

Today I released a dump of six months of flashcards I autogenerated from my tiny Finnish news archive to make the lives of my fellow language learners easier. The actual code which generates this archive is about 300 lines of Python . The basic value add for the user: What you want: Better fluency in Finnish. What you need: Practice. Lots of it. What this gives you: GOTO 2. This is emphatically not the kind of product, or use case, I would stumble upon as a brain-in-the-vat developer. It is a niche offering, one I only found because I actually got out into the world and tried to do something hard. In so doing, I recognized the possibility of building a tool that could help me in this non-programming endeavour. So I built it. And I’m proud of it. ...

June 21, 2024

Layers of abstraction for me, not for thee

Consider the problem of “how do I run more than 1 terminal at a time”. At this moment, I have at least 5 different ways I can effectively solve this issue: I can, from a different physical computer, SSH in to a new session. I can, from the same physical computer, switch to a different tty session with … C-S-F2 through 6 or something. (Rare, but sometimes it comes in really handy.) I can, in the same user session, open 2 separate windows of a terminal emulator. I can, in the same terminal emulator, open a new tab. I can, in the same emulated terminal, run tmux and open a new pane. There are yet more exotic options like Serial over LAN that I’m only theoretically aware of. ...

June 18, 2024