Category Archives: Default

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 [...]

Posted in Default | Tagged , , , | 1 Comment

Not solving the wrong problem

I like a great deal of what Google does for the open web. They sponsor standards work, they are working on an open source browser, they are building documentation on the state of the web for web developers. It’s all really great. Today they posted what they called A Proposal For Making AJAX Crawlable. It [...]

Posted in Default | Tagged , , , | Leave a comment

An fnmatch implementation using finite state machines and LLVM

For my amusement (and I guess education) I decided to implement a regular expression language on top of LLVM using a Ken Thompson style finite state machine algorithm. Instead of implementing classic POSIX regular expressions I chose to implement something closer to POSIX fnmatch expressions for a couple of reasons. The fnmatch language is simpler [...]

Posted in Default | Tagged , , , , | Leave a comment

Python generator fun

I know Python’s iterators and generators aren’t that new anymore, but at heart I’m still a Python 1.5 programmer. I’ve come to iterators and generators in Python from my experience in JavaScript.
This morning I wanted to generate a list of names (for nodes in my NFA/DFA pattern matching code) that looked like: A, B, C, [...]

Posted in Default | Tagged | 1 Comment

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 [...]

Posted in Default | Tagged , , | 1 Comment

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 [...]

Posted in Default | Tagged , | 6 Comments

Restarting an AIR application

For reasons too complicated and secret to go into here I’m writing an Adobe AIR application that needs to restart itself occasionally. I didn’t find any clear documents describing how to do this but after some reverse engineering and experimentation, here’s what I came up with.
The air.swf movie that’s used by web pages to install [...]

Posted in Default | Tagged , | Leave a comment

Mozilla and WebKit, browser platform wars.

This post began as a comment on Matthew Gertner’s blog post The Browser Platform Wars. It’s a rant not an article, don’t take it personally.

In my experience (8 years building Mozilla based products and playing with WebKit since it was first released as WebCore in 2003) there are a few clear technical and social differences [...]

Posted in Default | Tagged , , , , , , | 8 Comments

Three Months of ActionScript

I’ve been working largely in ActionScript 3 for the past three months. After spending four years working primarily in JavaScript I didn’t expect to encounter too many problems with her cousin. That expectation was pretty well borne out.
I was particularly excited at the chance to play with ActionScript’s optional strict typing since that has been [...]

Posted in Default | Tagged , , , , | Leave a comment

A Different Model For Web Services Authorization

In my last post I set out to describe how easy it is to extract private keys from desktop software. As I was concluding I stumbled on an alternative approach that might be more secure in some circumstances. I didn’t really go into details, so here’s an expansion of the idea.
Current API authentication mechanisms including [...]

Posted in Default | Tagged , , , | 8 Comments