Simon Willison’s Weblog

Subscribe

August 2007

Aug. 1, 2007

YUI 2.3.0. New components are a rich text editor, dojo-style package loader, lazy ImageLoader, colour picker and unit test framework. Easier skinning as well.

# 8:20 am / skinning, javascript, yui, dojo, testing

Java’s Fear of Commitment (via) How Java culture emphasises interfaces and layers of abstraction over solving problems directly.

# 10:32 am / java, django

Net::SSH revisited (via) Dependency injection (at least in Ruby) officially isn’t cool any more.

# 10:42 am / assaf-arkin, ruby, ssh, dependencyinjection, jamis-buck

Django, iCal and vObject. Easy iCal generation for Django using vObject.

# 11:09 am / vobject, derek-willis, django, python, ical

stomp.py. A Python client library for accessing ActiveMQ using the STOMP protocol. Pleasantly simple API for both sending and accepting messages.

# 1:50 pm / python, activemq, messaging, stomp

Aug. 2, 2007

Cabochon event server. Written in Python (on top of SQLObject and Paste), uses JSON for messages, allows event consumers to subscribe with a callback URL.

# 8:36 am / callbacks, python, sqlobject, paste, cabochon, events, json

Side-Channel Attacks and Security Theatre. “In order to mount most of these attacks the attacker must be local [...] every good security person knows that if your attacker has the ability to run stuff on your machine, it is game over, so why are we even caring about these attacks?”

# 12:30 pm / ben-laurie, security, sidechannel, openssl, securitytheatre

Your browser is a tcp/ip relay. Thoroughly nasty new(ish) attack that breaks the same-domain policy and allows intranet content to be stolen by a malicious site. Using virtual hosts (hence requiring the Host: header) is the best known protection.

# 12:53 pm / arturbergman, dnsrebinding, samedomain, security

(somewhat) breaking the same-origin policy by undermining dns-pinning. This is the best technical explanation of the DNS rebinding attack I’ve seen. The linked demo worked for me in Safari but not in Camino.

# 12:53 pm / dnsrebinding, camino, safari, security, samedomain

Professional Contractors Group. “PCG is the only cross-sector, not-for-profit trade association for freelance consultants and contractors.”—based in the UK.

# 11:27 pm / uk, freelancing, pcg, consulting

A nice example of when to use reduce in python. As a shortcut for assembling a large OR query using the Django ORM.

# 11:51 pm / orm, django, reduce, python

Aug. 6, 2007

The Wii Remote API. “allows the Web page to detect all Wii Remotes that are connected to the Wii [...] this makes it possible to make Web pages interact with up to four users at the same time, a concept not normally possible with traditional JavaScript event detection.”

# 9:32 pm / javascript, opera, wii

New A-GPS service for Nokia phones. Appears to look up your cell ID against a global database to find nearby satellites, dramatically reducing the time needed to get a GPS fix.

# 11:26 pm / gps, nokia, agps, location, cellid, mobile

VMware Fusion Review (via) It looks like VMware are finally catching up with Parallels.

# 11:49 pm / parallels, vmware, virtualization, osx

Aug. 7, 2007

Inline images are stored as data URI:s in the intermediate format (and usually also in the source documents), but since not all browsers support this format, the renderer replaces the data URI:s with HTTP pointers to an image cache directory.

Fredrik Lundh

# 10:52 am / django, datauri, http, fredrik-lundh

DNS Pinning Explained. With diagrams.

# 11:01 am / dnspinning, security

Sweet Gig. SitePen seek “R&D Associate” to have fun hacking on Open Source software and researching whatever they think is important.

# 2:47 pm / sitepen, alex-russell, jobs, open-source

ETags, ETags, ETags. They’re no magic bullet.

# 2:51 pm / etags, http, mark-nottingham

jQuery in 15 minutes. A quick introduction I put together. Much more interesting in conjunction with Firebug powered demos.

# 2:57 pm / jquery, javascript, torchbox, firebug

Bruce Schneier interviews Kip Hawley. The head of the Transportation Security Administration in conversation with one of his most eloquent critics.

# 3:23 pm / bruce-schneier, interview, kip-hawley, security, tsa

dbpedia.org. They scrape Wikipedia and extract useful information from it so you don’t have to.

# 3:24 pm / wikipedia, dbpedia, semanticweb

Dynamic Help in Web Forms. Luke Wroblewski catalogues patterns for providing contextual help.

# 4:01 pm / help, usability, lukewroblewski, forms

Atom Models. Building Python classes that act as utility wrappers around data stored in an lxml DOM object.

# 4:02 pm / lxml, dom, xml, python, ian-bicking, atom

CodePress. “Real Time Syntax Highlighting Editor written in JavaScript”.

# 10:49 pm / codepress, syntaxhighlighting, javascript

SproutCore (via) MVC JavaScript framework used to build the new .Mac Web Gallery application.

# 11:35 pm / ajax, javascript, mvc, apple, dotmac, bill-humphries

Aug. 8, 2007

Erlang fits all the characteristics of an OO system, even though sequential Erlang is a functional language, not an OO language

Ralph Johnson

# 7:47 pm / erlang, objectoriented, programming, java

Aug. 9, 2007

Why Tamarin instead of... Justification for Tamarin in Mozilla over Mono and the JVM. It mainly comes down to license compatibility and overall size.

# 12:43 pm / tamarin, mono, java, jvm, mozilla, john-resig, open-source

Background Iframe (bgiframe). jQuery plugin that inserts an iframe shim behind an element in IE, allowing the element to be positioned overlapping a select box without the select box showing through.

# 2:54 pm / jquery, internet-explorer, javascript, ie, select, brandon-aaron, iframes, plugins

Aug. 10, 2007

SynergyKM: The Missing GUI (via) An OS X GUI wrapper around Synergy, the excellent cross-platform software KVM.

# 12:04 am / synergy, synergykm, osx, kvm

WebCore Rendering I—The Basics. Dave Hyatt has started a series of posts explaining the internals of WebCore’s rendering system.

# 3:21 pm / dave-hyatt, safari, webcore, internals, browsers, html, css

2007 » August

MTWTFSS
  12345
6789101112
13141516171819
20212223242526
2728293031