MaisonBisson

a bunch of stuff I would have emailed you about

On The One Hand He Wants To Catapult Chicken Droppings, On The Other Hand He Did Catapult His Wife; Repeatedly

The homeland security press is just getting wind of Joe Weston-Webb’s attempts to deter vandals with nonlethal weapons, but the story became all the rage in Britain when it broke last year. The stories hit all the timely bits: Joe got burgled, so he announced plans to install a catapult. A what? A catapult. Why? […] » about 400 words

Zen and the Art of Motorcycle Maintenance Is Available All Over The Web

Robert M. Pirsig‘s Zen and the Art of Motorcycle Maintenance at Amazon, a used book store, or your parent’s book shelf. Still, it’s available on the web as PDF, at least two text files — one, two — And even as a podcast (subscribe via iTunes). Lots of people have re-traced the journey described in […] » about 300 words

Is MySQL 5.1 Ready?

MySQL 5.1 hasn’t gotten a lot of love, but it does introduce support for pluggable storage engines. And that’s required to use SphinxSE. Sphinx is a fast full text search engine. It doesn’t need to run as a MySQL storage engine to work, but doing that allows joining against other MySQL tables. So while I’m watching the future of MySQL alternatives, I’m also watching 5.1 bug fixes and playing with the CoolStack-packaged 5.1 on a friend’s box.

The Difference Between MySQL’s utf8_unicode_ci and. utf8_general_ci Collations

MySQL answer: utf8_unicode_ci vs. utf8_general_ci.

Collation controls sorting behavior. Unicode rationalizes the character set, but doesn’t, on it’s own, rationalize sorting behavior for all the various languages it supports. utf8_general_ci (ci = case insensitive) is apparently a bit faster, but sloppier, and only appropriate for English language data sets.

Lessons Learned: Why It’s Better Not To Use Parentheses When They’re Optional

There it is in the PHP manual for return():

Note: since return() is a language construct and not a function, the parentheses surrounding its arguments are not required. It is common to leave them out, and you actually should do so as PHP has less work to do in this case.

I knew the parentheses were optional, but I’ve been merrily using them all along. And I probably would have continued doing so until I saw the second note attached to the docs:

Note: You should never use parentheses around your return variable when returning by reference, as this will not work. You can only return variables by reference, not the result of a statement. If you use return ($a); then you’re not returning a variable, but the result of the expression ($a) (which is, of course, the value of $a).

WordPress Action Ticketing API

This plugin is the next step after my proposal for a common invite API. Here’s how I described it when requesting hosting at the plugin directory: A common framework for registering tickets that will be acted upon later. Use it to manage challenge/response interactions to confirm email addresses, phone numbers, IM screen names, Twitter accounts, […] » about 500 words

ExpanDrive FTP/SFTP/Amazon S3 Client

ExpanDrive makes FTP, SFTP, and Amazon S3 connectivity dead easy.

ExpanDrive acts just like a USB drive plugged into your Mac. Open, edit, and save files to remote computers from within your favorite programs—even when they are on a server half a world away. ExpanDrive enhances every single application on your computer by transparently connecting it to remote data.

PHP Magic Constants: __LINE__, __FILE__, __DIR__, __FUNCTION__, __CLASS__, __METHOD__, and __NAMESPACE__

I’ve been using __FILE__ for years, but I never thought to look for its siblings.

echo ' line:'. __LINE__ .' file:'. __FILE__ .' directory:'. __DIR__ .' function:'. __FUNCTION__ .' class:'. __CLASS__ .' method:'. __METHOD__ .' namespace:'. __NAMESPACE__;

I feel as though I should have noticed these earlier; they’re clearly referenced in the docs for debug_backtrace(), after all.