Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

qTip. Advanced tooltip plugin for jQuery, including borders and pointers created using CSS. Very flexible (we used this for the latest MP expenses application) but a little on the heavy side, weighing in at 38KB when minified.

# 30th December 2009, 6:23 pm / javascript, jquery, plugins, tooltips

tipsy. Simple Facebook-style tooltip plugin for jQuery.

# 30th December 2009, 6:21 pm / facebook, javascript, jquery, plugins, tooltips

jsondns. A JSONP API for making DNS queries, with a nice URL structure.

# 30th December 2009, 5:37 pm / api, dns, json, jsonp

Intercepting Predator Video. Bruce Schneier’s take on the unencrypted Predator UAV story. A fascinating discussion of key management and the non-technical side of cryptography.

# 24th December 2009, 9:26 pm / bruce-schneier, cryptography, drones, military, nsa, security

Orderly JSON. Essentially the JSON equivalent of RelaxNG’s compact syntax—a pleasant mini-language for describing JSON objects which compiles to the more verbose JSONSchema format.

# 23rd December 2009, 2:44 pm / javascript, json, jsonschema, orderly, relaxng

The Dangers of Clickjacking with Facebook. theharmonyguy compiled a list of actions that can be triggered on Facebook by a single click, and hence are vulnerable to clickjacking attacks. The list includes authorising malicious applications, posting links to profiles, sending friend requests and sending messages to other users. Why don’t Facebook include frame busting JavaScript on every page?

# 23rd December 2009, 10:20 am / clickjacking, facebook, framebusting, phishing, security, theharmonyguy

PostgreSQL 8.5alpha3 now available. “Hot Standby, allowing read-only connections during recovery, provides a built-in master-slave replication solution.” Woohoo!

# 23rd December 2009, 9:57 am / hotstandby, masterslave, postgresql, replication, scaling

Socket Benchmark of Asynchronous Servers in Python. A comparison of eight different asynchronous networking frameworks in Python. Tornado comes out on top in most of the benchmarks, but the post is most interesting for the direct comparison of simple code examples for each of the frameworks.

# 22nd December 2009, 10:34 pm / async, benchmarks, dieselweb, eventio, eventlet, gevent, orbited, python, stackless, tornado, twisted

The Worst Ideas of the Decade: Vaccine scares. “The movement blaming vaccines for causing autism emerged in the early 2000s, and it was one of the most catastrophically horrible ideas of the decade.”

# 22nd December 2009, 9:17 pm / science, vaccines

New Redis ZINCRBY command (via) Just added to Redis, a command which increments the “score” for an item in a sorted set and reorders the set to reflect the new scores. Looks ideally suited to real time stats, and I’m sure there are plenty of other exciting uses for it.

# 22nd December 2009, 8:38 pm / nosql, redis, salvatore-sanfilippo, sortedsets, zincrby

New Facebook clickjacking attack in the wild. I’m not sure why Facebook don’t use frame-busting JavaScript to avoid this kind of thing. The attack is pretty crafty—a Facebook page is positioned with everything obscured bar part of the blue “share this” button, and a fake “Human Test” asks the user to find and click the blue button to continue.

# 22nd December 2009, 6:52 pm / clickjacking, facebook, phishing, security

Django | Multiple Databases. Russell just checked in the final patch developed from Alex Gaynor’s Summer of Code project to add multiple database support to Django. I’d link to the 21,000 line changeset but it crashed our Trac, so here’s the documentation instead.

# 22nd December 2009, 5:22 pm / alex-gaynor, databases, django, multidb, python, russell-keith-magee, scaling

Another leak, the worst so far (via) “Arweena, a spokes-elf for Santa Claus, admitted a few hours ago that the database posted at WikiLeaks yesterday is indeed the comprehensive 2009 list of which kids have been naughty, and which were nice.” The first comment is great too.

# 22nd December 2009, 10:42 am / christmas, databases, funny, leaks, security, wikileaks

Round-robin Django setup with nginx. An nginx trick I didn’t know: a low proxy_connect_timeout value (e.g. 2 seconds) combined with the proxy_next_upstream setting means that if one of your backends breaks a user won’t even see an error, they’ll just have a short delay before getting a response from a working server.

# 21st December 2009, 3:43 pm / django, load-balancing, nginx, ops, sysadmin

Notes on designing the Guardian iPhone app. By John-Henry Barac, the principal designer of he iPhone application who also previously worked on the Guardian’s print transition to the Berliner format.

