Latest writing
A year with WurQ
Five hurdles before the WOD, five more after, and I’m still logging.
Tetris, not U-turns
18 months of building PRzilla, one piece at a time
The Great Experiment
Two and a quarter drinks in thirty days, down from about forty a month. No rehab, no rock bottom. How the equilibrium between drinking and training broke.
Browse the archive
77 posts
2026
2025
2015
2014
2013
2012
- Profiling CSS for fun and profit Popular
2011
2010
- Global eval. What are the options?
- How ECMAScript 5 still does not allow to subclass array
- JScript and DOM changes in IE9 preview 3
- Tag is not an Element. Or is it?
- What's wrong with extending the DOM Popular
- Experimenting with HTML minifier Popular
- Javascript quiz Popular
- Understanding delete Popular
2009
- Optimizing HTML
- Moved to perfectionkills.com
- onload=function(){} considered harmful
- Foxify bookmarklet
- Sputniktests web runner
- Professional javascript review
- Whitespace deviations
- Detecting global variable leaks
- Safarify bookmarklet
- Named function expressions demystified
- Those tricky functions
- Feature testing CSS properties
- Detecting event support without browser sniffing
- DOMLint — resolving name conflicts
- Event delegation will save the world
- Detecting built-in host methods
- Misbehaving IE8
- instanceof considered harmful or how to write a robust isArray Popular
2008
2007
- Proto.IPS — In place select widget
- Proto.Menu gets facelift
- Cross-browser mouse events simulation
- It's coming
- Detect idle state with custom events
- Refactoring with Prototype
- So you want more documentation?
- Wrap it up
- Proto.Lazy – do we really need lazy image loading?
- with or without?
- Common mistakes and how to avoid them
- Extending the limits
- We dont need no stinkin new
- Meet Proto.Menu – simple context menu class
- How well do you know prototype (part II)