Drew DeVault's Blog

on Drew DeVault's blog

Introduction to POSIX shell

What the heck is the POSIX shell anyway? Well, the POSIX (the Portable Operating System Interface) shell is the standard Unix shell - standard meaning it was formally defined and shipped in a published standard. This makes shell scripts written for it portable, something no other shell can lay claim to. The POSIX shell is basically a formalized version of the venerable Bourne shell, and on your system it lives at /bin/sh, unless you’re one of the unlucky masses for whom this is a symlink to bash.

Sway and client side decorations

You may have recently seen an article from GNOME on the subject of client side decorations (CSD) titled Introducing the CSD Initiative. It states some invalid assumptions which I want to clarify, and I want to tell you Sway’s stance on the subject. I also speak for the rest of the projects involved in wlroots on this matter, including Way Cooler, waymonad, and bspwc.

Fee breakdown for various donation platforms

Understanding fees are a really confusing part of supporting creators of things you like. I provide a few ways for people to support my work, and my supporters can struggle to understand the differences between them. It comes down to fees, of which there are several kinds (note: I just made these terms up):

Learn about your package manager

Tools like virtualenv, rbenv, and to a lesser extent npm and pip, are occasionally useful in development but encourage bad practices in production. Many people forget that their distro already has a package manager! And there’s more– you, the user, can write packages for it!

fork is not my favorite syscall

This article has been on my to-write list for a while now. In my opinion, fork is one of the most questionable design choices of Unix. I don’t understand the circumstances that led to its creation, and I grieve over the legacy rationale that keeps it alive to this day.

wlroots whitepaper available

Firefox is on a slippery slope

For a long time, it was just setting the default search provider to Google in exchange for a beefy stipend. Later, paid links in your new tab page were added. Then, a proprietary service, Pocket, was bundled into the browser - not as an addon, but a hardcoded feature. In the past few days, we’ve discovered an advertisement in the form of browser extension was sideloaded into user browsers. Whoever is leading these decisions at Mozilla needs to be stopped.

A history of emergent intelligence

As you all know, the simulation of universe 2813/9301 is now coming to a close. This simulation is notable for being the first simulated universe suitable for hosting intelligent life, but yesterday the simulation reached a state where we believe no additional intelligences will emerge. It seems the final state of this set of physical laws is a dark and empty universe of slowly evaporating black holes. Though, given the historical significance of this simulation, it’s unlikely we we’ll be turning it off any time soon!

On taking good care of your phone

I just finished replacing the micro-USB daughterboard on my Samsung Galaxy S5, which involved taking the phone most of the way apart, doing the replacement, and putting it back together. This inspired me to write about my approach to maintaining my cell phone. I’ve had this phone for a while and I have no plans to upgrade - I backed the upcoming Purism phone, but I expect to spend months/years on the software before I’ll be using that as my daily driver.

Portability matters

There are many kinds of “portability” in software. Portability refers to the relative ease of “porting” a piece of software to another system. That platform might be another operating system, another CPU architecture, another web browser, another filesystem… and so on. More portable software uses the limited subset of interfaces that are common between systems, and less portable software leverages interfaces specific to a particular system.