Jun 7, 2009
If you are using JW Player and the HD plugin, you’ll notice the latest version of the plugin does bandwidth detection and automatically flips to the HD version of the file if the player has detected the user’s bandwidth can support it.
This is undesirable for a bunch of different reasons. Here’s a patch to solve the problem, while still keeping that functionality should you need it.
[Read more]

Loading ...
May 9, 2009
I just want to start out by stating that I, in fact, am a big fan of Slicehost and constantly recommend them to friends setting up anything more serious than blogs. They have a truly great offering and their customer service has only been rivaled, in my experience, by the support team from DataPipe - whom I whole heartedly recommend for any colo or managed hosting.
One thing that is truly great about Slicehost is that they offer an awesome API that allows you to do most everything you can do in their management console, but instead through web services. You can create new slices, reboot them, change and add DNS, as well as rebuild or destroy slices.
The only problem is that the API follows a “standard ActiveResource pattern” that comes straight from the bowels of Rails and is way too convoluted for something this simple.
[Read more]

Loading ...
Apr 29, 2009
In the following article, I’m going to attempt to describe how one might bootstrap the technical components of their startup as cheaply as humanly possible, while still giving you room to easily scale. A lot of this is based on what I’ve learned in the last 2+ years as the CTO of massify.com, an online networking site for film makers. Your mileage may vary, of course, and I’m sure there are a variety of alternatives to some of the things I’ll be recommending. I welcome all commenters to pitch in with their own experiences in hopes that we can grow this post into a useful resource for up and coming entrepreneurs.
[Read more]

Loading ...
Apr 24, 2009
The following guide will walk you through setting up possibly the fastest way to serve PHP known to man. If there is a faster way, I’ve not yet found it climbing through zillions of blog posts out there on the subject. In this article, we’ll be installing nginx http server, PHP with the PHP-FPM patches, as well as APC. The end result? Pure awesome.
[Read more]

Loading ...
Jun 18, 2008
I’ve patched the current Feedburner 2.3 plugin to support feedburner feeds for categories.
When you install the plugin and activate it, navigate to Settings -> Feedburner.
You should now see options for adding in URL’s for all of your category rss feeds.
Download here.
Note: The url for your feeds by category should be by name, eg:
http://interfacelab.com/feed?category_name=php

Loading ...
Jun 18, 2008
UPDATED: Added support for expressions with variables so that you can add, multiply, divide, etc. variables when using them in the CSS. See below for more info.
Back in April of 2008, I came across a proposal by Daniel Glazman and David Hyatt for using variables in CSS stylesheets. I thought the proposal was absolutely brilliant, filling a much needed void for sites using complicated stylesheets across a variety of different pages. Another part of their proposal was being able to include/import other stylesheets. I don’t know anyone that couldn’t find this useful.
I put together a quick class for implementing most of their proposal using PHP. Nothing fancy going on here, most of it is some simple regexes.
Download the code here.
[Read more]

Loading ...
Jun 16, 2008
There’s a ton of stuff I miss from C#, having moved to PHP. Did I say a ton? I meant a megaton.
One of the things I miss the most (besides the sanity) are attributes (annotations for Java peeps). To be able to ascribe metadata to class, method and property definitions opens up a whole new world of introspection which enables you to do some pretty wicked hacks.
In this post, I present a PHP class that allows you to do metadata/attribute programming with PHP. You can download the class here. But before we dig in, we must understand what attributes are and how they are useful…
[Read more]

Loading ...