Blogmarks
Filters: Sorted by date
The World Beard and Moustache Championships 2007. In Brighton on the 1st of September, tickets are a fiver. Unfortunately we’re moving that day so we probably can’t make it.
Lazy Function Definition Pattern. Neat JavaScript trick: redefine a function the first time it’s called, for example to switch in different browser implementations based on object detection.
AOL & OpenID—Status Update. It looks like they’re whitelisting a small list of providers for the moment. I’m not sure what this means for delegation.
AuditTrail. Add change tracking and history to a Django model with a single line of code. Doesn’t handle relationships though, which is definitely the toughest part of this problem.
Emerging consensus in favour of a unified document format standard? A call to arms from Mark Shuttleworth—help convince ISO to adopt ODF as a single unified document format standard.
List anonymous wikipedia edits from interesting organizations (via) See anonymous edits from CIA IP addresses, Fox News and more.
Finding Lookup Items that Are Not Used. How to do left outer joins (and other custom SQL) using the Django ORM.
Blueprint. A CSS Framework. I’ve been trying to articulate why I’ve started to think that structural class names are a necessary evil in the comments.
Ubuntu -- python-django. Sweet, Django 0.96 is packaged for Ubuntu Gutsy.
WebCore Rendering I—The Basics. Dave Hyatt has started a series of posts explaining the internals of WebCore’s rendering system.
SynergyKM: The Missing GUI (via) An OS X GUI wrapper around Synergy, the excellent cross-platform software KVM.
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.
Why Tamarin instead of... Justification for Tamarin in Mozilla over Mono and the JVM. It mainly comes down to license compatibility and overall size.
SproutCore (via) MVC JavaScript framework used to build the new .Mac Web Gallery application.
CodePress. “Real Time Syntax Highlighting Editor written in JavaScript”.
Atom Models. Building Python classes that act as utility wrappers around data stored in an lxml DOM object.
Dynamic Help in Web Forms. Luke Wroblewski catalogues patterns for providing contextual help.
dbpedia.org. They scrape Wikipedia and extract useful information from it so you don’t have to.
Bruce Schneier interviews Kip Hawley. The head of the Transportation Security Administration in conversation with one of his most eloquent critics.
jQuery in 15 minutes. A quick introduction I put together. Much more interesting in conjunction with Firebug powered demos.
ETags, ETags, ETags. They’re no magic bullet.
Sweet Gig. SitePen seek “R&D Associate” to have fun hacking on Open Source software and researching whatever they think is important.
DNS Pinning Explained. With diagrams.
VMware Fusion Review (via) It looks like VMware are finally catching up with Parallels.
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.
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.”
A nice example of when to use reduce in python. As a shortcut for assembling a large OR query using the Django ORM.
Professional Contractors Group. “PCG is the only cross-sector, not-for-profit trade association for freelance consultants and contractors.”—based in the UK.
(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.
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.