Frameworks, Addons, Firefox, busy busy busy.

I’m about to leave for Orlando where I will speak at CakeFest One tomorrow on the subject of building the addons.mozilla.org API using CakePHP.  The whole of the addons.mozilla.org website is built with Cake, and we believe it to be the biggest installation (in terms of traffic) in the world.  I’ll post slides after the presentation, and a bit more information about the numbers and so on.

Building the API has consumed my thoughts for the last few months.  It’s used by the new Addons Manager in Firefox 3, which will be in beta 3.  (You can read Madhava Enros’ blog entry on the subject for a preview).  After beta 3 is out, I plan on blogging more about the API details.  I’m still ironing out bugs and doing some peformance tuning.

In addition to my involvement with Cake these days, I have recently been associated with two new framework books.  I acted as a tech reviewer for Mike Naberezny and Derek DeVries’ "Rails for PHP Developers" (Pragmatic, 2008) and wrote the foreword for Cal Evans’ "Guide to Programming with Zend Framework" (php|architect, 2008).  These books are now available, so please enjoy the fruits of the authors’ labor.

I can’t help but find it amusing that something I’m (in)famous for not being a fan of has dominated my professional life for the last six or so months.  I’ll have to write more about my thoughts on these three frameworks soon…but right now I’ve got too much work to do :) and a plane to catch, besides.

Microsoft buys Yahoo! (or would like to) - now what?

Lots of stories this morning about Microsoft’s $44.6 billion dollar bid for Yahoo!

So on the Sun/MySQL theme, what are the implications?  Huge, to me, absolutely huge, on so many fronts.  The positive is that both Yahoo! and Microsoft are big companies that like to innovate. 

From the point of view of a PHP developer, it’s particularly interesting.  Microsoft has internally changed its view of Open Source a great deal over the last few years.  In the PHP world we’ve seen this on a number of fronts, including the partnership with Zend to make PHP run well on Windows, the various Web Developer summits at Redmond (due to Sanjoy Sarkar, a common fixture at PHP events, and all around nice guy Brian Goldfarb, who was the first MS employee to come to a PHP conference, back in 2002 I think).  This last week my friend Wez Furlong (of PDO fame) was at Redmond with, as he put it, a "bunch of compiler geeks", speaking at the 2008 Lang.NET Symposium

Yahoo! is of course the home of a lot of really big PHP, and some famous PHP developers, in particular Rasmus Lerdorf, "the father of PHP", and Sara Golemon.  (Andrei Zmievski left last year to join Outspark.)  One assumes that the architectures within Yahoo! would continue to be LAMP based, at least in part because the cost to switch would be amazing.

These things come in bursts: I remember Sleepycat/InnoDB/etc in 2006.  Now we just have to wait and see who is next.

Tenth anniversary: OSCON CFP is open

This year’s OSCON will be held from July 21-25 2008 in sunny Portland, OR.    This will be a very special OSCON as it’s the tenth anniversary - we’d like to make it double plus good, so please, please submit your best efforts, and we’ll all party on down while opening our minds in July.

OSCON 2008 Call for Papers

Sun buys MySQL - now what?

Interesting news greets us this morning with Sun’s acquisition of MySQL.  (Congratulations are in order for both parties.)

I think a lot of us are still at the "oh wow" stage.  There are lots of implications.  It seems like a good fit because of Sun’s deep involvement in the Open Source community. 

The partnership will certainly juxtapose some interesting personalities: now we have Josh Berkus (PostgreSQL) and Monty (MySQL) working for the same company.

What will happen with licensing?  Will MySQL still be available under a
dual GPL/commercial license, or is it likely to end up under CDDL/SCSL or
similar?  Changing from one open source license to another can be an
extraordinarily difficult challenge both logistically and ecologically.

I note that I read in Don MacAskill’s blog that

"Maybe MySQL will finally start fixing all the performance/concurrency
issues with InnoDB (basically, InnoDB’s threading and concurrency
aren’t working well with modern multi-core CPUs). Google’s had some fabulous patches for awhile, and the brilliant Yasufumi Kinoshita does as well, but they don’t seem to be making their way into MySQL anytime soon." 

This is not going to happen as far as I know, because the patches were contributed under the GPL, and can’t be incorporated into the commercially licensed version.  In addition, Innobase Oy is owned by Oracle.  I think we’re more likely to see those performance and concurrency issues solved by using Falcon.

It’s also interesting from a Java perspective: traditionally Oracle has been the Database-of-Choice for Java devs, and MySQL for PHP devs.  With Sun producing MySQL we can expect to see better support within the Java community, although the press releases all note that support for the PHP/Rails/etc communities will continue.

It’s going to be another interesting year in Open Source.  I’m looking forward to it.

Abysmal customer service

Recently I have been the recipient of a number of incidents of abysmal customer service and I really need to vent.

The worst of all is Bank of America.  They are as extraordinarily polite as they are incompetent.

On a number of occasions they have stopped my card.  Reasons for this have included:
  - You were spending a lot of money (it was Christmas Eve)
  - Someone used your card in another state (I live in Maryland, 20 minutes drive from Virginia malls).
  - You spent money in another country.

The last seems reasonable in some sense, so I have now taken to calling them before travel and advising of travel.   I have also on several occasions asked them to cease this practice as I travel a lot.  They always agree that this is fine and that they have made a note on my record, but it has never had any noticeable effect.  On my last trip home to Australia in September they stopped my card again.  After calling them - at least half an hour on the phone, at international rates - they assured me it had been unblocked.  I went out shopping and found it still blocked.  I repeated this process AGAIN and it was still blocked.  It was not until the third call that I managed to get the card unblocked.  On each occasion they assured me the problem was solved.  Overall I spent about three hours on the phone at international rates. 

