Seven Things About Me You May Not Know (And Probably Won’t Care About)

Due to the efforts of Brian Moon and Michelangelo van Dam, I’ve been sucked into a meme started by Tony Bibbs. My initial reaction to this unfortunate event was … (envision Steven Colbert, hands raised…) “Noooooo!!!” But I got over it. Hey, it’s the holiday season, I might as well be a good boy and fulfill the modern-day geek’s equivalent of a chain letter.

So, without further ado, here is my list of seven things about me you probably could care less about and will skip over to see if you are on my list of tagged people. (Yeah, you know you will.)

  • My real name is not Jay
  • I have a twin brother, Andy, who lives in England with his wife, Vicky, and my nephew, Archie. (I’m originally British, and my brother moved back to the “motherland” around 10 years ago)
  • My father worked for American Standard Plumbing Products for something like 30 years. Having a Dad working in the plumbing industry with a surname of Pipes has been, well, interesting.
  • My wife, Julie, has a yoga studio in Columbus, Ohio, where we live. I have no interest whatsoever in Yoga. This works well, as my wife has zero interest in technology. We always say that the secret to our marriage is low expectations.
  • My favourite shows on television are Mythbusters, Top Gear, and Big Ten Football (and, yes, I know the Big Ten sucks this year.)
  • I love the texture of velour. There’s just something about it. If not for social customs and expectations, I would likely dress entirely in velour.
  • I find garden gnomes, clowns, and mimes incredibly creepy. Oooh, and magicians. They’re creepy too.

Here are the folks I’d like to know a little more about:

  • My brother Andy. Being in England, I don’t get to see him as much as I’d like to, and especially since he’s now a proud father, I’d like to know what’s changed in his life and what he wants others to know about him.
  • Jonathan Schwartz – yeah, he’s the CEO of Sun, yeah, he’s got a ponytail, but seriously, what makes him tick?
  • Thomas Friedman – he’s an author I really respect and admire. Be cool to know if Mr. Friedman ever gets sick of going on all those talking head shows…
  • Jan Kneschke, the creator lighthttpd and MySQL proxy, and all-around interesting dude.
  • Sergey Petrunia, another brilliant guy. He’s on the MySQL optimizer team and hangs out on #drizzle, but I don’t know too much about him personally!
  • My co-author on Pro MySQL, Mike Kruckenberg, is an all-around fantastic guy, wonderful father, and great thinker. I’d like to learn a little more about him more than I know already. :)
  • Since I don’t think Hans Reiser will be able to continue the meme, I’ll choose Monty Widenius because I am positive he’ll come up with some very interesting tidbits about himself that may well make its way back to his Wikipedia page.

And, of course, the rules in case anyone missed them:

  • Link your original tagger(s), and list these rules on your blog.
  • Share seven facts about yourself in the post – some random, some weird.
  • Tag seven people at the end of your post by leaving their names and the links to their blogs.
  • Let them know they’ve been tagged by leaving a comment on their blogs and/or Twitter.

So Long, and Thanks for all the Fish

Well, as Giuseppe announced, I am leaving the MySQL Community Team after almost three years. I’ll still be working at Sun, but as a staff engineer on the Drizzle project in the Sun CTO organization. We are looking for someone to pick up the reins in the North American MySQL community and assume the role as Community Relations manager. Interested? Get in touch with Giuseppe or myself after reading his article about the requirements of the job.

I should add that candidates should be advised about Giuseppe. As your team lead, he may subject you such horrors as excellent project and managerial skills, a kind and encouraging shoulder on which to vent, and a deep, heartfelt connection with open source and community issues. In addition, you can look forward to working with Kaj, Lenz, and Colin, three of the hardest-working people at MySQL which will eventually make you feel like you just can’t do enough to keep up. :)

So, MySQL Community, thanks for all the Fish! Of course, I won’t be too far at all. Working on Drizzle, it’s pretty likely you’ll be hearing from me. That is, if Brian and Monty let me out of my coding rabbit-hole…

Slides from Drunken Query Master and Join-fu Talks at ZendCon


Sorry for the slight delay in publishing the slide decks from my tutorial and session at ZendCon this past Monday and Tuesday. A short flight to Ríga, Latvia, got in the way.

