RSS

Recent news

100,000 Lines of Assembly Language

Programming in the 21st Century - James Hague - April 13, 2012

I occasionally get asked about writing Super Nintendo games. How did anyone manage to work on projects consisting of hundreds of thousands of lines of 16-bit assembly language? The answer is that it’s not nearly as Herculean as it sounds. The SNES hardware manual is…

More (21 comments)

This is Why You Spent All that Time Learning to Program

Programming in the 21st Century - James Hague - April 02, 2012

There’s a standard format for local TV news broadcasts that’s easy to criticize. (By “local,” I mean any American town large enough to have its own television station.) There’s an initial shock-value teaser to keep you watching. News stories are read in a dramatic, sensationalist…

More (8 comments)

Turning Your Code Inside Out

Programming in the 21st Century - James Hague - March 23, 2012

If I gave this assignment to a class of novice programmers: Write a C program to sum the elements of an array and display the results. Include five test cases. I’d expect multiple people would come up with a function like this: void sum_array(int array[],…

More (4 comments)

Solving the Wrong Problem

Programming in the 21st Century - James Hague - March 11, 2012

Occasionally, against my better judgement, I peek into discussion threads about things I’ve written to see what the general vibe is, to see if I’ve made some ridiculous mistake that no one bothered to tell me directly about. The most unexpected comments have been about…

More (3 comments)

A Complete Understanding is No Longer Possible

Programming in the 21st Century - James Hague - February 27, 2012

Let’s say you’ve just bought a MacBook Air, and your goal is to become master of the machine, to understand how it works on every level. Amit Singh’s Mac OS X Internals: A Systems Approach is a good place to start. It’s not about programming…

More (9 comments)

Don’t Fall in Love With Your Technology

Programming in the 21st Century - James Hague - February 15, 2012

In the 1990s I followed the Usenet group comp.lang.forth. Forth has great personal appeal. It’s minimalist to the point of being subversive, and Forth literature once crackled with rightness. Slowly, not in a grand epiphany, I realized that there was something missing from the discussions…

More (2 comments)

A Peek Inside the Erlang Compiler

Programming in the 21st Century - James Hague - February 06, 2012

Erlang is a complex system, and I can’t do its inner workings justice in a short article, but I wanted to give some insight into what goes on when a module is compiled and loaded. As with most compilers, the first step is to convert…

More (2 comments)

Four Levels of Idea Theft

Programming in the 21st Century - James Hague - February 05, 2012

Imagine you’ve just seen a tremendously exiting piece of software—a mobile app, a web app, a game—and your immediate reaction is “Why didn’t I think of that?!” With your mind full of new possibilities, you start on a project, a project enabled by exposure to…

More (2 comments)

Pretend This Optimization Doesn’t Exist

Programming in the 21st Century - James Hague - January 31, 2012

In any modern discussion of algorithms, there’s mention of being cache-friendly, of organizing data in a way that’s a good match for the memory architectures of CPUs. There’s an inevitable attempt at making the concepts concrete with a benchmark manipulating huge—1000x1000—matrices. When rows are organized…

More (42 comments)

Virtual Joysticks and Comfortably Poor Solutions

Programming in the 21st Century - James Hague - January 23, 2012

Considering that every video game system ever made shipped with a physical joystick or joypad, the smooth, featureless glass of mobile touchscreens was unnerving. How to design a control scheme when there is no controller? One option was to completely dodge the issue, and that…

More (8 comments)

« First  <  3 4 5 6 7 >  Last »