Skip to content

{ Author Archives }

The Humpty-Dumpty Guide to OOP

Everybody knows that the best way to sound intellectual and demonstrate the superiority of your approach to that thing you do is to wrap it in a fancy-schmancy noun term. This works particularly well with a term that can be expressed as a three-letter acronym, or TLA. In programming we have a whole raft of […]

Fuck. This. Shit.

Enough with the subtle allusions of the previous posts. What’s going on here is not right. It’s not right that I get to pass as a member of the group of people who can work in technology, while others have to justify their very presence in the field. It’s not right that “looking like me” […]

More on Layers

I was told yesterday that entity-relationship diagrams can be OK as high level descriptions of database schemata, but are not appropriate for designing a database. Enough information is missing that they are not able to model the problem. Could the same be true of layer diagrams? Perhaps they’re OK as stratospheric guides to your software, […]

The trouble with layers

In describing Inside-Out Apps I expressed my distrust of the “everything is MVC” school of design. […]when you get overly attached to MVC, then you look at every class you create and ask the question “is this a model, a view, or a controller?”. Because this question makes no sense, the answer doesn’t either: anything […]

Yes, you may delete tests

A frequently-presented objection to the concept of writing automated tests is that it ossifies the implementation of the system under test. “If I’ve got all the tests you’re proposing,” I hear, “then I won’t be able to make any changes without breaking the tests.” There are two aspects to this problem. Tests should make assertions […]

The laser physics of software

I’ve worked in a few different places where there have been high-powered lasers, the sort that would make short work of slicing through Sean Connery in a Bond movie. With high-powered lasers comes mandatory laser safety training. At least, it does in the UK. The first time you receive laser safety training it comes as […]

Full-stack

That moment where you’re looking back through your notes to see that you’ve: modelled charge carrier behaviour in semiconductors built a processor from discrete logic components patched kernels patched operating system tools written filesystems written device drivers contributed to a foundation library fixed compiler bugs performance-tuned databases built native apps built web apps tested the […]

More Excel-lent Adventures

I previously wrote about Excel as the most successful IDE: Now what makes a spreadsheet better as a development environment is difficult to say; I’m unaware of anyone having researched it. That research is indeed extant, and the story is well-told in A Small Matter of Programming. While Professor Nardi’s focus is on end-user programming, […]

What it takes to “win” a discussion

You may have been to some kind of debate club at school, or at least had a debate in a class. If so, the debate you had was probably a competitive debate, and went something along these lines (causality is not presented as its usual wibbly-wobbly self to keep the sentences short): A motion is […]

APPosite Concerns

I’ve started another book project: APPosite Concerns is in the same series as, and is somehow a sequel to, APPropriate Behaviour. So now I just have one question to ask. What is going to be in the book? This question is easy to answer in broad terms. My mental conception of who I am and […]