Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

Learning to Fear the Semantic Web. Paul Ford raises the liability issue with regards to building sites around other people’s metadata, pointing out that OpenCalais is owned by Thomson Reuters who have a bad track record with regards to intellectual property lawsuits elsewhere in the organisation.

# 23rd October 2008, 4:14 pm / intellectualproperty, opencalais, paul-ford, semanticweb, thomson-reuters

Windows Server and SQL Server on EC2 (via) Launched today, the pricing includes rental of the Windows license. Regular Windows is 25% to 50% more expensive than Linux, but SQL Server comes in at a hefty $1.10 per hour, which is $9636 per year (nearly three times as much as a Linux server running an open source database).

# 23rd October 2008, 3:54 pm / cloud-computing, ec2, open-source, pricing, sqlserver, windows

FriendFeed launch a real-time API. This is huge: JSONP plus long polling Comet, with “everything since X” tokens to ensure you don’t miss anything. This is the first open Comet API I’ve seen anywhere. Combine this with FriendFeed’s regular API (which allows arbitrary message posting) and you’ve got a really powerful tool for hackers who want to experiment with Comet without rigging up their own infrastructure.

# 22nd October 2008, 2:18 pm / apis, comet, friendfeed, javascript, json, jsonp, realtime

Animated Sorting Algorithms (via) JavaScript animations of various sorting algorithms, running against four different initial conditions (random, nearly ordered, reversed and few unique). I wish I’d had this during my computer science degree.

# 21st October 2008, 12:17 am / algorithms, animation, computer-science, sorting

From Scandinavia with Love. Finnish security company F-Secure conduct testing of wireless cell phone viruses in a walk-in Faraday cage.

# 20th October 2008, 11:47 pm / faradaycage, fsecure, ivankrstic, security

lns (via) “a friendly program for making symbolic links”—it’s ln -s but it does the right thing no matter what order you put the arguments in. Love it.

# 20th October 2008, 11:42 pm / cli, ln, lns, seanmburke, unix

Beanstalkd / Python Basic Tutorial. How to get up and running quickly with my favourite light-weight queue server. If only it had persistence...

# 20th October 2008, 11:40 pm / beanstalkd, message-queues, parand-tony-darugar, python

The Universal Design Pattern. Steve Yegge presents a small book on key/value pairs and prototypal inheritance. “I call it the Universal design pattern because it is (by far) the best known solution to the problem of designing open-ended systems, which in turn translates to long-lived systems.”

# 20th October 2008, 11:13 pm / design-patterns, keyvaluepairs, programming, prototypal-inheritance, steve-yegge

Response Splitting Risk. Important reminder that you should always ensure strings used in HTTP headers don’t contain newlines.

# 19th October 2008, 11:58 pm / http, rails, responsesplitting, security

Magnificent Seven—the value of Atom. The seven core things that Atom solves so that you don’t have to.

# 19th October 2008, 10:24 pm / atom, bill-de-hora, rest, xml

Bloom Filter Resources. A continuation of the discussion about how to transfer information about a large number of recently updated resources around in an efficient way, Joe provides working code illustrating a simple approach using bloom filters.

# 19th October 2008, 10:22 pm / bloom-filters, hashing, joe-gregorio, rest

FOWA London—Beyond GoogleMaps. Andrew Turner’s talk at FOWA was the most information dense presentation I’ve ever seen, and discussed a huge number of cool geo projects that I’d never previously heard of. Andrew links to the full slides and video, well worth a watch.

# 17th October 2008, 2:01 pm / andrew-turner, fowa2008, geo, google-maps, maps

Conditional classnames. Yahoo!’s internal coding standards still recommend CSS hacks over conditional comments because a separate stylesheet for IE imposes an additional HTTP request. Paul Hammond points out that you can use conditional comments to write out an extra class=“ie” attribute on the body element and use that to target the IE specific fixes in your stylesheets.

# 17th October 2008, 1:32 pm / css-classes, conditionalcomments, css, html, paul-hammond, yahoo

US shifts Visa Waiver Program authorization to Internet—Yahoo! News (via) If you’re a European travelling to the US from January 2009 you’ll need to fill out the online equivalent of an I-94W (the green form you get given on the plane) in advance. This is going to catch out a lot of people.

# 16th October 2008, 11:34 pm / travel, visas

Best Practices for OAuth with Fire Eagle. “We insist that you must NOT use embedded rendering controls to present the OAuth process with Yahoo! and Fire Eagle”—that’s a clear nod towards the iPhone development community.

# 16th October 2008, 11:23 pm / fireeagle, iphone, oauth

