The Hyperdimensional Tar Pit

Make a guess, double the number, and then move to the next larger unit of time.


When I started in computing more than a quarter of a century ago, a kind elder colleague gave me a rule of thumb for estimating when I would have finished a task properly: make a guess, double the number, and then move to the next larger unit of time.

This rule scales tasks in a very interesting way: a one-minute task explodes by a factor of 120 to take two hours. A one-hour job explodes by “only” a factor 48 to take two days, while a one-day job grows by a factor of 14 to take two weeks.

The sweet spot is a one-week task, which becomes only eight times longer, but then it gets worse again: a one-month job takes 24 times longer when it is finished two years from now…

Node Summit 2012 – San Francisco

Node Summit 2012 is the only conference to focus on how Node.js is transforming the future of computing on January 24-25, 2012 in San Francisco. Node Summit is the first-ever conference devoted entirely to the business implications of the server-side JavaScript environment Node.js. Business leaders and technology experts will convene at Node Summit to discuss how Node.js is enabling the creation of real-time, high performance, scalable, networked applications – and debate how the technology will impact businesses and consumers in the coming years.


Twitter Handle: @NodeSummit

Discount Code (25% Off): ACMQUEUE

Discount Registration Link (25% Off):

Revisiting Network I/O APIs: The netmap Framework

Luigi Rizzo

It is possible to achieve huge performance improvements in the way packet processing is done on modern operating systems.
Today 10-gigabit interfaces are used more and more in datacenters and servers. On these links, packets flow as fast as one every 67.2 nanoseconds, yet modern operating systems can take 10-20 times longer just to move one packet between the wire and the application. We can do much better, not with more powerful hardware but by revising architectural decisions made long ago regarding the design of device drivers and network stacks.

The 2012 Queue ICPC Challenge has Begun!

This year's challenge is a territory-capture game called Coercion.

Code a player in Java, C++, C#, Python, or JavaScript.

Full details here:

The challenge has no prize, but is open to everyone.

ACM Queue Magazine is offering an online programming competition based on the 2011 International Collegiate Programming Competition (ICPC) Challenge problem. Participants will get to code a player and compete with others in the game of Coercion. Preliminary matches during the one-month coding phase will let you know how well your player is doing. A final double-elimination competition among all the submitted players will decide whose player is best.


SAGE: Whitebox Fuzzing for Security Testing

SAGE has had a remarkable impact at Microsoft.


Most ACM Queue readers might think of “program verification research” as mostly theoretical with little impact on the world at large. Think again. If you are reading these lines on a PC running some form of Windows (like 93-plus percent of PC users—that is, more than a billion people), then you have been affected by this line of work—without knowing it, which is precisely the way we want it to be.

The Crypto-CS-SETI challenge: An Un-programming Challenge

Poul-Henning Kamp

A challenge to all bright minds in the IT and CS world: Can you disassemble a program for an unknown computer, given only the compiled ROM image?

I hereby announce a challenge, beginning immediately, to gather as much information as possible about the program file linked below.

Imagine finding a crashed flying saucer….

The Network Protocol Battle

- George V. Neville-Neil

A tale of hubris and zealotry

Dear KV,

I’ve been working on a personal project that involves creating a new network protocol. Out of curiosity, I tried to find out what would be involved in getting an official protocol number assigned for my project and discovered that it could take a year and could mean a lot of back and forth with the powers that be at the IETF (Internet Engineering Task Force). I knew this wouldn’t be as simple as clicking something on a Web page, but a year seems excessive, and really it’s not a major part of the work, so it seems like this would mainly be a distraction. For now, I just took a random protocol number that I know doesn’t conflict with anything on my network—such as UDP or TCP—and things seem to work fine. I guess my real question is why would anyone bother to go to the IETF to ask for this unless they were a company that could waste someone’s time on an e-mail campaign to get a properly assigned number? …