Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

RasterWeb: Lanyrd. Pete Prodoehl calls me out on Lanyrd’s integration with the Twitter auth API at the expense of OpenID. I’ve posted a comment with my justification—essentially, tying to Twitter’s ecosystem means I can actually implement the features I’ve been talking about building on top of OpenID for years, with far less engineering effort.

# 31st August 2010, 8:49 pm / identity, oauth, openid, twitter, recovered, pete-prodoehl

Lanyrd—the social conference directory. Nat and my new project, launched today and doing pretty well despite some early server hiccups. Sign in with Twitter to see conferences that your friends are speaking at, attending or tracking, then add your own events. We’re particularly keen on helping people build up a detailed profile of their previous talks, so adding older conferences is encouraged.

# 31st August 2010, 7:41 pm / conferences, projects, twitter, lanyrd, recovered, natimon

LWPx::ParanoidAgent. Every programming language needs an equivalent of this library—a robust, secure way to make HTTP requests against URLs from untrusted sources without risk of tarpits, internal network access, socket starvation, weird server errors, or other nastiness.

# 31st August 2010, 2:30 am / http, perl, recovered

What is the history of Django? I’ve been playing with Quora—it’s a really neat twist on the question-and-answer format, which makes great use of friends, followers and topics and has some very neat live update stuff going on (using Comet on top of Tornado). I just posted quite a long answer to a question about the history of Django.

# 24th August 2010, 5:31 pm / comet, django, history, tornado, quora, recovered, qna

Readme Driven Development (via) Tom Preston-Werner advocates for writing the readme before any other code. “Until you’ve written about your software, you have no idea what you’ll be coding.”

# 23rd August 2010, 8:20 pm / tom-preston-werner, recovered

PNGStore—Embedding compressed CSS & JavaScript in PNGs. Cal did some further analysis on the CSS/JS to PNG compression trick (including producing some interesting images of jQuery compressed using different image packing techniques) and found it to be slightly less effective than regular GZipping.

# 23rd August 2010, 9:47 am / cal-henderson, gzip, png, recovered

10K Apart Contest: Cheating by Compressing Your JavaScript and CSS to PNG Images. Fascinating hack: transform your JS and CSS in to coloured pixels, save the result as a PNG to benefit from PNG’s built in compression algorithms, then read the data back out of the PNG and convert it back to text using JavaScript and canvas—all to reduce the on-disk filesize when entering the 10K app competition. Alex’s GithubFinder entry is worth checking out too.

# 23rd August 2010, 9:45 am / compression, github, hacks, javascript, png, recovered, 10kapart, alex-le

Undelete! How to undelete a file accidentally removed using rm on Linux, by grepping through the raw bytes on the hard drive searching for a unique string that was contained in the file. “grep -a -B 25 -A 100 ’some string in the file’ /dev/sda1 > results.txt”

# 21st August 2010, 10:56 am / linux, sysadmin, recovered

Polymaps. Absurdly classy: “a JavaScript library for image- and vector-tiled maps using SVG”. It can pull in image tiles from sources such as OpenStreetMap, then overlay SVG paths specified using GeoJSON. The demos make use of GeoJSON tiles for US states and counties hosted on AppEngine. The library is developed by Stamen and SimpleGeo, and released under a BSD license. SVG support in the browser is required.

# 20th August 2010, 6:46 pm / google-app-engine, javascript, mapping, openstreetmap, stamen-design, svg, recovered, geojson, polymaps, simplegeo

A More Royal Royal Opera House. Beautiful piece of work updating the branding for the Royal Opera House, including a strikingly modern take on the original crest.

# 20th August 2010, 12:08 pm / branding, design, recovered

Surfin’ Safari: Announcing... MathML! MathML is now supported by the WebKit nightlies. Worth checking out for the typographical discussion that’s broken out in the comments.

# 18th August 2010, 1:49 pm / mathml, safari, typography, webkit, recovered

Pictos. Here’s something new: a for-sale font containing a set of beautiful royalty-free icons (like Wingdings, but good) designed to be embedded in web applications using @font-face. Small file sizes, scalable vectors without SVG. Not sure about the accessibility implications though.

# 17th August 2010, 8:54 pm / fonts, recovered, pictos, webfonts

Yahoo! Developer Network: Important API Updates and Changes. Some important (and potentially worrying) news about Yahoo! APIs. The BOSS (Build your Own Search Service) API will no longer be free—not an enormous surprise, and hopefully the pricing will be sensible. Most of the other search APIs (including web, news and image search) are being turned off with no replacement, while term extraction and spelling suggestions will be YQL-only. Most worrying, changes to Geo, Maps and Local APIs will be announced in September, with some set to close. I really hope this doesn’t affect the GeoPlanet APIs.

# 17th August 2010, 6:14 pm / apis, boss, geoplanet, yahoo, yql, recovered

Human pylons carry electricity across Iceland. An entry in the “Icelandic High-Voltage Electrical Pylon International Design Competition” proposes giant human-shaped electricity pylons. “The figures can be placed into different poses, with the suggestion that the landscapes could inform the position that the sculpture is placed into. For example, as a power line ascends a hill, the pylons could look as if they’re climbing. The figures could also stretch up to gain increased height over longer spans.”

# 17th August 2010, 1:38 pm / design, pylons, recovered