Go Get Yer Shiny New Yahoo Profile... And Make Some Connections! I’m surprised to see Yahoo! going with mutual friendships as the core of their new social platform—I’ve personally found social sites which support a one-way “follow” relationship far more useful.

# 16th October 2008, 7:05 pm / connections, follow, friends, social, techcrunch, yahoo

Soviet diribles. Pictures of Soviet dirigibles.

# 16th October 2008, 3:10 pm / airships, dirigibles, soviet

Data Scraping Wikipedia with Google Spreadsheets. I hadn’t played with =importHTML in Google spreadsheets, which lets you suck in data from an HTML table or list somewhere on the web. This tutorial takes it further, bringing Wikipedia, Yahoo! Pipes and KML in to the mix.

# 16th October 2008, 2:37 pm / google-docs, googlespreadsheet, importhtml, kml, mashups, scraping, wikipedia, yahoo-pipes

A Million-user Comet Application with Mochiweb, Part 1. Richard Jones explores Mochiweb, Erlang and linux kernel tuning for building a high performance comet server. Does this mean real-time web features are coming to last.fm?

# 16th October 2008, 2:16 pm / comet, erlang, lastfm, mochiweb, realtimeweb, richard-jones

Private Messages with cometD Chat. cometd-java (a Java servlet reference implementation of the Bayeux protocol) can be extended with BayeuxService subclasses that run within the server itself.

# 16th October 2008, 2:14 pm / bayeux, comet, cometd, cometdjava, java, javascript

View your FriendFeed in real-time. FriendFeed become the latest site to enable real-time updates using the long-polling variant of Comet. The real-time Web was something of a theme at this year’s FOWA, with talks on message queues, XMPP and scaling Comet at Meebo.

# 16th October 2008, 2:06 pm / comet, fowa2008, friendfeed, meebo, realtimeweb, xmpp

Page Inlink Analyzer (via) Here’s why I’m so keen on JSONP APIs—Eric Miraglia’s tool fires off dozens of cross-domain JSON requests to pull together information about inbound links to your site from Yahoo! Site Explorer and del.icio.us. I imagine it would have been uneconomic for him to provide the tool if it had to proxy every request through his own server.

# 15th October 2008, 5:23 pm / apis, delicious, eric-miraglia, javascript, json, jsonp

FOWA sketchnotes. Kai Chan Vong’s sketch notes from this year’s Future of Web Apps.

# 15th October 2008, 2:47 pm / fowa, fowa2008, future-of-web-apps, kaichanvong, sketchnotes

Announcing the New York Times Campaign Finance API (via) The New York Times have released their first data API, exposing campaign finance data from the Federal Election Commission.

# 15th October 2008, 2:05 pm / api, campaignfinance, new-york-times

Yahoo! Releases OpenID Research. Extremely valuable research, conducted with a group of typical Yahoo! users. OpenIDs usability remains bad, and if we don’t get it right soon something centralised like Facebook Connect will take over and the Web will stop being open.

# 14th October 2008, 4:59 pm / facebook, facebookconnect, openid, research, usability, yahoo

Minimal nginx conf to split get/post requests. Interesting idea for master-slave replication balancing where GET v.s. POST is load-balanced by nginx, presumably to different backend servers that are configured to talk to either a slave or a master. This won’t deal very will with replication lag though—you really want a user’s session to be bound to the master server for the next few GET requests after data is modified to ensure they see the effects of their updates. UPDATE: Amit fixed my complaint with a neat hack based around a cookie with a max age of 10 seconds.

# 14th October 2008, 4:33 pm / load-balancing, masterslave, mysql, nginx, replication

Browser Paint Events. The latest Firefox nightlies include a new MozAfterPaint event which fires after a portion of the page has been redrawn and provides co-ordinates of the affected rectangle. John Resig provides a neat bookmarklet that uses the new event to visualise repainting operations.

# 14th October 2008, 1:08 pm / firefox, javascript, john-resig, mozafterpaint, mozilla

asql—Apache SQL querying. Command line tool for loading web server log files in common log format in to a SQLite database, with a built-in interactive shell.

# 14th October 2008, 11:22 am / apache, asql, logs, sqlite

Versioning REST Web Services. Peter Williams suggests using a vendor MIME media type in the Accept header to specify a required API version, because embedding the API version in the URL itself leads to a single resource ending up with many different URLs, one for each API version.

# 13th October 2008, 12:45 pm / accept, contentnegotiation, http, peter-williams, rest, urls, versioning

Videos from FOWA 2008. The Carsonified team have a scarily fast turnaround on the videos from this year’s Future of Web Apps. Most of yesterday’s talks are already available to watch online, as a full talk or the edited highlight reel.

# 10th October 2008, 4:03 pm / carsonified, fowa2008, future-of-web-apps, video

Years

Tags