Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

Cryptographic Right Answers. Best practise recommendations for cryptography: “While some people argue that you should never use cryptographic primitives directly and that trying to teach people cryptography just makes them more likely to shoot themselves in their proverbial feet, I come from a proud academic background and am sufficiently optimistic about humankind that I think it’s a good idea to spread some knowledge around.”

# 11th June 2009, 10:16 pm / aes, colinpercival, cryptography, hashing, security

Exactly how well did the BNP do where you live? Guardian journalists spent a day and a half calling round different local authorities to get a proper breakdown of the European election results (which are only officially published in aggregate) and published the results as a spreadsheet on the Datablog.

# 11th June 2009, 11:37 am / bnp, datablog, datastore, elections, guardian

Exclusive: The Future of Facebook Usernames. I have to admit I was planning to just let Facebook get on with it, assuming that the OpenID provider part would show up of its own accord—but maybe I should write a thoughtful and persuasive essay about it after all.

# 11th June 2009, 9:46 am / anil-dash, facebook, funny, openid, urls

Styling buttons to look like links. Nat has a neat trick for styling submit buttons to look like regular links—so there’s absolutely no excuse for using a “delete” link when you should be using a POST request.

# 10th June 2009, 2:11 am / buttons, css, forms, getpost, http, links, natalie-downe, post

Augmenting photos—with OSM! “You climbed up a mountain and took a photo ... but it’s 2009! Why doesn’t it have all kind of magic over the top of it.”—Marmota matches your landscape photos to height field data, then overlays data from OpenStreetMap mapped to the contours of the photograph.

# 9th June 2009, 11:34 am / gps, magic, marmota, openstreetmap, photography, steve-coast

The Twitpocalypse is Near: Will Your Twitter Client Survive? Twitter tweet IDs will shortly tick over past the maximum signed 32 bit integer, potentially breaking applications. I learnt this lesson when the same thing happened to Flickr photo IDs: never store numeric IDs from external systems as integers, always use strings.

# 9th June 2009, 10:52 am / apis, flickr, ids, maxint, twitter

The Straight Choice | The election leaflet project. Nice crowdsourcing app by Richard Pope, Francis Irving and Julian Todd—UK political leaflets are hard to keep tabs on due to the way they are distributed over small geographical areas, so this site encourages you to take photos of leaflets delivered to your home and tag them with postcode, party and key topics.

# 8th June 2009, 4:23 pm / crowdsourcing, francis-irving, julian-todd, politics, richard-pope, thestraightchoice, ukpolitics

Installing Django, Solr, Varnish and Supervisord with Buildout. Useful, detailed instructions... but I still think this stuff is Way Too Difficult at the moment. I’m a big fan of the idea of sites that are assembled from multiple smaller web services talking HTTP to each other, but ensuring all the moving parts stay running is massively more painful than just running Apache and MySQL.

# 7th June 2009, 1:54 pm / apache, bertrand-mathieu, buildout, django, mysql, operations, python, rest, solr, supervisord, sysadmin, varnish

walking papers lives. Round trip mapping: print out a map from OpenStreetMap, walk around annotating it with a pen, then scan the result back in (a QR code ensures the area and orientation is recognised) . Specifically targeted at eye-level stuff which can’t be collected using GPS or aerial imagery alone. When I grow up, I want to be Mike Migurski.

# 7th June 2009, 1:47 pm / mapping, michal-migurski, openstreetmap, papernet, walkingpapers

Daniel’s Daily Monster (via) Jon Hicks: “Every week day I draw a little monster card to go in my son’s lunchbox.” Geek dads rock.

# 7th June 2009, 1:30 pm / geekdads, jon-hicks, monsters

MongoDB—Capped Collections. Collections with a size limit that automatically expire older entries are interesting—useful for things like a “recent searches on this site” feature.

# 7th June 2009, 12:50 pm / cappedcollections, mongodb, search

Mapstraction API Sandbox. Andrew Turner’s new tool for exploring the Mapstraction JavaScript library, which provides a unified code interface to 12 different mapping services

# 7th June 2009, 11:41 am / andrew-turner, javascript, mapping, mapstraction

TOSBack | The Terms-Of-Service Tracker. Fantastic idea (and implementation) from the EFF—a site that currently tracks 44 website policy documents and highlights changes to them using a diff engine (from Drupal). A global RSS feed is available—it would be useful if individual feeds for different sites and organisations were also provided.

# 7th June 2009, 10:49 am / diff, drupal, eff, privacy, tosback

Knockbrex Castle. I’m off to a Scottish castle with 11 fellow geeks for /dev/fort—offline for six days, back next Saturday.

# 30th May 2009, 10:51 am / castle, devfort, holiday, knockbrex, offline, scotland, sedf

Perl 6: The MAIN sub (via) "Calling subs and running a typical Unix program from the command line is visually very similar: you can have positional, optional and named arguments." - that's exactly what I was thinking when I came up with optfunc.

# 28th May 2009, 9:32 pm / cli, optfunc, perl, perl6, python, unix

