Simon Willison’s Weblog

Subscribe

Items in Feb, 2010

Filters: Year: 2010 × Month: Feb × Sorted by date


A History of the Sentence “Buffalo buffalo buffalo buffalo buffalo.”. Complete with explorations of the grammar in Lisp. # 5th February 2010, 9:50 am

WildlifeNearYou can now tag your Flickr photos for you. I’m really excited about this feature: if you opt-in, WildlifeNearYou will now write name and latin name tags to your Flickr photos after you’ve marked the species in the photo. This is even more interesting when you combine it with our suggest-a-species feature (the photo won’t get tagged until you’ve approved the suggestion). We also set the location on photos which don’t yet have one, but the real fun is the machine tags we’ve added, which allow developers to use the Flickr API to find photos by their WildlifeNearYou metadata (trip, species and place IDs). As a neat extra touch, the identifiers we use in the machine tags are the same as the ones used by our custom wlny.eu URL shortener, so it’s trivial to turn a machine tag in to the URL for that page on the main site. # 4th February 2010, 5:01 pm

Symbian Operating System, Now Open Source and Free. With Symbian now open source, are there any widely used operating systems left (besides Windows) that don’t have an open source core? # 4th February 2010, 8:38 am

dogproxy. Another of my experiments with Node.js—this is a very simple HTTP proxy which addresses the dog pile effect (also known as the thundering herd) by watching out for multiple requests for a URL that is currently “in flight” and bundling them together. # 3rd February 2010, 1:05 pm

Comet (long polling) for all browsers using ScriptCommunicator. More Comet from the Plurk team: 80 lines of dependency free JavaScript implementing long polling using script tags (hence working cross-domain) across IE6+, Firefox, WebKit and Opera. The clever bit is the code to detect loading errors. It doesn’t try to fix the infinite loading indicator problem—is that still a cromulent usability concern? # 3rd February 2010, 12:37 am

HipHop for PHP: Move Fast. Facebook have open-sourced their internally developed PHP to C++ compiler. They serve 400 billion PHP pages a month (that’s more than 150,000 a second) so any performance improvement dramatically reduces their hardware costs, and HipHop drops the CPU usage on their web servers by an average of 50%. “We are serving over 90% of our Web traffic using HipHop, all only six months after deployment”. # 2nd February 2010, 6:59 pm

SublimeVideo—HTML5 Video Player. Still a fair way to go (no Firefox support yet, and they plan to add a Flash fallback for IE) but in Safari this is pretty extraordinary. Smooth video, beautiful UI, full window mode and full screen mode in the latest WebKit nightlies. I’d go as far as saying that this is the nicest online video implementation I’ve seen (at least on the Mac). # 2nd February 2010, 9:50 am

They Write For You. I helped put together this visualisation of stories written by MPs for various newspapers at last Friday’s ’Hackers and Hacks" hack day. # 2nd February 2010, 9:27 am

Follow a Museum day. It’s follow a museum on Twitter day. Useful directory of museum Twitter accounts around the world, organised by country. # 1st February 2010, 11:15 am

Distributed lock on top of memcached. A simple Python context manager (taking advantage of the with statement) that implements a distributed lock using memcached to store lock state: “memcached_lock can be used to ensure that some global data is only updated by one server”. Redis would work well for this kind of thing as well. # 1st February 2010, 10:15 am

Plurk: Instant conversations using Comet (via) Plurk’s comet implementation sounds pretty amazing. They’re using a single quad-core server with 32GB of RAM running 8 Node.js instances to serve long-polled comet to 100,000+ simultaneous users. They switched to Node from Java JBoss/Netty and found the new solution used 10 times less memory. # 1st February 2010, 10:13 am

jQuery source viewer. A neat way of browsing the source code of jQuery itself, complete with hyperlinks to other jQuery methods. Kind of a single-purpose IDE. I can see myself using this a lot. # 1st February 2010, 10:01 am

HTML 5 audio player demo. Scott Andrew’s experiments with the HTML5 audio element (and jQuery)—straight forward and works a treat in Safari, but Firefox doesn’t support MP3. Presumably it’s not too hard to set up a fallback for Ogg. # 1st February 2010, 9:58 am