The latest from the Blog

Check out the Resources in the sidebar →

Increase your pageviews! Or, creating an on-the-fly custom navigation system for new users

Lets face it, content is King because Traffic (capital 'T') will not come without great content. We work hard making great content to get visitors and so... When a visitor does arrive it only follows that we should do our best to make them stay a while, no? Welcome new visitor, here is our feed,... Read more »

Pulling in 3rd party data to your website? Be sure to shield yourself from 3rd party problems.

This post comes a bit late in the whole web 2.0 cycle. I feel that it bears repeating because I have come across sites that don't follow some basic principles when pulling in 3rd party data from sites such as flickr, twitter et. al. APIs and data portability The blessing of popular and easy to... Read more »

When Bad News Follows You: SEO Redux?

I came across the article from Nicholas Carr's post Should the Net forget? This is an interesting consequence that seems to be getting pushed on SEO, rather then perhaps looking at it from the aspect of accountable reporting, no? Nicholas states that: With search engine optimization - or... Read more »

Simple Function Testing and Debugging in PHP

Firing a function from your browser The concept is as simple as firing a function from your browser, and it leans on PHP's call_user_func_array. I'm going to outline the concept as I have implemented it. This exact implementation may not work in your case, but perhaps you can adapt it to do so. if(isset($_GET['f'])... Read more »

MySQL Optimization - A Little Tip

Some simple suggestions Well I don't consider myself an expert, I do have experience with working with larger datasets and there are a couple of things that I always do to keep queries performing well. Optimize Queries with EXPLAIN Explain is your friend, get to know it well. If you take the time... Read more »

CSS, Image Sprites, Background Images and Website Optimization

This post was originally published on May 13th, 2004. As others are writing about the topic, I thought bringing it out of the archives would be worthwhile. A little recap The idea of placing multiple states of buttons and other elements that are used in background images took its roots, I believe,... Read more »

The human side of marketing, or, Capitalizing on your mistakes

The mistake I called him up to mention the error, and he explained to me that he had noticed the error and managed to stop the delivery before too much damage was done. No problem. But hours later, he called me stating that he felt really bad, and wanted to try something. The recovery His idea... Read more »

Common Sense, or Don't take my International Order and then not Provide an International Support Phone Number

Dear Company-from-another-country-that-was-happy-to-take-my-money -but-too-shortsighted-to-have-an-international-support-number, While I think it's great that you have a toll free support number for your country, I think it pretty much sucks that you don't have one for international users of your... Read more »

The Definitive Post on Gzipping your CSS - Compressing CSS

Note: This post was originally published on June 13th, 2004. It is being republished today because: the topic has been discussed in a few places recently, and, well, I accidentally republished it when editing it. Background Info This whole idea started back in February of 2004 and has evolved through... Read more »

PHP Frameworks and A Very Nice Application Flow Chart

The Flow Chart CodeIgniter looks to be an interesting framework from the people behind Expression Engine. My interest was peaked when looking through their expansive documentation and coming across the following diagram: This is an excellent visualization of how a system could work in PHP,... Read more »

The latest Resource Links

Custom events in jQuery open doors to complex behaviors (#)

Rebecca Murphey provides a look at using custom events in jQuery. While she doesn't really get to the why until the end of the article, the benefits are certainly something worth having in your code:

  1. Well-organized code that consolidates the behavior widgets in a few bind() statements, rather than scattering those behaviors across the elements that initiate them
  2. Added flexibility as it’s any element can initiate a behavior, or a behavior can be triggered across multiple widgets at once
  3. Use of a control element which captures a click event and translates it into an event to be triggered on the widget.
  4. Better organization of your code, abstraction and increased ability to reuse code

I'm no JavaScript wizard and I am looking forward to implementing some of this logic in the near future to consolidate some of the jQuery we use in a few client sites.

Sphinx - free open-source SQL full-text search engine (#)

This is being bookmarked for future reference. From the website:

Generally, it's a standalone search engine, meant to provide fast, size-efficient and relevant fulltext search functions to other applications. Sphinx was specially designed to integrate well with SQL databases and scripting languages. Currently built-in data sources support fetching data either via direct connection to MySQL or PostgreSQL, or using XML pipe mechanism (a pipe to indexer in special XML-based format which Sphinx recognizes).

Also see: Build a custom search engine with PHP and Implementing Search.

Evolution of a Header (#)

Garrett Dimon wrote up some details about the evolution of the header area on a couple of screens for his webapp Sifter. It provides a very nice overview of the stages of development (with sketches and images) and we get to see how the decisions were made. I find these articles a good way to bring some focus back to what they are discussing, and in this case I feel compelled to examine how I handle meta data in our CMS and on my websites like 5411.

100% Google AdSense: Tools, Tips and Resources (#)

A fantastic post covering heaps of tools and articles focused on helping you get the most from the ads on your site or network. If you are not familiar with the links in this article, put some time aside and get to know them and implement or use some of them and hopefully you will notice the difference in your AdSense revenue!

jQuery Rich Text Editor (#)

We use jQuery for most things in our CMS but for the moment use Cameron Adams' widgEditor as a lightweight RTE. Here we have a fork off of Batiste Bieler's jQuery Lightweight Rich Text Editor that looks like it could be a decent jQuery option in our next release, which is targeted at using nothing but jQuery for behaviour.

Functionality is what you would expect from a lightweight RTE, down to the small footprint of the source code which should be easy to customize for your own work. It has a GPL license and is tested and fully compatible with Firefox, Opera, Safari, IE6, and IE7.

SiteUptime Web Site Monitoring Service

Sitepoint's web devlopment books have helped me out on many occasions both for finding a quick solution to a problem but also to level out my knowlegde in weaker areas (JavaScript, I'm looking at you!). I am recommending the following titles from my bookshelf:

The Principles Of Successful Freelancing

I started freelancing by diving in head first and getting on with it. Many years and a lot of experience later I was still able to take away some gems from this book, and there are plenty I wish I had thought of beforehand. If you are new to freelancing and have a lot of questions (or maybe don't know what questions to ask!) do yourself a favor and at least check out the sample chapters.

The Art & Science Of JavaScript

The author line-up for this book says it all. 7 excellent developers show you how to get your JavaScript coding up to speed with 7 chapters of great theory, code and examples. Metaprogramming with JavaScript (chapter 5 from Dan Webb) really helped me iron out some things I was missing about JavaScript. That said each chapter really helped me to develop my JavaScript skills beyond simple Ajax calls and html insertion with libs like JQuery.

The PHP Anthology: 101 Essential Tips, Tricks & Hacks

Like the other books listed here, this provides a great reference for the PHP developer looking to have the right answers from the right people at their fingertips. I tend to pull this off the shelf when I need to delve into new territory and usually find a workable solution to keep development moving. This only needs to happen once and you recoup the price of the book in time saved from having to develop the solution or find the right pattern for getting the job done..