Skip to content

{ Author Archives }

It depends? It depends.

Sometimes you ask a question which has a small collection of actionable answers: yes or no. You ask someone who should be able to give that yes or no answer, and they go for the third: it depends. Maybe they can’t actually answer your question, but want to sound profound. Maybe they don’t realise that […]

GNU Terry Pratchett

(post-hoc prescript: I admit to being in two minds about sharing this post. Name-dropping can be the ultimate in reflected vanity: I have worth because I knew this worthy person. I title it about them, but we both know it’s about me. I hope this post, containing much as it does about me and my […]

Linus’s Bystanders

For some reason, when Eric S. Raymond wanted to make a point about the “bazaar” model of open source software development, he named it after someone else. Thus we have Linus’s Law: Linus was directly aiming to maximize the number of person-hours thrown at debugging and development, even at the possible cost of instability in […]

Inspired by Swift

Gulliver meets the Oopers Lemuel Gulliver’s world was black. No light, no sound, infinite darkness and solitude. Am I dead?, he asked himself. No, surely not. He opened his eyes. Still, everything remained black. My God, I am dead! Lemuel Gulliver began to panic. Then, slowly, he realised that panicking itself meant life: My heart […]

Fun and games (with rewritten rules) in Objective-C

An object-oriented programming environment is not a set of rules. Programs do not need to be constructed according to the rules supplied by the environment. An object-oriented environment includes tools for constructing new rules, and programs can use these to good effect. Let’s build multiple method inheritance for Objective-C, to see a new set of […]

Objective-Curry

Sadly it’s not called Schoenfinkeling, but that’s the name of the person who noticed that there’s no reason to ever have a function with more than one argument. What you think is a function with two arguments is actually a function with one argument that returns a function with one argument, this second function closing […]

A subtle [mis]understanding of monads

As I said when talking about Learning Phases, one of the things that happens when I’m trying to learn a new thing is that I build an analogy in terms of something I do understand. This can be dangerous when the analogy is wrong. I’m currently hanging on to the analogy that follows, so I’m […]

It’s the little things

Today I learned that I don’t even know how to Unix. I discovered that it’s possible for a POSIX system to leave PATH_MAX and similar variables undefined if it truly has no restrictions on their length.

Dark Silicon

About 10 years ago, we decided that the performance gains in single-core processors that come “for free” with advancing semiconductor processes were slowing down. Many chip makers switched to scaling the number of cores on a die, and promoted parallel programming for their products. Today I learned that the free multicore lunch is over, too. […]

Like Java, only functional

An idea that clarified itself to me in discussion today is that Swift is to Functional Programming as Java is to Object-Oriented Programming: it is the thing that lets you write C and pretend you’ve adopted some posh-sounding “paradigmatic” non-imperative approach to programming. I thought this was true shortly before lunch, but now climb partway […]