Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

Ward Cunningham’s Visible Workings. Intriguing idea: software that explicitly reveals the underlying business logic in end-user understandable terms. I didn’t find the example very easy to comprehend but the concept is fascinating.

# 5th March 2008, 1:53 am / jon-udell, ward-cunningham

How to Do Anything Photographic (via) A huge collection of excellent looking photography tutorials by Ken Rockwell.

# 5th March 2008, 1:12 am / ken-rockwell, photography

About our maps. Why and how EveryBlock rolled their own maps.

# 5th March 2008, 1:05 am / everyblock, mapping

Acid3 is out. The third Acid test, again compiled by Ian Hickson. This one viciously tests DOM Scripting standards compliance and currently exposes flaws in every browser.

# 5th March 2008, 12:34 am / acid3, ian-hickson, javascript, standards, web-standards-project

CouchDB, XML, and E4X. Brilliant—CouchDB now enables SpiderMonkey’s E4X support, meaning CouchDB views can easily query XML documents stored inside JSON objects using E4X syntax.

# 5th March 2008, 12:31 am / christopher-lenz, couchdb, e4x, javascript, json, spidermonkey, xml

Gears 0.2 Released! New modules are HttpRequest and Timer, both for use within workers (which provide Erlang-style message passing concurrency). Particularly interesting is that the Gears HttpRequest module can be used for much cleaner Comet implementations in IE.

# 5th March 2008, 12:21 am / comet, google-gears, internet-explorer, javascript

xssinterface (via) Clever JavaScript library for implementing opt-in cross-domain messaging in JavaScript (allowing communication between pages and iframes on different domains). Uses HTML 5’s postMessage API if available, otherwise falls back on either Google Gears or a clever cookie hack.

# 5th March 2008, 12:08 am / crossdomain, html5, javascript, postmessage, xssinterface

In-Depth django-sphinx Tutorial. Another neat Django extension from the guys at Curse: easy integration with the sphinx full text search engine.

# 5th March 2008, 12:03 am / curse, david-cramer, django, python, search, sphinx-search

Google Maps Without the Scripting. Google Maps has finally added a simple API for retrieving static map images.

# 4th March 2008, 11:54 pm / google-maps, mapping, staticmaps

WhatDoTheyKnow (via) New from mySociety: a site for submitting and publically tracking Freedom of Information requests to the UK government.

# 4th March 2008, 11:38 pm / foi, government, mysociety, political-hacking, whatdotheyknow

Making bridges talk. Tom Armitage hooked Tower Bridge up to Twitter: “I am closing after the MV Dixie Queen has passed Upstream”.

# 4th March 2008, 11:07 pm / tom-armitage, towerbridge, twitter

Table-Based Layout Is The Next Big Thing. Kevin Yank points out that the inclusion of display:table in IE 8 will finally open up a powerful tool for creating CSS layouts that has so far been mostly ignored.

# 4th March 2008, 11:01 pm / css, displaytable, ie8, kevin-yank, tables

Principles and Legality. Eric Meyer notes that language about legality in Microsoft’s recent IE announcement suggests that Opera’s much criticised EU threat may have helped positively influence the result.

# 4th March 2008, 7:45 pm / eric-meyer, ie8, law, microsoft, opera, standards

ExpanDrive. Looks like this SFTP mounting application for OS X fixes the problems I’ve had with sshfs (which tends to freeze things up if you lose your network connection while using it).

# 4th March 2008, 7:32 pm / expandrive, john-gruber, sftp, ssh, sshfs

Two data streams for a happy website. Useful architectural concept for scaling: keep user-specific and generic data separate from the start, in recognition of their different caching and partitioning constraints.

# 4th March 2008, 4:40 am / caching, scaling

The real reason Google’s clicks are flat. Rich Skrenta explains that Google’s recent reduction of the clicable area in Adsense ads, while reducing click-throughs by 60%, will eventually balance out due to non-accidental click-throughs being worth more to advertisers.

# 4th March 2008, 4:34 am / adsense, clickthroughs, google, rich-skrenta

Jython’s Future Looking Sunny. Sun have (finally) invested in Jython, hiring lead maintainer Frank Wierzbicki. They’ve also hired Ted Leung to “represent the wider world of Python at Sun”. Great news.

# 3rd March 2008, 4:08 pm / frank-wierzbicki, jython, python, sun, ted-leung

queryset-refactor changeset 7126. Malcolm just checked model inheritance in to the queryset-refactor branch, with full documentation and unit tests. People have been requesting this for ages.

# 18th February 2008, 9:46 am / django, inheritance, python, querysetrefactor, testing

Apache proxy auto-re-loader. Neat trick: set your 502 (Bad Gateway) error document to include a meta refresh tag, automating the refresh needed should a server you are proxying to be temporarily unavailable.

# 18th February 2008, 9:44 am / apache, metarefresh, ned-batchelder, proxies

Nginx and Memcached, a 400% boost! Ilya Grigorik wrote up my current favourite nginx trick—you set nginx to check memcached for a cache entry matching the current URL on every hit, then invalidate your cache by pushing a new cache record straight in to memcached from your application server.

# 11th February 2008, 10:05 pm / caching, ilyagrigorik, memcached, nginx, performance

jQuery 1.2 Cheat Sheet. Handy. It helps that most of jQuery’s method names are pretty much self explanatory once you’ve been using the library for a couple of weeks.

# 10th February 2008, 9:12 pm / cheatsheet, gscottolson, javascript, jquery

Event Delegation Made Easy. Dan Webb demonstrates a neat trick for event delegation in jQuery, using CSS selectors and the jQuery .is() method to dispatch to different callbacks from a single event handler based on the target of the event.

# 10th February 2008, 3:13 pm / dan-webb, delegation, eventdelegation, javascript, jquery

Transitioning from Java Classes to JavaScript Prototypes. Peter Michaux shows how JavaScript’s prototypal inheritance can run rings around traditional Java-style classes once you figure out how to take advantage of it.

# 10th February 2008, 3:10 pm / inheritance, java, javascript, object-oriented-programming, pete-michaux, prototypal-inheritance

Cross-Window Messaging. Now in Firefox 3 trunk, the HTML 5 specified ability for JavaScript to send messages between windows (or iframes) hosted on different domains. Fantastically powerful, but must be implemented with care to avoid accidentally processing bad messages from malicious third parties.

# 10th February 2008, 12 pm / crosswindowmessaging, firefox, firefox3, html5, javascript, john-resig

themaneater.com Launch. The Maneater’s online edition is where Adrian cut his web development teeth, so it’s great to see them up and running on Django. Important to note that KeepAlive can completely murder Apache/Django performance.

# 10th February 2008, 8:10 am / adrian-holovaty, apache, django, keepalive, themaneater

PrinceXML is extremely impressive. I had a poke at Prince (a commercial package for generating high quality PDFs from HTML, XML, CSS and SVG) a few weeks ago and was similarly impressed.

# 8th February 2008, 12:02 pm / css, princexml, ryan-tomayko, svg, xml

mydeco. Major new Django-powered start-up has launched, based in London.

# 8th February 2008, 11:43 am / django, london, mydeco, startup

django-openid—browse. Hooray! Google Code finally has a decent Subversion browser.

# 8th February 2008, 11:41 am / google-code, subversion

A proposal: email to URL mapping. Brad’s just too damn smart. A simple solution to mapping an e-mail address to an OpenID that takes advantage of existing technology (YADIS) and doesn’t adversely affect e-mail privacy.

# 8th February 2008, 11:39 am / brad-fitzpatrick, email, openid, urls, yadis

Years

Tags