I wrote an email to complain and was told they would send a physical letter to explain what had happened.  Such a letter never arrived.

Last Monday, 11/26, while en route to California, I misplaced my card.  Believing I had lost it in the airport, I rang to report it lost.   I spent 25 minutes on the phone and spoke to three different individuals.  The final one told me she could not suspend the card for some reason that she didn’t mention and that I would have to call back some other time.

I did not call back, hoping the card would turn up.  It did, on Friday 11/30, and then they promptly suspended it.  I emailed them to ask if it could be unsuspended, and was told that a new card had been issued and that I would receive it by mail 12/3.  Today 12/5 it had still not turned up, so I emailed again and they told me it was *mailed* 12/3.

On some level it is my own fault for continuing to bank with them, a problem which I will shortly remedy.

However, I am particularly grumpy with customer service assistants this week.

Number 2 was the gate agent at United in SJC on Friday afternoon.  After she twice stopped serving me to help someone else - and gave us each the wrong boarding passes - I politely asked if she could finish serving me before moving on.  She threw the boarding pass at me and it hit me in the face.  Charming.  I said nothing but took my pass and walked away.

Number 3, today I was on the phone to a doctor’s secretary.  She could not find me in the computer and then gave me a lecture on the fact that I was mispronouncing my own name.  If I would only pronounce it the way she did, instead of the way my entire family does, then people would be better able to assist me!

Vent over.  Will resume normal programming shortly.

Losing my religion

You’re over at a friend’s house – let’s call him Bob - and after opening a beer he invites you out to the garage to see something.  On the wall hangs a reciprocating saw.  You notice that there are no other tools visible, which seems kind of weird.  Bob says “You like it?  That reciprocating saw is the best tool ever.  When I got it, I really liked it, and I joined the local reciprocating saw users’ group.  They showed me all the cool things I could do with it, and I realized I didn’t need any other cutting tools.  I even use it to slice my cheese!”

What’s wrong with us? 

I am frequently irritated with the mindset that there’s One True Way of solving any kind of software problem, be it web platform, database choice, operating system, or methodological approach.  It’s been irritating me since I was an academic and I would present two different algorithms (let’s call them A and B) to solve problem X.  There would always be a student who wanted to know "which is better?"  Typically I would respond "In a situation such as […] A is better, but if you are looking at something more like […] B is better."  Most people would be happy with that but there are always people who insist that one must just be The Best Way.

So, reasons for choosing, or sticking with, a particular technology/methodology/whatever:
- It solves the problem you need to solve.
- You have a lot invested in it and there is not a sufficient business case to switch.
- It’s easier to hire people with the appropriate skills / your staff have this set of skills and you can’t just fire them all
- It matches your mindset, or, to go back to the hardware analogy, it fits your hand.
- It has good community / support .

There are very very few absolutes in choosing tools, save that whatever tool you choose should be of basically decent quality.  I have my biases like everybody else, but it’s important to realize when you have a bias and acknowledge the effect that has on your decision making.

In particular, telling another engineer that all their problems would be solved if they would just switch from technology A to technology B is often the worst kind of cultish thinking.  I’m talking about the kind of discussion you see on mailing lists, on IRC, or from some people in person where you say "I have this problem.  I’m using technology A and…" at which point someone butts in and says "Switch to B." when they know nothing about your problem.

(Having said this of course, there are some exceptions, in particular to do with upgrading versions and using basically dead technologies.  So sue me ;) )

ApacheCon slides: PHP Best Practices

You can now download the slides for my talk at  ApacheCon US 2007 on PHP Best Practices.

Slides for DCPHP Conference 2007

The slides for Write Beautiful Code are now online.  (As I said before, basically the same as the Premium PHP slides, but I like this title better.)  The DC PHP conference is bigger than last year and I really like the venue.  I’m currently sitting in Eli White’s talk "Help!  My website has been hacked!  Now What?" which based on a great set of anecdotes about attacks on Digg.

DC PHP Conference

I’m headed to the DC PHP conference tomorrow to give a plenary session called "Write Beautiful Code".  This will be the same talk I gave at ZendCon which was pretty well received.  (I changed the title to something I thought more appropriate once the presentation was actually written.)

On Friday morning Luke and I will give our PHP Best Practices tutorial at the conference.

I see a good number of PHPers are already at the conference - I look forward to catching up with everybody there, although I will probably have my head in a laptop in between talking, got a lot on this week.  Fingers crossed for a decent network connection.

On Open Source: PHP Video Podcast

At OSCON this year Luke and I recorded a video podcast for Informit, talking mostly about the current state of PHP.  This is part of Informit’s podcast series On Open Source

Part 1
Part 2

I rant about frameworks, Luke talks about PHP security, and we offer advice for young programmers.  I hope you enjoy it, it was fun to record.

(As a note: I’m really really hyper in this.  It’s fear of people pointing cameras at me, and also the fact that I need to move when I talk - now you know why I have to walk around the stage when I’m talking at a conference - because if I have to sit down I am forced to wave my hands around and make faces like a crazy person in order to express myself adequately.)

I mention in the podcast not taking on any technology as a religion: I’m in the process of drafting a blog post, so watch this space for more on that topic.