Simon Willison’s Weblog


January 2008

Jan. 1, 2008

This Week in Django podcast. Michael Trier’s been doing a really fantastic job putting together a Django podcast. The most recent episode (number 4) includes an update on the newforms-admin branch and a couple of handy tips.

# 10:44 am / django, michaeltrier, thisweekindjango, python, podcasts

Everyone applauds when Google goes after Microsoft's Office monopoly [...] but when they start to go after web non-profits like Wikipedia, you see where the ineluctible logic leads. As Google's growth slows, as inevitably it will, it will need to consume more and more of the web ecosystem, trading against its former suppliers, rather than distributing attention to them.

Tim O'Reilly

# 11:29 am / tim-oreilly, google, microsoft, wikipedia, competition

Chatting with Adrian Holovaty. Fabio Akita interviews Adrian about Django and related topics.

# 11:44 am / django, adrian-holovaty, python, fabioakita

JavaScript: It’s Just Not Validation! I like the explanation of JavaScript as offering input assistance rather than validation.

# 12:07 pm / javascript, validation, sitepoint, inputassistance

EditArea. Impressive JavaScript source code editor, with syntax highlighting, brace matching, search and replace and more.

# 12:09 pm / javascript, editarea, syntaxhighlighting, bracematching, editor

The technological future of the Web is in micro and macro structure. The approach to the micro is akin to proteins and surface binding--or, to put it another way, phenotropics and pattern matching. Massively parallel agents need to be evolved to discover how to bind onto something that looks like a blog post; a crumb-trail; a right-hand nav; a top 10 list; a review; an event description; search boxes.

Matt Webb

# 12:13 pm / matt-webb, web, microformats, phenotropics, patternmatching, agents

Jan. 2, 2008

Damien Katz: New Gig. IBM have employed Damien Katz to work full time on CouchDB. The work will be under the Apache license with the ASF owning the copyright.

# 8:35 pm / couchdb, ibm, damien-katz, apache, asf

Jan. 3, 2008

The strain due to the fact that most business desktops are locked into the Microsoft platform, at a time when both the Apple and GNU/Linux alternatives are qualitatively safer, better, and cheaper to operate, will start to become impossible to ignore.

Tim Bray

# 1:08 pm / tim-bray, predictions, microsoft, windows, linux, apple, osx

Undo commit in subversion. svn merge -r 1708:1707—I can never remember how to do this.

# 4:43 pm / svn, subversion, merge, undo “Standardized Data Portability is the next great frontier for the web. As users, our identity, photos, videos and other forms of personal data should be discoverable by, and shared between our chosen tools or vendors.”

# 4:49 pm / dataportability, portablesocialnetworks

For me, the big problem with Facebook is the plain fact that it's an extremely annoying piece of software. [...] The central issue for me is that Facebook suffers a severe reverse network effect: the more people who join, the less useful it becomes.

Ben Brown

# 4:50 pm / facebook, ben-brown

Do not treat Flickr photo IDs as integers (via) “The good news is, Flickr reached photo number 2147483647 yesterday. Go Flickr! The bad news is that number 2147483647 is the limit for signed integer data type.”

# 10:46 pm / flickr, integers, unsigned

Jan. 4, 2008

Django on Jython (via) Outstanding work from Jim Baker and the Jython team: Django now runs on the modern branch of Jython, with a couple of patches and some failed doctests due to dictionary order (a problem with Django’s test suite).

# 12:35 pm / django, jython, unittests, doctest

The Dark Side Of The Moon (via) Robert O’Callahan believes that Moonlight is a strategic mistake, because it gives credibility to Microsoft’s entry to a new market which they will use to “keep the competition on a treadmill”; Moonlight can also never be entirely free due to the need for a proprietary codec (VC-1) available only as a binary blob.

# 12:41 pm / moonlight, roberto-callahan, migueldeicaza, silverlight, microsoft, open-source, wc1, codecs, video, binaryblob

From my perspective, it is crucial for Linux to have good support for Silverlight because I do not want Linux on the desktop to become a second class citizen ever again. [...] The core of the debate is whether Microsoft will succeed in establishing Silverlight as a RIA platform or not. You believe that without Moonlight they would not have a chance of success, and I believe that they would have regardless of us.

Miguel de Icaza