Below are the Open Office Impress and PDF versions of the slide decks for Legend of Drunken Query Master and Join-fu for ZendCon. Enjoy.

Legend of Drunken Query Master: The Apprentice’s Journey

  Open Office Impress slides

  PDF slides

Join-fu: The Art of SQL – ZendCon 2008

  Open Office Impress slides

  PDF slides

Topics included in the slide decks:

  • Schema optimization and vertical partitioning
  • SQL Coding style guidelines
  • Set-wise problem solving in SQL (and why it kicks for-loop-fu’s ass.)
    • Rewriting correlated subqueries into joins
    • Using derived tables or subqueries in the FROM clause
  • Working with N:M or “mapping” tables
    • Dealing with OR conditions
    • Dealing with AND conditions
    • Combatting filesorts using Cross-join-fu
  • Understanding Left-join-fu
  • Handling Heirarchical Data
    • Adjacency Lists
    • Nested Sets
  • Reporting techniques in SQL
    • Calculating running sums and aggregates
    • Calculating rank of results

Join-fu: Tomorrow at the Atlanta PHP User Group

Tomorrow, Thursday the 15th, I’m driving down to Atlanta to give a presentation on Join-fu: The Art of SQL at the Atlanta PHP User Group. If you’re interested in how to squeeze the most performance out of your (My)SQL applications, some “join” me. :) We’ll be covering a number of topics, including a brief overview of MySQL internals, optimizing schema and index organization, understanding the many MySQL storage engines, and most of all, how to think in SQL and not in your programming language of choice.

Why is it important to think in terms of SQL and not your programming language of choice when implementing database-centric applications? Well, the short answer is that SQL is a set-based language, not a procedural or object-oriented language. Because of this, solving problems in SQL requires thinking about the problem domain in terms of inter-related sets, and not for loops or iterators. The longer answer…well, you’ll just have to come and check out the talk! It’s a fun, rowdy look at all the bad habits we pick up as programmers and how to correct those habits. See you there!

The talk is at the Consulate General of Canada in downtown Atlanta and starts at 7:00pm.

Speaking at OINK-PUG in Cincinnati Tonight on Join-Fu: The Art of SQL

Just a quick note to let folks know I’ll be doing a presentation on Join-Fu: The Art of SQL, tonight in Cincinnati. Thanks to Elizabeth Naramore for inviting me down to OINK-PUG (Ohio-Indiana-Northern Kentucky PHP User Group)!

I’ll be covering both Beginning Join-Fu and Intermediate Join-Fu tonight. Topics covered include:

  • Schema optimization and vertical partitioning
  • SQL Coding style guidelines
  • Set-wise problem solving in SQL (and why it kicks for-loop-fu’s ass.)
    • Rewriting correlated subqueries into joins
    • Using derived tables or subqueries in the FROM clause
  • Working with N:M or “mapping” tables
    • Dealing with OR conditions
    • Dealing with AND conditions
    • Combatting filesorts using Cross-join-fu
  • Understanding Left-join-fu
  • Handling Heirarchical Data
    • Adjacency Lists
    • Nested Sets
  • Doing GIS calculations in SQL
    • Without using user variables, the spatial extensions or stored functions
    • Calculating distance between two points
    • Doing radius searches in spherical geometries
  • Reporting techniques in SQL
    • Calculating running sums and aggregates
    • Calculating rank of results

Please come “join” me at the event. :) The address is 302 W 3rd St # 900, Cincinnati, OH 45202.

Take the MySQL Magazine/Community Survey – PHPers Unite!

For all you dolphins and elePHPants out there, please take a look at MySQL Magazine‘s community survey, graciously produced by Mark Schoonover and B. Keith Murphy. Why bother taking the survey? Well, that’s simple. It gives us insight into what you think about MySQL, what languages and platforms you use most often, and what you think about current release schedules/policies and other things. In short, you’re helping to make our community better!

Please spend five minutes to take this short survey. Thanks!

Join-fu: The Art of SQL Tuning


