Simon Willison’s Weblog

Subscribe

December 2007

Dec. 19, 2007

Misapplying book terms, Pylons, and the ’end-user’. Ben Bangert responds to Adam Gomaa’s claim that Pylons lacks “conceptual integrity”.

# 11:09 am / adam-gomaa, ben-bangert, pylons, python

OGN5: Wednesday February 6, 2008. Great line-up for the next Oxford Geek Night: Rufus Pollock and Denise Wilton.

# 5:45 pm / oxfordgeeknight, ogn5, denisewilton, rufuspollock, events

Dec. 20, 2007

I don't even use Firefox and Firebug anymore, the revised Web Inspector in Leopard has been incorporated in Coda and that does everything I need and more.

Jon Hicks

# 3:09 pm / firebug, firefox, html, jon-hicks, leopard, software, debugging, css, coda, webinspector

IE8 Passes Acid2 Test. This is huge. As Kevin Yank points out, this means IE8 includes proper support for the object tag, CSS table layout properties and generated content.

# 3:11 pm / css, ie8, web-standards, acid2, kevinyank, tablelayout, generatedcontent, object

Design. A very fancy suite of design tools wrapped up in a bookmarklet (that loads an external script). Includes grids, rulers, measurements and a crosshair.

# 4:53 pm / design, bookmarklets, allan-jardine, grids

Eventually Consistent. Werner Vogels explains the trade-offs involved in building scalable, highly-available data stores such as Amazon’s SimpleDB.

# 5:59 pm / eventuallyconsistent, simpledb, amazon, scaling, wernervogels

Maven: Broken By Design. Charles Miller: “If you check out a particular version of your code and build it with particular versions of your tools, you should get a product that is binary-identical each time.”

# 8:24 pm / maven, charles-miller, buildtools, java

Dec. 21, 2007

Using Unipath to Keep Things Portable. Django tip to avoid hard-coding full paths. I usually set a global called OUR_ROOT in settings.py using os.path.dirname(__file__) and use os.path.join with it to construct any other paths that I need.

# 10:45 am / django, python, unipath, michael-trier, settings

Dec. 22, 2007

Pvote (via) Electronic voting machine software in 460 lines of highly readable Python (using Pygame), implemented by Ka-Ping Yee for his doctoral dissertation. Demonstrates prerendering, where as much of the UI as possible is defined in a separate ballot definition file.

# 1:04 pm / electronicvoting, evoting, ka-ping-yee, python, pygame, pvote

Dec. 23, 2007

Johnny Chung Lee: Projects Wii. Awe-inspiring hardware hacks built on top of the Wiimote, including a dirt cheap interactive whiteboard and a head tracking system that turns a normal display in to a 3D VR environment.

# 9:23 am / wiimote, wii, johnny-chung-lee, hardware-hacking, make, hardware, 3d, vr

5 ways to break past the San Francisco echo-chamber. I like the idea of using the square-footage allocated to different things in Walmart to get an idea for what’s popular outside of geekdom.

# 9:37 am / walmart, andrew-chen, geeks, nongeeks

Quantcast top 100 US sites (via) The vast majority of the top 100 attract a more female than male audience. Digg is one notable exception.

# 9:43 am / quantcast, advertising, demographics, digg

WebOb. WebOb is “an extraction and refinement of pieces from Paste”—provides a very nice request and response object, clearly inspired partly by Django. The documentation includes the differences between the WebOb API and that of other frameworks.

# 10:22 am / python, webob, paste, ian-bicking, django, frameworks

Dec. 24, 2007

Size Is The Enemy. Jeff Atwood: “I’ve started a cottage industry mining Steve [Yegge]’s insanely great but I-hope-you-have-
an-hour-to-kill writing and condensing it into its shorter form points.” Lots of verbose static typing apologists in the comments.

# 10:50 am / dynamiclanguages, statictyping, python, jeff-atwood, steve-yegge, java

IPy. Handy Python module for manipulating IP addresses—use IP(ip_addr).iptype() == ’PUBLIC’ to check that an address isn’t in a private address range.