# 12:42 pm / migueldeicaza, roberto-callahan, silverlight, moonlight, microsoft, open-source, linux, ria

HTTP Cache Channels (via) Interesting extension to the HTTP caching model by Mark Nottingham: caches can be told to subscribe to an Atom feed which alerts them to cached data that has gone stale. Group invalidation is also supported.

# 12:48 pm / mark-nottingham, caching, http, cachechannels, atom, squid

The data portability folks want to make it easy for you to jump from service to service. I want to make it easy for users of one service to talk to people on another service.

Dare Obasanjo

# 2:56 pm / dare-obasanjo, portablesocialnetworks, dataportability

Encoded Polyline Algorithm Format. Google Maps does some pretty crazy bit mangling to create compressed versions of lat/long pairs.

# 4:12 pm / google-maps, latlong, polyline, encoding

Jan. 6, 2008

XSS Vulnerabilities in Common Shockwave Flash Files. Is the word “shockwave” still relevant to Flash? Regardless, it turns out Flash can be a serious vector for XSS attacks, and many commonly used components have recently fixed holes (and hence should be updated ASAP).

# 9:35 am / flash, xss, security, shockwave

Filtering foreign key choices in newforms-admin. A nice introduction to the Django newform-admin branch, including an example of how to easily implement row-level permissions.

# 8:31 pm / django, newforms, newformsadmin, python, christian-joergensen

Django Tip: Complex Forms. Malcolm demonstrates some advanced tricks with newforms.

# 10:14 pm / newforms, django, python, malcolmtredinnick

IE7.js version 2.0 (beta). Dean Edwards has updated IE7, shifting enhancements that weren’t fixed by the real IE7 in to a new script called IE8. You can also now hotlink the library directly from Google’s servers, though I don’t know how intended Google Code’s subversion repository is for that purpose.

# 11:15 pm / google-code, goode, ie7, ie8, javascript, deanedwards

Jan. 7, 2008

20,000 Reasons Why Comet Scales. Greg Wilkins coaxes Jetty and Bayeux in to supporting 20,000 simultaneous users per server while maintaining sub-second latency, using Amazon EC2 to run the benchmark.

# 8:32 am / bayeux, jetty, java, comet, javascript, gregwilkins, performance, benchmarking, ec2

FUD and TurboGears. Not cool: the TurboGears guys have been targeted by some (hopefully not deliberate) FUD along the lines of “the author of the TurboGears book is using Django now”, based on Mark posting about his research in to other frameworks.

# 9:02 am / mark-ramm, python, turbogears, django, fud

Naming twins in Python and Perl. Simple anagram problem solved in Perl and Python, with a bunch more solutions in the comments. The C# solution provides an interesting example of LINQ in action.

# 11:03 am / linq, csharp, python, perl, brad-fitzpatrick, programming, anagrams

Google apps for your newsroom. How the LJ World team use online tools like Google Spreadsheet, Swivel, ManyEyes and Google MyMaps to collaborate with the newsroom and build data-heavy applications even faster.

# 9:24 pm / news, journalism, ljworld, django, manyeyes, google, mymaps, google-maps, google-calendar, google-docs, newsroom, collaboration, matt-croydon

Announcing StaticGenerator for Django. Simple but powerful static file generator for Django applications—just tell it about your model instances and it will create an entire static site based on calling get_absolute_url() on each one. Uses signals to repopulate the cache when a model changes.

# 9:26 pm / django, performance, static, caching, orm, staticgenerator, jared-kuolt

Job: Django developer in London. I’m consulting with GCap Media at the moment, who are looking to hire full-time Django developers in London for some really interesting projects. Please feel free to contact me directly with questions.

# 9:37 pm / django, jobs, gcapmedia, python

Flickr to Authenticate OpenID. Flickr /photos/username/ pages are now (almost) OpenIDs—they point at a new Yahoo!-wide OpenID server, but it hasn’t been switched on yet. It’s OpenID 2 only, presumably so Yahoo! can protect their users’ privacy by using directed identity to hide individual screen names.

# 10:48 pm / yahoo, flickr, openid, openid2

Yahoo!, Flickr, OpenID and Identity Projection

Via ReadWriteWeb, view source on a Flickr photostream page and search for “openid” and you’ll be rewarded with the following snippet:

[... 582 words]