Simon Willison’s Weblog

Subscribe

April 2009

April 1, 2009

Dojo 1.3 now available. Looks like an excellent release. dojo.create is particularly nice—I’d be interested to know why something similar has never shipped with jQuery (presumably there’s a reason) as it feels a lot more elegant than gluing together an HTML-style string. Also interesting: you can swap between Dojo’s Acme selector engine and John Resig’s sizzle.

# 12:19 am / dojo, jquery, javascript, dojocreate, releases, acme, sizzle, selectors

How to use Django with Apache and mod_wsgi. My favourite deployment option is now included in the official Django docs, thanks to Alex Gaynor. I tend to run a stripped down Apache with mod_wsgi behind an nginx proxy, and have nginx serve static files directly. This avoids the need for a completely separate media server (although a separate media domain is still a good idea for better client-side performance).

# 12:24 am / django, python, modwsgi, wsgi, nginx, proxy, alex-gaynor, deployment

Continuous deployment in 5 easy steps. A classic case of a number in a title making the article look less interesting than it actually is. Lots of interesting information here from IMVU’s Eric Ries.

# 12:25 am / eric-ries, ivmu, continuous-deployment, testing

April 2, 2009

On the ground at the G20 protests. Roo Reynolds got trapped in the square mile.

# 8:06 am / rooreynolds, citizenjournalism, protests, g20, news

Amazon Elastic MapReduce (via) Hadoop as a service. Basically a web based GUI around Hadoop—you could roll this yourself on EC2 but for a small markup on regular EC2 prices you get to avoid the extra work setting everything up. Data processing scripts can be written in Java, Ruby, Perl, Python, PHP, R, or C++ and are loaded in to S3 before firing off the job.

# 10:25 am / cloud-computing, hadoop, amazon-web-services, amazon, mapreduce, ec2, s3

Heap Dump Analysis. Using jmap to dump the JVM’s memory to disk, then analysing it using the visualvm GUI tool.

# 10:34 am / java, jvm, profiling, heapdump, memory, visualvm, dominicmitchell

We advise startups to launch when they've added a quantum of utility: when there is at least some set of users who would be excited to hear about it, because they can now do something they couldn't do before.

Paul Graham

# 10:43 am / paul-graham, startups, utility

Google uncloaks once-secret server. Instead of a data centre wide UPS and redundant power supplies, each Google server has its own 12V battery. They live in standard shipping containers, each holding 1,160 servers.

# 10:47 am / operations, google, datacentres, power, servers, ups

Tracking UK Liberal Indecency. The mashup I’ve been waiting for: Tom Hume used the Guardian Content API to track swearword usage over time.

# 4:44 pm / tom-hume, guardian, swearing, obscenity, contentapi, mashup

April 3, 2009

UK Guardian Data + ManyEyes = ISAF Troops Contribution Story. Including a heat map showing countries that are contributing the most troops to Afghanistan.

# 2:44 pm / afghanistan, military, guardian, datastore, heatmap, manyeyes, visualisation

Automating PowerPoint with Python. Useful tutorial on using ActivePython’s win32com module to automate PowerPoint. The example code pulls in the top 50 banks by assets from the Guardian Data Store and generates a treemap using PowerPoint’s shape drawing primitives.

# 3:13 pm / powerpoint, python, activepython, treemap, guardian, datastore, visualisation

Introducing Digg’s IDDB Infrastructure. IDDB is Digg’s new infrastructure component for sharding data across multiple databases, with support for both MySQL and memcachedb. “The DiggBar and URL minifying service is powered by a 16 machine IDDB cluster, which includes 8 write masters in the index and 8 MySQL storage nodes.”

# 8:42 pm / joe-stump, databases, digg, iddb, memcachedb, mysql, scaling, sharding

TinyURL—Archiveteam. Excellent: the Internet Archive are crawling TinyURL (and hopefully other URL shortening services as well). The wiki page was created back in January. UPDATE from comments: Archiveteam are a separate organisation from the Internet Archive.

# 11:11 pm / internet-archive, archive, tinyurl, archiveteam

April 5, 2009

UK Television Series Map. Inspired by the US sitcom map, Meg Pickard is plotting TV series on a map of the UK.

# 7:25 pm / megpickard, tv, maps

Almost Perfect (via) W. E. Peterson’s book on the rise and fall of WordPerfect Corporation, originally published in 1994 and now available for free online.