Writing Bulletproof Apps with API Errorpoints. This is a very good idea: Web APIs should offer special API endpoints for simulating each of the possible errors that might be returned by the production API.

# 16th August 2010, 7:12 pm / apis, errors, webapis, recovered

Journalism Warning Labels. These are absolutely fantastic. “I’ve been putting them on copies of the free papers that I find on the London Underground. You might want to as well.”

# 14th August 2010, 11:16 am / journalism, tom-scott, recovered

The Pac-Man Dossier. Exuberantly detailed. Everything from how collision detection works to the exact pathfinding and target selection algorithms used by the four different ghosts. There’s even a tutorial for playing the legendary 256th level, where an overflow bug corrupts one half of the screen.

# 11th August 2010, 11:20 am / game-design, games, recovered, pacman

Closure Compiler Service (via) A hosted version of the Google Closure Compiler (JavaScript minifier) running on App Engine. It has both a user interface and a REST API, which means you can use it as part of an automated build process without needing to set up a local copy of the software.

# 9th August 2010, 1:17 pm / apis, closure, google, javascript, minification, rest, recovered

Writing your own traceroute in Python. How to implement traceroute in Python, using the low-level socket module.

# 9th August 2010, 12:58 pm / networking, python, recovered, socket, traceroute

Airships: a second age. Telegraph profile of Hybrid Air Vehicles, a company that is building a new generation of ultra-lightweight airships at Cardington in Bedford, initially aimed at lengthy surveillance missions over Afghanistan.

# 9th August 2010, 12:34 pm / airships, zeppelins, recovered

Hookbox (via) For most web projects, I believe implementing any real-time comet features on a separate stack from the rest of the application makes sense—keep using Rails, Django or PHP for the bulk of the application logic, and offload any WebSocket or Comet requests to a separate stack built on top of something like Node.js, Twisted, EventMachine or Jetty. Hookbox is the best example of that philosophy I’ve yet seen—it’s a Comet server that makes WebHook requests back to your regular application stack to check if a user has permission to publish or subscribe to a given channel. “The key insight is that all application development with hookbox happens either in JavaScript or in the native language of the web application itself”.

# 29th July 2010, 9:48 am / comet, django, javascript, michael-carter, php, rails, webhooks, recovered, hookbox

canto.js: An Improved HTML5 Canvas API (via) Improved is an understatement: canto adds jQuery-style method chaining, the ability to multiple coordinates to e.g. lineTo at once, relative coordinate methods (regular Canvas does everything in terms of absolute coordinates), the ability to use degrees instead of radians, a rounded corner shortcut, a more convenient .revert() method and a simple parser that can understand SVG path expressions! The only catch: it uses getters and setters so won’t work in IE.

# 29th July 2010, 9:39 am / canvas, html5, javascript, svg, recovered, canto, david-flanagan

nodejitsu’s node-http-proxy (via) Exactly what I’ve been waiting for—a robust HTTP proxy library for Node that makes it trivial to proxy requests to a backend with custom proxy behaviour added in JavaScript. The example app adds an artificial delay to every request to simulate a slow connection, but other exciting potential use cases could include rate limiting, API key restriction, logging, load balancing, lint testing and more besides.

# 28th July 2010, 11:34 pm / http, javascript, nodejs, proxies, recovered

Jeremiah Grossman: I know who your name, where you work, and live. Appalling unfixed vulnerability in Safari 4 and 5 —if you have the “AutoFill web forms using info from my Address Book card” feature enabled (it’s on by default) malicious JavaScript on any site can steal your name, company, state and e-mail address—and would be able to get your phone number too if there wasn’t a bug involving strings that start with a number. The temporary fix is to disable that preference.

# 22nd July 2010, 8:44 am / apple, autocomplete, browsers, exploit, safari, security, vulnerability, recovered

What to do when PyPI goes down. My deployment scripts tend to rely on PyPI these days (they install dependencies in to a virtualenv) which makes me distinctly uncomfortable. Jacob explains how to use the PyPI mirrors that are starting to come online, but that won’t help if the PyPI listing links to an externally hosted file which starts to 404, as happened with the python-openid package quite recently (now fixed). The comments on the post discuss workarounds, including hosting your own PyPI mirror or bundling tar.gz files of your dependencies with your project.

# 21st July 2010, 10:19 am / deployment, jacob-kaplan-moss, packaging, pip, pypi, python, setuptools, recovered

[UPDATE] Spatial Search in Apache Lucene and Solr. Spacial search is finally coming (back) to Solr—trunk now supports sorting and boosting by distance.

# 20th July 2010, 6:28 pm / lucene, search, solr, recovered, spatialsearch

Easier custom Model Manager Chaining. A neat solution to the problem of wanting to write a custom QuerySet method (.published() for example) which is also available on that model’s objects manager, without having to write much boilerplate.

# 20th July 2010, 6:21 pm / django, orm, queryset, recovered

Three new features for reddit gold. Reddit’s experiments with a subscriber program are interesting to watch. 9,000 people signed up as subscribers without there being any benefit at all, and they’re now being rewarded with the ability to opt out of ads and access to computationally expensive features (like different ways of sorting their own user page) that wouldn’t scale for the entire user base.

# 20th July 2010, 5:54 pm / ads, reddit, scaling, recovered, subscriptions

Years

Tags