Drew DeVault's Blog

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.

Nvidia sucks and I'm sick of it

There’s something I need to make clear about Nvidia. Sway 1.0, which is the release after next, is not going to support the Nvidia proprietary driver, EGLStreams, or any other proprietary graphics APIs. The only supported driver for Nvidia cards will be the open source nouveau driver. I will explain why.

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.