Give me convenience

I used to track WordPress updates, plugin updates and my own manual site changes using git. I wrote a whole post about it. Either fortunately or unfortunately WordPress launched their update framework which is so much easier than what I was doing. I’ve given up on my old technique and moved to using WordPress’ update …

jQuery selector escaping

jQuery selectors are powerful and simple to use, until you have attribute values (including ids and classes) that have funny characters. I wrote a plugin adds a simple function $.escape that will escape any special characters. For example if I have a string s that contains an id but I’m not sure that all of …

A brighter future for mobile applications?

Since the Chrome OS announcement the other day I’ve been thinking more about what a world with rich enough web APIs to support all general purpose applications might look like. I’m not sure that it’ll happen, but it sounds like Google is putting their weight behind it and they’ve been successful in the past at …

Google Chrome OS

If I was building an OS today I’d be building what Google just announced. Like most heavy technology users I’ve been moving heavily toward hosted web applications over the past few years. I don’t use Evolution or mutt anymore, I use GMail. I don’t organize my photos on my laptop and use my own hosted …

Social media in the Sahara desert

My wife and I just finished a week long camel trek in eastern Morocco with Berber nomads. While our hosts had no formal education, no running water, no grid electricity (just a little solar), no flush toilets and no floors in their homes, no land lines and no computers they did have mobile phones. Pretty much everyone seemed …

Implementing text pattern matching languages in LLVM

We use pattern matching languages all day long. From shell filename matching rules (fnmatch) in our shells and shell utilities like find and locate to regular expression matching in programming languages, configuration files and shell utilities like grep and sed. These have typically been implemented by parsing the pattern into data structures and walking those …

Understanding the OAuth vulnerability

Last night’s OAuth Security Advisory 2009.1 was a little light on the details. The blog post wasn’t much better. I was peripherally involved in the OAuth spec development and I couldn’t work out what the advisory meant without a bunch of thinking and spec reading so I thought I’d try to explain it in simpler …