Simon Willison’s Weblog

Subscribe

August 2008

Aug. 1, 2008

Large Hadron Collider nearly ready—The Big Picture. Stunningly beautiful set of photographs of the LHC. I love Big Science.

# 7:46 pm / thebigpicture, bigscience, lhc, cern, photos

Without a discovery process, machines must be told about resources ahead of time and will only be able to interact with resources that they already know. This is the same as only starting a conversation with people you already know, even though with little effort you should be able to talk to new people with a common language.

Eran Hammer-Lahav

# 8:17 pm / eranhammerlahav, discovery, xrds, xrdssimple

Beginner’s Guide to Discovery. Extremely approachable introduction by Eran Hammer-Lahav.

# 8:18 pm / eranhammerlahav, discovery, xrds, xrdssimple

Silicon Swings and Silicon Roundabouts. Matt Locke’s advice for anyone hoping to build a “Tech Hub” for startups, based on personal experience gained running a media centre in Yorkshire in the 90s.

# 8:20 pm / matt-locke, techhub, startups, siliconroundabout

Aug. 2, 2008

YouTube: Large Hadron Rap. The first time I saw this I thought it was incredibly dorky. By the third watch I realised I was actually learning things.

# 11:58 pm / largehadroncollider, rap, funny, physics, cern

Aug. 3, 2008

knol: content w/out context, collaboration, capital, or coruscation. danah boyd: “A system that is driven by individualism quickly becomes a tool for self-promoters”

# 3:13 pm / knol, google, danah-boyd

“THIS IS NOT MLM!!!”—An Appreciation. Merlin Mann explains his fascination with the “cash gifting” pyramid scams that keep cropping up on YouTube.

# 3:14 pm / youtube, mlm, pyramidschemes, cashgifting, merlinmann

PDFMiner. Useful looking PDF parsing library in Python—can produce an XML representation of the text and style information in a PDF document.

# 3:29 pm / pdf, python, xml, screenscraping, pdfminer

Aug. 4, 2008

simple-thrift-queue (via) Phillip Pearson’s surprisingly concise in-memory message queue written in Python using Facebook’s Thrift library (which is similar to Protocol Buffers, but was open sourced much earlier on). Handles 4,000 requests per second on a laptop.

# 12:27 pm / messaging, phillippearson, python, facebook, thrift, protocolbuffers, message-queues

Aug. 5, 2008

Facelift Image Replacement. Like sIFR but with JavaScript and a PHP text rendering component. I question the need for the JavaScript if you’re already generating the images on the server, but the actual generation script is nicely done—it makes smart use of ImageMagick and caches the generated images.

# 6:36 pm / php, imagemagick, facelift, imagereplacement, sifr, javascript, caching

There are two kinds of people who try to learn Haskell: the people who give up because they can’t figure out monads, and the people who go on to write tutorials on how to understand monads.

Seth Gordon

# 6:57 pm / monads, haskell, sethgordon

Maybe git is the monads of version control

Piers Cawley

# 10:51 pm / pierscawley, monads, git, versioncontrol

My Universal Feed Parser was conceived as a weapon against what I considered the gravest error of XML: draconian error handling. Recently, someone asked me to implement a switch that makes it not fall back on lax parsing in the case of an XML wellformedness error. I said no, not because it would be difficult to implement, but because that defeats its entire reason for being.

Mark Pilgrim

# 10:52 pm / xml, mark-pilgrim, universalfeedparser, feeds, draconian, wellformedness, python

GeoDjango Documentation. Merged to Django trunk a few hours ago. The tutorial isn’t there yet, but the rest of the docs are worth exploring.

# 11:06 pm / geodjango, documentation, django, python

Aug. 6, 2008

Why “variables” in CSS are harmful. Bert Bos thinks constants or macros in CSS will make it harder to learn. I personally think that the problem with CSS isn’t the learning curve, it’s how difficult it is to maintain later—and I see macros as a great way of reducing that maintainability burden.

# 12:13 am / css, maintainability, bertbos, cssconstants

Aug. 7, 2008

This Week in HTML 5—Episode 1. It looks like the most controversial aspect of the HTML 5 spec has been addressed - now, instead of omitting the alt attribute for user generated content that has no relevant information available, sites are advised to provide an indication of the kind of image expected surrounded by braces, for example alt="{uploaded photo}".

