Simon Willison’s Weblog

Subscribe

May 2010

May 4, 2010

Originally, however, speech recognition was going to lead to artificial intelligence. Computing pioneer Alan Turing suggested in 1950 that we “provide the machine with the best sense organs that money can buy, and then teach it to understand and speak English.” Over half a century later, artificial intelligence has become prerequisite to understanding speech. We have neither the chicken nor the egg.

Robert Fortner

# 12:35 pm / ai, alan-turing, robert-fortner, speechrecognition, recovered

Pure CSS3 Spiderman Cartoon w/ jQuery and HTML5. Great demo, though calling -webkit-animation HTML5 (or even CSS3) is a bit of a stretch...

# 7:27 pm / animation, css, css3, html5, javascript, jquery, webkitanimation, recovered

May 5, 2010

The crisis Flash now faces is that Apple has made it clear that Flash will no longer be ubiquitous, as it won’t exist on the iPhone platform, thus turning “runs everywhere” into “runs almost everywhere.” As Web developers know, “runs almost everywhere” is a recipe for doing everything at least twice.

Rafe Colburn

# 12:10 pm / adobe, apple, flash, ipad, iphone, iphoneos, rafecolburn, recovered

PostgreSQL 9.0 Beta 1 Now Available. With asynchronous streaming replication.

# 2:36 pm / databases, postgresql, replication, recovered

Color Survey Results. XKCD asked anonymous netizens to provide names for random colours. The results (collated from 222,500 user sessions that named over 5 million colours) are fascinating.

# 3:59 pm / colours, crowdsourcing, science, xkcd, recovered

A fast, fuzzy, full-text index using Redis. Interesting twist on building a reverse-index using Redis sets: this one indexes only the metaphones of the words, resulting in a phonetic fuzzy search.

# 5:51 pm / fulltextindex, fuzzy, metaphone, redis, search, recovered

May 6, 2010

premasagar’s sandie. “Sandie is a simple method for loading external JavaScript files into a page without affecting the global scope, to avoid collisions between conflicting scripts”—works by loading the script in an invisible iframe (hence a new global scope) and then passing a reference to a callback function in the parent page.

# 8:37 pm / javascript, premasagar-rose, sandie, recovered, iframes, sandboxing

Want to know if your ‘HTML application’ is part of the web? Link me into it. Not just link me to it; link me into it. Not just to the black-box frontpage. Link me to a piece of content. Show me that it can be crawled, show me that we can draw strands of silk between the resources presented in your app. That is the web: The beautiful interconnection of navigable content

Ben Ward

# 8:53 pm / ben-ward, html, links, web, webapps, recovered

Realtime Election Tweets. Jay Caines-Gooby’s realtime election tweet service, using Node.js, nginx and WebSocket with a Flash fallback.

# 9:20 pm / comet, election, flash, javascript, jay-caines-gooby, node, realtime, twitter, recovered, websockets

May 7, 2010

Scribd in HTML5. Outstanding piece of engineering work from Scribd—they can now render documents using HTML, webfonts and a ton of CSS absolute positioning (using ems rather than pixels) instead of Flash. Nothing to do with HTML5 of course, which is rapidly replacing Ajax as the most mis-applied terminology on the Web. That nit-pick feels pretty insignificant compared to their overall achievement though—being able to convert any formatted document (.doc, pdf etc) in to HTML and CSS that displays correctly is a real leap forward.

# 12:09 pm / css, css3, html, html5, scribd, webfonts, recovered

Paper 5 | Scribd (via) A more impressive example of Scribd’s new HTML/CSS document viewer: a mathematics-heavy LaTeX paper by one of Scribd’s engineers.

# 12:12 pm / css, html, html5, latex, scribd, recovered

Installing GeoDjango Dependencies with Homebrew. brew update && brew install postgis && brew install gdal

# 2:40 pm / django, geodjango, homebrew, osx, postgis, postgresql, recovered

May 9, 2010

The Evolution of Privacy on Facebook. Brilliant infographic showing exactly how the visibility of different aspects of your Facebook profile has changed in increments since 2005. Also a nice example of Processing.js in action.

# 11:53 am / facebook, infographics, privacy, processing, processingjs, recovered

May 10, 2010

Live blogging the general election. The Guardian’s ongoing live blogs covering the UK election have been the best way of following events that I’ve seen (yes, better than Twitter). Live-blog author Andrew Sparrow explains his approach.

# 4:27 pm / andrew-sparrow, blogging, election, guardian, journalism, liveblogging, recovered

If journalism is the first draft of history, live blogging is the first draft of journalism.

Andrew Sparrow

