Drew DeVault's Blog

I write software. Occasionally, I will compose a post for this blog.

github.com/SirCmpwntwitter.com/sircmpwnmailto:sir@cmpwn.comPublic key: F4EA1B88

Recent Posts

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

Emscripten is pretty damn cool! It lets you write portable C and cross-compile it to JavaScript so it’ll run in a web browser. As the maintainer of KnightOS, I looked to emscripten as a potential means of reducing the cost of entry for new developers hoping to target the OS.

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.

Getting started with fish shell

13 Jan 2014

There’s a cool shell called fish that I think is pretty damn good. However, the documentation leaves something to be desired for new users and I found it a little difficult to get into it simply because there wasn’t a lot written about it. So here I am, writing about fish. Consider this a pitch for why you should be using it instead of whatever else you’re using now (bash, probably).

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.

This site and all its contents are MIT licensed.