How Not To Write A Web Service in Rust

Posted on Sun 11 August 2024 in general • Tagged with software, rust, programming, webdev

When writing a web service in Rust you may be tempted to do careful research based on your use case, to tailor your code to fit the needs of a typed language with strict memory safety, and to take a pragmatic approach to development. Doing things this way might make …


Continue reading

Why I Left NixOS for Ubuntu

Posted on Thu 02 May 2024 in general • Tagged with software, linux, nixos, ubuntu

If you've hung out in Linux enthusiast circles lately, you'll have heard whispers that Arch Linux is no longer hot product. Instead, all the cool kids are using something called NixOS.

Since I bricked my Debian setup in an unfortunate accident involving compiling from source, I decided to give NixOS …


Continue reading

The Mindful Desktop - How to Increase Your Productivity in the Attention Economy

Posted on Mon 11 March 2024 in general • Tagged with productivity, mindfulness, software

If you just want the VirtualBox VM for this article without the philosophising, skip to the appendix.

We live in a world full of distractions. In the modern "attention economy" it's more of a challenge to avoid content and advertising than it is to find it.

Nowhere is this more …


Continue reading

Stacks for Simple Static Sites

Posted on Sat 17 February 2024 in general • Tagged with programming, productivity, webdev

Wouldn't it be great if you could type out an article on your computer, push a couple of buttons, and have it appear on the web? No clunky page builders, no admin logins, and no mandatory updates.

With the right setup for your website, this is possible.

I wrote about …


Continue reading

The Unreasonable Effectiveness of Simple Websites

Posted on Sun 11 February 2024 in general • Tagged with programming, productivity, webdev

Simple websites are better than beautiful ones.

I'll repeat that for the folks in the back.

Simple websites are better than beautiful ones.

Let me be clear what I mean by a simple website. I don't mean a Wordpress site with a minimalist theme. I also don't mean a Substack …


Continue reading

Todo Lists II: The Eisenhower Matrix

Posted on Fri 19 January 2024 in general • Tagged with productivity, handbook

In a previous article I discussed the power of todo lists and their use in organising your tasks. I have a confession: for a long time I didn't use task lists. This is because of some practical issues which plagued me as a user of those tools. And when I …


Continue reading

Hard to Parse: Designing a Language II

Posted on Mon 15 January 2024 in general • Tagged with programming

After writing the lexer I could turn any math expression into a set of tokens. However, they were still organised as a list and couldn't be used to do any useful work. To go from a list of tokens to a program, I needed to write a parser.

The goal …


Continue reading

Lexing On My Haters: How to Design a Programming Language I

Posted on Wed 12 July 2023 in general • Tagged with programming, software

Trying to build a complex program in Python is like trying to build a house out of jello. I love it, but while Python's delicious, flexible, and lacks the annoying quirks of most languages, this relaxed nature is a dire problem for complex projects. Python uses duck typing:

If it …


Continue reading

Programming as a Craft

Posted on Sun 25 June 2023 in general • Tagged with career

Many of my students ask questions like:

  • How long does it take to get your first job?
  • How do I know I'm ready to apply for jobs?
  • What do I need to know to get my first programming job?

They are often frustrated when I say "it depends". But this …


Continue reading

Will AI Make Me Obselete?

Posted on Fri 07 April 2023 in general

If you want the short answer: probably not. If you want the long answer, read on.

I recently had an interesting conversation with one of my clients. They were very concerned about the impact that advanced AI like GPT-4 would have on the market for programming jobs. In other words …


Continue reading