Inklings: a tumblelog

REST-RPC - Questions and Answers

April Fool’s Day is a month away, isn’t it? smack!

The Theory of Classification: A Course on OO Type Systems

Getting started with extension development - MozillaZine Knowledge Base

The Implementation of Functional Programming Languages

James Shore: Continuous Integration Checklist

James Shore: Continuous Integration on a Dollar a Day

Hacknot: In Praise of Code Reviews

SWT, Swing or AWT: Which is right for you?

A surprisingly balance (considering SWT is their baby) article from IBM.

Alan Kay: Is Computer Science an Oxymoron?

I don’t know of a single computing system that is attached to you that if it fails it will almost certainly kill you. That’s what happens with jet engines.

I do, one that started working in the plane I was in an hour after I finished reading this article: the autopilot. Here’s another: pacemakers. Or modern ABS systems. Much of what “software engineers” do might no be engineering, but you can’t make that criticism about people who build critical embedded systems.

Standardista Table Sorting

Standardista Table Sorting is a JavaScript module that lets you sort an HTML data table by any column… It’s unobtrusive. You add a reference to the Standardista Table Sorting JavaScript files in the head of your webpage, add a class of ‘sortable’ to the tables in your page that should be sorted and you’re done.

Pretty cool!

WTF 2.0

Russell smacks the Web 2.0 crowd with some good, honest truth: if you haven’t a way of making some profit from your grand scheme, give up.

When is one thing equal to some other thing?

An introduction to category theory.

Programming languages and their relationship styles


HowtoUseSQLite (with RoR)

RIM puts $613m settlement in motion

No! This isn’t right at all! This suit was without foundation and deserved to be thrown out. How could they capitulate? suddenly starts looking professional

OMGWTF?! :-)

Why features don't matter anymore

Graeme Rocher's Blog: Groovy & BeanShell: Dynamic vs Scripting Languages

A tiny bit too pro-Groovy and anti-BeanShell for my liking, but an interesting read nontheless.

Django gets Transactions

Branch Based Development The Oscars and why I love Jon Stewart

On the way in which Jon Stewart simply says that the king has no clothes is better than how others pontificate about what clothes the king should be wearing.

Cruiskeen Eile: Surveilling the mad, bad, and hilarious world of Col. Kevin Myers.

An excellent and well-deserved take-off and fisking of Kevin Myers. One of the funniest things I’ve read this year.

Active Libraries and Universal Languages

Roughly speaking, this thesis addresses the question: How might we provide DSLs that are fast and safe?

A little anti-anti-hype

…inferior languages and technologies are just as likely to win. Maybe even more likely, since it takes less time to get them right. Java beat Smalltalk; C++ beat Objective-C; Perl beat Python; VHS beat Beta; the list goes on. Technologies, especially programming languages, do not win on merit. They win on marketing. Begging for fair, unbiased debate is going to get your language left in the dust.

Good article. More reaction here and here.

What is in a Name? - Enterprise Integration Patterns

Shkadov Thruster

A hypothetical device built by a Type II Kardashev civilization to control a star’s motion.

Think strapping an enormous solar sail to a star to create a literal stardrive.


The Alexander Technique

The Alexander Technique teaches how to recognize and overcome habituated limitations within a person’s manner of movement. […] It takes its name from F. Matthias Alexander, [who] used self-observation and reasoning to make effortless the physical acts of every-day movement: sitting, standing, breathing, working with the hands and speaking.

A Brief Defense of Significant Whitespace

Ian explains what he meant by:

I want nothing to do with any programmer who would misindent their code. If you want to mis-indent your code you are an idiot. If you want idiotic code to be an option you are being absurd.

New language features in C# 3.0

As Keith says, some of the commenters are real idiots, especially when the post spells things out clearly. I mean, how could they possibly think it subverts strong typing? All it does is cause the compiler to infer the type from the rvalue rather than getting you to treat the compiler like an idiot-savant and enter the same details twice. Dopes.

Encrypt your SMS text messages

Very, very tempting, from my perspective, while Michael McDowell’s Minister for Justice.


svk is a decentralized version control system. It uses the Subversion filesystem but provides additional, powerful features. svk plays well with others, it can mirror remote Subversion, Perforce, and CVS repositories to perform offline operations.

Forget addEvent, use Yahoo!'s Event Utility

Tight? Damn yeah! Feel free to ditch my EventManager at any time for this.

Crossing borders: Exploring Active Record

This article launches a new series by Bruce Tate that looks at ways other languages solve major problems and what those solutions mean to Java developers. He first explores Active Record, the persistence engine behind Ruby on Rails. Active Record bucks many Java conventions, from the typical configuration mechanisms to fundamental architectural choices. The result is a framework that embraces radical compromises and fosters radical productivity.

Script Smarter: Quality JavaScript from Scratch

Well worth a read even if you already think you can code in JS. It might help disabuse you of a few bad habits.

Optimization: Your worst enemy

My Top Ten Tips on how to become a Rock Star Programmer

Web Services At A Crossroads Blog: Shy or private people can speak in public.

NHibernate Best Practices with ASP.NET, Generics & Unit Tests

EVERY application has a natural domain model

Discovering HTTP #1: The Accept header (Loud Thinking)