# 7:57 am / alt, html5, mark-pilgrim, whatwg

Aug. 8, 2008

South. A brand new light-weight Django migrations tool from Andrew Godwin. On first glance, this is spookily similar to the system we’ve been putting together at GCap.

# 11:42 am / gcap, django, andrew-godwin, migrations, south

Download size has been an issue in the past. [...] In the early days Macromedia did studies adding null kilobytes to Player downloads and measuring the dropoff rate in completed installations. The more time people have to hit that "Cancel Download" button, the more will do so.

John Dowdell

# 3:51 pm / flash, john-dowdell, macromedia, usability

End of Life for PHP 4. Apparently 8/8/8 marks the end of the line for PHP 4—no new releases, no support, not even security patches.

# 11:32 pm / php, chris-shiflett, php4

Django 1.0 alpha 2 release notes (via) The last preview release before the 1.0 beta. Big new features are GeoDjango, pluggable file storage (which went in earlier today) and Jython compatibility. The beta is scheduled for August 14th.

# 11:57 pm / django, alpha, geodjango, jython

Open Web Podcast Episode 1. I haven’t listened yet, but Alex Russell, John Resig and Dion Almaer all at once? Awesome.

# 11:59 pm / alex-russell, john-resig, dion-almaer, openweb, podcasts

Aug. 9, 2008

Facebook Security Advice: Never Ever Enter Your Passwords On Another Site, Unless We Ask You To. Nice to see TechCrunch highlighting the hypocrisy of Facebook advising their users to never enter their Facebook credentials on another site, then asking them for their webmail provider password so they can scrape their address book.

# 10:18 am / facebook, security, hypocrisy, techcrunch, passwordantipattern, passwords

Aug. 10, 2008

Changeset 8266—Added ModelAdmin.save_model() and ModelAdmin.save_formset() methods. One of those small changes that opens up enormous possibilities—it’s now incredibly easy to customise exactly how a model is saved in the Django admin interface by over-riding the save_model method.

# 1:17 pm / django, admin, python

Why I can’t put Tibet in my Hotmail address. Apparently it’s because “TIB” is name of a bank in Florida, and Microsoft are trying to prevent phishers from creating e-mail addresses that include the names of financial institutions.

# 10:41 pm / microsoft, phishing, tibet, hotmail

Aug. 11, 2008

MapIconMaker. Extension API that lets you programatically construct a Google Maps bubble marker icon with a custom size, gradient and stroke colour. Under the hood it uses the Google Chart API with the (undocumented?) “mm” chart type.

# 8:48 am / google-maps, googlechartapi, markers, mapiconmaker, javascript

Aug. 12, 2008

Exposure (iPhone app) behaves suspiciously. Exposure on the iPhone does OAuth-style authentication incorrectly—it asks the user to authenticate in an embedded, chromeless browser which provides no way of confirming that the site being interacted with is not a phishing attack. Ben Ward explains how the Pownce iPhone app gets it right in the comments. Exposure author Fraser Spiers also responds.

# 7:47 am / oauth, exposure, flickr, iphone, ben-ward, phishing, pownce, security

IMG-2-JSON (via) I’m not the only person deploying simple JSON-P APIs on App Engine: Adam Burmister’s tool extracts dimension, mimetype and EXIF metadata when provided the URL to an image file.

# 9:43 am / jsonp, appengine, img2json, adam-burmister, mimetype, exif, json, api

Reviews of the Pownce app on the iPhone app store on Flickr. I had to stitch together a screenshot because you can’t actually link to content in the App Store (unless you don’t care that people without iTunes won’t be able to follow your link). Three out of the four reviews complain about the OAuth browser authentication step, which is frustrating because Pownce have implemented it so well.

# 11:05 am / oauth, usability, pownce, iphone, security, phishing, appstore, itunes

Carphone crackdown on phone insurance scam. Story from 2005 but relevant today: I’ve been pestered by scam calls about phone insurance since buying my iPhone from Carphone Warehouse yesterday—the scammers apparently wardial against Carphone Warehouse’s assigned blocks of numbers. Caused a bit of a scene on Twitter until I figured out Carphone Warehouse weren’t actually at fault.

# 11:45 am / carphonewarehouse, scams, iphone, insurance