Wez Furlong I am Wez Furlong, Chief Software Architect at Message Systems. We're responsible for building an awesome Messaging Platform.

I'm also a PHP Core developer and OpenSource contributor, residing in Maryland, USA with Juliette, Xander and Lily. (read more)

Subscribe. (circulation 964)
Comments. (circulation 11)

Search powered by Google

mtrack: now with OpenID and reCaptcha support

14th February @ 15:01 EDT
updated 14th February @ 15:16 EDT

Some of the feedback and questions that I've gotten about mtrack were around making it easier to deploy and use in an open or public facing environment.

To that end, I've added support of OpenID authentication and bot detection via reCaptcha.

To enable these features is quite simple; for OpenID, add the following lines to your config.ini file:

[plugins]
MTrackAuth_OpenID =

continue reading …

by Wez Furlong in .

mtrack: a software development tracker + wiki

21st January @ 11:12 EDT
updated 27th January @ 23:12 EDT

[Updated to add IRC and Google Groups links]

I don't know if it's just me, or whether everyone in software development finds issue tracking software frustrating and/or broken in some way.  They're all either way too complicated to set up, configure or use (the Bugzilla's or the Jira's), or have annoying "features" (such as Trac's you-lose-your-edits-if-someone-else-changed-something).

We've been using Trac at Message Systems for several years now and have been enjoying its pragmatic approach of keeping the interface simple but expressive; just enough structure to be helpful but not too much that it intrudes.  We've added/modified a couple of plug-ins to it to help track time and draw some graphs, but it has otherwise served us well.

However, we've got a couple of projects that have started to converge and overlap and it's frustrating to visit the two different portals to interact and stay on top of things.  As we scale up our development teams even further (we continue to have bigger and bigger plans!) this will prove to be more widely frustrating.

continue reading …

by Wez Furlong in .

Jumpstarting PDO

25th October 2009 @ 13:32 EDT
updated 25th October 2009 @ 13:35 EDT

Lukas is making another attempt at jumpstarting PDO development.  I welcome this effort, and will do what I can to help fill in details and make suggestions.  Unfortunately, I'm just way too busy with work to be able to commit to more than that.

I also wanted to share some of my thoughts on why PDO has been in a holding pattern for a while, so that more people are aware of it and can work to avoid repeating the same mistakes.

The first thing to note is that the guts of PDO were hard to develop.  The PHP script facing API sounds simple enough, but the underlying libraries for each different databases work in different ways, and it was and is a challenge to build PDO in such a way that it can work in the most efficient way.

The second thing, which is really a follow-on from the first, is that the database libraries are complex and nuanced.  Some are relatively simple (especially SQLite and MySQL) and others are complex in divergent ways (ODBC and Oracle).  Making a great PDO necessitates having experts in each of those APIs and databases around as contributors, both for the core implementation and for unit tests.

continue reading …

by Wez Furlong in .

CouchShare now on BitBucket

7th June 2009 @ 22:55 EDT
updated 7th June 2009 @ 22:56 EDT

A few of my friends and associates may have heard me talk about the media server I've been running in my basement; I used to automatically transfer content from my tivo to a hard-disk in my basement so that I had more space for recordings on the tivo.  Since most of the recordings that I want to keep are now available via Hulu, I haven't had much call to use it in the last 6 months.

So, what is CouchShare?  It's a UPnP server that can share content from folder to an XBox 360 on your network.

It's written in PHP (and requires a tiny PHP extension to enable multicast support) and is written using the eventing framework that is part of the Alexandria codebase.

I wrote the code back in 2007 and it has served me well for a couple of years; it felt like it was about time I got off my backside and shared it with the world.

continue reading …

by Wez Furlong in .

Whirlwhind review of php|tek 09

24th May 2009 @ 03:03 EDT
updated 24th May 2009 @ 03:03 EDT

It's been a simultaneously long and fast week for me. I flew into Chicago last Sunday, ready for the PHP core developers meeting that we had planned for the Monday and Tuesday. My journey went like a charm; perfect timing had me parked at the airport, immediately on the shuttle bus to the terminal, straight through security and to my gate just in time to start boarding. The only minor hiccough was in finding the shuttle from Chicago to the hotel; it was extremely poorly sign-posted.

Anyway, I got to the hotel and ran into the British contingent of the conference, and we eventually found our way to a Mexican restaurant not far from the hotel, and then to the bar across several lanes of traffic from the hotel, where a fair quantity of alcohol was consumed by all.

