Why isn’t browser based programming or browser based IDEs more popular?

My Quora answer : Basically because most programmers use a bunch of other tools that are local, on their hard disk. These include compilers, libraries, source control, unit-testing frameworks, CI/CD pipelines etc. etc. And browsers, because of their security model, are really bad at talking to the local disk. So, if you want to use […]

Backlinks in Cardigan Bay

People seem to be very excited about Roam Research at the moment. I’m sure it has many qualities (including a decent mobile client). But I’m slightly surprised to realize that one thing that fans seem to find very useful (and almost miraculous) is the automatic back-linking. Ie, the ability to see what pages link to […]

Android : Extended SurfaceView's onDraw() method never called

This has just resolved something I’ve been beating my head against the wall over for the last several days. Source: android – Extended SurfaceView’s onDraw() method never called – Stack Overflow WHY? Android? Why are you so convoluted and perverse? So … yeah … subclass the SurfaceView class … and you’d expect to be able […]

Mind Traffic Control : Site Going Down

I’m going to close down the Mind Traffic Control site on Google App Engine. The online app has been dead for some time. While I’m very happy with my command-line version which I’m using every day. The only reason the site is still up on GAE is for any old users to export their data. […]

Welcome to Cardigan Bay

Cardigan Bay is my new wiki-engine written in Clojure / ClojureScript. I’ve been working on it for about three months, and it’s a long way from finished, but now interesting enough for people to start playing with (and hopefully giving me some feedback on). The goal is for this to be the new engine behind […]


I’m late to this party. But I’m starting to look into GraphQL and realize that it’s very much speaking to many of the things I’ve been thinking about recently. A nice clean schema-first declaration of data that you care about and want to interact with. The schema representation isn’t quite as elegant as I’d ideally […]

Travel Report

So as noted previously, I went travelling without a notebook, but with a Xaomi tablet, a portable keyboard, and a copy of UserLand Linux. How did that go? Surprisingly well. Actually I ended up using another keyboard, a cheap “cover” with keyboard built in, no Bluetooth but micro-USB. And I had to get an adaptor […]

CLOjure SHell

I’ve been playing with CloSH, the Clojure Shell. And I have to say, I’m sold. If you’d like to have the full power of Clojure. And to write shell scripts that look like this : (doseq [f (expand "*jpg")     (println f)     (sh identify -format "%wx%h" (str f))     (println)) rather […]