<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.simonwillison.net/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb"><title>Simon Willison's Weblog</title><link href="http://simonwillison.net/" rel="alternate" /><id>http://simonwillison.net/</id><updated>2009-07-06T21:02:02Z</updated><author><name>Simon Willison</name></author><link rel="self" href="http://feeds.simonwillison.net/swn-everything" type="application/atom+xml" /><entry><title>A quote from Assaf Arkin
</title><link href="http://simonwillison.net/2009/Jul/6/labnotes/" rel="alternate" /><updated>2009-07-06T21:02:02Z</updated><id>http://simonwillison.net/2009/Jul/6/labnotes/</id><summary type="html">



&lt;div class="quote segment"&gt;&lt;blockquote cite="http://blog.labnotes.org/2009/07/06/rounded-corners-236-%u2014-loose-tweets-sink-fleets/"&gt;&lt;p&gt;Turns out, a lot of people are saddened by the loss of a spec they don’t understand, and if they did, would not bother using.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="cite"&gt; - &lt;a href="http://blog.labnotes.org/2009/07/06/rounded-corners-236-%u2014-loose-tweets-sink-fleets/"&gt;Assaf Arkin&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;


</summary><category term="assafarkin" /><category term="html5" /><category term="webstandards" /><category term="xhtml" /><category term="xhtml2" /></entry><entry><title>Tips on using python's datetime module
</title><link href="http://simonwillison.net/2009/Jul/6/datetime/" rel="alternate" /><updated>2009-07-06T14:20:12Z</updated><id>http://simonwillison.net/2009/Jul/6/datetime/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.enricozini.org/2009/debian/using-python-datetime/"&gt;Tips on using python’s datetime module&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="dates" /><category term="datetime" /><category term="python" /><category term="times" /></entry><entry><title>A quote from Henri Sivonen
</title><link href="http://simonwillison.net/2009/Jul/6/xhtml/" rel="alternate" /><updated>2009-07-06T12:46:23Z</updated><id>http://simonwillison.net/2009/Jul/6/xhtml/</id><summary type="html">



&lt;div class="quote segment"&gt;&lt;blockquote cite="http://hsivonen.iki.fi/xhtml2-html5-q-and-a/"&gt;&lt;p&gt;There are two meanings to XHTML: technical and marketing. The technical kind (XHTML served using the application/xhtml xml MIME type) is a formulation of HTML as an XML vocabulary. The marketing kind (XHTML served using the text/html MIME type) is processed just like HTML by browsers but the authors attempt to observe slightly different syntax rules in order to make it seem that they are doing something newer and shinier compared to HTML.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="cite"&gt; - &lt;a href="http://hsivonen.iki.fi/xhtml2-html5-q-and-a/"&gt;Henri Sivonen&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;


</summary><category term="buzzwords" /><category term="henrisivonen" /><category term="xhtml" /></entry><entry><title>An Unnofficial Q&amp;A about the Discontinuation of the XHTML2 WG
</title><link href="http://simonwillison.net/2009/Jul/6/unnofficial/" rel="alternate" /><updated>2009-07-06T12:27:18Z</updated><id>http://simonwillison.net/2009/Jul/6/unnofficial/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://hsivonen.iki.fi/xhtml2-html5-q-and-a/"&gt;An Unnofficial Q&amp;amp;A about the Discontinuation of the XHTML2 WG&lt;/a&gt;. By Henri Sivonen.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="faq" /><category term="henrisivonen" /><category term="html" /><category term="html2" /><category term="html5" /><category term="w3c" /><category term="webstandards" /><category term="xhtml" /></entry><entry><title>Evidence of OpenID at Amazon
</title><link href="http://simonwillison.net/2009/Jul/6/amazonopenid/" rel="alternate" /><updated>2009-07-06T01:25:17Z</updated><id>http://simonwillison.net/2009/Jul/6/amazonopenid/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://bit.ly/amazon-openid-demo"&gt;Evidence of OpenID at Amazon&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="amazon" /><category term="aws" /><category term="openid" /><category term="sso" /></entry><entry><title>A quote from Alan Storm
</title><link href="http://simonwillison.net/2009/Jul/4/alan/" rel="alternate" /><updated>2009-07-04T12:51:15Z</updated><id>http://simonwillison.net/2009/Jul/4/alan/</id><summary type="html">