The next day we headed downtown to the Microsoft offices for day 1 of the core developer meeting, where a number of internals issues around PHP 6 were discussed. This was a very productive session, and we earned the drinks that followed at the Map Room, although I opted out of the bulk of those and headed back to the hotel (yes, I'm getting old)

Tuesday was day 2 of the core developer meeting, and thankfully was held in the conference hotel; the journey downtown took the better part of an hour and I was glad to skip it. The agenda for this day was to look primarily at what we could clean up in the code for PHP 6 and whether we might need to introduce a PHP 5.4 to aid in that transition.

continue reading …

by Wez Furlong in .

Getting IT Done

20th May 2009 @ 18:15 EDT
updated 23rd May 2009 @ 18:54 EDT

The slides from my "Getting IT Done" session at php|tek can be found on slideshare.net; Enjoy!

PS: I would be grateful if you were there and could rate the talk on joind.in

by Wez Furlong in .

Seven Things

2nd January 2009 @ 23:56 EDT
updated 3rd January 2009 @ 00:41 EDT

I'm usually no big fan of chain letters (it's the "or-else" part that I object to), but this current 7-things-tag going around is pretty benign, and I think it's a great way to get some insight into the people you're reading. Thanks to Elizabeth Smith for tagging me.

Anyway, here's some facts about me that you may not know:

  1. I have 6 siblings: 1.5 brothers and 2 sisters.
  2. I used to live in Spain and crossed the border to Gibraltar twice daily getting to and from school.
  3. I taught myself 6502 machine code on the C64 when I was 10. 'C' had to wait until I finally got my own Amiga at the age of 17; by that time it was already obsolete, but I'd dreamed of it for so long. The biggest barrier for learning 'C' for me was the sheer quantity of bad Intuition code examples floating around on Fish Disks and Aminet.
  4. I studied Electronic Systems Engineering at The University of York, where I discovered my first Unix system (IRIX) and had to retake my first year exam as a result of spending too much time in the "Spod Pit" (a room filled with Indigo workstations). In retrospect, that "inappropriate" use of time was instrumental in shaping my career.
  5. I once rolled into a 9 a.m. computer lab assessment with my partner wearing tuxedos after partying all night at a graduation ball. The lab supervisor said "let's assess you first, as you look like you've got places to go". (We aced that assessment; preparation was key).
  6. I've moved home on average about once every 2.5 years of my life, making my time in the USA one of the longer periods in one spot.
  7. I've been told that I have a distinctive look, which is probably largely due to my long hair. In the late 80's, early 90's, I used to have a flat top. Then I discovered Guns'n'Roses and Metallica and haven't worn my hair short since.

As for chaining, in no particularly significant order:

continue reading …

by Wez Furlong in .

Wanted: Senior Backend Web Engineer

11th September 2008 @ 12:33 EDT
updated 11th September 2008 @ 13:26 EDT

I'm looking for a senior-level engineer to help extend the web-based dashboards for our messaging infrastructure platform.

This position reports directly to me.

While we don't face the traditional scale-to-the-world types of problems in our web UI, we do face some difficult UI and data scalability challenges.

If you're interested, please contact me via jobs@messagesystems.com.

continue reading …

by Wez Furlong in .

I'll be at ZendCon 2008

29th August 2008 @ 20:10 EDT
updated 29th August 2008 @ 20:10 EDT

Busy times here mean that I'm leaving it a bit late to say this, but I'll be at ZendCon this year too. I'll be giving the usual talk on PDO, but my main reason for attending this year is to sync up with other PHP folks and talk about where PHP is at and where it's going.

ZendCon has been consistently good, and I look forward to attending again this year... see you there?

by Wez Furlong in .

Slides: PHP / Cocoa / Objective-C

25th July 2008 @ 00:15 EDT
updated 25th July 2008 @ 00:16 EDT

Here are the slides from my Cocoa talk:

by Wez Furlong in .

Slides: PHP Streams

3rd July 2008 @ 00:00 EDT

Here are the slides from my Streams talk; they cover a variety of bits and pieces of streams background and implementation that may or may not be useful to you.

SlideShare | View
by Wez Furlong in .

Slides: PHP and COM

25th June 2008 @ 22:29 EDT
updated 25th June 2008 @ 22:31 EDT

