« July 2005 | Main | September 2005 »

August 30, 2005

Co-Authors of Pro MySQL Meet

After 6 months of slaving together on our respective chapters and spending countless hours on the phone and over email, I finally met Jay in person this weekend. He was in Vermont for a family gathering and came to spend two days in Boston. Jay, his fiance Julie, and his twin brother Andrew met us at our place Saturday evening. We hung out with the family for a little bit, took some photos and signed some copies of the book and then headed out for dinner.

We took the train (and shuttle bus) down to the north end and ate at Al Dente. The wait was long . . . a lot of people in the north end on a Saturday night. We didn't mind waiting because we got to witness a good portion of the St. Andrew feast parade. Italian people dancing in the streets, music playing etc. We felt privileged that we got to see some of the authentic Italian culture during our evening.

There was no lack of conversation through the evening. Heidi, Andrew and Julie busied themselves with normal conversation for good chunks of time while Jay and hashed over everything from the craziness of multi-day all nighters to the changes in MySQL since the book went to press.

Meeting Jay was like one of those experiences where you had a friend that you haven't seen for a long time and when you do it's like you hadn't missed a beat. The difference here was that I'd never met Jay before, but the fact that we'd both been through this crazy experience and had spent countless hours on the phone, email and scouring over each other's work that our first meeting felt more like a reunion.

It was really cool that Jay (and company) took the time to come down so we could hang out. Couldn't have imagined a better evening. I'm sure it's not the last time we'll hang out. Heidi and I would like to get over to Columbus, and I'm chipping away at Jay to get out to the next MySQL user's conference (assuming there is one in the works).

Posted by mike at 8:37 AM

August 26, 2005

Another (one of my favorite) Pro MySQL Sample Chapter

The Pro MySQL page on Apress now has Chapter 4, MySQL System Architecture, available as a sample chapter download.

Jay wrote this one and it's one of my favorite chapters in the book. It's an in-depth look at the organization of the MySQL source code. My recollection is that Jay spent more than a week of all-day sessions digging through the source code and organizing information.

Looks like the eBook is now available too.

Posted by mike at 12:08 AM

August 25, 2005

Catching up on MySQL

It's been too long since I've spent an evening in the MySQL docs (something I once did every evening). Updating to the latest 5.0.x release is always a good thing, expecially when looking over the list of functionality changes and bug fixes in the recent releases.

A quick list of noteworthy things that have changed in the last several releases:

Apologies to the developers who slaved over new features that's didn't catch my eye.

Posted by mike at 12:39 AM

August 24, 2005

MySQL Changes to Procedure Logging

Perusing the MySQL docs tonight and wanted to note this change. In version 5.0.6 MySQL added writing (correctly) stored routine syntax to the binary log (which is used for replication and data recovery). Along with the CALL statement, CREATE PROCEDURE, ALTER PROCEDURE, DROP PROCEDURE, CREATE FUNCTION, ALTER FUNCTION, and DROP FUNCTION all have been added to the items logged in the binary logs.