&lt;div class="quote segment"&gt;&lt;blockquote cite="http://simonwillison.net/2009/Jul/4/xhtml/#c47024"&gt;&lt;p&gt;Yes, it’d be nice if everyone kept up to date on the progress of the various W3C working groups. They don’t. There are a lot of people who asked what professional markup looked like and were told (right or wrong) that XHTML was the future. So they went ahead and learned XHTML, built their websites and chose watching a DVD or spending time with their kids over watching Mark Pilgrim and Sam Ruby do battle over Postel’s Law. Now all of a sudden they’re told XHTML is dead. Some wailing and gnashing of teeth is to be expected. What’s needed is less “boy aren’t I smarter than them” snideness, and more Hey, here’s what’s up.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="cite"&gt; - &lt;a href="http://simonwillison.net/2009/Jul/4/xhtml/#c47024"&gt;Alan Storm&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;


</summary><category term="alanstorm" /><category term="html5" /><category term="markpilgrim" /><category term="postelslaw" /><category term="samruby" /><category term="w3c" /><category term="webstandards" /><category term="xhtml" /><category term="xhtml2" /></entry><entry><title>Jeffrey Zeldman: XHTML WTF
</title><link href="http://simonwillison.net/2009/Jul/4/xhtml/" rel="alternate" /><updated>2009-07-04T01:22:47Z</updated><id>http://simonwillison.net/2009/Jul/4/xhtml/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.zeldman.com/2009/07/02/xhtml-wtf/"&gt;Jeffrey Zeldman: XHTML WTF&lt;/a&gt;. Reading the comments, it’s scary how many people are totally ill-informed about HTML5 and XHTML5.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="education" /><category term="html5" /><category term="jeffreyzeldman" /><category term="webstandards" /><category term="xhtml5" /></entry><entry><title>FAQs about the future of XHTML
</title><link href="http://simonwillison.net/2009/Jul/3/xhtml/" rel="alternate" /><updated>2009-07-03T01:37:51Z</updated><id>http://simonwillison.net/2009/Jul/3/xhtml/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.w3.org/2009/06/xhtml-faq"&gt;FAQs about the future of XHTML&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="w3c" /><category term="webstandards" /><category term="xhtml" /><category term="xhtml2" /><category term="xhtml5" /></entry><entry><title>Newspaper Club - A work in progress
</title><link href="http://simonwillison.net/2009/Jul/2/newspaperclub/" rel="alternate" /><updated>2009-07-02T19:34:02Z</updated><id>http://simonwillison.net/2009/Jul/2/newspaperclub/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://blog.newspaperclub.co.uk/"&gt;Newspaper Club—A work in progress&lt;/a&gt;. “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.”&lt;/p&gt;
&lt;/div&gt;




