Using static variable as a function's cache
Web apps become notoriously slow when running database queries. Often times we find ourselves writing a useful look up as a function, and then forget that it requires a query each time. This is where caching comes in. And PHP has a really clean way to do it.
Read more →
Need List of File Since a Revision
An SVN command that gives a list of modified files between revisions. It is very useful when uploading files to a live server and when running through quality assurance. Another command to keep in your bag of tricks.
Read more →
Using .htaccess and Cookies to manage a maintenance page
A common task in web development is updating a live server. There are many ways to do it, but some of them require downtime. Rather then turn users away, it is best practice to put up a maintenance page. But what if you still need access to the site while you are updating it? .htaccess and Cookies to the rescue!
Read more →
Which is faster? Does it matter?
When creating large strings a programming axiom has been to create an array, then join all it's pieces together at once. It is suggested this is better for memory and for speed. PHP, however, is optimized for string manipulation. Does this change the axiom? Read on and find out!
Read more →
How to get the calling function in PHP

PHP has great debugging functions. By wrapping one we can find out who the caller of a function is. This blog entry gives a code snippet that returns the name of the function who called the current function by looking at the debug of the stack.
Read more →
A quick look at an awesome function
The jQuery function $.closest() is a particularly handy function when doing DOM manipulation. I'll discuss it's power along with an example of it's use.
Read more →
Make jQuery UI Widgets Attach Dynamically
jQuery has some awesome widgets, but all of them need to be attached after an element is added to the page. With some quick changes, your widget can be added dynamically to any element using $.live().
Read more →
Dyslexic Developers Cry Shenanigans

Firefox 3.5 and PHP 5.3 were released today, making a challenge for our lysdextic developers.
Read more →
Leaner CSS with LESS

A new module for Ruby was recently released which shows a promise for what CSS could be. It expands on the ideas every developer has
Read more →
2001 was the year of the snake. People born in the year of the Snake are romantic and deep-thinking, wise and charming, although they tend to dismiss others too quickly and are a bit stingy with money. Ideal jobs for them include teaching or psychiatry. In this entry, we take a quick look at what was cool back in the year of the Snake, 2001.
Read more →
A Way To Name Your jQuery Objects
This blog entry shows you how to cache a jQuery object into a variable for future use. I present a naming convention that I have been using that visually separates jQuery objects from other JavaScript variables.
Read more →
Do I win the prize for longest title?
Internet Explorer has its share of bad bugs. IE6 in particular is well known for it laundry list of CSS bugs. While troubleshooting some code for a newsletter I discovered a rather bizarre one. After testing, I found that it affects everything from IE6 to the recently released IE8. It is mostly just for fun because the chances of running into it are pretty slim.
Read more →
Finally, a pure CSS solution!

Centering a div horizontally and vertically has always been a pain for CSS. Not any more! With this trick, you can create a centered block in no time.
Read more →
The Phantom Menace
Using intervals in JavaScript for pausing/unpausing events can sometimes cause a phantom interval which you can't control. Learn how to stop that phantom in it's tracks with one line of code.
Read more →
A new way to setup events
jQuery 1.3 has added support for live events, and it makes developing a breeze. Before, you'd have to wait until the page is completely loaded to add events to elements. And if you added new elements to the page, they would need special attention to have events added. Not anymore!
Read more →
Actions without JavaScript!
A concept of how to define actions using classes. Best part is, there's no need to know JavaScript!
Read more →
jQuery to the rescue!
Internet Explorer 6 is just too old to support all the fun CSS tricks of the modern web. The Input Type selector is one of the most problematic. I suggest a quick jQuery function to get around this.
Read more →
jQuery Namespace Workarounds

Prototype and jQuery conflict over the $ function. In the entry, I will show you how you can start to include jQuery code in the an environment that is already Prototype heavy.
Read more →
It's not as bad as you'd think
Sometimes, you just need a way to GOTO. Here is a little trick that will duck out of a section of code using break
Read more →
JavaScript Development Made Easier

We're happy to announce a new bookmarklet called JSCommandlet. It is a JavaScript console developed for use within SiteCrafting. If you do any kind of JavaScript development, especially working with Internet Explorer, JSCommandlet is for you.
Read more →
Does anyone use it yet?
I am starting an experiment to see whether the recent blog chatter about window.name is actually being used. Included is some JavaScript that you can put in GreaseMonkey to help me in my search.
Read more →
Harry Potter and the Onload Collisions
There is no other variable more fought over then the coveted window.onload. Its job is to run a function after a page has been loaded. The problem is that there is only one variable, and therefore only one function can run. Once you have set this you would think you are in the clear. That is until another script comes in and overwrites onload.
But all can be made well in JavaScript land once one of four choices is made. I give four ways to get around this problem, and suggest a way for modern browsers to be rid of this problem once and for all.
Read more →
Why do we put a copyright in the footer? Why not a publish date?
In web design we commonly put footers in the bottom of the page which include links, legal information, and usually a copyright date. But why? And is there something else we should include?
Read on and I promise not to use any more bad puns.
Read more →
A new way of solving an old problem
A nice feature of JavaScript is that functions are objects. As such, they do not need a name if they are used right away. But what if you need a short anonymous recursive function? arguments.callee becomes your new best friend.
Read more →