PostgreSQL Development Priorities. The top two for 8.4 are “Simple built-in replication” and “Upgrade-in-place”, Josh Berkus is seeking feedback on priorities for future work on 8.5.

# 28th May 2009, 8:08 pm / databases, josh-berkus, open-source, postgresql, replication

optfunc. Command line parsing libraries in Python such as optparse frustrate me because I can never remember how to use them without consulting the manual. optfunc is a new experimental interface to optparse which works by introspecting a function definition (including its arguments and their default values) and using that to construct a command line argument parser. Feedback and suggestions welcome!

# 28th May 2009, 7:38 pm / cli, github, introspection, optfunc, optparse, projects, python

TiddlyPocketBook. Paul Downey took Nat’s dinky pocketbooks CSS and combined it with TiddlyWiki to create a single page pocketbook editor.

# 28th May 2009, 1:24 am / css, javascript, natalie-downe, paul-downey, pocketbook, tiddlywiki

Announcing Google Maps API v3. Sounds like a complete rewrite, with performance as the key goal. Only a developer preview at the moment, but my favourite feature is that API keys are no longer required.

# 28th May 2009, 1:22 am / api-keys, google, google-maps, googlemaps3, mapping

Changes in Opera’s user agent string format (via) How depressing... Opera 10 will ship with 9.80 in the User-Agent string because badly written browser sniffing scripts can’t cope with double digits.

# 28th May 2009, 1:16 am / browsers, browsersniffing, opera, user-agents

Dice-O-Matic hopper and elevator. An outstanding piece of applied geekery, now generating dice rolls for GamesByEmail.com. “It is a 7 foot tall, 104 pound, dice-eating monster, capable of generating 1.3 million rolls a day.”

# 27th May 2009, 7:32 pm / dice, gamesbyemail, random, randomness

You ask, they answer: Neal’s Yard Remedies. After reading the comments, something tells me Neal’s Yard Remedies may be regretting their decision to answer questions from Guardian readers.

# 27th May 2009, 10:35 am / guardian, homeopathy

geocoders. A fifteen minute project extracted from something else I’m working on—an ultra simple Python API for geocoding a single string against Google, Yahoo! Placemaker, GeoNames and (thanks to Jacob) Yahoo! Geo’s web services.

# 27th May 2009, 10:02 am / geocoders, geocoding, geonames, github, google, jacob-kaplan-moss, placemaker, projects, python, web-services, yahoo

Testing Django Views for Concurrency Issues. Neat decorator for executing a Django view under high concurrency in your unit tests, to help spot errors caused by database race conditions that should be executed inside a transaction.

# 27th May 2009, 10:01 am / concurrency, django, python, raceconditions, testing, threads

The Web vs. the Fallacies. Tim Bray on how the architecture of the Web helps developers handle the Fallacies of Distributed Computing.

# 25th May 2009, 11:49 pm / fallacies, tim-bray, web

uuidd.py. Neat implementation of an ID server from Mike Malone—it serves up incrementing integers over a socket (using Python’s asyncore for fast IO) and records state to a file only after every 10,000 IDs served, so most of the time it’s not reading or writing to disk at all. If the server crashes it doesn’t matter because it can start up again at an integer it’s sure hasn’t been used before.

# 25th May 2009, 9:34 pm / asyncore, idserver, mike-malone, python, scaling, uuid

On the Anonymity of Home/Work Location Pairs. Most people can be uniquely identified by the rough location of their home combined with the rough location of their work. US Census data shows that 5% of people can be uniquely identified by this combination even at just census tract level (1,500 people).

# 24th May 2009, 1:14 pm / bruce-schneier, census, location, privacy

JS-Placemaker—geolocate texts in JavaScript. Chris Heilmann exposed Placemaker to JavaScript (JSONP) using a YQL execute table. Try his examples—I’m impressed that “My name is Jack London, I live in Ontario” returns just Ontario, demonstrating that Placemaker’s NLP is pretty well tuned.

# 23rd May 2009, 12:36 am / christian-heilmann, geocoding, geospatial, javascript, jsonp, nlp, placemaker, yahoo, yql, yqlexecute

Introducing Yardbird. I absolutely love it—an IRC bot built on top of Twisted that passes incoming messages off to Django code running in a separate thread. Requests and Response objects are used to represent incoming and outgoing messages, and Django’s regex-based URL routing is used to dispatch messages to different handling functions based on their content.

# 22nd May 2009, 11:13 pm / django, irc, regular-expressions, threads, twisted, yardbird

Muck Rack: Links posted by Guardian Journalists on Twitter. I’m rather impressed by the Sawhorse Media collection of Twitter aggregation sites (Muck Rack aggregates journalists)—a simple idea very well executed. Here’s a nice example—this page shows links posted to Twitter by known Guardian journalists, but goes a step further and scrapes in the favicon, the real title of the page and resolves the domain from any shortened links.

# 22nd May 2009, 10:02 pm / aggregation, favicons, guardian, journalists, mashups, muckrack, sawhorsemedia, twitter

Years

Tags