Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

Announcing Heechee. “Heechee is a transparent mercurial-as-subversion gateway”—you can use it to allow subversion clients to check out a mercurial repository, meaning svn:externals can work against projects hosted by mercurial. It’s very young code but I’ve already seen it out-perform regular subversion for checkout speed.

# 11th September 2009, 2:16 am / andrew-godwin, heechee, mercurial, subversion

Tornado Web Server (via) An extremely exciting addition to the Python web landscape, Tornado is the open sourced version of FriendFeed’s custom web stack. It’s a non-blocking (epoll) Python web server designed for handling thousands of simultaneous connections, perfect for building Comet applications. The web framework is cosmetically similar to web.py or App Engine’s webapp but has decorators for writing asynchronous request handlers. The template language uses Django-style syntax but allows you to use full Python expressions. FriendFeed have benchmarked it handling 8,000 requests a second running as four load-balanced processes on a 4 core server.

# 10th September 2009, 9:32 pm / bret-taylor, comet, django, epoll, friendfeed, google-app-engine, python, tornado, webapp, webpy

OpenStreetMap: QuadTiles. Fascinating explanation of a proposal for replacing lat, lon pairs in the OpenStreetMap database with a QuadTile-based addressing system.

# 10th September 2009, 3:54 pm / algorithms, geospatial, openstreetmap, quadtiles

RSSCloud Vs. PubSubHubbub: Why The Fat Pings Win. A PubSubHubbub advocate explains the differences between the two proposals: most importantly, PubSubHubbub includes the actual new content with the “fat ping” whereas RSSCloud just notifies you that you should poll the RSS feed, leading to a potential thundering herd. I’m still hoping one of those specs will detail a way in which they can be used for scalable regular WebHook-style notifications without any feed infrastructure at all.

# 10th September 2009, 3:49 pm / dogpile, pubsubhubbub, rsscloud, webhooks

Londiste Tutorial. Master/slave replication for PostgreSQL, developed and used by Skype.

# 9th September 2009, 11:06 pm / londiste, masterslave, postgresql, replication, skype

Why Python Pickle is Insecure. Because pickle is essentially a stack-based interpreter, so you can put os.system on the stack and use it to execute arbitrary commands.

# 9th September 2009, 11:04 pm / pickle, python, security

Looking to the future with Cassandra. Digg are now using Cassandra for their “green badge” (one of your friends have dugg this story) feature—the resulting denormalised dataset weighs in at 3 TB and 76 billion columns.

# 9th September 2009, 9:26 pm / cassandra, denormalisation, digg, nosql

Debugging Django in Production Revisited. Eric Holscher expands his show-technical-errors-to-superusers middleware to only show them to users in the group named “Technical Errors”.

# 7th September 2009, 5:21 am / debugging, django, eric-holscher, middleware, python

svnpubsub.py (via) A Twisted/Python powered comet API for pushing out Subversion commits, built for Apache Foundation projects.

# 6th September 2009, 9:50 pm / comet, python, subversion, svnpubsub, twisted

Petabytes on a budget: How to build cheap cloud storage. Explains how Backblaze can operate an unlimited backup service for five dollars a month—their custom storage hardware stores 67 terabytes for $7,867.

# 6th September 2009, 9:27 pm / backblaze, backup, storage

Automating web site deployment at Barcamp Brighton. I’m determined to start using Fabric and proper deployment scripts for my personal projects.

# 6th September 2009, 2:16 pm / barcamp, barcampbrighton, brighton, deployment, fabric, gareth-rushgrove

So’s your facet: Faceted global search for Mozilla Thunderbird. Yes! This is the kind of innovation I’ve been hoping would show up in e-mail clients for years. Faceting is a really natural fit for e-mail.

# 4th September 2009, 10:29 am / email, faceting, mozilla, search, thunderbird

Ravelry. Tim Bray interviews Casey Forbes, the single engineer behind Ravelry, the knitting community that serves 10 million Rails requests a day using just seven physical servers, MySQL, Sphinx, memcached, nginx, haproxy, passenger and Tokyo Cabinet.

# 3rd September 2009, 6:50 pm / caseyforbes, haproxy, memcached, mysql, nginx, passenger, rails, ravelry, scaling, sphinx-search, tim-bray, tokyocabinet, tokyotyrant

Chris Heathcote: loca london. Chris’s new guide to exhibitions in London is presented as an enormous (5100px wide) page with horizontal and vertical scrollbars—as Chris points out, this interface may be a bit clumsy with a mouse but it works wonderfully well on touchpads and touchscreens.

# 3rd September 2009, 6:28 pm / chris-heathcote, crawlbar, design, horizontal, london

