Drew DeVault's Blog

on Drew DeVault's blog

How to write an IRC bot

My disdain for Slack and many other Silicon Valley chat clients is well known, as is my undying love for IRC. With Slack making the news lately after their recent decision to disable the IRC and XMPP gateways in a classic Embrace Extend Extinguish move, they’ve been on my mind and I feel like writing about them more. Let’s compare writing a bot for Slack with writing an IRC bot.

Writing a Wayland Compositor, Part 3: Rendering a window

This is the third in a series of articles on the subject of writing a Wayland compositor from scratch using wlroots. Check out the first article if you haven’t already. We left off with a Wayland server which accepts client connections and exposes a handful of globals, but does not do anything particularly interesting yet. Our goal today is to do something interesting - render a window!

The path to sustainably working on FOSS full-time

This is an article I didn’t think I’d be writing any time soon. I’ve aspired to work full-time on my free and open source software projects for a long time now, but I have never expected that it could work. However, as of this week, I finally have enough recurring donation revenue to break even on FOSS, and I’ve started to put the extra cash away. I needed to set the next donation goal and ran the numbers to figure out what it takes to work on FOSS full-time.

Writing a Wayland Compositor, Part 2: Rigging up the server

This is the second in a series of articles on the subject of writing a Wayland compositor from scratch using wlroots. Check out the first article if you haven’t already. Last time, we ended up with an application which fired up a wlroots backend, enumerated output devices, and drew some pretty colors on the screen. Today, we’re going to start accepting Wayland client connections, though we aren’t going to be doing much with them yet.

Writing a Wayland Compositor, Part 1: Hello wlroots

This is the first in a series of many articles I’m writing on the subject of building a functional Wayland compositor from scratch. As you may know, I am the lead maintainer of sway, a reasonably popular Wayland compositor. Along with many other talented developers, we’ve been working on wlroots over the past few months. This is a powerful tool for creating new Wayland compositors, but it is very dense and difficult to understand. Do not despair! The intention of these articles is to make you understand and feel comfortable using it.

The last years

August 14th, 2019 PYONGYANG IN CHAOS AS PANDEMIC DECIMATES LEADERSHIP. Sources within the country have reported that a fast-acting and deadly infectious disease has suddenly infected the population of Pyongyang, the capital city of North Korea, where most of the country’s political elite live. Unconfirmed reports suggest that a significant fraction of the leadership has been affected.

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!