Oooh! From reading the comments, this looks like an instant headache. I was thinking of using content negotiation to decide on whether my blog’s frontpage should return (X)HTML, Atom, or RSS. I think before I do that I’ll track what Accept headers are sent by aggregators subscribed to my feeds right now and make a descision later as to whether this is feasable.

Unix is a leaky abstraction: Disk I/O in a non-blocking server

Objective CAML Tutorial

A bloody good O’Caml tutorial wiki I stumbled across. If you’re interested in learning the language, it’s well worth a look.

The Atlantic Online: Introverts of the World, Unite!

Jeremy's Second Law of TDD: Push, Don't Pull

How Dependency Inversion can make your life much easier. And no, you don’t need a big-ass container like Spring to do it.

FON: WiFi everywhere!

FON is a Global Community of people who share WiFi. Share your WiFi broadband access at home/work and enjoy FREE WiFi Access all over the world! FON, share locally, enjoy globally!

Posting this up on the offchance that it might inspire a couple of people to join FON. It’s a good idea, especially if you’re in a built-up area (which I’m not).

REST based authentication

Cookieless authentification goodness, though not without its own downsides. Take a read.


A paper by Glenn Vandenburg entitled ‘A Simple Model of Agile Software Processes–or–Extreme Programming Annealed’ works out why the ‘interdependencies’ of the various XP practices are not necessarily a bad thing.

WS-Transfer, WAKA and the Web

WS-Transfer can therefore be seen as an underlying protocol-independent version of HTTP, i.e. bringing the capabilities and properties of the Web and HTTP in contexts where HTTP is not used. The use of WS-Transfer is not limited to non-HTTP transports, and can also be used when HTTP is used as a communication tunnel.

Ok, so we all know SOAP jumped the shark a long, long time ago, but I can only assume that WS-Transfer is an early April Fool’s joke. Could somebody please explain to me what sense there is in a half-assed re-implementation of HTTP on top of SOAP?

European Cuisine

Agile Journal: Seven Agile Team Practices That Scale

IrishEyes: How to work smarter

Photoshop plugins for importing and exporting .ico files, Paint Shop Pro files, &c.

Scott Berkun: The manager that's never there

So true, and it applies not just to managers, but to all walks of life. It is, after all, better to do three good hours work than do eight and get nothing done.

Basic ground rules for programming: function parameters and how they are used

mnot's Web log: Don's False Choice

It’s good that somebody with a bit of visability in the REST community called bullshit on Don Box’s false dichotomy.

REST wins, noone goes home []

The ElementTree iterparse Function (Python

Adam Curry's Daily Source Code, 355 - Shownotes

Holy crap! I’m on Adam Curry! Ok, so it’s five seconds, but holy crap!

Koranteng's Toli: The REST Elevator Pitch

Achieving And Recognizing Testable Software Designs: Part I

Sam Ruby: Common Feed Errors

Don't Let Users Confirm Via HTTP GET

Here, here. I hate it every time some site does this. It feels so wrong, and it is.

We Are Sorry to Inform You

Rejection letters for some of the most important CS papers produced.

rss-public : Message: RFC822 date support

How to Design a Good API and Why it Matters

If there’s anybody who knows good API design, it’s Joshua Bloch. When I started with C#, the thing I missed most about Java was the collections API. The one in C# feels as if they started half-implementing Bloch’s design, and then just gave up. -- Autofilled PHP Forms

Useful and Useless REST

Electric Picnic final lineup announced

Team Smells...Refactoring For A Better Tomorrow (Part One)

A Base Class for JavaScript Inheritance

And unlike every other bit of code I’ve seen that’s tried to achieve this, it doesn’t absolutely suck!

The Pronunciation of Ancient Egyptian

Dancing Links - Wikipedia, the free encyclopedia

In computer science, Dancing Links, commonly known as DLX, is the technique suggested and invented by Donald Knuth to efficiently implement his Algorithm X. Algorithm X is a recursive, nondeterministic, depth-first, brute-force algorithm that finds all solutions to the exact cover problem. Some of the better known exact cover problems include tiling, N-queens and Sudoku.

Content Negotiation

HTTP Authentication with HTML Forms


Blue Ball Machine (Classic GIF Returned)


Are Iterations Hazardous to Your Project?

No, Cockburn isn’t saying agile methods are harmful, he’s just saying that once you inject machismo into the mix, things will start to go wrong, and that Iterations + user stories + velocity != agility.

Workers of the World, Untie

We’re getting paid less and less for doing more and more, and our rights as workers to fair treatment are being slowly but surely eroded.

A New Acronym

ZDNet Executive Editor David Berlind suggests that CRAP or Content, Restriction, Annulment, and Protection, is a catchier phrase than DRM–Digital Rights Management. Why does he think this technology is crap? Once you’ve bought music or other content to play on one device, it won’t play on any other device because of the proprietary layer of CRAP. Everybody should watch this.

Styles: Beyond WS and REST

Java theory and practice: Good housekeeping practices

This is pure goodness. One bit I loved was that I didn’t know finally could be used like that. Had I known it, it would have saved me quite a bit of coding in past projects. Read it.

Coding Horror: Making Considerate Software

Barbara Bush Gift Earmarked for Son's Firm

Former first lady Barbara Bush gave relief money to a hurricane relief fund on the condition that it be spent to buy educational software from her son Neil’s company.

I cannot sufficiently express how utterly scummy this is.

World's Best Resignation Letter?