# 20th December 2009, 12:55 pm / design, guardian, iphone, john-henry-barac, mobile

jQuery.require() implementation. John Resig has added a new jQuery.require() function to a jQuery development branch, for release as part of jQuery 1.4. The commit on GitHub has an extensive discussion attached to it (scroll to the bottom).

# 17th December 2009, 11:24 am / github, javascript, john-resig, jquery

getElementsByTagName(). Dean Edwards rolls a hand-rolled getElementsByTagName function for use with DOM fragments (which don’t provide the method). His code is a nice example of a tightly written tree walker using the low level DOM API.

# 17th December 2009, 7:46 am / dean-edwards, javascript

Insurgents Hack U.S. Drones. The video feed rather than the control protocol, but still.... “Fixing the security gap would have caused delays, according to current and former military officials. It would have added to the Predator’s price. Some officials worried that adding encryption would make it harder to quickly share time-sensitive data within the U.S. military, and with allies.”

# 17th December 2009, 7:36 am / drones, encryption, military, security

Django-Jython 1.1.0 released. Django on Jython matches its minor version numbers to Django, so this new release is compatible with Django 1.1.

# 16th December 2009, 10:42 pm / django, jython, leosoto, python

Notes from the No Lone Zone. A computer scientist with a background in cryptography visits a Titan II ICBM launch complex.

# 16th December 2009, 10:02 am / coldwar, cryptography, history, icbm, security

StartupBoeing—Starting an Airline (via) Boeing’s guide to starting your own airline.

# 15th December 2009, 10:38 pm / airline, boeing, startups

Unicode code converter (via) Fantastically useful tool to convert strings of characters in to every unicode and/or escaping syntax you can possibly imagine.

# 15th December 2009, 10:10 pm / escaping, tools, unicode

Semantic Versioning. Tom Preston-Werner provides a name, specification and URL describing the relatively widely used Major.Minor.Patch versioning system. This is really useful—by giving something a name and a spec, people can say “this project uses semantic versioning” and skip having to explain their backwards compatibility policy in full.

# 15th December 2009, 9:53 pm / naming-things, open-source, semantic-versioning, software, tom-preston-werner, versioning

HTTP + Politics = ? Mark Nottingham ponders the technical implications of Australia’s decision to apply a filter to all internet traffic. Australia is large enough (and far enough away from the northern hemisphere) that the speed of light is a performance issue, but filtering technologies play extremely poorly with optimisation technologies such as HTTP pipelining and Google’s SPDY proposal.

# 15th December 2009, 3:36 pm / australia, filtering, google, http, mark-nottingham, performance, pipelining, politics, spdy

Guardian iPhone app. Released today, ad-free, £2.39 for the application, has an excellent offline mode. I helped build the backend web service, which is a Django app running on EC2.

# 14th December 2009, 1:29 pm / django, ec2, guardian, iphone, python

Going Nuts with CSS Transitions. Nat’s article for this year’s 24ways—adding special effects to images using CSS rotation, box shadows and the magical -webkit-transition property.

# 14th December 2009, 1:16 pm / 24-ways, animation, css, natalie-downe, rotation, webkit

The View from Above. Andy Allan’s notes on three different projects that aerial imagery with OpenStreetMap. Andy and friends hired a small plane and took their own aerial photographs of Stratford-upon-Avon as a demo for a GIS conference. Aid agencies in the Philippines benefitted from OSM and a donation of high quality satellite imagery. Rural Georgia now has hiqh quality images from 2007 thanks to the Department of Agriculture.

# 11th December 2009, 9:32 am / aerialimagery, andy-allan, mapping, openstreetmap, satellites

A piece with a lot of screenshots about the close tab behaviour in Google Chrome. If you click “close” with your mouse, Chrome doesn’t resize the remaining tabs until you mouse away from the area. This means you can click “close” multiple times without having to chase the close button. I hadn’t noticed this, partly because Chrome doesn’t do it if you hit Command-W. They even switch the position of the close button in RTL languages such as Arabic.

# 11th December 2009, 9:19 am / chrome, google, tabs, ui, usability

GeoPlanet data available again (via) Good news: the Yahoo! GeoPlanet data dump is available again. An issue with one of their data providers meant they had to remove that supplier’s data from the dump, but it’s now been separated and the dataset is live gain. By the end of 2010 they intend to derive all of the data from completely open sources.

# 11th December 2009, 8:17 am / geoplanet, geospatial, mapping, yahoo

Years

Tags