Last night, I was fortunate enough to give a presentation called “Join-fu: The Art of SQL Tuning” at the local Columbus PHP Meetup group. There were about 14 people there, and it was a great time. Lots of good questions! Anyway, I created a new slide deck with some new material on LEFT-join-fu and managing many-to-many relationships that folks might find handy. Below are the slides in OpenOffice Impress and PDF format. Enjoy.

Speaking at HabariCon Today…


At 1:30pm EST today, I am giving my much-anticipated talk on Using Open Source Projects for Personal Profit at the first annual HabariCon, which is a celebration of uniting the user and developer communities in friendship and collaboration. I am expecting 80-120 people to show up for my talk, which focuses on how you can contribute a bit of code early on in an open source project’s life and claim to be a valuable member of the committer society, thus increasing your overall karma in the open source community and landing you a higher-paying job. It’s must-see learning for anyone interested in the economics of Cabal-coding. See you there!

Feel free to join the Habari Cabal and others on Freenode #habari and learn invaluable tips from some of the best open source community leaders in the world!

Hitchhacker’s Guide to the MySQL Conference – PHP Edition

For those of you who have been stuck under the proverbial rock for the last couple months, the MySQL Conference and Expo is just around the corner. The conference’s tutorial day is April 14th, which means if you haven’t registered yet, you should definitely do so. For a 20% discount, email me at my first name at mysql dot com. Register soon because tutorials are already selling out or entirely sold out.

Hitchhacker’s Guide to the MySQL Conference

PHP Developer’s Edition

This blog post marks the first in a series of guides to the conference that we’ll be publishing in the next couple weeks leading up to the conference. The guides are intended to help a specific audience find the sessions that will likely be the most interesting for them. The first edition of the Hitchhacker’s Guide is for PHP and MySQL developers. As PHP is dear to my heart, I’ll be writing this one myself. Others will be following up with other editions, and the guides will all be posted on the MySQL Forge‘s wiki pages for the conference.

The Keynotes

If you attended last year’s conference, you will undoubtedly remember some of the most entertaining and memorable keynotes ever given at a MySQL Conference (or any other conference, IMHO…). Guy Kawasaki dazzled, Eben Moglen awed, and a panel of DB Egos amused the keynote audiences. This year’s lineup is, in a word, amazing, and any PHP developer worth their salt is going to want to hear all of them. Here, however, are the three that PHP-ites may find the most fascinating…

A Head in the Cloud – The Power of Infrastructure as a Service is a keynote delivered by the reknowned Werner Vogels, CTO of Amazon.com. The keynote is about the challenges faced while building Amazon.com and the future challenges this industry is bound to face. So, why should PHP developers want to hear about Amazon.com if that site isn’t a developed in PHP? Because the talk is predominantly about the challenges that scalable environments face. Regardless of whether Amazon.com is written in PHP, developers using PHP still face similar challenges in scaling to meet the demands of modern applications. So, listen and learn from one of the best.

Copyright Regime vs. Civil Liberties. Rick Falkvinge is the head of the Swedish Pirate Party… What on Earth does this have to do with PHP developers? Everything. As PHP developers, we use a language that is almost 100% community-driven, and not backed by a single corporation. It is a defining characteristic of the PHP language itself, and the community as a whole, that no one person owns PHP. It’s a communal thing! Well, Rick will be speaking about the problems with copyright laws as they exist today, and what things are being done to address those problems. In light of the recent debates regarding PDOv2, this is something all PHP developers should keep an eye on!

A Match Made in Heaven? The Social Graph and the Database. Jeff Rothschild, VP of Technology at Facebook. Facebook is a huge PHP shop. Facebook is a huge MySQL shop. Facebook is huge. Facebook. Enough said.

Tutorial Day (Monday)

My recommendations would be to catch Giuseppe Maxia and Jan Kneschke‘s full-day tutorial on the new MySQL Proxy, Bill Karwin’s SQL Anti-Patterns tutorial, or Brian Aker and Alan Kasindorf‘s Memcached Complete tutorial. Any of them is a great bet. I’d recommend Ask Hansen‘s Real-World Web tutorial, but it’s been sold-out for a while…

Sessions to Catch

Tuesday, April 15th

