Drew DeVault's Blog

State of Sway - December 2015

20 Dec 2015

I wrote sway’s initial commit 4 months ago, on August 4th. At the time of writing, there are now 1,070 commits from 29 different authors, totalling 10,682 lines of C (and 1,176 lines of header files). This has been done over the course of 256 pull requests and 118 issues. Of the 73 i3 features we’re tracking, 51 are now supported, and I’ve been using sway as my daily driver for a while now. Today, sway looks like this:

Bring more Tor into your life

11 Nov 2015

Tor is a project that improves your privacy online by encrypting and bouncing your connection through several nodes before leaving for the outside world. It makes it much more difficult for someone spying on you to know who you’re talking to online and what you’re saying to them. Many people use it with the Tor Browser (a fork of Firefox) and only use it with HTTP.

Please don't use Slack for FOSS projects

01 Nov 2015

I’ve noticed that more and more projects are using things like Slack as the chat medium for their open source projects. In the past couple of days alone, I’ve been directed to Slack for Babel and Bootstrap. I’d like to try and curb this phenomenon before it takes off any more.

A practical understanding of Flux

20 Jul 2015

React.js and the Flux are shaping up to be some of the most important tools for web development in the coming years. The MVC model was strong on the server when we decided to take the frontend seriously, and it was shoehorned into the frontend since we didn’t know any better. React and Flux challenge that and I like where it’s going very much. That being said, it was very difficult for me to get into. I put together this blog post to serve as a more practical guide - the upstream documentation tells you a lot of concepts and expects you to put them together yourself. Hopefully at the end of this blog post you can confidently start writing things with React+Flux instead of reading brain-melting docs for a few hours like I did.

osu!web - WebGL & Web Audio

14 Jun 2015

I’ve taken a liking to a video game called osu! over the past few months. It’s a rhythm game where you use move your mouse to circles that appear with the beat, and click (or press a key) at the right time. It looks something like this:

Hooks - running stuff on Github hooks

19 Apr 2015

I found myself in need of a simple tool for deploying a project on every git commit, but I didn’t have a build server set up. This led to Hooks - a very simple tool that allows you to run arbitrary commands when Github’s hooks execute.

Porting an entire desktop toolchain to the browser with Emscripten

30 Nov 2014

This blog post no longer works. I haven’t been maintaining it since I originally wrote it. However, you can see something similar at try.knightos.org.

On the profitability of image hosting websites

10 Oct 2014

I’ve been doing a lot of thought about whether or not it’s even possible to both run a simple website and turn a profit from it and maintain a high quality of service. In particular, I’m thinking about image hosts, considering that I run one (a rather unprofitable one, too), but I would think that my thoughts on this matter apply to more kinds of websites. That being said, I’ll just talk about media hosting because that’s where I have tangible expertise.

Process scheduling and multitasking in KnightOS

02 Sep 2014

I’m going to do some blogging about technical decisions made with KnightOS. It’s an open-source project I’ve been working on for the past four years to build an open-source Unix-like kernel for TI calculators (in assembly). It’s been a cool platform on top of which I can research low level systems concepts and I thought I’d share some of my findings with the world.

Python's datetime sucks

28 Jun 2014

I’ve been playing with Python for about a year now, and I like pretty much everything about it. There’s one thing that’s really rather bad and really should not be that bad, however - date & time support. It’s ridiculous how bad it is in Python. This is what you get with the standard datetime module:

Go's error handling doesn't sit right with me

07 Jun 2014

I’ll open up by saying that I am not a language designer, and I do like a lot of things about Go. I just recently figured out how to describe why Go’s error handling mechanics don’t sit right with me.

Hacking on your TI calculator

25 Feb 2014

I’ve built the KnightOS kernel, an open-source OS that runs on several TI calculator models, including the popular TI-83+ family, and recently the new TI-84+ Color Silver Edition. I have published some information on how to build your own operating sytsems for these devices, but I’ve learned a lot since then and I’m writing this blog post to include the lessons I’ve learned from other attempts.

The bug that hides from breakpoints

02 Feb 2014

This is the story of the most difficult bug I ever had to solve. See if you can figure it out before the conclusion.

Custom Music Syncing on Android

24 Aug 2013

I have an HTC One, with CyanogenMod installed. I usually use Spotify, but I’ve been wanting to move away from it for a while. The biggest thing keeping me there was the ease of syncing up with my phone - I added music on my PC and it just showed up on my phone.

You don't need jQuery

19 Aug 2013

It’s true. You really don’t need jQuery. Modern web browsers can do most of what you want from jQuery, without jQuery.