</summary><category term="newspaperclub" /><category term="newspapers" /><category term="tomtaylor" /></entry><entry><title>Video for Everybody!
</title><link href="http://simonwillison.net/2009/Jul/2/camen/" rel="alternate" /><updated>2009-07-02T19:33:02Z</updated><id>http://simonwillison.net/2009/Jul/2/camen/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://camendesign.com/code/video_for_everybody#video-code"&gt;Video for Everybody!&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="codecs" /><category term="encoding" /><category term="h264" /><category term="hacks" /><category term="handbrake" /><category term="html" /><category term="html5" /><category term="kroccamen" /><category term="ogg" /><category term="video" /></entry><entry><title>Modernizr
</title><link href="http://simonwillison.net/2009/Jul/2/modernizr/" rel="alternate" /><updated>2009-07-02T10:56:47Z</updated><id>http://simonwillison.net/2009/Jul/2/modernizr/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.modernizr.com/"&gt;Modernizr&lt;/a&gt; (&lt;a href="http://ajaxian.com/archives/modernizr-html5-and-css3-detection" title="Ajaxian"&gt;via&lt;/a&gt;). 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="css" /><category term="farukates" /><category term="html5" /><category term="javascript" /><category term="modernizr" /></entry><entry><title>Codecs for &lt;audio&gt; and &lt;video&gt;
</title><link href="http://simonwillison.net/2009/Jul/2/codecs/" rel="alternate" /><updated>2009-07-02T10:16:58Z</updated><id>http://simonwillison.net/2009/Jul/2/codecs/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-June/020620.html"&gt;Codecs for &amp;lt;audio&amp;gt; and &amp;lt;video&amp;gt;&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="audio" /><category term="chromium" /><category term="codecs" /><category term="google" /><category term="h264" /><category term="html5" /><category term="ianhickson" /><category term="mozilla" /><category term="ogg" /><category term="patents" /><category term="theora" /><category term="video" /></entry><entry><title>PubSub-over-Webhooks with RabbitHub
</title><link href="http://simonwillison.net/2009/Jul/1/pubsuboverwebhooks/" rel="alternate" /><updated>2009-07-01T20:22:52Z</updated><id>http://simonwillison.net/2009/Jul/1/pubsuboverwebhooks/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.lshift.net/blog/2009/06/30/pubsub-over-webhooks-with-rabbithub"&gt;PubSub-over-Webhooks with RabbitHub&lt;/a&gt;. RabbitMQ, the Erlang-powered AMQP message queue, is growing an HTTP interface based on webhooks and PubSubHubBub.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="amqp" /><category term="erlang" /><category term="http" /><category term="messagequeues" /><category term="pubsubhubbub" /><category term="rabbitmq" /><category term="webhooks" /></entry><entry><title>Address Extractor
</title><link href="http://simonwillison.net/2009/Jul/1/address/" rel="alternate" /><updated>2009-07-01T20:03:11Z</updated><id>http://simonwillison.net/2009/Jul/1/address/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://addressextract.appspot.com/"&gt;Address Extractor&lt;/a&gt;. Running on App Engine, an address extractor web service using code from the EveryBlock open source release.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="addressextractor" /><category term="appengine" /><category term="everyblock" /><category term="python" /></entry><entry><title>EveryBlock source code released
</title><link href="http://simonwillison.net/2009/Jul/1/everyblock/" rel="alternate" /><updated>2009-07-01T20:01:23Z</updated><id>http://simonwillison.net/2009/Jul/1/everyblock/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://blog.everyblock.com/2009/jun/30/source/"&gt;EveryBlock source code released&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="django" /><category term="everyblock" /><category term="gis" /><category term="gpl" /><category term="opensource" /><category term="postgresql" /><category term="python" /></entry><entry><title>Using Mongo for Real-Time Analytics
</title><link href="http://simonwillison.net/2009/Jun/30/analytics/" rel="alternate" /><updated>2009-06-30T19:28:43Z</updated><id>http://simonwillison.net/2009/Jun/30/analytics/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.10gen.com/blog/2009/3/using-mongo-for-real-time-analytics"&gt;Using Mongo for Real-Time Analytics&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="counters" /><category term="databases" /><category term="increment" /><category term="mongodb" /><category term="upsert" /></entry><entry><title>MongoDB
</title><link href="http://simonwillison.net/2009/Jun/30/mongodb/" rel="alternate" /><updated>2009-06-30T19:13:04Z</updated><id>http://simonwillison.net/2009/Jun/30/mongodb/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.mongodb.org/"&gt;MongoDB&lt;/a&gt;. 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”.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="couchdb" /><category term="documentstore" /><category term="europython" /><category term="json" /><category term="keyvaluestore" /><category term="mongodb" /><category term="nonrelationaldatabase" /><category term="osx" /></entry><entry><title>Firefox 3.5 for developers
</title><link href="http://simonwillison.net/2009/Jun/30/firefox/" rel="alternate" /><updated>2009-06-30T18:08:34Z</updated><id>http://simonwillison.net/2009/Jun/30/firefox/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="https://developer.mozilla.org/en/Firefox_3.5_for_developers"&gt;Firefox 3.5 for developers&lt;/a&gt;. 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!&lt;/p&gt;
&lt;/div&gt;