And so it goes, around again. Charles Miller on Java, pointing out that if you don’t have closures and first-class functions you end up having to add band-aid solutions and special case syntactic sugar. Python’s lack of multi-line lambdas leads to a similar (though less pronounced) effect.

# 3rd September 2009, 9:46 am / charles-miller, closures, java, programming-languages, python

On Influenza A (H1N1). “It’s humbling that I could be killed by 3.2kbytes of genetic data. Then again, with 850 Mbytes of data in my genome, there’s bound to be an exploit or two.”

# 3rd September 2009, 9:25 am / bunnie-huang, h1n1, influenza

apache.org incident report for 8/28/2009. Various apache.org sites were down for a while last week—here the Apache Infrastructure Team provide a detailed description of what happened (a security breach on a minor server, which provided non-priveleged SSH access to mirror servers via an SSH key used for backups) and how they are responding. Useful for neophyte sysadmins like myself.

# 3rd September 2009, 8:56 am / apache, security, sysadmin

Mac OS X 10.6 Snow Leopard: the Ars Technica review. The essential review: 23 pages of information-dense but readable goodness. Pretty much everything I know about Mac OS X internals I learnt from reading John Siracusa’s reviews—this one is particularly juice when it gets to Grand Central Dispatch and blocks (aka closures) in C and Objective-C.

# 1st September 2009, 7:05 pm / apple, blocks, c, closures, grandcentraldispatch, john-siracusa, macos, objective-c, snowleopard

“MongoDB is fantastic for logging”. Sounds tempting... high performance inserts, JSON structured records and capped collections if you only want to keep the past X entries. If you care about older historic data but still want to preserve space you could run periodic jobs to roll up log entries in to summarised records. It shouldn’t be too hard to write a command-line script that hooks in to Apache’s logging directive and writes records to MongoDB.

# 26th August 2009, 7:09 pm / apache, json, logging, mongodb

Tile Drawer (via) The most inspired use of EC2 I’ve seen yet: center a map on an area, pick a Cascadenik stylesheet URL (or write and link to your own) and Tile Drawer gives you an Amazon EC2 AMI and a short JSON snippet. Launch the AMI with the JSON as the “user data” parameter and you get your own OpenStreetMap tile rendering server, which self-configures on startup and starts rendering and serving tiles using your custom design.

# 26th August 2009, 9:32 am / amazon, cascadenik, cloud-computing, ec2, json, mapnik, mapping, michal-migurski, openstreetmap, userdata

Static Maps API v2. The new version of the Google Static Maps API (static images generated using arguments in a URL, no JavaScript required) adds support for paths, areas and automatically geocoding addresses to specify locations of markers and the centre of the map.

# 26th August 2009, 9:01 am / google, google-maps, mapping, staticmapsapi

Introducing Amazon Virtual Private Cloud (VPC). Amazon now let you create a network of private EC2 instances completely isolated from the internet and the rest of the EC2 cloud, then link them back to your home network via a VPN.

# 26th August 2009, 8:42 am / amazon, ec2, virtualprivatecloud, vpn

Exploring OAuth-Protected APIs. One of the downsides of OAuth is that it makes debugging APIs in your browser much harder. Seth Fitzsimmons’ oauth-proxy solves this by running a Twisted-powered proxy on your local machine which OAuth-signs every request going through it using your consumer key, secret and tokens for that API. Using it with a browsers risks exposing your key and token (but not secret) to sites you accidentally browse to—it would be useful if you could pass a whitelist of API domains as a command line option to the proxy.

# 23rd August 2009, 11:06 am / apis, oauth, proxies, python, seth-fitzsimmons, twisted

Bokode (via) New take on the humble barcode from the MIT Media Lab—Bokodes are 3mm wide but can be read at a distance by a regular digital camera lens using out of focus photography, exploiting the bokeh effect. The way in which the Bokode is read allows both distance and relative angle to the camera to be derived, making it ideal for Augmented Reality systems.

# 23rd August 2009, 10:29 am / augmented-reality, barcodes, bokeh, bokode, mitmedialab, optics

Facebook Hacked By 4chan, Accounts Compromised. It wasn’t Facebook that got hacked: 4chan members got hold of a list of usernames and passwords from an insecure Christian dating site and started using them to raise complete hell. Yet another demonstration that storing your user’s passwords in the clear is extremely irresponsible, and also a handy reminder that regular users who “don’t have anything worth securing” actually have a great deal to lose if their password gets out.

# 23rd August 2009, 10:02 am / 4chan, facebook, identitytheft, passwords, security

svgweb. Awesome. I’ve been having a lot of fun with SVG for dynamic graphics recently (maps in particular), and hoping someone builds an SVG renderer in Flash so I could serve up SVG files for IE. Brad Neuberg and team have done exactly that.

# 22nd August 2009, 10:42 pm / brad-neuberg, flash, svg, svgweb

Years

Tags