Strange Chrome bug with text-shadow and the 'IM Fell DW Pica' web-font

While working on a new design for my portfolio site I came across an odd bug in Google Chrome. I had used one of the web fonts that Google supplies via the Google Font API for the text in the page header. When I added a CSS3 text-shadow to it suddenly the entire title text disappeared. I played around with it and it seems that the 'IM Fell DW Pica' font does weird things with a text-shadow. Without the shadow it displays correctly. Other fonts such as 'Molengo' seem to work fine even with a text-shadow applied.

UCSV 1.0.2 released

After much procrastination, I am releasing version 1.0.2 of UCSV. This version makes a few small but important changes. In previous versions csvToArray() would insert an empty string into the resulting array when it encountered an empty field. As was suggested by Leon Bambrick, it now instead inserts nulls. Likewise, csvToArray() now converts non-quoted integers and floats into numbers instead of assuming they are strings. arrayToCsv() will convert any null elements into empty fields to complement csvToArray()'s new behavior.

Pure CSS3 tab widget with :target

In recent years it has become fashionable to take content on a page and put it into a tabbed widget for display. This is usually done using JavaScript. There are a number of plug-ins for jQuery that do this, and most JavaScript widget libraries have something similar.

Facebook's XHP adds XML to PHP's syntax

I recently came across a very interesting post about XHP on the Facebook Engineering's Notes blog. XHP is a PHP extension they have developed which adds XML comprehension to PHP, allowing you to include XML fragments inline in your PHP code. Using XHP has several intriguing benefits; it tends to make your code look cleaner, it protects you against XSS vulnerabilities because it automatically escapes PHP variables and results from PHP statements that are embedded in the XML fragments. It also helps avoid malformed tags since the XML fragments are parsed by PHP and it will choke and not run until you fix your bad markup.

A couple of great articles about using OOP in PHP

I was going through some older items in my RSS reader and noticed a couple of excellent articles about using Object Oriented Programming in PHP over at the Think Vitamin blog.

Unexpected $end errors in create_function calls

I recently ran across an odd situation while working on a PHP based project. A couple of places I had to use create_function() to create anonymous functions as callbacks for content buffering with ob_start(). After editing one of my anonymous functions I started getting an error similar to this:

Introducing UCSV

UCSV is a small easy to use JavaScript library which provides functions for handling CSV data in JavaScript applications. In this post we'll explore how to use it to import and export CSV data into and out of JavaScript.