Ubuntu Budgie

Ubuntu Budgie

My recent reinstall of Ubuntu 21.04 (to fix some driver problems) reminded me there is more to the world than XMonad. I played with Gnome Shell 3 for a day, and it’s all right. I don’t hate it (and I didn’t hate Unity either).

Transit of Mercurial

I’m quite fond of Mercurial, despite (though perhaps partly because of) using Git daily for the last ten years.

The first DVCS I used was Darcs, which I liked; then I tried Mercurial and liked it even more. That was 2007; I didn’t get my first job in a “Git shop” until 2010.

I’ve always found the Mercurial UX to be more pleasant than Git. Little things like invoking commands with unique left-substring, or seeing inbound or outbound commits with a single memorable command. Less operational complexity and fewer ways to shoot yourself in the foot, but with equivalent power.

CSS without classes

I came across an interesting CSS library the other day, awsm.css. It’s a CSS library with no classes. Its focus is providing nice styles for semantic elements (i.e. not for <div> or <span>).

It sounds like the motivating use case was wanting to style stuff coming out of e.g. Markdown.

Your HTML source can read like 1995, but look prettier!

How to get a remote software engineering job

I’ve been a full-time remote worker since 2010.

The COVID-19 pandemic has brought big changes to things involving face-to-face contact – like going to an office for work. Since this sea change has gotten more engineers (and employers) to think about remote work, I thought I’d share some tips on how to find and keep remote gigs.

This was written with junior-level engineers in mind, and is more about full-time employment than freelancing. Hopefully it has useful bits for others as well.

From Django to Hugo

I migrated my blog from a Django system I wrote 12 years ago, to a static site generated via Hugo.

The move wasn’t just about getting out of an old codebase — it also was the result of seeing how static generation is a very reasonable fit for most blog sites (including mine). Dynamically generating the pages is really just one way to get the raw content rendered into my preferred form and interface. Static generation does that too.