This article was originally written for the Publ blog. I have reproduced a slightly modified version here so that it hopefully finds a wider audience.

Whenever I build a piece of software for the web, almost invariably somebody asks why I’m not using PHP to do it. While much has been written on this subject from a standpoint of what’s wrong with the language (and with which I agree quite a lot!), that isn’t, to me, the core of the problem with PHP on the web.

So, I want to talk a bit about some of the more fundamental issues with PHP, which actually goes back well before PHP even existed and is intractibly linked with the way PHP applications themselves are installed and run.

(I will be glossing over a lot of details here.)


A few people have asked me to write up a review of my Model 01 now that I’ve had it for a little while. Here are my thoughts.

First, some backstory. I have used computers my whole life, and ever since the age of 19 I’ve had quite a bit of trouble with chronic wrist pain. This has only gotten worse over the past 20 years. I have tried all sorts of keyboards, from various mechanical keyboards such as from Filco, to ergonomist-recommended split keyboards such as the Kinesis Freestyle, all the way to incredibly exotic weird-as-heck things like the Datahand and ErgoDox. All of them had pluses and minuses, but ultimately none of them really let me escape the orbit of horrible wrist pain; almost universally, their design flaws would end up ultimately making it worse than it was before and I’d end up going back to a more-traditional Filco 10keyless.


What’s hotlinking?

“Hotlinking” is where you link to an image stored on someone else’s site without making your own local copy. It’s done a lot by people posting to forums, weblogs, or to social networking sites such as MySpace.

The usual solution to this problem is to redirect them to another (often tasteless) image indicating one’s dissatisfaction with the act of hotlinking. This is a pretty good disincentive from using other peoples' bandwidth; however, I care more about people maintaining attribution, and standard hotlink-prevention stuff simply just causes people to upload a copy of the image to another site and then keep on not attributing it; in this case it’s even worse because if someone were to look at the image’s URL, they don’t see anything regarding where the image originally came from.

One solution is to make a simple image proxy script which adds a watermark to an image, and also logs the hotlinked image.


How to calibrate your monitor to the sRGB color space (more or less) without any special tools.

Note: This article was written way back in 2003, and things have changed quite a lot. The calibration charts are still useful for roughly calibrating TVs and projectors and the like, but there are better approaches to monitor calibration these days, and most decent monitors come pre-calibrated from the factory.

Also, these images only work correctly if they are displayed at a 1:1 pixel scale. Many combinations of newer monitors/operating systems/etc. — notably “high-DPI” or “Retina” displays — end up resampling images to display at a different pixel scale. This is fine for displaying most images, but these images will not work correctly when resampled. If you want to use these images for calibrating a display, please make sure they are displayed at 100% scale and that your monitor is set to a 1:1 pixel scale!

Nowadays my preferred method for calibrating a monitor is with a ColorMunki Smile. For a software-only approach on macOS you can try SuperCal, which is much more comprehensive than the built-in display calibrator.