Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

Solved: where the civil servant really wrote that message to Hazel Blears. There’s an interesting usability / understanding-of-technology story here.

# 7th July 2009, 5:41 pm / theyworkforyou, usability

In defense of web developers. Zeldman: “The social benefit of rethinking markup sealed the deal. XHTML’s introduction in 2000, and its emphasis on rules of construction, gave web standards evangelists like me a platform on which to hook a program of semantic markup replacing the bloated and unsustainable tag soup of the day.”

# 7th July 2009, 3:52 pm / html5, jeffrey-zeldman, markup, web-standards, xhtml

Yahoo! proposal to open source “Traffic Server” via the ASF. Traffic Server is a “fast, scalable and extensible HTTP/1.1 compliant caching proxy server” (presumably equivalent to things like Squid and Varnish) originally acquired from Inktomi and developed internally at Yahoo! for the past three years, which has been benchmarked handling 35,000 req/s on a single box. No source code yet but it looks like the release will arrive pretty soon.

# 7th July 2009, 12:37 pm / apache, asf, caching, open-source, proxies, squid, trafficserver, varnish, yahoo

Up and running with Cassandra. Twitter are beginning to use Cassandra, the open source branch of Facebook’s BigTable-like non-relational database. Evan Weaver explains how to get started with it, but warns that it’s not yet a good idea to trust data to it without having a full backup in an unrelated storage engine.

# 7th July 2009, 11:18 am / bigtable, cassandra, evanweaver, facebook, nonrelationaldatabases, scaling, twitter

From Microsoft: C# and CLI under the Community Promise. Microsoft’s assurance that it won’t “assert its Necessary Claims” against alternative (including open source) implementations of the ECMA C# and CLR specifications. The promise doesn’t cover implementations of .NET, WinForms etc- so the Mono team have announced they will be splitting their project in to two packages—a safe, ECMA based package and a package containing everything else.

# 7th July 2009, 11:15 am / aspdotnet, cli, csharp, ecma, microsoft, miguel-de-icaza, mono, open-source, patents

Stellarium. Really lovely open source planetarium application, for Linux, OS X and Windows.

# 7th July 2009, 12:37 am / open-source, planetarium, space, stellarium

Tips on using python’s datetime module. Wow. I’ve run in to problems with datetime and timezones before, but I had no idea how intrinsic those problems were to the design of the library.

# 6th July 2009, 2:20 pm / dates, datetime, python, times

Evidence of OpenID at Amazon. It looks like Amazon are using OpenID for SSO between their different properties—I clicked a link to sign in to AWS and the URL had OpenID query string parameters.

# 6th July 2009, 1:25 am / amazon, aws, openid, sso

Jeffrey Zeldman: XHTML WTF. Reading the comments, it’s scary how many people are totally ill-informed about HTML5 and XHTML5.

# 4th July 2009, 1:22 am / education, html5, jeffrey-zeldman, web-standards, xhtml, xhtml5

FAQs about the future of XHTML. The XHTML 2 Working Group charter will not be renewed after 2009—as far as the W3C are concerned, XHTML5 is the future of XHTML.

# 3rd July 2009, 1:37 am / w3c, web-standards, xhtml, xhtml2, xhtml5

Newspaper Club—A work in progress. “We’re building a service to help people make their own newspapers. This is the blog where we’re alarmingly honest about where it’s all going wrong.”

# 2nd July 2009, 7:34 pm / newspaperclub, newspapers, tom-taylor

Video for Everybody! Reminiscent of the early days of Web Standards, Kroc Camen has created a fiendishly clever chunk of HTML which can play a video on any browser, starting with HTML5 video then falling back on Flash and eventually just an HTML message telling the user where they can download the file. No JavaScript to be seen, but conditional comments abound. Requires you to encode as both Ogg and H.264, but Kroc includes details instructions for doing that using Handbrake.

# 2nd July 2009, 7:33 pm / codecs, encoding, h264, hacks, handbrake, html, html5, kroccamen, ogg, video

Modernizr (via) Neat idea and an unobtrusive implementation: a JavaScript library that runs feature tests for various HTML5 features (canvas, box shadow, CSS transforms and so on) and adds classes to the HTML body element, allowing you to write CSS selectors that only apply if a feature is present. Detected features are exposed to JavaScript as boolean properties, e.g. Modernizer.multiplebgs.

# 2nd July 2009, 10:56 am / css, faruk-ates, html5, javascript, modernizr

Codecs for <audio> and <video>. HTML 5 will not be requiring support for specific audio and video codecs—Ian Hickson explains why, in great detail. Short version: Apple won’t implement Theora due to lack of hardware support and an “uncertain patent landscape”, while open source browsers (Chromium and Mozilla) can’t support H.264 due to the cost of the licenses.

# 2nd July 2009, 10:16 am / audio, chromium, codecs, google, h264, html5, ian-hickson, mozilla, ogg, patents, theora, video

