Blogmarks
Filters: Sorted by date
EditArea. Impressive JavaScript source code editor, with syntax highlighting, brace matching, search and replace and more.
JavaScript: It’s Just Not Validation! I like the explanation of JavaScript as offering input assistance rather than validation.
Chatting with Adrian Holovaty. Fabio Akita interviews Adrian about Django and related topics.
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.
OpenID and Google’s Blogger. Blogger gets it wrong by displaying a nickname derived from the OpenID URL (in Malcolm’s case, “blog”) instead of the user entered nickname.
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.
Hacky holidays on OS X. Jeremy Keith documents how to get PHP 5 and Apache 2 virtual hosts running on Leopard.
django-mptt (via) Jonathan Buchanan’s simple utility for performing Modified Preorder Tree Traversal (efficient tree operations in SQL) on Django models.
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.
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.
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.
EU: Microsoft’s Last Stand Against Google’s Acquisition of DoubleClick. Notable for some truly incomprehensible chartjunk from Microsoft.
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.
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.
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.
Is it Christmas? YES.
Google Reader ruins Christmas (via) New sharing feature automatically reveals shared items to Gmail contacts, causing political rows.
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.
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.
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.
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.
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.
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.
Speeding up dateutil: Python’s heapq module turns minutes into seconds. Neat case study in data structure optimisation.
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.
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.
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.”
Eventually Consistent. Werner Vogels explains the trade-offs involved in building scalable, highly-available data stores such as Amazon’s SimpleDB.
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.
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.