Porting Day of the Tentacle to Linux
Cheese Talks: A website about games and game related topics, featuring interviews, articles and neat visualisations.
XKCD's StackSort Implemented in a Vim Regex
Which is the first answer to the first question if you search for 'sort a list' on Stack Overflow (which was answered by Devin Jeanpierre ).
The lack of a case against Python 3
A point-by-point rebuttal of Zed Shaw's Unicode and 2to3 complaints, with a trainer's view on which Python version to teach beginners in 2016.
“Your program is stupid. It doesn't work,” my wife told me (2010)
<img src="http://stevehanov.ca/blog/wheel1.png"/>
Using Docker to develop and deploy Django apps
I finally managed to deploy Django in a Docker container on production! I’ve been trying to switch to a full Docker development/production model since Docker came out, but only recently did the ecosystem mature enough to allow me to easily use Docker both for development (where it excels, in my opinion) and on…
Actually using ed (2012)
The classic ed editor is a really good example of a sparse, minimal, standard Unix tool that does one thing, and does it well. Because there are so many good screen-oriented editors for Unix, there’s seldom very much call for using ed , unless you’re working on very old or very limited hardware that won’t run anything…
My Journey From Blindness to Building a Fully Conversational User Interface
Apps are a nightmare for the visually impaired. So when I started losing my sight, I decided to fix that.
Don’t design like a programmer (2010)
Get honest, expert UX feedback on your AI-built product before you ship. Prioritized recommendations within 24 or 72 hours.
Overcoming Intuition in Programming
In a [series of experiments](http://faculty.chicagobooth.edu/nicholas.epley/alteretal.pdf), researchers set out to discover the relationship between difficulty or
What's in a Build Tool?
A "Build tool" is a catch-all term that refers to anything that is needed to get a piece of software set up, but isn't needed after that. Different programming communities have a wealth of different tools: some use stalwarts like make , some use loose collections of .sh scripts, some use XML-based tools like Maven or…
What is Symbolic Computation?
I've been reading a lot of Lisp books lately, some more advanced than others. All of the introductory books I've seen cover the idea of symbolic computation, but most of them breeze past it with just a few pages about "symbols" and "quoting". For many programmers coming from non-Lisp languages these are new, foreign…
Cheap BlueTooth Buttons and Linux
Selfie sticks - like most modern inventions - are utter tosh. But they've rapidly brought down the price of Bluetooth buttons. So who am I to complain? Let's take the venerable AB Shutter 3 - You can find it on Amazon for around £2 including postage - or around $2 on AliExpress. Frankly, that's stupidly cheap. OK…
Node.js debugging with Chrome DevTools in parallel with browser JS
Node.js debugging with Chrome DevTools in parallel with browser JavaScript
Diving into Other People's Code
This post will walk you through an exercise in diving into someone else's code. The goal will be to make an arbitrary change to the code of the Spyder Python IDE , a project I have never touched before in my life, and learn just enough about it to accomplish what I want without getting bogged down. You will learn how…
Linux at 20, some personal memories (2011)
This is going to be long and rambling. If you're going to read it, you may want to wait until you're ill, and can't get out of bed, and your head is filled with cotton, and you're eating painkillers like they were candy. I don't want you to feel pain while reading. Being unconscious and having a speech synthesizer…
Full-Stack Redux Tutorial
Tero Parviainen
The Bear Essentials: Developing a Commodore 64 Game, Part 1 (2015)
Part One: Initialising and moving a sprite I find it absolutely incredible that the Commodore 64 development scene is alive and well. Thanks to companies like Psytronik there is still a healthy st…
How to run C programs on the BeagleBone's PRU microcontroller
This article describes how to write C programs for the BeagleBone's microcontrollers. The BeagleBone Black is an inexpensive, credit-card...
Small, Freestanding Windows Executables
Recently I’ve been experimenting with freestanding C programs on Windows. Freestanding refers to programs that don’t link, either statically or dynamically, against a standard library (i.e. libc). This is typical for operating systems and similar, bare metal situations . Normally a C compiler can make assumptions…
Zero-allocation Trie Traversal
As part of a demonstration in an upcoming article , I wrote a simple trie implementation. A trie is a search tree where the keys are a sequence of symbols (i.e. strings). Strings with a common prefix share an initial path down the trie, and the keys themselves are stored implicitly by the structure of the trie. It’s…