PubSub-over-Webhooks with RabbitHub. RabbitMQ, the Erlang-powered AMQP message queue, is growing an HTTP interface based on webhooks and PubSubHubBub.

# 1st July 2009, 8:22 pm / amqp, erlang, http, message-queues, pubsubhubbub, rabbitmq, webhooks

Address Extractor. Running on App Engine, an address extractor web service using code from the EveryBlock open source release.

# 1st July 2009, 8:03 pm / addressextractor, everyblock, google-app-engine, python

EveryBlock source code released. EveryBlock’s Knight Foundation grant required them to release the source code after two years, under the GPL. Lots of neat Django / PostgreSQL / GIS tricks to be found within.

# 1st July 2009, 8:01 pm / django, everyblock, gis, gpl, open-source, postgresql, python

Using Mongo for Real-Time Analytics. MongoDB supports an “upsert” query, which when combined with the $inc operator can cause counter fields to be incremented if they exist and created otherwise. This makes it a great fit for real-time analytics applications (one increment per page view), something that regular relational databases aren’t particularly good at.

# 30th June 2009, 7:28 pm / counters, databases, increment, mongodb, upsert

MongoDB. Lots of discussions about this at EuroPython today—it’s a document database, very similar to CouchDB but significantly faster and suggested for production use. Best of all, trying it out on OS X is as easy as extracting the tarball and running “bin/mongod --dbpath /tmp/test-mongo-db run”.

# 30th June 2009, 7:13 pm / couchdb, documentstore, europython, json, keyvaluestore, macos, mongodb, nonrelationaldatabase

Firefox 3.5 for developers. It’s out today, and the feature list is huge. Highlights include HTML 5 drag ’n’ drop, audio and video elements, offline resources, downloadable fonts, text-shadow, CSS transforms with -moz-transform, localStorage, geolocation, web workers, trackpad swipe events, native JSON, cross-site HTTP requests, text API for canvas, defer attribute for the script element and TraceMonkey for better JS performance!

# 30th June 2009, 6:08 pm / audio, browsers, canvas, crossdomain, csstransforms, dragndrop, firefox, firefox35, fonts, geolocation, html5, javascript, json, localstorage, mozilla, offlineresources, performance, textshadow, tracemonkey, video, webworkers

cache-money. A “write-through caching library for ActiveRecord”, maintained by Nick Kallen from Twitter. Queries hit memcached first, and caches are automatically kept up-to-date when objects are created, updated and deleted. Only some queries are supported—joins and comparisons won’t hit the cache, for example.

# 28th June 2009, 3:17 pm / activerecord, cachemoney, caching, memcached, rails, twitter

Twitter, an Evolving Architecture. The most detailed write-up of Twitter’s current architecture I’ve seen, explaining the four layers of cache (all memcached) used by the Twitter API.

# 28th June 2009, 3:09 pm / architecture, caching, memcached, twitter

BashReduce. Map/Reduce in Bash is no longer a joke project (if it ever was)—Richard Crowley is extending it and using it for analysis at OpenDNS.

# 28th June 2009, 3:03 pm / bash, bashreduce, mapreduce, opendns, richard-crowley

What’s New In Python 3.1. Lots of stuff, but the best bits are an ordered dictionary type (congrats, Armin), a Counter class for counting unique items in an iterable (I do this on an almost daily basis) and a bunch of performance improvements including a rewrite of the Python 3.0 IO system in C.

# 28th June 2009, 3:02 pm / armin-ronacher, performance, python, python3, python31, releases

The Resource Expert Droid. Like the HTML Validator but for your server’s HTTP headers—extremely useful.

# 25th June 2009, 10:06 am / headers, http, mark-nottingham, resourceexpertdroid, validator

Four crowdsourcing lessons from the Guardian’s (spectacular) expenses-scandal experiment. Michael Andersen from the Nieman Journalism Lab interviewed me about the MP expenses crowdsourcing site.

# 24th June 2009, 3:31 pm / crowdsourcing, guardian, interviews, mpsexpences

Test-Driven Heresy. Tim Bray advocates TDD for maintenance development, but argues that it may not be as useful during the exploratory, greenfield development phase of a project.

# 24th June 2009, 11:03 am / tdd, testing, tim-bray

To Sprite Or Not To Sprite. CSS sprite images are decompressed to full bitmaps by browsers before they are rendered, so sprite files with large numbers of pixels will dramatically increase the memory footprint of your site.

# 24th June 2009, 10:33 am / css, csssprites, performance, velocityconference

Google asked people in Times Square:“What is a browser?”. Stuff like this makes me despair for creating a secure web—what chance do people have of surfing safely if they don’t understand browsers, web sites, operating systems, DNS, URLs, SSL, certificates...

# 20th June 2009, 1:25 am / browsers, google, realhumans, security, usability

Years

Tags