Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

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 / open-source, operatingsystems, symbian, windows

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 / dogpile, dogproxy, javascript, nodejs, projects, scaling, thunderingherd

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 / comet, javascript, long-polling, plurk, usability

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 / facebook, hiphop, optimisation, performance, php, traffic

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 / flash, html5, safari, video, webkit

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 / hackday, mps, newspapers, politics, projects, visualisations

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 / museums, twitter

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 / concurrency, contextmanager, locking, memcached, plurk, python, redis, with

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 / comet, java, javascript, jboss, netty, nodejs, plurk

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 / james-padolsey, javascript, jquery

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 / audio, firefox, html5, javascript, jquery, mp3, ogg, safari, scott-andrew

Hot Code Loading in Node.js. Blaine Cook’s patch for Node.js that enables Erlang-style hot code loading, so you can switch out your application logic without restarting the server or affecting existing requests. This could make deploying new versions of Node applications trivial. I’d love to see a Node hosting service that allows you to simply upload a script file and have it execute on the Web.

# 31st January 2010, 1:57 pm / blaine-cook, deployment, erlang, javascript, nodejs

Who Can Do Something About Those Blue Boxes? John Gruber makes the case for the fading significance of Flash, brought about by Apple’s point-blank refusal to support it on the iPhone or iPad. “Flash is no longer ubiquitous. There’s a big difference between “everywhere” and “almost everywhere”.”

# 31st January 2010, 12:05 pm / adobe, apple, flash, ipad, iphone, john-gruber

Dojo 1.4.1 vs jQuery 1.4.2pre on Taskspeed. John Resig’s reponse. When JavaScript libraries compete on performance, everybody wins.

# 29th January 2010, 2:19 pm / benchmarks, dojo, javascript, john-resig, jquery, performance

Dojo: Still Twice As Fast When It Matters Most. Alex Russell shows how Dojo out-performs jQuery on the TaskSpeed benchmark, which attempts to represent common tasks in real-world applications and has had code that have been optimised by the development teams behind each of the libraries.

# 28th January 2010, 10:40 pm / alex-russell, benchmarks, dojo, javascript, jquery, performance, taskspeed

Why the iPad may be just what we need for Digital Inclusion. Chris Thorpe: “It may not be a Jesus phone, a Moses tablet or something that lives up to hype and hyperbole, but if it does something for the digital inclusion agenda it might live up to Steve Jobs saying it’s the most important thing he’s ever done.”

# 28th January 2010, 9:03 pm / apple, chris-thorpe, inclusion, ipad, steve-jobs

Introducing docent. Paul Mison’s clever little Flickr app for viewing galleries that have been added by your contacts. It runs in Python on App Engine and makes extensive use of the Task Queue API.

# 28th January 2010, 8:35 pm / docent, flickr, google-app-engine, paul-mison, python, queues, taskqueue

Why I Believe Printers Were Sent From Hell To Make Us Miserable (via) I just don’t get it. How has no one managed to produce a printer that doesn’t suck yet?

# 28th January 2010, 6:56 pm / funny, printers

Reexamining Python 3 Text I/O. Python 3.1’s IO performance is a huge improvement over 3.0, but still considerably slower than 2.6. It turns out it’s all to do with Python 3’s unicode support: When you read a file in to a string, you’re asking Python to decode the bytes in to UTF-8 (the new default encoding) at the same time. If you open the file in binary mode Python 3 will read raw bytes in to a bytestring instead, avoiding the conversion overhead and performing only 4% slower than the equivalent code in Python 2.6.4.

# 28th January 2010, 1:28 pm / david-beazley, io, performance, python, python3, text, unicode

World Government Data. Launched last week, this is the Guardian’s meta-search engine for searching and browsing through data from four different government data sites (with more sites planned). Under the hood it’s Django, Solr, Haystack and the Scrapy crawling library. The application was built by Ben Firshman during an internship over Christmas.

# 27th January 2010, 12:27 pm / ben-firshman, data, datagovuk, django, guardian, haystack, projects, python, scrapy, solr

Applications: the real stars of the data.gov.uk launch. A write-up of the data.gov.uk launch event at the Guardian. I demonstrated the Guardian’s World Government Data search engine and a small data.gov.uk inspired feature on WildlifeNearYou.

# 27th January 2010, 12:23 pm / datagovuk, guardian, projects, wildlifenearyou

After Three Months, Only 35 Subscriptions for Newsday’s Web Site. Not an entirely representative figure, since it doesn’t include the print and cable subscribers who get access to the website as part of their existing package.

# 27th January 2010, 8:16 am / newsday, newspapers, paywalls, subscription

OSM the default map in Haiti. A search and rescue team member in Haiti sends word that digital maps constructed by the OpenStreetMap community are spreading by word of mouth and being loaded on to GPS units on the ground.

# 25th January 2010, 9:26 pm / gps, haiti, inspiring, mapping, openstreetmap

The making of the NYT’s Netflix graphic. A database dump from Netflix, some clever hackery in ArcView GIS, hpricot to scrape Metacritic and a lot of careful thought about the UI for navigating the data.

# 25th January 2010, 1:11 pm / arcview, design, geospatial, hpricot, infographics, metacritic, netflix, new-york-times, ui, usability, visualisation

Fixing the Google Account problem. 3,000+ words explaining how to open a Google Doc invitation sent to an e-mail address that isn’t associated with your Google account. Worth reading just to get an idea for the enormous complexity involved in running a large scale identity system and designing an interface for managing aliases and multiple profiles. Google haven’t got it right yet—has anyone else?

# 25th January 2010, 11:21 am / accounts, drummondreed, gmail, google, identity, usability

Help pick the best photos, but watch out, it’s addictive! My favourite WildlifeNearYou feature yet—our new tool asks you to pick the best from two photos, then uses the results to rank all of the photos for each species. It’s surprisingly addictive—we had over 5,000 votes in the first two hours, peaking at 4 or 5 votes a second. The feature seems to be staying nice and speedy thanks to Redis under the hood. Photos in the top three for any given species display a medal on their photo page.

# 25th January 2010, 12:36 am / crowdsourcing, photos, projects, redis, wildlifenearyou

Linux performance basics. This kind of Linux knowledge is rapidly becoming a key skill for server-side web development.

# 24th January 2010, 1:50 pm / jonathan-ellis, linux, ops, performance, sysadmin

Amazon S3: Versioning Proposal. The us-west-1 S3 bucket region now optionally supports versioning—once enabled on a bucket, all previous versions of keys will be preserved.

# 24th January 2010, 1:38 pm / amazon, amazonaws, s3, storage, versioning

Don’t Hash Secrets. A well written explanation from 2008 of why you must use hmac instead of raw SHA-1 when hashing against a secret.

# 24th January 2010, 1:30 pm / cryptography, hmac, security, sha1, signing

The Seven Deadly Sins of Solr. Useful advice on managing and deploying Solr.

# 24th January 2010, 1:30 pm / lucidimagination, search, solr

Years

Tags