It's not about technology for its own sake. It's about being able to implement your own ideas.
Newest Entry
Complete Archives
Atom Feed
I'm a recovering programmer who has been designing video games since the 1980s, doing things that seem baroquely hardcore in retrospect, like writing Super Nintendo games entirely in assembly language. These days I use whatever tools are the most fun and give me the biggest advantage. Since 1999 one of those tools has been Erlang.
james.hague @ google mail
Where are the comments?
Complete Archives
Pretend This Optimization Doesn't Exist January 31, 2012
Virtual Joysticks and Other Comfortably Poor Solutions January 23, 2012
Recovering From a Computer Science Education January 15, 2012
Follow-up to "A Programming Idiom You've Never Heard Of" January 5, 2012
A Programming Idiom You've Never Heard Of January 3, 2012
2011 Retrospective December 31, 2011
User Experience Intrusions in iOS 5 December 30, 2011
Photography as a Non-Technical Hobby November 27, 2011
Adventures in Unfiltered Global Publishing November 9, 2011
Things That Turbo Pascal is Smaller Than October 30, 2011
Starting in the Middle October 24, 2011
Papers from the Lost Culture of Array Languages October 17, 2011
The Revolution is Personal October 16, 2011
Optimization on a Galactic Scale October 8, 2011
Greetings from the Bottom of the Benchmarks October 4, 2011
Beyond Empty Coding September 27, 2011
Boldness and Restraint September 13, 2011
Building Beautiful Apps from Ugly Code September 8, 2011
It's Like That Because It Has Always Been Like That August 25, 2011
"Avoid Premature Optimization" Does Not Mean "Write Dumb Code" August 17, 2011
Collapsing Communities August 13, 2011
8-Bit Scheme: A Revisionist History August 4, 2011
The End is Near for Vertical Tab July 27, 2011
The Nostalgia Trap July 24, 2011
Living in the Era of Infinite Computing Power June 26, 2011
Tough Love for Indies June 20, 2011
Constantly Create May 22, 2011
Impressed by Slow Code April 30, 2011
Follow the Vibrancy April 20, 2011
Revisiting "Tricky When You Least Expect It" April 15, 2011
Caught-Up with 20 Years of UI Criticism April 11, 2011
If You're Not Gonna Use It, Why Are You Building It? March 26, 2011
Don't Distract New Programmers with OOP March 16, 2011
Exploring Audio Files with Erlang March 12, 2011
Accidental Innovation, Part 3 March 9, 2011
Accidental Innovation, Part 2 March 1, 2011
Accidental Innovation, Part 1 February 19, 2011
A Three-Year Retrospective December 29, 2010
Write Code Like You Just Learned How to Program December 24, 2010
Instant-On December 19, 2010
Learning to Ignore Superficially Ugly Code December 12, 2010
Good-Bye to the Sprawling Suburbs of Screen Space November 25, 2010
Easy to Please November 20, 2010
This Isn't Another Quick Dismissal of Visual Programming October 25, 2010
A Concurrent Language for Non-Concurrent Software October 17, 2010
Advice to Aimless, Excited Programmers September 23, 2010
Erlang vs. Unintentionally Purely Functional Python September 16, 2010
Common Sense, Part 1 August 31, 2010
Personal Programming August 28, 2010
Stop the Vertical Tab Madness July 29, 2010
One Small Step Toward Reducing Programming Language Complexity July 24, 2010
Free Your Technical Aesthetic from the 1970s July 17, 2010
Explaining Functional Programming to Eight-Year-Olds July 9, 2010
What Do People Like? July 1, 2010
Tricky When You Least Expect It June 29, 2010
A Ramble Through Erlang IO Lists June 13, 2010
How to Think Like a Pioneer May 13, 2010
How Much Processing Power Does it Take to be Fast? April 24, 2010
Rethinking Programming Language Tutorials April 3, 2010
Living Inside Your Own Black Box March 23, 2010
A Short Story About Verbosity March 17, 2010
Eleven Years of Erlang March 10, 2010
It Made Sense in 1978 March 4, 2010
Dehumidifiers, Gravy, and Coding March 3, 2010
Optimizing for Fan Noise February 10, 2010
What to do About Erlang's Records? January 30, 2010
Nothing Like a Little Bit of Magic January 29, 2010
Flickr as a Business Simulator January 25, 2010
No Comment January 16, 2010
The Recovering Programmer January 1, 2010
Follow-up to "Functional Programming Doesn't Work" December 30, 2009
Functional Programming Doesn't Work (and what to do about it) December 28, 2009
How I Learned to Stop Worrying and Love Erlang's Process Dictionary December 9, 2009
Slow Languages Battle Across Time November 14, 2009
How Did Things Ever Get This Good? November 10, 2009
Tales of a Former Disassembly Addict October 18, 2009
Micro-Build Systems and the Death of a Prominent DSL September 27, 2009
The World's Most Mind-Bending Language Has the Best Development Environment August 24, 2009
A Personal History of Compilation Speed, Part 2 August 22, 2009
The Pure Tech Side is the Dark Side August 8, 2009
A Personal History of Compilation Speed, Part 1 August 2, 2009
Want People to Use Your Language Under Windows? Do This. July 28, 2009
How to Crash Erlang June 15, 2009
Digging Deeper into Sufficiently Smartness June 14, 2009
Let's Take a Trivial Problem and Make it Hard May 4, 2009
On Being Sufficiently Smart April 18, 2009
How My Brain Kept Me from Co-Founding YouTube April 7, 2009
Puzzle Languages February 7, 2009
Revisiting "Purely Functional Retrogames" January 4, 2009
Accidentally Introducing Side Effects into Purely Functional Code December 14, 2008
Timidity Does Not Convince November 30, 2008
Macho Programming August 30, 2008
Understanding What It's Like to Program in Forth August 2, 2008
Kilobyte Constants, a Simple and Beautiful Idea that Hasn't Caught On July 20, 2008
Functional Programming Went Mainstream Years Ago July 6, 2008
Want to Write a Compiler? Just Read These Two Papers. June 29, 2008
A Spellchecker Used to Be a Major Feat of Software Engineering June 8, 2008
Coding as Performance May 31, 2008
Don't Be Afraid of Special Cases May 25, 2008
Purely Functional Retrogames, Part 4 May 11, 2008
Purely Functional Retrogames, Part 3 May 3, 2008
Purely Functional Retrogames, Part 2 April 19, 2008
Purely Functional Retrogames, Part 1 April 12, 2008
My Road to Erlang March 23, 2008
Slumming with BASIC Programmers March 9, 2008
In Praise of Non-Alphanumeric Identifiers February 25, 2008
Five Memorable Books About Programming February 18, 2008
Back to the Basics of Functional Programming January 31, 2008
Don't Structure Data All The Way Down January 20, 2008
Garbage Collection in Erlang January 6, 2008
Why Garbage Collection Paranoia is Still (sometimes) Justified January 5, 2008
Functional Programming Archaeology December 28, 2007
Would You Bet $100,000,000 on Your Pet Programming Language? December 23, 2007
Timings and the Punchline December 21, 2007
Revisiting "Programming as if Performance Mattered" December 16, 2007
Finally: Data Structure Constants in Erlang December 9, 2007
Two Stories of Simplicity December 8, 2007
Deriving Forth December 6, 2007
Trapped! Inside a Recursive Data Structure December 1, 2007
Sending Modern Languages Back to 1980s Game Programmers November 20, 2007
Erlang as a Target for Imperative DSLs November 18, 2007
Follow-up to "Admitting that Functional Programming Can Be Awkward" November 13, 2007
Admitting that Functional Programming Can Be Awkward November 9, 2007
On the Perils of Benchmarking Erlang November 4, 2007
A Deeper Look at Tail Recursion in Erlang November 2, 2007