Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

Plupload (via) Fantastic new open source project from the team behind TinyMCE. Plupload offers a cross-browser JavaScript File uploading API that handles multiple file uploads, client-side progress meters, type filtering and even client-side image resizing and drag-and-drop from the desktop. It achieves all of this by providing backends for Flash, Silverlight, Google Gears, HTML5 and Browserplus and picking the most capable available option.

# 10th February 2010, 12:53 pm / browserplus, flash, gears, html5, javascript, plupload, silverlight, tinymce, uploads

glitch zen. Glitch is the upcoming online game from Tiny Speck, many of whom are ex Flickr and indeed ex Game Never Ending before that. Glitch Zen is the first fan site.

# 10th February 2010, 11:36 am / flickr, glitch, glitchzen, gne, tinyspeck

Presenting django-devserver, a better runserver. I really like this—it’s a Django management command (./manage.py rundevserver) which adds SQL logging and cache access summaries to the console output of Django’s local development server. It solves a similar set of problems to the debug toolbar, but requires slightly less setup and doesn’t inject additional HTML in to your pages. You can add your own custom modules to it as well.

# 10th February 2010, 11:33 am / david-cramer, debugging, devserver, django, python, runserver

Redis Virtual Memory: the story and the code. Fascinating overview of the virtual memory feature coming to Redis 2.0, which will remove the requirement that all Redis data fit in RAM. Keys still stay in RAM, but rarely accessed values will be swapped to disk. 16 GB of RAM will be enough to hold 100 million keys, each with a value as large as you like.

# 9th February 2010, 3:59 pm / databases, keyvaluestores, redis, salvatore-sanfilippo, virtualmemory

Lou’s Pseudo 3d Page. Spectacularly detailed exploration of the road graphics used in racing games prior to true 3D. This is a potential gold mine for anyone looking for a fun project to try out with canvas. Bonus points for comet integration—I’m still looking forward to the first real-time multiplayer game in the browser using comet and canvas.

# 8th February 2010, 11:21 am / 3d, canvas, comet, game-design, graphics, html5, javascript

Integrate Tornado in Django. A handy ./manage.py runtornado management command for firing up a Tornado server that serves your Django application.

# 8th February 2010, 11:12 am / django, python, tornado

Sketchpad—Online Paint/Drawing application (via) Impressive canvas based bitmap drawing tool with an extremely smooth UI.

# 7th February 2010, 10:45 am / canvas, sketchpad

svg-edit. Click the “Try out SVG-edit 2.4” link—this is an impressive, full featured open source vector graphics editor that runs in the browser.

# 7th February 2010, 10:30 am / demos, html5, svg, svgedit

twitter-text-conformance (via) This is a neat idea: Twitter have released open source libraries for parsing standard tweet syntax in Ruby and Java, but they’ve also released a set of YAML unit tests aimed at anyone who wants to implement the same parsing logic in other languages.

# 6th February 2010, 3:39 pm / java, ruby, testing, twitter, yaml, conformance-suites

What’s hot? Introducing Zeitgeist. Dan Catt’s first project at the Guardian. “When something appears on the Zeitgeist page, it’s because it performed better (got more attention) than the norm for that content type/section/day”. The application itself is written in Python and runs on Google App Engine.

# 5th February 2010, 12:17 pm / dan-catt, google-app-engine, guardian, python, zeitgeist

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 / flickr, machinetags, metadata, tagging, wildlifenearyou

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

Years

Tags