This slide deck is from php|works 2004. There's a lot of material in the speaker notes, which I've painstakingly pasted into the comment on the slideshare representation (wouldn't it be cool if it could automatically do that?).

SlideShare | View

Just in case slideshare vanishes, the PowerPoint version is also available: PHP and COM

by Wez Furlong in .

Slides: Best Mailing Practices

25th June 2008 @ 00:15 EDT
updated 25th June 2008 @ 00:17 EDT

Here are the slides from my Best Mailing Practices talk.

While I was googling around to find the abstract I submitted with this, I discovered that there's an audio recording of me giving the talk at ZendCon 2007.

SlideShare | View

continue reading …

by Wez Furlong in .

Slides: PDO

24th June 2008 @ 22:38 EDT
updated 24th June 2008 @ 22:50 EDT

[I've just noticed that the omniti.com re-design broke the various links from my blog to the slides I had been storing there. So I'm trying out slideshare; I'll be revisiting the slides I've given in the past and blogging one entry per presentation]

Here are the extended slides from my PDO talk. When I first put this talk together it was for a long hour slot, but conference sessions started to diminish in length and I had to pull out certain slides to avoid running over every time.

SlideShare | View

continue reading …

by Wez Furlong in .

OSCON 2008

5th April 2008 @ 12:28 EDT
updated 5th April 2008 @ 12:29 EDT
OSCON 2008 I'm pleased to announce that I'll be speaking at OSCON again. I have the pleasure of co-presenting an Extending PHP tutorial session with Marcus Boerger, giving a new talk entitled Hot Chocolate: Creating Cocoa apps with PHP, and the tried and true PDO Talk

C and Test Engineer Jobs @ Message Systems

1st February 2008 @ 15:26 EDT
updated 1st February 2008 @ 15:31 EDT

I've got a couple of full-time positions open on my engineering team. We believe in a fun but focused development environment: open-plan, flexible hours, and great benefits. Our customers include Fortune-500 companies, hot startups and tier-1 telecommunications carriers. Our software helps those customers deliver billions of email messages per day.

Email Infrastructure Software Engineer (x2)

I'm looking for one mid-level and one mid-to-senior-level engineer with strong "C" programming skills (3+ years of professional experience). These roles involve design, implementation and testing of our flagship email server product. E-mail encompasses a very broad range of standards and specifications which in turn means that our code base touches on a little bit of everything; it's both interesting and challenging. [Full Job Description]

Gozer (The Destructor)

continue reading …

PDO 2 and CLA

25th January 2008 @ 00:25 EDT
updated 25th January 2008 @ 00:35 EDT

You may be aware that we're starting discussions on the future of PDO; despite being pretty good for many common uses, it isn't perfect, and we want to improve it. One of the items to be discussed is whether we can or should adopt a Contributor License Agreement (CLA), which will make it simpler for the database vendors to work together with us on PDO.

The discussion is aimed chiefly at the "core developer" community, that is, the people that are working on the internals code for PHP, because the CLA would impact how they contribute to PDO. The broader PHP user/developer community would not be affected by a CLA (if we were to go that route), as it would not affect their ability to use PDO in their applications.

If you are wondering what all the fuss is about, you might be interested in reading the transcript of a conversation I had on IRC this evening; you can find it below. It's between myself and a few members of the PHP Community IRC channel on FreeNode (used with their permission!), and I think it does a good job of explaining in fairly simple and somewhat unbiased terms a couple of the main arguments for and against the CLA. I'm not saying that this is all there is to it, just that these are likely to be the main points that the core developers need to discuss first.

It would be premature to say that you are for or against PDO 2 at this stage because we are yet to define what PDO 2 will actually be; that is the purpose of the discussion on the PDO mailing list.

continue reading …

PHP London 2008

22nd January 2008 @ 20:38 EDT
updated 23rd January 2008 @ 10:55 EDT

I was scheduled to appear at PHP London 2008, but due to unforeseen circumstances, I've had to cancel my trip and back out from the conference. I don't like doing this, but unfortunately don't have much of a choice. Thankfully, the PHP London folks have managed to find replacement speakers for the two sessions that I was going to give.

If you're going to be in or around London on the leap day (February 29th), or are within commutable distance, then you might consider attending the conference; it's a one day conference with a number of expert speakers from the PHP Community. If you sign up now, the early bird rate is only GBP 90. Find out more at their web site.

I was really looking forward to this conference, and I'm sorry that I'm going to miss it; I hope you have fun!

PHP Objective-C Bridge

4th November 2007 @ 12:34 EDT
updated 4th November 2007 @ 12:35 EDT

I've had some code hanging around on my laptop for the better part of a year (feels like two, but I don't think I've had my MBP that long), that implements a bridge between PHP and the Objective-C runtime. This is similar in spirit to CamelBones and PyObjC, but obviously a bit less mature.

Yesterday I debugged the last portion that I regarded as a total showstopper for anyone else that might want to use it, and added a script that pulls in your PHP installation and dependent libraries (such as Fink or Mac Ports libraries) and generates a "Bundle" and optionally a DMG containing the Bundle. I also persuaded Jan to try it out on Leopard, and discovered that Apple has deprecated most of the things I've been using for this (doh!) but we got it working on Leopard too. (note: you'll need to build your own PHP on Leopard, the one Apple ships has had its exports stripped, so you can't run the extension--it'll build, but not run)

There's still some way to go before I consider this "nice" to use, but it's a solid start. Jan built a simple GUI for the ping command:

continue reading …

ZendCon 2007

16th October 2007 @ 01:34 EDT
updated 16th October 2007 @ 01:40 EDT

It's been a long week, but, as is usual for ZendCon, it was worth it.

Short version:

If you're looking for the slides from my Best Practices for Sending Mail from PHP talk, they are available here.

Highlights: Microsoft announces their first PHP extension (for talking to SQL Server) and go-live for their FastCGI support, Terry Chay on Ogres, new Trading cards and a couple of really nice drinks courtesy of Christian Flickinger and Curt Zirzow. Oh, and Joel Spolsky on something that had nothing to do with PHP, but was good fun all the same.

continue reading …

Would you like to work with me?
I have positions open for server/infrastructure software development (C) and QA.

Ohloh profile for wez