Drew DeVault's Blog

The future of Wayland, and sway's role in it

Today I’ve released sway 0.15-rc1, the first release candidate for the final 0.x release of sway. That’s right - after sway 0.15 will be sway 1.0. After today, no new features are being added to sway until we complete the migration to our new plumbing library, wlroots. This has been a long time coming, and I would love to introduce you to wlroots and tell you what to expect from sway 1.0.

Analyzing HN moderation & censorship

Hacker News is a popular “hacker” news board. One thing I love about HN is that the moderation generally does an excellent job. The site is free of spam and the conversations are usually respectful and meaningful (if pessimistic at times). However, there is always room for improvement, and moderation on Hacker News is no exception.

Killing ants with nuclear weapons

Complexity is quickly becoming an epidemic. In this developer’s opinion, complexity is the ultimate enemy - the final boss - of good software design. Complicated software generally has complicated bugs. Simple software generally has simple bugs. It’s as easy as that.

When not to use a regex

The other day, I saw Learn regex the easy way. This is a great resource, but I felt the need to pen a post explaining that regexes are usually not the right approach.

State of Sway August 2017

Is it already time to write another one of these? Phew, time flies. Sway marches ever forward. Sway 0.14.0 was recently released, adding much asked-after support for tray icons and fixing some long-standing bugs. As usual, we already have some exciting features slated for 0.15.0 as well, notably some cool improvements to clipboard support. Look forward to it!

Archive it or you will miss it

Let’s open with some quotes from the Wikipedia article on link rot:

An introduction to Wayland

Wayland is the new hotness on the Linux graphics stack. There are plenty of introductions to Wayland that give you the high level details on how the stack is laid out how applications talk directly to the kernel with EGL and so on, but that doesn’t give you much practical knowledge. I’d like to instead share with you details about how the protocol actually works and how you can use it.

Limited "generics" in C without macros or UB

I should start this post off by clarifying that what I have to show you today is not, in fact, generics. However, it’s useful in some situations to solve the same problems that generics might. This is a pattern I’ve started using to reduce the number of void* pointers floating around in my code: multiple definitions of a struct.

Rotating passwords in bulk in the wake of security events

I’ve been putting this post off for a while. Do you remember the CloudFlare security problem that happened a few months ago? This is the one that disclosed huge amounts of sensitive information for huge numbers websites. When this happened, your accounts on thousands of websites were potentially compromised.

Building a "real" Linux distro

I recently saw a post on Hacker News: “Build yourself a Linux”, a cool project that guides you through building a simple Linux system. It’s similar to Linux from Scratch in that it helps you build a simple Linux system for personal use. I’d like to supplement this with some insight into my experience with a more difficult task: building a full blown Linux distribution. The result is agunix, the “silver unix” system.