# 4:28 pm / andrew-sparrow, blogging, journalism, liveblogging, recovered

May 12, 2010

Gonville: a font of musical symbols, compatible with GNU Lilypond. By Simon Tatham. I thoroughly recommend taking a look at the source code—it’s written in Python, contains detailed comments and defines every musical symbol using co-ordinates and trigonometry.

# 8:51 am / gonville, lilypond, music, simon-tatham, recovered

Music Notation with HTML5 Canvas. A pretty decent effort at rendering musical notation using JavaScript and the canvas element.

# 8:53 am / canvas, javascript, music, recovered

Firefox 4: the HTML5 parser—inline SVG, speed and more. A complete replacement for the oldest part of Gecko (the HTML parser dates back to 1998) headed up by HTML5 validator author Henri Sivonen, using the parsing algorithm defined in the HTML5 specification. Improvements include parsing taking place off the main UI thread and the ability to embed SVG and MathML directly inline in HTML pages.

# 8:56 am / firefox4, gecko, henrisivonen, html5, mathml, parser, svg, recovered

Music: The Geeking. More on Simon Tatham’s Gonville music font. He concluded that “Bézier curves are not a good tool for font design”, and instead switched to using curves based on involutes of circles with his own custom curve design tool.

# 12:43 pm / bezier, curves, gonville, lilypond, music, simon-tatham, recovered

May 14, 2010

The answers to your Security Questions are case sensitive and cannot contain special characters like an apostrophe, or the words “insert,” “delete,” “drop,” “update,” “null,” or “select.”

Sacramento Credit Union

# 12:40 am / funny, security, sql, recovered

May 15, 2010

plasticbag.org: My last day at Yahoo! Tom Coates on four years at Yahoo!

# 10:14 am / fireeagle, tom-coates, yahoo, recovered

ElasticSearch memcached module. Fascinating idea: the ElasticSearch search server provides an optional memcached protocol plugin for added performance which maps simple HTTP to memcached. GET is mapped to memcached get commands, POST is mapped to set commands. This means you can use any memcached client to communicate with the search server.

# 10:17 am / elasticsearch, http, memcached, protocol, recovered

May 17, 2010

Django 1.2 release notes (via) Released today, this is a terrific upgrade. Multiple database connections, model validation, improved CSRF protection, a messages framework, the new smart if template tag and lots, lots more. I’ve been using the 1.2 betas for a major new project over the past few months and it’s been smooth sailing all the way.

# 9:11 pm / csrf, django, multidb, open-source, python, releases, recovered

May 18, 2010

With Flickr you can get out, via the API, every single piece of information you put into the system. [...] Asking people to accept anything else is sharecropping. It’s a bad deal. Flickr helped pioneer “Web 2.0″, and personal data ownership is a key piece of that vision. Just because the wider public hasn’t caught on yet to all the nuances around data access, data privacy, data ownership, and data fidelity, doesn’t mean you shouldn’t be embarrassed to be failing to deliver a quality product.

Kellan Elliott-McCrea

# 6:21 pm / data, flickr, kellan-elliott-mccrea, sharecropping, web20, recovered

reddit’s May 2010 “State of the Servers” report. An interesting Cassandra war story: Cassandra scales up, but it doesn’t scale down very well: running with just three nodes can make recovery from problems a lot more tricky.

# 6:37 pm / cassandra, nosql, reddit, recovered

Understanding node.js. A king providing orders to his army of servants is a much better analogy than my hyperactive squid.

# 6:44 pm / async, eventio, io, javascript, node, recovered

jed’s fab. Spectacular web framework for Node.js which, despite using nothing but regular JavaScript, has syntax that is easily confused with Lisp. General consensus at work is that truly understanding how this works is a crucial step on the path to JavaScript enlightenment.

# 6:50 pm / fab, functional, javascript, lisp, node, recovered

May 20, 2010

Google Font Directory: Font Preview. Handy tool for trying out the 18 open source fonts Google have released, along with server-side browser sniffing technology that serves up the correct version (including for IE6). The browser sniffing makes me a bit uncomfortable—will it play well with intermediate caches? What happens if I save a local copy of a page and then open it up in a different browser?

# 3:20 pm / fonts, google, sniffing, webfonts, recovered

Doing things with Ordnance Survey OpenData. Jo Walsh’s guide to processing Ordnance Survey OpenData using PostgreSQL and PostGIS.

# 3:22 pm / jo-walsh, mapping, opendata, ordnancesurvey, postgis, postgresql, recovered

2010 » May

MTWTFSS
     12
3456789
10111213141516
17181920212223
24252627282930
31