</summary><category term="audio" /><category term="browsers" /><category term="canvas" /><category term="crossdomain" /><category term="csstransforms" /><category term="dragndrop" /><category term="firefox" /><category term="firefox35" /><category term="fonts" /><category term="geolocation" /><category term="html5" /><category term="javascript" /><category term="json" /><category term="localstorage" /><category term="mozilla" /><category term="offlineresources" /><category term="performance" /><category term="textshadow" /><category term="tracemonkey" /><category term="video" /><category term="webworkers" /></entry><entry><title>cache-money
</title><link href="http://simonwillison.net/2009/Jun/28/cachemoney/" rel="alternate" /><updated>2009-06-28T15:17:30Z</updated><id>http://simonwillison.net/2009/Jun/28/cachemoney/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://github.com/nkallen/cache-money/tree/master"&gt;cache-money&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="activerecord" /><category term="cachemoney" /><category term="caching" /><category term="memcached" /><category term="rails" /><category term="twitter" /></entry><entry><title>Twitter, an Evolving Architecture
</title><link href="http://simonwillison.net/2009/Jun/28/twitter/" rel="alternate" /><updated>2009-06-28T15:09:44Z</updated><id>http://simonwillison.net/2009/Jun/28/twitter/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.infoq.com/news/2009/06/Twitter-Architecture"&gt;Twitter, an Evolving Architecture&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="architecture" /><category term="caching" /><category term="memcached" /><category term="twitter" /></entry><entry><title>BashReduce
</title><link href="http://simonwillison.net/2009/Jun/28/bashreduce/" rel="alternate" /><updated>2009-06-28T15:03:15Z</updated><id>http://simonwillison.net/2009/Jun/28/bashreduce/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://rcrowley.org/2009/06/27/bashreduce"&gt;BashReduce&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="bash" /><category term="bashreduce" /><category term="mapreduce" /><category term="opendns" /><category term="richardcrowley" /></entry><entry><title>What's New In Python 3.1
</title><link href="http://simonwillison.net/2009/Jun/28/python31/" rel="alternate" /><updated>2009-06-28T15:02:09Z</updated><id>http://simonwillison.net/2009/Jun/28/python31/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://docs.python.org/3.1/whatsnew/3.1.html"&gt;What’s New In Python 3.1&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="performance" /><category term="python" /><category term="python3" /><category term="python31" /><category term="releases" /></entry><entry><title>The Resource Expert Droid
</title><link href="http://simonwillison.net/2009/Jun/25/red/" rel="alternate" /><updated>2009-06-25T10:06:10Z</updated><id>http://simonwillison.net/2009/Jun/25/red/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.mnot.net/blog/2009/06/25/RED"&gt;The Resource Expert Droid&lt;/a&gt;. Like the HTML Validator but for your server’s HTTP headers—extremely useful.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="headers" /><category term="http" /><category term="marknottingham" /><category term="resourceexpertdroid" /><category term="validator" /></entry><entry><title>Four crowdsourcing lessons from the Guardian's (spectacular) expenses-scandal experiment
</title><link href="http://simonwillison.net/2009/Jun/24/four/" rel="alternate" /><updated>2009-06-24T15:31:59Z</updated><id>http://simonwillison.net/2009/Jun/24/four/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.niemanlab.org/2009/06/four-crowdsourcing-lessons-from-the-guardians-spectacular-expenses-scandal-experiment/"&gt;Four crowdsourcing lessons from the Guardian’s (spectacular) expenses-scandal experiment&lt;/a&gt;. Michael Andersen from the Nieman Journalism Lab interviewed me about the MP expenses crowdsourcing site.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="crowdsourcing" /><category term="guardian" /><category term="interviews" /><category term="mpsexpences" /></entry><entry><title>Test-Driven Heresy
</title><link href="http://simonwillison.net/2009/Jun/24/heresy/" rel="alternate" /><updated>2009-06-24T11:03:44Z</updated><id>http://simonwillison.net/2009/Jun/24/heresy/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2009/06/23/TDD-Heresy"&gt;Test-Driven Heresy&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="tdd" /><category term="testing" /><category term="timbray" /><category term="unittests" /></entry><entry><title>A quote from Auren Hoffman
</title><link href="http://simonwillison.net/2009/Jun/24/engineers/" rel="alternate" /><updated>2009-06-24T11:00:47Z</updated><id>http://simonwillison.net/2009/Jun/24/engineers/</id><summary type="html">