# 1:19 pm / ipy, ipaddresses, ip, networking, python, security

Dec. 25, 2007

Google Reader ruins Christmas (via) New sharing feature automatically reveals shared items to Gmail contacts, causing political rows.

# 2:59 pm / google-reader, sharing, politics, socialnetworking, google, privacy

Dec. 26, 2007

Ruby 1.9—Right for You? Dave Thomas on the just-released Ruby 1.9. It’s a development release that breaks backwards compatibility in a few minor ways, but new features include the YARV virtual machine (hence significant speed improvements) and unicode support via associating encodings with bytestrings.

# 12:09 pm / bytestrings, dave-thomas, ruby, rubi19, yarv, performance, unicode

David Airey: Google’s Gmail security failure leaves my business sabotaged (via) Gmail had a CSRF hole a while ago that allowed attackers to add forwarding filter rules to your account. David Airey’s domain name was hijacked by an extortionist who forwarded the transfer confirmation e-mail on to themselves.

# 12:16 pm / csrf, google, gmail, security, david-airey

Boxing Day toy discovery: Mega Bloks not compatible with Duplo! See, Alex Russell? THIS IS WHAT HAPPENS WHEN YOU INNOVATE AHEAD OF STANDARDS

Yoz Grahame

# 5:58 pm / alex-russell, lego, duplo, megabloks, standards, web-standards, twitter, yozgrahame

Django and Comet. How to build a chat application using Django and the Orbited comet server. Orbited can be set up to proxy most requests through to a Django backend while handling any comet requests itself.

# 9:05 pm / comet, django, orbited, javascript, python

Dec. 27, 2007

EU: Microsoft’s Last Stand Against Google’s Acquisition of DoubleClick. Notable for some truly incomprehensible chartjunk from Microsoft.

# 12:26 pm / microsoft, chartjunk, eu, google, doubleclick

Dec. 28, 2007

I definitely like Python 3K's Unicode support better [...] In fact, I think I prefer Ruby 1.8's non-support for Unicode over Ruby 1.9's "support". The problem is one that is all to familiar to Python programmers. You can have a fully unit tested library and have somebody pass you a bad string, and you will fall over.

Sam Ruby

# 7:05 pm / ruby, sam-ruby, unicode, python, unittesting, ruby19, rubi18

The backdooring of SquirrelMail. A SquirrelMail developer’s account was compromised and used to insert a backdoor: the other developers initially missed the hole because it used $_SERVER[’HTTP_BASE_PATH’], which can be set with a Base-Path: HTTP header.

# 11:40 pm / http, php, squirrelmail, backdoor, security

Fluid. Another site-specific browser toolkit for OS X (Leopard only), from Todd Ditchendorf. Again, it’s not clear if this does the Right Thing and creates separate cookie jars for every application.

# 11:42 pm / fluid, cookies, sitespecificbrowsers, toddditchendorf, osx, leopard

Web design 2.0—it’s all about the resource and its URL. The fact that the BBC is now building things against this kind of theoretical basis is immensely exciting.

# 11:47 pm / bbc, urls

Dec. 29, 2007

django-mptt (via) Jonathan Buchanan’s simple utility for performing Modified Preorder Tree Traversal (efficient tree operations in SQL) on Django models.

# 11:33 am / modifiedpreordertreetraversal, mptt, django, python, djangoorm, models, jonathan-buchanan, sql

Hacky holidays on OS X. Jeremy Keith documents how to get PHP 5 and Apache 2 virtual hosts running on Leopard.

# 11:49 am / leopard, osx, apache, jeremy-keith, php, php5, apache2, virtualhosts

Sam Ruby: Ruby 1.9 Strings—Updated. A follow up to yesterday’s post: Sam’s principle complaints about Ruby 1.9’s character encoding support were down to a bug which has now been fixed.

# 7:34 pm / sam-ruby, ruby19, unicode

2007 » December

MTWTFSS
     12
3456789
10111213141516
17181920212223
24252627282930
31