Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

PubSubHubbub for Google Alerts. “Think of it as a search API that tells *you* when it finds new results.”

# 23rd September 2009, 9:30 pm / google, google-alerts, pubsubhubbub, search-engines, webhooks

Diesel. Yet Another Asynchronous Python Comet Library, of interest because this is the first one I’ve seen that uses Python’s generator coroutines, taking advantage of the return value of the yield statement to feed messages in to a generator function. Currently only works on Python 2.6 on Linux due to a dependency on 2.6’s epoll support.

# 23rd September 2009, 5:15 pm / async, comet, diesel, generators, python

Red Dust. Tom Coates used Flickr’s new Galleries feature (which lets you build a curated collection of up to 18 photos from other Flickr users and add your commentary) to construct a stunning compilation of photos of the Sydney dust storms.

# 23rd September 2009, 2:20 pm / duststorms, flickr, photography, sydney, tom-coates

Introducing Google Chrome Frame. Here’s what Alex Russell has been up to at Google: An IE plugin (for 6, 7 and 8 on all Windows versions) which embeds the Google Chrome rendering engine—sites can then opt-in to using it by including a X-UA-Compatible meta tag. Seems to be aimed at corporate networks which mandate IE for badly written intranet applications—they can roll this out without retraining users to use another browser or breaking their existing in house apps.

# 23rd September 2009, 9:57 am / alex-russell, chrome, chromeframe, google, internet-explorer, webkit, xuacompatible

cloud-crowd. New parallel processing worker/job queue system with a strikingly elegant architecture. The central server is an HTTP server that manages job requests, which are farmed out to a number of node HTTP servers which fork off worker processes to do the work. All communication is webhook-style JSON, and the servers are implemented in Sinatra and Thin using a tiny amount of code. The web-based monitoring interface is simply beautiful, using canvas to display graphs showing the system’s overall activity.

# 21st September 2009, 11:09 pm / canvas, cloudcrowd, http, json, message-queues, ruby, sinatra, thin, webhooks, workers

PostBin. Handy debugging tool for webhooks—create a TinyURL-style URL, then see a log of any POST requests made to that address.

# 21st September 2009, 11:03 pm / http, post, postbin, webhooks

homebrew. Exciting alternative to MacPorts for compiling software on OS X—homebrew avoids sudo and defines packages as simple Ruby scripts, shared and distributed using Git.

# 21st September 2009, 6:51 pm / git, homebrew, macos, macports, ruby

django-debug-toolbar. The new panel styling for the Django debug toolbar is really slick—here’s a neatly produced screencast demonstrating it (with Gypsy Jazz accompaniment).

# 21st September 2009, 6:36 pm / debugging, django, django-debug-toolbar, gypsyjazz, screencasts

Fabric factory. Promising looking continuous integration server written in Django, which uses Fabric scripts to define actions.

# 21st September 2009, 6:35 pm / continuous-integration, django, fabric, fabricfactory, python, testing

Welcome to Django Dose. Launched at DjangoCon, a new Django community site designed to be a successor to TWiD, still with (shorter) podcasts but also featuring more news, articles and screencasts.

# 21st September 2009, 6:21 pm / community, django, djangocon, djangodose, podcasts, screencasts, twid

Effective A/B Testing. Impressively comprehensive presentation on A/B testing, from theory to practice to statistical analysis of the results.

# 13th September 2009, 11:49 pm / ab-testing, ben-tilly, buckettesting, statistics

The Guardian 1000 Novels Everyone Must Read in FluidDB. Nicholas J. Radcliffe loaded the Guardian’s list of 1000 novels in to FluidDB, where the ability for users to add their own ratings style metadata makes it an ideal dataset for exploring the capabilities of the platform.

# 13th September 2009, 11:48 pm / fluiddb, guardian

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, gis, 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

Years

Tags