Chrome V8 Creators: `with` and `delete` are "Dog Slow"
25 Apr 2012
On a recent podcast the creators of Chrome's V8 JavaScript Engine, Lars Bak and Kasper Lund, discussed some of the challenges of writing a JavaScript compiler. They cautioned that using with or delete is "dog slow". When you use with, V8 has to wait until run time to resolve the scope chain. When you use delete V8 has to transform your object from a highly-optimized class structure into a slower hash table.
Database Sessions with CakePHP 1.3 in 1 minute
24 Apr 2012
Enabling database sessions with CakePHP 1.3 is super easy. But first I want to cover a few reasons that I know of where you need sessions stored in the database: load-balanced environments and PHP file-locking issues.
I Switched from Windows 7 to OSX Lion
7 Feb 2012
I made the switch from Windows 7 to Mac OSX (Lion) for my development laptop. I got a new job and my boss asked me what kind of laptop I wanted to buy. I heard so many of my friends and bloggers talk about how OSX is the ultimate platform for Web Developers. I decided to take the plunge.
I want to report on my progress. First I'll start with the software I'm using.
Before You Use Captcha: Form Protection Tips
23 Jan 2012
I ran into a great post on the PHP devnetwork forums here talking about some tactics to protect your forms without using Captcha.
First is the Honeypot method. The idea is to add a field to the form that bots would likely fill out but that is a hidden element on the form that should remain blank. twindev explains:
JavaScript Selector Library Supports CSS4!
13 Jan 2012
Long Text Lines in Webkit
10 Jan 2012
Firefox Extensions: Add Button to Nav Bar
2 Nov 2011
The new Add-On SDK for Firefox rocks! It is so easy to create and test using the cfx command line utility.
One thing that is conspicuously absent is the ability to add a button to the navigation toolbar. You know, the toolbar that holds the URL bar and bookmarks button. It took a fair amount of research and trial and error, but it turns out to be a small bit of code.
CSS Conditional Rules: Exciting and Scary
8 Sep 2011
This month the W3C came out with a brand new working draft for CSS Conditional Rules (W3C Draft).
Conditional rules are basically @-rules that apply CSS only when certain conditions are met. The most powerful is the @supports condition. You might be able to guess how it works by looking at the example below.
Why Emails Suck
7 Sep 2011
jsPerf.com Introduces Graphs
31 Aug 2011
If you haven't seen jsPerf.com, you've been missing out. You can benchmark pieces of JavaScript against each other. The site was created by Mathias Bynens (blog) and the benchmarking engine, Benchmark.js, was created by John-David Dalton (blog).
JavaScript is by nature only acurate to 1 millisecond, and some browsers are acurate to only 15 milliseconds in practice. Benchmark.js uses higher resolution timers where available. For browsers it utilizes a Java Applet to access a high-precision timer. When Chrome or NodeJS are run with a --enable-benchmarking flag, it makes use of a native microsecond timer.

