Musings and scribbles
- What’s in a name? Jul 5, 2020
 - Clean Code in JavaScript Feb 9, 2020
 - Hobbyist to Engineer Feb 1, 2019
 - Teaching the web platform: theories and observations Mar 21, 2016
 - Good Interview Vibes Mar 14, 2016
 - The User; The Programmer; Aug 17, 2015
 - Email aliasing in Google Apps Apr 7, 2015
 - Fuzzy Scoring Regex Mayhem Mar 7, 2015
 - Perpetual Obsolescence, Candy & Grit Jan 30, 2015
 - Software industry myths Apr 6, 2014
 - Montaigne, on software Jan 4, 2014
 - What is React? Dec 31, 2013
 - The Value of Testing Dec 16, 2013
 - A thousand listeners… Nov 20, 2013
 - There is no directive Aug 18, 2013
 - Straight-up interpolation Aug 12, 2013
 - Semantic HTML is dying Aug 4, 2013
 - “Free Culture” Resources Aug 1, 2013
 - Abstracting The Web Worker: Operative Jul 18, 2013
 - Cargo-culting in JavaScript May 25, 2013
 - Sonic & The State Of Spinners Mar 31, 2013
 - How to deal with bad code Mar 23, 2013
 - Building SIML: A new markup language Mar 17, 2013
 - Permissive user input validation Jan 27, 2013
 - Who maintains your JS? Jan 5, 2013
 - JS adolescence Nov 13, 2012
 - Character saving trickery and bitwise revelations Aug 30, 2012
 - What JS devs seem to care about Aug 27, 2012
 - IIFE argument madness Jul 6, 2012
 - Replacing text in the DOM… solved? Jul 3, 2012
 - HTML7 arrives! Jun 8, 2012
 - Move that parenthesis! May 6, 2012
 - Zerg rush in JavaScript Apr 27, 2012
 - The insecurity of being wrong Apr 9, 2012
 - jQuery EventEmitter Apr 7, 2012
 - The pursuit of free knowledge Mar 21, 2012
 - Programming exchange feedback Mar 11, 2012
 - Programming skill exchange (survey) Mar 4, 2012
 - Ordering variable declarations Mar 1, 2012
 - Intellectual property Jan 22, 2012
 - Using proxies to mimic existential-operator behaviour Jan 1, 2012
 - Making APIs is hard Dec 22, 2011
 - Beware of passion voids Nov 22, 2011
 - Rampant Callback Syndrome Nov 20, 2011
 - JSAPI.info Nov 1, 2011
 - Terse JavaScript 101 – part 2 Oct 29, 2011
 - Truthy & Falsey Oct 19, 2011
 - Terse JavaScript 101 – part 1 Oct 18, 2011
 - The Absolute Silence Oct 16, 2011
 - Is negativity a problem? Oct 13, 2011
 - GiveCampUK 2011 Oct 1, 2011
 - Subclassing jQuery Sep 11, 2011
 - JavaScript and DOM API fuss Aug 28, 2011
 - Sonic – looping loaders Aug 26, 2011
 - Amazon Kindle: review Aug 12, 2011
 - `.match()` trick Jul 10, 2011
 - JavaScript interview questions Jun 7, 2011
 - Farewell to Isara, Nong Khai and Thailand Apr 27, 2011
 - It was all fiction… Apr 17, 2011
 - BUJS #1 – getParameterByName Mar 1, 2011
 - Isara’s new management system Feb 20, 2011
 - Isara + CodeIgniter = ? Jan 3, 2011
 - What am I doing? Dec 8, 2010
 - Detect IE in JS using conditional comments Aug 20, 2010
 - Dear .NET Jul 26, 2010
 - Replacing text in the DOM… it’s not that simple! Jul 7, 2010
 - Creating fairies Jun 1, 2010
 - Questioning non UI events Apr 29, 2010
 - Another JavaScript quiz Apr 27, 2010
 - Library foundation code Apr 26, 2010
 - 76 bytes for faster jQuery Mar 31, 2010
 - Labelled blocks, useful? Mar 23, 2010
 - Sorting elements with jQuery Mar 19, 2010
 - jQuery: Novice to Ninja Feb 26, 2010
 - Double bitwise NOT (~~) Feb 15, 2010
 - Under jQuery’s bonnet Jan 31, 2010
 - jQuery Lint Jan 18, 2010
 - Cross-domain requests with jQuery Jan 12, 2010
 - jQuery code smells Jan 5, 2010
 - Macros in jQuery Dec 26, 2009
 - Gapless wall of images Dec 20, 2009
 - Easing in jQuery 1.4a2 Dec 19, 2009
 - Simple pulse plugin for jQuery Dec 16, 2009
 - Who won a jQuery cookbook!? Dec 11, 2009
 - The jQuery Cookbook Dec 8, 2009
 - Anti-patterns in the making Dec 4, 2009
 - Introducing “SiteTraverser” Dec 2, 2009
 - Getting fancy with easing Nov 20, 2009
 - JavaScript is the icing! Nov 16, 2009
 - Partial loop “unrolling” Nov 13, 2009
 - Achieve jQuery enlightenment Oct 31, 2009
 - Pong, and what it taught me Oct 29, 2009
 - JSON is not the same as JSON Oct 17, 2009
 - JavaScript comment removal – revisited Sep 11, 2009
 - jQuery plugins are broken! Sep 10, 2009
 - Contextual SCRIPT tags Aug 31, 2009
 - Satisfy that selector! Aug 20, 2009
 - Express yourself! Aug 19, 2009
 - JavaScript: Bad Practices Aug 17, 2009
 - Third party JavaScript – an improvement Aug 11, 2009
 - Introducing “mini” Aug 9, 2009
 - Zakas’ JavaScript performance tips Aug 8, 2009
 - jQuery.fn.map enhancement Aug 7, 2009
 - Fun with jQuery’s “animate()” Jul 26, 2009
 - Avoiding DOM flickering Jul 23, 2009
 - Trying to learn Java Jul 22, 2009
 - Recursive “pretty date” Jul 19, 2009
 - Closures in JavaScript Jul 16, 2009
 - String.prototype.extract Jul 14, 2009
 - Take a stand against IE! Jul 12, 2009
 - Special scroll events for jQuery Jul 10, 2009
 - How to avoid switch-case syndrome Jul 4, 2009
 - Retaining a reference, the simple way Jun 27, 2009
 - “wordwrap” for JavaScript Jun 26, 2009
 - Monitoring DOM properties Jun 23, 2009
 - Zoomer component for sale! Jun 17, 2009
 - Metadata within HTML comments Jun 15, 2009
 - It’s just an API Jun 9, 2009
 - Best practices & JSLint Jun 7, 2009
 - “prettyPrint” for JavaScript Jun 5, 2009
 - Fastest way to build an HTML string May 29, 2009
 - Table rows as clickable anchors May 25, 2009
 - Removing comments in JavaScript May 24, 2009
 - Custom JavaScript with “parseScripts” May 21, 2009
 - jQuery plugin detector May 17, 2009
 - I’m on Github! May 16, 2009
 - “Grayscaling” in non-IE browsers May 11, 2009
 - Konami Craziness May 9, 2009
 - Function’less event handlers in jQuery May 6, 2009
 - Asynchronous innerHTML Apr 25, 2009
 - A better data selector for jQuery Apr 23, 2009
 - Deep copying of Objects and Arrays Apr 22, 2009
 - Really easy speed testing Apr 19, 2009
 - Fixing “:focus” in Internet Explorer Apr 16, 2009
 - Introducing: JSHTML Apr 14, 2009
 - “Prototypal chainability” Apr 13, 2009
 - Find and replace text with JavaScript Apr 5, 2009
 - Readability, a noble cause Apr 1, 2009
 - ‘Events’ interface for jQuery Mar 31, 2009
 - Learning jQuery 1.3, the book Mar 30, 2009
 - Regular Expressions in JavaScript, part 2 Mar 23, 2009
 - Using YQL with JSONP Mar 21, 2009
 - Don’t use “!important” Mar 20, 2009
 - Screencast #2 – Creating the colour-fader Mar 19, 2009
 - New code-view feature Mar 14, 2009
 - A framework-agnostic model Mar 11, 2009
 - Preventing an unintended exit Mar 10, 2009
 - Looping in JavaScript Mar 3, 2009
 - ‘tweetFromFile’ PHP Class Mar 2, 2009
 - Fun with Getters & Setters Mar 1, 2009
 - Usability & Animation Feb 26, 2009
 - Element data/storage Feb 21, 2009
 - Parsing URLs with the DOM! Feb 19, 2009
 - Things you may not know about jQuery Feb 19, 2009
 - Random & Unique! Feb 14, 2009
 - ‘animateToSelector’ jQuery plugin Feb 10, 2009
 - JavaScript Abstractions Feb 8, 2009
 - Playing with Ubiquity Feb 7, 2009
 - Shuffling the DOM Feb 4, 2009
 - Clear a field on focus Feb 3, 2009
 - Why create a jQuery plugin? Feb 2, 2009
 - Getting the real time in JavaScript Jan 29, 2009
 - Regex Selector for jQuery Jan 28, 2009
 - New jQuery plugin: ‘imgPreview’ Jan 26, 2009
 - Getting a fully qualified URL Jan 21, 2009
 - Clickjacking Twitter Jan 20, 2009
 - Word Jumbling ‘Experiment’ Jan 16, 2009
 - jQuery ‘delay’ plugin Jan 13, 2009
 - Checking types in JavaScript Jan 12, 2009
 - Screencast #1 – Event Delegation in jQuery Jan 12, 2009
 - Guilty Until Proven Innocent Jan 10, 2009
 - Debug jQuery events with ‘listHandlers()’ Jan 8, 2009
 - Graceful degradation still matters! Jan 8, 2009
 - Preloading images from a directory Jan 7, 2009
 - Get document height (cross-browser) Jan 6, 2009
 - The perfect document overlay Jan 5, 2009
 - Regular Expressions in JavaScript Jan 4, 2009
 - Highlighting text with JavaScript Jan 3, 2009
 - 2009 predictions Jan 2, 2009
 - Tacky page fading ‘trick’ Dec 31, 2008
 - Test for an external link Dec 30, 2008
 - Debugging with $.log() or log() Dec 30, 2008
 - Passing a function to jQuery’s CSS() method Dec 30, 2008
 - jQuery: $(elem).with(); Dec 30, 2008
 - New jQuery plugin: “Fly Off Page” Dec 27, 2008
 - Create a TinyURL with JSONP Dec 24, 2008
 - Cross-domain requests with JSONP? Safe? Dec 24, 2008
 - A lack of progression? Dec 17, 2008
 - Extending jQuery’s selector capabilities Dec 11, 2008
 - Bookmarklet: ‘Let me Google that for you’ Dec 1, 2008
 - New template: PIXELLE Nov 27, 2008
 - iNettuts with Cookies! Nov 20, 2008
 - What I’ve been reading Nov 19, 2008
 - Random word generator Nov 17, 2008
 - Little Enhancements Nov 6, 2008
 - Some jQuery Shortcuts Oct 31, 2008
 - Solving Twitter’s URL posting issue Oct 25, 2008
 - JavaScript libraries vs. Usability Oct 18, 2008
 - Reflection on poverty Oct 14, 2008
 - My first “real” job Oct 5, 2008