# 7:30 pm / wordperfect, history, wepeterson, books

Mending The Bitter Absence of Reasoned Technical Discussion. Not at all surprised to see Alex Payne write this considering the low quality of discussion around anything technical to do with Twitter.

# 7:59 pm / twitter, alex-payne, etiquette

Ext Core 3.0 Beta Released. The Ext JavaScript team have just released the core library (similar to jQuery or Prototype) under an MIT license. The rich GUI elements that go on top are still under the GPL.

# 8:17 pm / mit, extjs, javascript, extcore, gpl, licensing, open-source

April 6, 2009

Twitter: blaming Ruby for their mistakes? The comments on the entry include replies from Twitter employees and the RabbitMQ consultant they brought in, and provide a full rebuttal to the various accusations of NIH that were thrown around recently.

# 11:06 am / twitter, nih, rabbitmq, ruby

Making the HTML5 time element safe for historians. PPK presents a detailed history of dates and calendars and points out that the HTML5 time element is ill prepared to faithfully represent the kind of dates historians are interested in.

# 2:01 pm / ppk, html5, time, datetime, dates, calendars, history, historians, standards

cufon. A promising alternative to sIFR, cufon uses VML on IE and canvas on other browsers to render custom fonts in the browser. You have to convert your font to JavaScript first, either using their free hosted tool or by installing the FontForge based server-side script yourself. The JavaScript encoded font file uses VML primitives to improve IE performance; the JavaScript library converts that to canvas calls for other, faster browsers.

# 10:29 pm / cufon, browsers, fonts, vml, ie, fontforge, sifr, typography, canvas, javascript

April 7, 2009

Rabbits and warrens. Handy tutorial introduction to using RabbitMQ and AMQP with Python.

# 9:13 am / message-queues, queues, rabbitmq, amqp, python, tutorial

Building sites around social objects. Jyri Engeström’s concept of “social objects” is a genuinely useful new way to talk about social web sites.

# 9:16 am / socialobjects, jyriengestrom

Finding similar items with Amazon Elastic MapReduce, Python, and Hadoop streaming. Tutorial for running Hadoop jobs on Elastic MapReduce using Python and the 2005 Audioscrobbler dataset.

# 9:19 am / audioscrobbler, amazon, amazon-web-services, hadoop, mapreduce, elasticmapreduce, python

April 8, 2009

Sphinx 0.9.9-rc2 is out. Interesting new feature: the Sphinx search server now supports the MySQL binary protocol, so you can talk to it using a regular MySQL client library and fire off search queries using SELECT syntax and the new SphinxQL query language.

# 1:59 pm / sphinx-search, mysql, sql, search, fulltext

App Engine: Scheduled Tasks With Cron. Cron tasks simply hit a URL on your application, and can be run as frequently as once a minute. They made up their own syntax, which much nicer than traditional unix cron.

# 2:04 pm / cron, appengine, google, googleappengine

Dynamic languages on Google App Engine—an overview. Ola Bini’s notes on exploring the new Java support for App Engine with the aim of getting JVM dynamic languages such as JRuby running. Restrictions include a complete lack of threads (which will make it hard to get Scala up and running), but JRuby trunk now works without modification.

# 2:08 pm / olabini, appengine, java, jruby, jvm, google

April 9, 2009

#DataJourn part 1: a new conversation. Journalism.co.uk report on the first instance of a Guardian story that was driven by an external developer’s work with data originally released on our Datablog.

# 10:57 am / openplatform, guardian, datablog, datastore, journalism

April 10, 2009

Protovis. JavaScript graphing library based on canvas, with an elegant chaining style API.

# 8:43 am / protovis, visualisation, graphs, canvas, javascript

Browsing my browsing. Roo Reynolds used the MeeTimer Firefox extension to gather statistics on his browsing habits, then extracted data directly from the SQLite database and generated his own graphs using PHP and the canvas element.

# 8:48 am / canvas, javascript, rooreynolds, sqlite, php, meetimer, firefox

Scaling Django web apps on Apache. Cool to see this kind of article cropping up on IBM developerWorks, but it’s a shame they don’t mention mod_wsgi.

# 9:23 am / modwsgi, python, django, ibm, apache

2009 » April

MTWTFSS
  12345
6789101112
13141516171819
20212223242526
27282930