Simon Willison’s Weblog

Subscribe

December 2008

Dec. 13, 2008

YQL—converting the web to JSON with mock SQL. YQL just got a whole lot more interesting to me—I had no idea they were exposing an HTML and RSS scraping tool over a JSONP API in addition to all of the Yahoo! web service methods.

# 9:39 am / yql, scraping, json, yahoo, html, screenscraping, jsonp, sql

Yahoo! Query Language Console. Neat developer tool for playing around with YQL.

# 9:39 am / yql, console, yahoo

ETags And Modification Times In Django. Part of Malcolm’s series of tutorials on implementing advanced HTTP concepts in Django.

# 9:49 am / http, django, malcolmtredinnick, etags, caching

Scaling memcached at Facebook. Fascinating techie details on how Facebook forked memcache to use UDP and increase performance from 50,000 requests a second to 200,000. Now running on 800 servers with 28 TB of memory, and their code is on GitHub. (They may scale like crazy, but they can’t put their blog entry title in the title element?)

# 10:08 am / scaling, memcached, facebook, udp

ZooBorns. Best blog idea ever: news and photos of baby animals born in zoos around the world. Nicely categorised as well.

# 10:18 pm / animals, cute, blogs, babyanimals, zoos, zooborns

There. Is. No. Long-Term. Data. Storage. Solution. There is only a series of short-term solutions punctuated by data migration from one medium to the next.

Mark Pilgrim

# 11:36 pm / mark-pilgrim, backups

Dec. 14, 2008

Showers and UI design. UI issues aside, why is it so hard to build a shower where the settings for freezing cold and scaldingly hot are more than a couple of millimeters apart?

# 8:21 am / ui, usability, showers, matthew-garrett

On packaging. James Bennett discusses the problems with setuptools (and ruby gems), and recommends Ian Bicking’s pip as a setuptools replacement.

# 4:57 pm / python, setuptools, pip, ian-bicking, james-bennett, ruby, gems

How Tarsnap uses Amazon Web Services (via) Useful case study, including some thoughts on SimpleDB.

# 7:35 pm / simpledb, tarsnap, amazon-web-services, aws, s3, ec2, cloud-computing

Dec. 15, 2008

How to install lxml python module on mac os 10.5 (leopard). Instructions that work! Finally, I can find out what all the fuss is about.

# 12:05 am / lxml, python, osx, leopard, xml, libxml2

Now You Can Sign Into Friend Connect Sites With Your Twitter ID. Great. Now even Google is asking me for my Twitter password. Slow clap. How’s that Twitter OAuth beta coming along?

# 5:20 pm / google, twitter, passwordantipattern, security, oauth

husk.org. a flickr machine tag browser (via) Flickr recently added API methods for exploring the machine tags used by the community. Paul Mison has built a neat OS X Finder style interface for exploring them, using JSONP and jQuery.

# 11:24 pm / json, jsonp, jquery, javascript, flickr, machinetags, paul-mison

Dec. 16, 2008

Adobe: Akamai Download Manager FAQ. Tip for Adobe: if the bizarre, buggy custom Java applet you force people to use to download your software requires an FAQ this long, maybe you should provide a “just do it the way everyone else does” option.

# 10:13 am / adobe, usability, akamai

Yahoo! yesterday launched their new development platform for My Yahoo! and Yahoo! Mail, which uses Caja to protect users from malicious gadgets. This means Caja suddenly got 275,000,000 users. Wow! I guess this makes Caja the most widely used capability language ever.

Ben Laurie

# 4:33 pm / caja, yahoo, ydn, ben-laurie, security, yahoomail

Microsoft: Big Security Hole in All IE Versions. Looks like a 0-day that’s being actively exploited.

# 8:26 pm / ie, security, 0day, internet-explorer, microsoft

Dec. 17, 2008

Integrating Facebook Connect with Django in 15 minutes. Django authentication middleware that calls the Facebook REST API using a cookie set by Facebook Connect and checks if that person is your Facebook friend. Despite most of the magic happening on the server you still need Facebook’s JavaScript to set that cookie in the first place.

# 1:18 pm / facebook, facebookconnect, cookies, javascript, django, middleware

