Simon Willison’s Weblog


Wednesday, 28th January 2004

Solving and creating captchas with free porn. More spammer ingenuity # 8:37 am

How I PC’d an Apple G5. The humanity! # 8:23 am

A Call for the Complete Elimination of Joke Haiku Production on the Internet (via) Where’s my other sock? / It disappeared in the wash / How did that happen? # 7:24 am

The History of the DeCSS Haiku (via) Fascinating # 6:56 am

Allowing innovation in obscure parts of specifications. Hixie remains the master of the obscure # 6:40 am

Linus Torvalds: SCO Is “Just Too Wrong” (via) “There are literally several levels of SCO being wrong. And even if we were to live in that alternate universe where SCO would be right, they’d still be wrong.” # 4:57 am

Iterating over a sequence in reverse

At work today we stumbled across a situation where we needed to display a list of items in reverse order. The decision to show them in reverse is made in the presentation layer, so altering the code that generates the list in the application logic layer would add coupling between the layers that we would rather avoid. Python’s reverse() function acts on a data structure in place, which we would rather avoid as well. Then we realised that Python’s generators could be used to create a proxy around the sequence allowing us to cycle through it in reverse without altering the sequence itself. Here’s the code:

[... 242 words]

MusicXML Definition (via) Royalty free XML sheet music standard # 3:32 am

Solving comment spam

There are two main schools of thought concerning comment spam: the optimists and the defeatists. Optimists believe that comment spam can be beaten with technology; defeatists (maybe I should call them pessimists) believe that comments are as doomed as email and we’re all going to hell in a hand basket.

[... 967 words]

2004 » January