This is excellent news. However, this opens up at least one security issue, namely that these statements are replicated and run on slave machines with full privileges (not using the user's permissions) and can lead to unauthorized changes in the slaves.

To secure your routine statements on servers with binary logging enabled, 5.0.6 requires that to CREATE or ALTER procedures or functions one of two conditions must be satisfied:

  1. The user must have the SUPER privilege in addition to having a CREATE/ALTER ROUTINE or CREATE/ALTER FUNCTION privilege.
  2. The log_bin_trust_routine_creators option must be set

Without one of those conditions, a server with binary logging enabled will now give an error stating that either you need the SUPER privilege or you must enable the trust option.

There are a few other things to note about procedure logging.

Posted by mike at 10:07 PM

August 14, 2005

Where's the MySQL Podcast?

There seems to be a podcast about everything under the sun, there's even a PHP podcast. Is there someone brewing a MySQL podcast out there? Not sure what kind of interest there might be, but I'd subscribe to hear periodic interviews with key folks in the community and to get an inside look at what's happening in development.

Just ideas . . .

Posted by mike at 10:24 PM

August 11, 2005

Why we're Sticking with Perl

I had a request to do a follow-up post on our look into other programming languages.

In my mind there are three reasons to move away from Perl:

  1. No industry support (can't find programmers, lacking community support).
  2. Another language required for collaboration. We're involved in a number of different projects that use Java, which pose a continual question about if we were using Java would there be more collaboration and exchange between projects. Most of the other schools using TUSK have PHP experience which
  3. Something much better is out there that is compelling enough to switch despite not being required by number 1 and 2.

We frequently run up against questions around issue number one and two, but number three is also something to keep in mind as this is a constantly changing industry.

Industry Support

Most recently we were trying to fill two Perl positions and not getting any response which resulted in questions from HR about Perl being a dying language etc.

A quick search on Monster's active resumes (posted within the last month) reveals that Perl isn't rare (shown in table).

Monster Resume Search
 matches search term
754"Java developer"
319"Perl developer"
168"PHP developer"
39"Python developer"
6"Ruby developer"

I've become convinced that finding Perl employees isn't so bad just yet to warrant such a huge shift (we're talking a lot of lines of code and functionality).

Collaboration Requirements

We regularly hear two different comments. First, if we were using Java we could easily integrate work from other schools, particularly taking advantage of the efforts of the Sakai project. Second, all of the schools who have adopted TUSK as a content/course/knowledge management system have PHP expertise on hand and ask if they can work in that language.

Neither of these requests are quite concrete enough to warrant a full-on rewrite. We've talked about having development collaboration between schools, which would require some common language. We've also thought and talked about using web services to enable interoperation between our Perl-based site code and another system. So far there has not been a pressing need for this either.

A Better Language

Language choice is war. There are a zillion reasons why Perl, Java, PHP, Ruby on Rails, Python etc are the right or wrong choice. Currenlty, there's nothing so wrong with Perl and right with another language to warrant a move. This exercise has given me a chance to look at Ruby on Rails and the new OO stuff in PHP5 and I'll definitely be experimenting with both in my free time. For the complexity of our site, Perl runs very fast and gives us the framework to do good. It didn't help that Paul, who likes PHP, went to OSCON and sat through 1.5 days of Damian Conway's infectuous excitement about the greatness of Perl.


In concusion, having a few weeks go by where nobody was applying for our Perl job just isn't enough to warrant a multi-year effort to do a major shift. That being said, I bet it's not another 6 months and I'll be back here talking about how we're still thinking, and being asked about it.

Posted by mike at 2:21 PM

Could Leaving Vinyl (Records) Behind be a Mistake?

I got my first CD player in 1987, after having amassed a large collection of vinyl records. In 1990 I left home and access to a record player. For the past 15 years the records have been at Pete's house and I've gradually moved from listing to CDs live to having them on the iPod.

A few months back Heidi got me a new record player for my birthday, and Pete bundled up a chunk of the records (~75) and sent them (media mail makes it a reasonable expense).

The first album I put on was U2's Wide Awake in America. I can't describe how stunned I was by the sound. I've heard and read about vinyl fanatics who are clinging to this medium for it's superb sound quality. I couldn't have imagined how noticeable the difference is. It was a full sound like I can't remember ever experiencing. Having the quality of CDs and MP3s (m4a too) pounded into my ears for 15 years makes it easy to hear the difference.

We then moved, and the records and player got packed up . . . until last night. I had a few free hours and got it unpacked. Again, stunned by the sound. Last night I started with The Police's Synchronicity. It's almost an emotional experience to hear the full sound of the chimes/bells/keyboard that start the album off in Synchronicity I.

Since Wide Awake and Synchronicity are albums I only have on vinyl (haven't listened on CD), I put on R.E.M.'s Document. Again, listening to Finest Worksong was such a different experience from listening to it on my iPod. I listened to most of the album and noticed things I had never noticed before (I'd estimate my listen count for the Document to be in the hundreds).

When I first got the record player and records my intent was to use the record player as a transition to getting all of my LPs onto CD. I've done that with one song, but the quality once it gets to MP3 (even at high bitrates) is just like every other MP3, lacking full sound quality. I've decided that the record player is most valuable for live listening. Yes, I will likely also transfer some of the records to CD but plan to enjoy a lot of listening hours.

As I was listening last night I thought about the generations of music lovers now and in the future who won't get to experience the sound of a record. Perhaps I can hope for a future medium that will do better than our current digital sound options.

The cool thing about records now is that you can pick them up for $.75 in any pawn shop. Watching eBay too, would love to pick up a huge collection from some person who's moving or just wants to be rid of them.

If only vinyl were more portable . . .

Posted by mike at 7:57 AM

August 10, 2005

Eventum is Pretty Slick for Simple Project Management

A few weeks back I read a post somewhere (I think by Arjen) about Eventum, an issue tracking system created by and used at MySQL AB.

I've been looking for a tool to track projects, something simple that will let me enter description information, categorize projects, indicate priorities and estimate time (in developer hours). I'd looked at worklog, also used by MySQL AB but there was a lot of hard-coded configuration data. I also played with Metis, but it didn't have the finctionality I was looking for (too reliant around dates, I don't have dates).

After having used Eventum for a week, I think it's just the tool I was looking for. We have no project manager in our office who keeps track of projects, priorities and timelines. Having a tool to enter projects and be able to assign priorities and estimate time fills a gap we needed desperately. This doesn't replace our bug tracking system, Mantis, nor will it give us what we get from our wiki where we write specifications and documentation.

For now I'm the only one using it, just to keep track of incoming projects. I figure after a few weeks of feeling like it's serving me well I'll share it out with the developers and then eventually the user support folks.

So far I've made one customization (in the Smarty templates), a display of the total estimated developer time for any given list of issues. Any time you look at a list of issues, each with their own estimated development time, I added a line at the bottom of the table that totals up the development time. Thus, if you do a search for all issues assigned to a specific developer you can quickly see how much time they are currently committed to. Same for a particular category, you can see how many total developer hours until the completion of the project:

Total Est Dev time: 164 hours = ~23 days = ~4 weeks

Adding this took two changes to the list.tpl.html template (in templates/en). The first, added after line 203:

{assign var="total_hours" value="`$total_hours+$list[i].iss_dev_time`"}

The second block is added after line 286:

{if $total_hours}
<td class="default" colspan="10">
Total Est Dev time: {$total_hours} hours
= ~{$total_hours/7|string_format:"%d"} days
= ~{$total_hours/35|string_format:"%d"} weeks

Other than having to do this again if we upgrade Eventum in the future, I don't think I've violated any of the templating principles used. It makes it really nice to see the total estimated time on every set of results on the list page.

One other thing I'd like to see is an Excel export of all fields, including the issue body. Having the Excel export makes this tool a great fit in our office because my manager likes to have everything in a spreadsheet that she can manipulate.

All in all a pretty cool tool. Go Eventum.

Posted by mike at 1:34 AM

August 5, 2005

Why doesn't iTunes have a Wishlist?

I'm annoyed that the iTunes Music Store doesn't have a wishlist feature (or it's well hidden and I can't find it). I spend a fiar amount of time at the store and inevitably find something I'd like to have, but not necessarily now. If I had a wishlist I gaurantee I'd spend more money on music. I can't count how many times someone has pointed me to an artists or an album and after listening I've wanted to put it on a list to consider for later purchase.

Is there some reason to NOT have a wishlist feature?

Posted by mike at 2:14 PM

August 4, 2005

Will Work for Music Equipment

In posting our job on jobs.perl.org I noticed that Musician's Friend in Oregon is looking for a Perl programmer. Now that would be a cool gig.

I wonder if they'd get better applicants if one of the perks was store credit. You know, the geeks that really would rather be musicians but are compelled to have a steady job.

I'm not looking for a job, but I'd be willing to consider some side-jobs in exchange for store credit. I've got a long wish-list over there.

Posted by mike at 4:02 PM

Tufts Employee getting Press at OSCON

Paul Silevitch, one of the TUSK developers who's out at OSCON this week, is getting some press. In a Newsforge article on OSCON:

Paul Silevitch, a programmer with Tufts University's medical center, was attending OSCON to investigate potential savings and other benefits from moving more to open source software. "Right now, we're all over the place," he said. "It's not as open source as I would like." Silevitch had some licensing and other concerns, and indicated that the amount of information to wade through was somewhat overwhelming.

I'll be curious to hear what savings opportunities Paul will come back with, we're already almost 100% aligned with open source software. If I had to guess, Paul was speaking about trying to make our software open source, and thinking about how to unify the various pieces of our system.

Posted by mike at 1:44 PM

We Need A Perl Programmer

We need a Perl programmer. As the new manager of the technical team, I'm posting to jobs.perl.org today, but wanted to stick this here too. Most of the work is Mason (for presentation) and Perl modules (for data access and business logic), but there's more. Here's the scoop.

The Job
Tufts University Science Knowledgebase, TUSK is an innovative curriculum repository/knowledge management system which serves the health science schools at Tufts University. The data, "learning objects," have been structured to facilitate integration across schools and disciplines. In addition to its knowledge management functions it interfaces with administrative systems to provide students with course schedules, personal folders, and on-line course evaluations.

The Programmer/Analyst will develop user-friendly web-based applications within the Tufts University Science Knowledgebase--a web application written in Perl (mod_perl & Mason) backed by a MySQL database. The programmer will be expected to use existing OOP modules for building front-end tools, and create new OO modules where needed. This person also supports TUSK staff and faculty as needs arise on technical problems. Applications developed will be designed, created, tested, modified, and documented as needed. The programmer works on simultaneous projects and assists in defining applications and best practices as they related to TUSK application development. Also, he or she works with the TUSK technical team to assure applications meet the specifications of the system architecture and are well documented.

The Skills
Requires a Bachelor's Degree in Computer Science (or equivalent experience) with one to three years experience. Must be an expert in Perl, SQL, HTML and other open source UNIX software packages. Should be knowledgeable about web server administration, willing to learn new technologies. Must have the ability to interact with users and programming teams throughout the university. Superior technical, organizational, multitasking and interpersonal skills required.

The Inside Scoop
The thing that isn't said in this job description is that the programmer we want doesn't just do Perl. He or she loves to tackle different kinds of problems, and spearhead thinking them through and proposing solutions. The knowledge or training isn't required, rather acquired through research and expirementation. We have a bit of XML/XSLT in the system, some PDF generation using FOP, a Palm application for students. We'd like someone to tackle a project looking at tools for XML authoring, and how to convert Word documents to XML. We've toyed with an RSS feed for students. While having a person who knows and prefers to stick with Perl will be able to get a lot done, we'd love to have someone who's willing to tackle a wider range of technical issues.

The other things that isn't said is that Tufts is a pretty cool place to work. The benefits are good and the work week is 35 hours. There's very little staying late or craziness over deadlines. We do have early morning releases and late-night upgrades, but they are scheduled by us and compensated for (in time off).

To the Applicant
The technical team (once you are on board) will be four people. It's a small group working up on the 5th floor in Tufts downtown Boston campus. By the time you are hired, we'll have moved to a new part of the office with nice large windows (overlooking Chinatown). We're all pretty cool people with interesting techy and non-techy experiences. Your development environment is completely up to you. We've have programmers who chose OS X, Gentoo (Gnome2), Fedora Core (both Gnome and KDE) and once we had a programmer who chose Windows. The desk, and a lot of opportunity is waiting for you.

The official job listing is also up on the Tufts employment page.

Posted by mike at 11:21 AM

August 3, 2005

ProMySQL Book Excerpt Featured on MySQL Developer Zone

This is awesome, I didn't even know it was in the works. Chapter 6 from Pro MySQL is the featured article for this week on the MySQL Developer Zone. Now that's what I call getting the book some exposure.

Also . . . we got a good review from adminspotting. Interesting idea about the head hurting from too much deep info . . . Jay gets full credit for those parts of the book.

Update: Here's a photo of the page, as it will change in a week.

Posted by mike at 6:29 PM

Inexpensive Golf Courses in Boston

Last weekend a few friends and I did the back 9 at the Leo J. Martin Memoial Golf Course in Weston, MA. We'd been saying we were going to go since sometime in the middle of last summer and couldn't find a Saturday that worked for all of us. It finally came, we had perfect weather and a great time.

In a strange twist of timing, we're going to get out this Saturday. I promised the guys I'd do some research to confirm our allegiance to Leo J. Martin.

Finding a golf course in Massachusetts isn't easy for folks like me who also golf in Idaho and Utah (where I visit family frequently). In that part of the west, golf courses are everywhere and are reasonably priced. In Massachusetts it's a different story. First you have to remove all of the private courses (I don't have any connections), which removes over half of the courses from the list. My main issue with the remaining courses is the fees. It's not uncommon to drop $85 for green fees. That's beyond what I can afford for a casual hobby, so I'm left looking for the cheapest possible experience. The Leo J. Martin is right down there at $17 for 9 holes and $25 for 18 (weekend pricing).

I researched this last summer, but just to be sure I'm looking around again. The complete list of courses I can entertain as possibilities (all weekend pricing):

- Leo J. Martin (Weston): $17 for 9, $25 for 18
- Fresh Pond (Cambridge): $24 for 9, $36 for 18
- Franklin Park (Dorchester): $16 for 9, $26 for 18
- Mt. Hood (Melrose): $26 for 9, $44 for 18
- Cedar Glen (Saugus): $19 for 9, $29 for 18
- Stone Meadow (Lexington, par 3): $10 for 9
- Gannon Municipal (Lynn): $20 for 9, $40 fo 18 (time restrictions)

I'm encouraged, a year ago I thought Leo J. Martin was my only choice, but it looks like there are a few others in my price range.

Posted by mike at 5:52 PM

August 2, 2005

My Nominees for the MySQL Guilds

In the recent Open Letter to the Community from Monty and David (MySQL founders) they highlighted the MySQL Guilds. It's a good idea, provided it isn't just a list of MySQL AB employees or that it doesn't become so huge that there's nothing special about being in one of the guilds.

Before I get into the nominees, I would suggest that in addition to the list of active guild members, there be a way to review emeritus guild members, people who have been in the guild but have moved on and are no longer active.

I don't claim to have my finger on the pulse of the MySQL community, but if I was asked to submit names for people, there are three that aren't currently guild members that I would suggest:

Expert's Guild

Shawn Green

If you've seen the mailing list for any amount of time, you know this guy (from unimin.com). I have no idea who he is, but he is always on the mailing list and he's not hammering out those quick "here's a pointer to the documentation" messages. He spends a lot of time on the mailing list . . . it's almost unusual for him to not weigh in on an issue.

Heikki Tuuri

Heikki seems to single-handedly handle all of the InnoDB-related issues on the mailing lists.

Writers, Speakers, Experts, or Developers Guild

Jeremy Zawodny

Maybe Jeremy's moving on and not doing as much with MySQL anymore, but I think he's done enough for MySQL in the past several years to get him on one of these lists.

Update: Cool. Arjen extended invitations and both Shawn and Heikki are now in the Experts Guild.

Posted by mike at 11:47 PM

What Should I Buy?

I've given myself (and obtained from Heidi) permission to make a semi-large purchase as a reward for working hard. I've been thinking about this for the past several months and have come to no resolution on exactly what the reward will be. I have identified several things that seem equally enticing (for different reasons):

I had the ProTools setup in the shopping cart and couldn't press the buy button. It was then that I decided to put it all down here and see if that helped clarify.

Posted by mike at 3:43 PM

August 1, 2005

Market Trends in Programming Languages

I've seen at least one presentation where Tim O'Reilly (and his team) did a review of book sales and tied them to trends in computing. It just hit me that this might be a pretty decent way to get a sense of where Perl stacks up in the list of languages.

Tim recently wrote about the trends and provided an update. Looks like Java is on top and Ruby, PHP and python are on the rise. It appears that Perl is on a gradual slope down. Will be interesting to see if the trends continue over the next few years.

Posted by mike at 10:55 PM

At OSCON in Spirit

I may not be in Portland for OSCON, but I'm closely following the coverage. Seems like it's only bigger and better than it's been in the past. I wonder if not having the conference in the hotel makes it a different experience? Surely no-one will miss the snail-like elevators at the Marriot where it was the past two years.

Last year they announced the MySQL conference at OSCON, I hope they do that again so I can pencil it in and have something to look forward to.

Posted by mike at 10:45 PM