Dec. 18, 2008

Amazon SimpleDB—Now With Select. So now all three of Yahoo!, Amazon and Google have invented their own SQL-like languages (YQL, SimpleDB and GQL)—though it looks like Yahoo!’s is the only one that attempts to provide joins.

# 8:59 am / sqllike, sql, simpledb, yahoo, amazon, google, yql, gql

Simple Update Protocol: Update. Already implemented by more than five services, each of which now have near-real-time updates in to the FriendFeed syndication engine.

# 11:33 pm / friendfeed, syndication, sup, realtime

Dec. 19, 2008

Someone asked for onbeforeunload, so I started fixing it. Then I found that there was some rot in the drywall. So I took down the drywall. Then I found a rat infestation. So I killed all the rats. Then I found that the reason for the rot was a slow leak in the plumbing. So I tried fixing the plumbing, but it turned out the whole building used lead pipes. So I had to redo all the plumbing. But then I found that the town's water system wasn't quite compatible with modern plumbing techniques, and I had to dig up the entire town. And that's basically it.

Ian Hickson

# 1:58 pm / ian-hickson, onbeforeunload, standards, whatwg, html5, javascript

Represent—NYTimes.com. Superb new application from the NYTimes—a sort of cross between TheyWorkForYou and a news archive search. Enter your address in New York and it tells you your local representatives and shows both their votes and their mentions in the newspaper.

# 4:22 pm / new-york-times, represent, new-york

Dec. 20, 2008

Represent and GeoDjango. The NYTimes new Represent application is built on GeoDjango.

# 9:07 pm / represent, new-york-times, geodjango, derek-willis, django, python

Dec. 22, 2008

jQuery changeset 5985 (via) jQuery trunk has ditched browser sniffing in favour of feature testing, where a small suite of unit-test-like code blocks is used to detect whether a browser supports specific idioms. If the tests fail jQuery still makes assumptions about what the fix is, but it’s not hard to imagine the library eventually using code tests to ensure the fix will work as well.

# 10:58 am / jquery, feature-testing, javascript

Motorway map of England, Scotland and Wales (via) In the style of Harry Beck’s London Tube map.

# 11:36 am / tubemap, maps, motorways

pygooglechart. I tried a bunch of Python wrappers for Google Charts and liked this one best.

# 11:43 am / python, google-charts

Sam Vilain converted Perl's history from Perforce to Git. [..] He spent more than a year building custom tools to transform 21 years of Perl history into the first ever unified repository of every single change to Perl. In addition to changes from Perforce, Sam patched together a comprehensive view of Perl's history incorporating publicly available snapshot releases, changes from historical mailing list archives and patch sets recovered from the hard drives of previous Perl release engineers.

The Perl Foundation

# 6:06 pm / history, perl, git, versioncontrol, perforce, sam-vilain

Dec. 23, 2008

jQuery: Changeset 5990. “Added a new liveQuery/event delegation hybrid method”. Lets you add events that continue to work as new elements are dynamically appended to the DOM, e.g. $(’div p.foo’).live(’click’, fn). Works by adding an event handler to the root document element itself and relying on event bubbling. I have to admit I preferred the earlier proposal of $(’div’).delegate(’p.foo’..), which feels like it should have much better performance—anyone know of a good plugin that supports this?

# 12:22 pm / jquery, delegate, livequery, javascript, events

Quickchoice—a Speed Dial clone (via) Lovely demonstration of the CSS transform property, as supported by modern browsers. The magic is all in the iframe { transform: scale(0.25, 0.25) translate(-1200px, -900px) }

# 12:49 pm / speeddial, javascript, css, csstransform, iframes

Using SVG on the Web. I’ve been having a lot of fun playing with SVG recently. Here are some useful tips for including SVG images in HTML and XHTML documents.

# 1 pm / svg, html, xhtml, benjamin-smedberg

How to launch a new product. Jason Calacanis explains how they launched Mahalo Answers, including tips or running your own PR (Jason used to be a reporter so he’s played both sides of that fence).

# 1:10 pm / jason-calacanis, mahalo, mahaloanswers, launch

2008 » December

MTWTFSS
1234567
891011121314
15161718192021
22232425262728
293031