After the keynotes on Tuesday morning, you’ve got a whole lot of choices — some of which will be exceedingly difficult to make. In fact, some of these sessions are going to be standing-room-only, so if you really dig(g) a session, then show up early for it and get a seat. In the first session block, there are two sessions of particular note to PHP devs. First off is Sebastian Bergmann‘s Testing PHP/MySQL Applications with PHPUnit/DbUnit. I personally have marked this on my personal conference calendar, as I am very much interested in learning how to harness DBUnit for the database-centric tests for MySQL Forge. In addition, during the same time slot is Mike Zinner from MySQL talking about the new MySQL Workbench GUI toolkit in MySQL Workbench: The Ultimate Database Design Tool for Developers. I know my friend Cal Evans will want to be in that one…

Tuesday’s 11:55am and 12:40pm time slot is perhaps the most difficult choice for the PHP developers. There are five sessions that will interest developers using PHP. Perhaps the most popular will be Robin Schumacher‘s talk about the future of MySQL and Domas Mituzas‘ talk on Practical MySQL for Web Applications. However, popularity aside, Beat Vontobel’s The Lost Art of the Self Join should be amazing since he will be solving a Sudoku puzzle entirely in SQL.

Another difficult choice will present itself in the after-lunch session block. Seasoned MySQL conference speaker Mike Ho will be presenting his ideas about object-relational mapping for the PHP developer in “Beyond SQL and ORM: Object-oriented MySQL Querying in PHP“. At the same time, you may want to check out Sigurd Magnusson, of Sliverstripe fame, talk about Upgrading to Elegant and Versatile Database Architecture Using PHP5 Data Objects

Rounding out Tuesday’s must-see sessions are Baron “the Schwartz is with you” SchwartzEXPLAIN Demystified, a talk which every developer interested in the performance of their SQL queries should attend, and Replication Tips and Tricks with MySQL engineer Lars Thalmann. Anyone using replication and PHP should attend this talk. Finally, Joe Stump from Digg.com will be talking about implementing Service-Oriented Architecture with PHP

Wednesday, April 16th

Wednesday also holds a number of choices for PHP devs to make. In the morning, I’d recommend catching either Roland Bouman‘s sure-to-be-cool “Grand Tour of the INFORMATION_SCHEMA” or Giuseppe‘s talk about MySQL Sandbox. If you use multiple database servers, for testing, staging, development, etc., I would highly recommend checking out the Sandbox to alleviate the pain of multiple MySQL instances. Well worth it.

Next I suggest heading over to catch Colin Charles talking about what the MySQL Community is all about; what challenges it faces, how it functions and grows, and how you can contribute to it. After lunch, you’ve got a tough decision. You can either come see me and Tobias talk about Microbenchmarks for MySQL (sure to be fun!) or view Domas Mituzas’ talk about handling character sets in MySQL and PHP, or if you are interested in an upcoming storage engine from MySQL, you can see Monty talk about the new Maria engine

In the afternoon, be sure to check out Baron’s talk on the MySQL Query Cache or see two of our web team talk about Using Frameworks in Web Application Development. In addition, find some time to attend Tom Hanlon’s 90 minute talk on Benchmarking and Monitoring MySQL. Word of warning: Tom’s talk will be standing room only. Get there early.

At night, don’t forget to attend the MySQL Quiz Show, MC’d by yours truly, and a cocktail party sponsored by Sun directly afterwards. Get your Quiz on.

Thursday, April 17th

The final conference day is chock-full of meaty stuff for the PHP developer. After the morning keynotes, seek out George Trujillo and Alexander Nozdrin’s talk on Stored Routines or go hear Jeremy Cole and Eric Bergen talk about hardware considerations for scaling MySQL. Either talk should be dynamite.

Follow that up with the always-entertaining Damien Seguy‘s MySQL Hidden Treasures or Mark Callaghan‘s Helping InnoDB Scale on Servers with Many CPU Cores and Disks. Finally, make sure to get into the ballroom to hear Dathan Pattishall talk about his techniques for achieving massive Real-time Concurrent Writes at flickr.

Register Now for the 2008 MySQL Conference and Expo!

As you can see, there’s a ton of options for the PHP developer at this year’s conference. If you haven’t registered yet, do it now! Email me for a 20% discount code!