&lt;div class="quote segment"&gt;&lt;blockquote cite="http://www.techcrunch.com/2009/06/23/engineers-are-the-best-deal-so-stock-up-on-them/"&gt;&lt;p&gt;Software engineers today are about 200-400% more productive than software engineers were 10 years ago because of open source software, better programming tools, common libraries, easier access to information, better education, and other factors. This means that one engineer today can do what 3-5 people did in 1999!&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="cite"&gt; - &lt;a href="http://www.techcrunch.com/2009/06/23/engineers-are-the-best-deal-so-stock-up-on-them/"&gt;Auren Hoffman&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;


</summary><category term="aurenhoffman" /><category term="engineers" /><category term="opensource" /><category term="productivity" /></entry><entry><title>To Sprite Or Not To Sprite
</title><link href="http://simonwillison.net/2009/Jun/24/sprites/" rel="alternate" /><updated>2009-06-24T10:33:24Z</updated><id>http://simonwillison.net/2009/Jun/24/sprites/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://blog.vlad1.com/2009/06/22/to-sprite-or-not-to-sprite/"&gt;To Sprite Or Not To Sprite&lt;/a&gt;. 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.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="css" /><category term="csssprites" /><category term="performance" /><category term="velocityconference" /></entry><entry><title>A quote from Jared Spool, via Jeremy Keith
</title><link href="http://simonwillison.net/2009/Jun/22/amazon/" rel="alternate" /><updated>2009-06-22T17:13:43Z</updated><id>http://simonwillison.net/2009/Jun/22/amazon/</id><summary type="html">



&lt;div class="quote segment"&gt;&lt;blockquote cite="http://adactio.com/journal/1586"&gt;&lt;p&gt;You can buy an iPod nano on Apple, Best Buy, etc. for about $149. Amazon sells it for $134. That’s probably cost price. It turns out that Amazon can sell almost everything at cost price and still make a product because of volume. It’s all down to the Negative Operating Cycle. Amazon turns over its inventory every 20 days whereas Best Buy takes 74 days. Standard retail term payments take 45 days. So Best Buy is in debt between day 45 and day 74. Amazon, on the other hand, are sitting on cash between day 20 and day 45. In that time, they can invest that money. That’s where their profit comes from.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="cite"&gt; - &lt;a href="http://adactio.com/journal/1586"&gt;Jared Spool, via Jeremy Keith&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;


</summary><category term="amazon" /><category term="aneventapart" /><category term="bestbuy" /><category term="investing" /><category term="jaredspool" /><category term="jeremykeith" /></entry><entry><title>Google asked people in Times Square:"What is a browser?"
</title><link href="http://simonwillison.net/2009/Jun/20/despair/" rel="alternate" /><updated>2009-06-20T01:25:30Z</updated><id>http://simonwillison.net/2009/Jun/20/despair/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://thenextweb.com/2009/06/19/google-asked-people-times-square-browser-responses-shock/"&gt;Google asked people in Times Square:“What is a browser?”&lt;/a&gt;. 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...&lt;/p&gt;
&lt;/div&gt;




</summary><category term="browsers" /><category term="google" /><category term="realhumans" /><category term="security" /><category term="usability" /></entry><entry><title>The breakneck race to build an application to crowdsource MPs' expenses
</title><link href="http://simonwillison.net/2009/Jun/19/breakneck/" rel="alternate" /><updated>2009-06-19T22:16:04Z</updated><id>http://simonwillison.net/2009/Jun/19/breakneck/</id><summary type="html">

&lt;div class="blogmark segment"&gt;&lt;p&gt;&lt;a href="http://www.guardian.co.uk/politics/2009/jun/18/mps-expenses-crowdsourcing-app"&gt;The breakneck race to build an application to crowdsource MPs’ expenses&lt;/a&gt;. Charles Arthur wrote up a very nice piece on the development effort behind the Guardian’s crowdsourcing expenses app.&lt;/p&gt;
&lt;/div&gt;




</summary><category term="charlesaurthur" /><category term="crowdsourcing" /><category term="guardian" /><category term="mpsexpenses" /></entry></feed>
