« April 2006 | Main | June 2006 »

May 31, 2006

A few days with the kids

This week I took some time off to hang out with the kids while Heidi is in Reno for a conference (not technical, in fact she thought that many attendees would not know how to use a computer). The kids are 4 and 5 now, remarkably easy to hang out with. It being warm and sunny makes a huge difference in what we can do. I did something similar last year.

So what's on the radar for the week?

So far it's been great, hopefully we'll make it through without any major breakdowns.

Posted by mike at 3:45 PM

May 30, 2006

2006 Golf Season Underway (with one amazing shot)

Monday morning, 4:30 am, I got up to pick up friends (including my regular golf buddy, Dave) on the way to the Leo J. Martin memorial golf course in Weston, MA (nature photos of the surroundings). We wanted to get there around the time the sun came up and beat the crowd likely to show up on a Monday holiday forecast to be in the mid 80s.

Besides the grass being a little wet, and a few bugs in the air, it turned out to be a great day. It wasn't the busiest I'd ever seen it, but the early start was a good move. We had the chance to get on right away if we were willing to do the back 9 first, so we did. I stunk it up for the most part only having a few decent shots.

The front 9 was a different story. I got on a bit of a roll and had several holes in a row with good drives, good fairway shots, and beautiful chips onto the green. Putting never really came together, but wasn't worse than any other outing.

The highlight was the last hole, a par 4 at 275 yards that I drove the green (was on the green with one shot). I don't think I've ever felt that good about a shot in golf. It put me in position to eagle the hole (score 2 under par). You can't see the green from the tee box on the 9th hole, so I came down the fairway looking for my ball along the fringe where I thought it landed while the others were chipping up onto the green. After not being able to find my ball and asking where it landed someone noticed there were already four balls on the green. Sure enough, one of them was mine. Now that's quite a feeling.

We're trying to figure out what is the right amount of golf. It's not a cheap activity (although the Leo J is not bad, at least for Boston, at $25 for 18 holes). Two summers ago I had enough going on that it was pretty much every Saturday that we were free (which turned out to be two or three). Last summer I used that same rule and ended up going out significantly more often, sometimes for several weeks in a row just because we were free. A few times a month probably makes most sense. I'm never going to get good at that rate, but it's enough to enjoy it.

Posted by mike at 7:39 PM

May 29, 2006

Unusual Message from CVS (dying gasps?)

Trying to diff my local code sandbox against our cvs server tonight and got this unusual message:

dying gasps from cvs unexpected

Turns out I had a crazy file in my repository with a wildcard (*) and a line return(\n) in the file name (don't ask where it came from). I guess CVS doesn't like that too much.

Posted by mike at 8:13 PM

May 27, 2006

Another Great Night at Fenway Park

Got out to our first 2006-season visit to Fenway Park to see the Red Sox play the Devil Rays on Friday night. We've taken the kids a few times, but this time left them with friends (good friends, the kind who are willing to hang out at your house until almost midnight). It was raining when we left, and as the game started a slight drizzle, but as the night went on it turned to a fog which was almost gone when the game ended.

It was a great game, including a three-run, bases-clearing double by David Ortiz to take the lead and a home run from Mike Lowell. It's hard to beat the energy in Fenway Park during those kinds of moments.

In the 8th inning Heidi and I went down to the seats right near the bull pen to see Jonathan Papelbon, the young Red Sox closer and crowd favorite, warming up. This season he's got 18 saves with a current ERA of .035, that's remarkable.

Fenway Park is always such a treat, the crowd is quite energizing and players on a pretty good scoring streak. I guarantee it's not our last trip to Fenway this season.

Posted by mike at 4:45 PM

May 26, 2006

What is Web 2.0 Really?

I've been thinking on this for awhile: Web 2.0, what is it really? Today's O'Reilly PR mess spurred me along.

For folks who make a visit to the ring of O'Reilly conferences you've no doubt heard Tim speak about it on at least one occasion. If you ask Tim to define Web 2.0 he'll say something along the lines of merging business and technology to utilize the web as a platform and take advantage of new opportunities. He'll probably throw in something about aggregation and presentation of data, most importantly consumer data, input, or feedback. You can read Tim's full explanation for more details.

If I had to define Web 2.0 I'd say it's rethinking and revisiting what's been done on the web up to this point and finding new ways with new technology to create new, or rebuild existing tools to give end users a better experience using their web browser in a business or personal setting. I'd throw in the data aggregation as well.

When I talk to other tech folks I think there's a different view of Web 2.0. I've heard several people comment on how it's just eye-candy, or slick sites that don't really serve a purpose. The perception of Web 2.0 seems more driven from what people see in it's implementation rather than what Tim suggests as it's governing principles. Because of that I'd suggest the public perception of Web 2.0 is that it's a lot more about AJAX and other slick UI elements, not about the web as a platform or the underlying data.

An example. Tim suggests that the Name Voyager is an incredible merge of historicial data and presentation that makes aggregated data much easier for users to get at. End users see a cool toy with a lot of colors that is fun to play with for awhile but serves little purpose for most folks. GarbageScout or ChicagoCrime.org probably fall under the same "that's a cool idea and UI." Folks who don't collect garbage NY or try to avoid living in fear in Chicago might argue about it's usefullness.

To further the point, according to Tim's article, the WikiPedia is an example of Web 2.0. I'd guess that if you asked folks who had at least heard of Web 2.0 about the WikiPedia most would say it's not a Web 2.0 app because there's no telltale signs like an AJAX interface or phonetic name (ie WikiPdea).

Am I way off? Are my conversations with folks about Web 2.0 unique, or is that the general sense other folks have?

There's a slew of information about the happenings in Web 2.0 over at the Web 2.0 Workgroup.

Posted by mike at 8:56 AM

May 25, 2006

Atlas Shrugged: The Movie

Doing some poking around, reading up on Ayn Rand's Atlas Shrugged today and see that the movie rights have been bought and some casting prospects have been made.

To be up front, I know that there are folks who live by Ayn's philosophies and that her novels are considered scripture. I'm not one of them, but I have enjoyed most of her writings. Some pretty long and in-depth philosophical conversations interwoven into the plots. I should also say that I rarely go to the movie theater, maybe two or three times a year.

Even with that said, I can't believe a 21st century movie will be able to do justice to the work, and James V. Hart as the screenplay writer doesn't give me much to be hopeful for. Having written screenplays for Lara Croft Tombraider, Hook, and Muppet Treasure Island don't seem to add up to being brought on for this film.

And no disrespect to Brad Pitt or Angelina Jolie, I just can't imagine Mr. and Mrs. Smith doing this right. Brad would be a good Hank Reardon, but not John Galt. And Angelina Jolie as Dagny Taggart seems way off. My version of Dagney is more sophisticated and respectable, a far shot from "Acid Burn".

The Fountainhead (article neutrality under dispute) was made into a movie back in 1949 when Ayn was still alive. I haven't seen it, but Ayn wrote the screenplay so I must believe that she was able to shape the movie into something acceptable. I'm not sure I can say the same will happen with Atlas Shrugged.

Looks like it's scheduled for sometime in 2008, gives me two years to simmer down.

Posted by mike at 10:18 AM

Are you getting what's important or not enough of second best?

I love this phrase from David Wilcox in Eye of the Hurricane from How Did You Find Me Here? Well I'm not sure if love it the right word, but it's a phrase that I've though about many times over the years:

When you lay your dream to rest
You can get what's second best
But it's hard to get enough

The question that raises itself every now and then is if I spend more of my time on what's most important, or if I'm in an endless struggle to get enough of second best. It's been more than 15 years ago that David wrote those words and I've been wondering about it ever since.

My guess is that when you really get down to the core of people there are only a few things that are really important enough to be first. The rest is stuff we can never get enough of, we spend a lot of time and energy trying to get, we'll never be completelly satisfied with, and as time passes we'll realize it just wasn't that important.

I'm not sure how good I am at prioritizing the most important things, but I figure it's a good sign to at least be asking the question. Right?

Posted by mike at 9:24 AM

Easy Favicons

Generating a favicon (the little image that appears next to the URL in the browser) has never been a high priority for me. I took a crack at it with photoshop once but couldn't get the right conversion in order to display in the browser.

Enter the favicon web tool, a web-based, easy as cake tool for generating your favicon. You can upload many image formats (I used a jpeg).

Now that I've found this easy tool for generating these I'll probably waste more time than I previously thought acceptable trying different ideas.

Posted by mike at 8:22 AM

May 18, 2006

ZeroLogik Podcast: A Little MySQL and a Lot of Everything Else

If you didn't get your fill of Jay and I on the DBAZine podcast . . . we connected with the guys over at ZeroLogik for the ZeroLogik podcast (number 19b) on Wednesday.

The ZeroLogic podcast promises a minimum of 98% pure opinion. Yes, the topic is MySQL and Pro MySQL, but that doesn't stop the conversation from veering into other topics like limited-functionality versions of software, Web 2.0, VC funding, Google Notepad, bootstrapping a business, selling hollywood scripts, the starship enterprise, MacBooks and much, much more.

The ZeroLogik guys, Shane, Scott and Eyal, are a lot of fun. Check it out.

Posted by mike at 9:26 PM

May 16, 2006

Those Shrewd Folks at the Apple Store

I spoke *way* to early about getting a refund for my recently-reduced-price MacBook Pro. When I showed up at the Apple store they were waiting, two of them, with printouts from the web site showing that there were several differences between the Mac I bought three weeks ago and the one that's $500 less today. It wasn't just a printout, someone had made several notes for our conversation. The bottom line is that the 2.0 GHz is a different model now, has less RAM, hard drive, and video ram. All add up to no difference between my model and the new one that's cheaper.

Yet somehow you can get a MBP with a faster processor and the same specs for the amount I paid for mine. However, not to be dismayed. I still like Apple and my MacBook Pro. If I didn't think it was worth what I paid I wouldn't have bought it three weeks ago.

Posted by mike at 5:06 PM

$500 Credit from Apple for MacBook Pro (begging required)

So I see that the new MacBook came out today. I also see that the MacBook Pro 2.0 GHz I bought three weeks ago is now $500 less. Time for a call to the local Apple store to see about getting the difference. Very rough account of the experience:

Apple: Welcome to the Apple store, can I help you?

Me: Yes, I bought a MacBook Pro there recently and see it's dropped in price and want to see about getting a refund.

Apple: The prices didn't change on the MacBook Pro, we introduced a new line of MacBooks that are cheaper machines.

Me: Well, I'm looking at the Apple store online and my MacBook Pro 2.0 GHz is now $1999, when I bought it at your store recently I paid $2499.

Apple: Can you hold while I look it up.

Me: <on hold for a minute>

Apple: Yes, the 1.83 GHz model was removed and the two faster machines dropped down into those price slots.

Me: OK, well to me that means my near-new MacBook Pro dropped in price and I'd like to see about getting a refund for the difference.

Apple: When did you buy it.

Me: April 22nd.

Apple: That's beyond our 14-day return policy.

Me: I don't want to return it, I want a refund for the difference.

Apple: You'll have to talk to a manager.

Me: <on hold for a minute>

Apple Mgr: How can I help you.

Me: I bought a MacBook Pro recently and it's price has dropped and I was calling about getting a refund.

Apple Mgr: Did you purchase it in the last 14 days?

Me: It was on April 22nd.

Apple: Well that's beyond the 14-day return policy.

Me: I don't want to return it, I just want to see about getting the price difference refunded.

Apple Mgr: Our policy is 14 days and there's not much I can do about it. The terms are on the reciept, if it's beyond 14 days we can't restock it.

Me: I don't want to return the laptop, I just want a refund.

Apple Mgr: I know it's unfortunate, but technology moves fast and we're always introducing new computers that are faster and have to set a policy for returns on machines that have been purchased.

Me: So there's nothing I can do?

Apple Mgr: Not really, I apologize.

Me: Um, OK.

Apple Mgr: Can you hang on a minute?

Me: Sure. <on hold for another minute, formulating closing statement>

Apple Mgr: OK, now where were we?

Me: We were talking about a refund for the drop in price on the MacBook Pro I bought recently.

Apple Mgr: Right, and since you're beyond the return date there's nothing we can do.

Me: I'm not looking for a new computer, the computer I have is near brand new, only three weeks old. You didn't introduce a new computer that's better that I'd like to have, you reduced the price on this very computer I bought three weeks ago and to me is still brand new. Even though it's 3 weeks old, one week beyond your return policy, you're telling me I can't get a refund because of the return policy. I don't want to return it, I just want a refund because you dropped the price on the laptop.

Apple Mgr: Let me see, um, well if you paid the restocking . . . no . . . could I give you an in-store credit for the difference?

Me: Yes, I'm happy reinvesting the difference into Apple.

Apple Mgr: Bring your reciept in today and ask for me and I'll give you a gift card for the difference.

Me: Thank you.

So I'm headed up to the Apple store later to get a gift card for the difference. Having recently finished The Second Coming of Steve Jobs and getting details about about his business thinking I'm sure Steve Jobs would not have allowed this to happen. Thank goodness Steve isn't the manager at my local Apple store (or any Apple store for that matter).

Now, what to do with a $500 Apple gift card?

Posted by mike at 12:10 PM

How is the organization of music meta-data patent-able?

Reading about the latest legal action against Apple where Creative claims that Apple has infringed on a patent for organizing music metadata.

The patent abstract:

Automatic hierarchical categorization of music by metadata
A method, performed by software executing on the processor of a portable music playback device, that automatically files tracks according to hierarchical structure of categories to organize tracks in a logical order. A user interface is utilized to change the hierarchy, view track names, and select tracks for playback or other operations.

It's hard to imagine what good comes from this kind of patent. Maybe patents should be categorized as "enforcable" and "for kudos" where the latter is something stamped on an idea that is too generic to be patented (or whatever reason) but there is no patent. Give the submitters the "for kudos" patent which isn't legally enforcable but is something they can use for marketing future geek talk.

This is such an annoying problem being built here. I'm don't think I'll ever register a patent, it's just not in my nature to build something and want to be able to prevent anyone else from doing the same (I'm a software engineer). However, let's say I do develop something and then a year later my software engineer neighbor (he lives across the street) decides to patent the very idea. Should that patent be granted, I'm in violation and in danger of being sued?

As a novice at patents I'm sure I'm just scratching the surface of all of the problems, issues, and annoyances surrounding patents.

Posted by mike at 9:57 AM

May 13, 2006

DBAZine Podcast: Jay and Mike on Open Source, MySQL, and more

A few weeks back Jay and I hooked up with Tom Parish over at DBAZine for the DBAZine podcast. Was a lot of fun to talk with Tom and get a chance to answer questions about open source, MySQL, blogging and a host of other things. The teaser goes something like:

The new book is ProMySQL, covering all of the newest MySQL 5 features, the MySQL server architecture, storage engines, transaction processing, benchmarking, and advanced SQL scenarios. And the authors, Jay Pipes and Michael Kruckenberg, are not too shy to open up about a big range of big topics, including whether open source software will ever displace those legacy apps (and why CIOs who insist it won't should take a closer look at what�s running in their enterprise). They also give their views on what they see as the biggest challenge to open source as it moves forward into the mainstream, why MySQL rocks as opposed to other OS solutions, and why in the world they decided to write a big, technical book, anyway (it probably wasn't for the fame, fortune, and glory). They are a couple of nice guys gone author on us, and in this podcast interview, they explain why.

I'm just listening to the final version for the first time, nicely framed with some show music. While it's obvious we're not in the studio, the audio turns out OK (especially considering that Jay was competing against the dogs and I was sitting in the parking lot at the data center).

It's available in multiple formats over on DBAZine.com.

In related news, the final installation of Storage Engines and Data Types (Chapter 5) from Pro MySQL has made it up onto DBAZine site. I posted about this awhile back when just a small snip was available, but if you're willing to click through the six sections you can get it all.

Posted by mike at 8:52 PM

Web-based Photo Editing with Phixr

A few weeks ago I lost my photo editor of choice, Photoshop. (I didn't really loose it, but it doesn't run well on the new Intel Mac). I've been using Photoshop since the early 90s, fairly heavily when I worked as a grapihc designer. I even did some Photoshop coursework at university.

I felt the impact of not having Photoshop right away as I used it frequently for tweaking photos. So I got this brilliant idea to write up a simple web-based UI to ImageMagick, an open source photo editing application/library that I've used over the years for server-based photo manipulations. A quick look at Google reveals the work isn't necessary, Phixr already does what I need. It provides a few simple utilities like crop, resize, rotate, sharpen, blur, and adding text. The UI is nice enough to give you preview boxes of before and after images using thumbnails as you're specifying parameters for the alteration. It even includes an undo and redo button. The photo can be downloaded as displayed at any point during your editing. Nicely done Phixr folks.

This begs the question, what hasn't been webified?

Posted by mike at 10:03 AM

May 10, 2006

Video of May MySQL Meetup: Measuring MySQL Performance

As much as I tried to get the video of the May Boston MySQL meetup captured, edited, and exported the night of the meetup it just didn't happen. I got close, had it captured and edited but exporting from DV to a compressed Quicktime takes many hours. Even on the Intel dual core it took almost 12 hours of both CPUs going full speed (hey, that's slower than my old PowerBook G4).

I started using audio from the lapel mic but unplugged it when the Q/A started (early in the presentation). The sound is much better from the lapel mic but if there is back and forth with the audience the video misses half the conversation. In my experience asking the presenter to repeat the question doesn't work, even if they remember to repeat (which they usually don't) you miss any back and forth and have gaps of silence.

Anyhow, the video is up on Google (download for video iPod) and can also be downloaded here. The Quicktime is much better resolution than the video on Google.

Thanks to Martin and kbglob for donating storage space and bandwidth.

Posted by mike at 5:23 PM

Google Maps in ASCII

Stumbled into the ASCII Maps site today. It's powered by Google maps but displays all maps using ASCII. I'd love to see someone try to get around town using this.

Posted by mike at 5:13 PM

Golden Penguin Bowl Video: MySQL vs Oracle

If you missed LinuxWorld Boston in early April, and more specifically the Golden Penguin Bowl where MySQL Nerds faced off against Oracle Geeks, you can now see it on Google video. Most of the video is spent showing the slides so don't expect to see a lot of the MySQL Nerds or Oracle Geeks in action.

Posted by mike at 3:48 PM

Blogging for a Planet (continued)

Since Planet MySQL has become a discussion board about how to write for a planet I'll throw out the suggestion that having cake and eating it is possible with syndication. I agree with Stewart that if you're using an RSS aggregator that you do want the full feed, otherwise you're left clicking somewhere which is really annoying when you're trying to get through any significant number of feeds.

Right now I'm feeding Planet MySQL RSS 2.0, which contains just the entry description. In Moveable Type that corresponds to the entry body. Anything that goes into the "extended body" isn't in the feed and available only by visiting the page for that entry on my site.

On the other hand, my Atom feed defines a "summary" and a "content" tag. My Atom feed has the summary (or MT Body) in the summary tag. The content tag contains both the body and the extended body.

So let's assume that Planet MySQL could handle Atom feeds from the various contributors. Is it too much of a stretch to have the Planet MySQL web site display the summary info from the Atom feed and then make summary and full RSS feeds available so folks could subscribe to their preference?

Of course, in order to make this work everyone that contributes would have to provide an Atom feed and *more importantly* use the extended body for anything beyond their summary paragraph.

Posted by mike at 12:36 PM

MySQL Scale-Up Plan

I spent Monday writing a document to summarize the current MySQL system architecture and lay out the plan for where we're going with scaling our MySQL architecture at OpenAir. Yesterday I met with the CTO and the Director of Engineering (my manager) to go through the plan, which has evolved considerably since I started working on it. The three of us have been meeting somewhat regularly since I took the helm of all things MySQL.

This is not the document, it is a summary of what's in the document. For our environment there are three major things to think about when it comes to scaling up MySQL; performance, redundancy, and monitoring.

Performance

A key component of scaling MySQL is taking steps to make sure we're getting the most from your existing systems. For us this has primarily been performance tuning to process queries faster. The more we can get out of existing hardware the less we need to be loading up on new hardware.

When I first started working on the scaling plan we thought we were pushed up against the upper limits of the hardware. Turns out that with some tuning the databases are no longer maxing out existing hardware and we can breath a bit while planning instead of rushing a solution.

Redundancy

When I first got to OpenAir I was tasked with scaling up MySQL in the context of building a clustered database for scalability and redundancy. The idea was to build something where queries could be spread across multiple machines seamlessly to spread the load around and to prevent application interruptions when a machine went down.

Since I'd done a bit with MySQL Cluster I spent some time getting that set up to experiment with it in the OpenAir environment. Bottom line is we need disk-based storage (we're watching the 5.1 release with anticipation). We also looked at m/Cluster, a third-party tool that sits on top of MySQL and provides database clustering. Somewhere in the midsts of the cluster exploration we realized that we weren't sure clustering was worth the work to build and maintain.

Around this time I headed off to the MySQL Users Conference and had a chance to see Jeremy Cole's talk about scaling and redundancy at Yahoo!. My report back to the folks at OpenAir was recieved with excitement. The redundancy plan is now something I'm much more familiar with; replication to hot spare machines and manual fail-over (with good monitoring alerts). We've already got some of this in place for backups so the implementation is more of a refactoring and building a process for quick manual failover. We did this at Tufts too which means I'm bringing a lot (5 years) of experience to this solution.

Monitoring

The last piece of the plan is to build better monitoring. To have a highly available database means that if something is failing, or in danger of failing, you should know about it. For us this includes better replication heartbeat and more MySQL-specific monitoring. We have a general monitoring tool that does a good job of checking the servers in general but doesn't get into things specific to how MySQL is running. Will be adding in some of those checks.

Conclusion

In yesterday's meeting it became clear that going through the process of looking at the pie in the sky solution was helpful in determining just how much it would take to have cluster, or cluster-like technology, and what that was worth to us. After a good look at it we decided that with the technology that's available now, replication to hot spares is the right spot for us. Yes, we could dedicate a chunk of resources (time and money) to having a cluster but replication gets us to where we need to be and allows us to focus those resources in other areas (like feature enhancements) that give better returns.

Posted by mike at 9:30 AM

May 8, 2006

Boston MySQL Meetup Tonight

The 2nd Monday of the month is already here which means tonight is the Boston MySQL Meetup. Jacob Nikom from MIT Lincoln Labs is giving a presentation entitled Measuring MySQL Server Performance for the Sensor Data Stream Processing.

I attended Jacob's session at the MySQL UC. It's pretty amazing the amount of data they are processing and the depth that they went to get performance benchmarks across multiple versions of MySQL.

If you aren't in town, or can't make it this month, I've got the camera batteries charging and will post the video later this week.

Posted by mike at 9:41 AM

May 4, 2006

MySQL Backups using LVM Snapshots

The second thing on my list coming away from the MySQL Users Conference (first was a question about limits in mysqldump) was to do a writeup on how to use Linux LVM (Logical Volume Manager) to take quick snapshots of your database. Many folks are using this as an alternative to the tools provided with MySQL. It's a good choice for a backup when you need to backup in order to restore the entire database from files.

Taneli has already done a write-up of the steps to complete this process, I want to add in a few things:

LVM not a True Online Backup

LVM doesn't do a true online backup, although it gets close. The actual LVM snapshot command is fast, but to get a good copy of your data all of your MySQL tables must be read locked to not allow any writes during the snapshot process. When you ask MySQL to flush all tables with read locks it will work through the tables (after it's sorted the list of tables to lock) making sure the data is on disk and then getting a read lock on each table. If tables are locked by another thread your request will wait until the locks are freed up. The bottom line is that if you have a busy database with many tables and very active writing there's a chance your FLUSH TABLES WITH READ LOCK could take time. The issue there is if tables 1, 2, and 3 get locked but then table 4 has just started a massive update you will have to wait until table 4 is done to get the lock while tables 1, 2, and 3 are also locked.

The other thing about getting read locks is that if you're using a transactional engine, transactions are committed as a part of getting the read lock. There's some extra work to be done to avoid the ramifications of committing in-process transactions.

Disk Requirements

LVM snapshots work by keeping an exception log. As long as the snapshot is in existence (until it's removed with lvremove), LVM keeps track of changes on the disk in a log. If you're using the snapshot data it knows that certain parts of the disk must be pulled from the exception log for data that has changed since the snapshot was created.

This is where the --size option comes in. When you issue the lvcreate --snapshot command you tell it how much space to allow for recording changes. If you have a very active database you'll need to make sure that the amount of data that will change over the time you are using the snapshot will fit in your specified allocation. The manpage recommends 15-20% of the disk size.

Performance

While a snapshot is active LVM has to keep track of the changes. Any time a change is made on the disk LVM has to make a note of it in the exception file. I'm not sure how significant this is, it depends on your database activity, size, and how long you need the snapshot. The advice seems to be to take the snapshot, mount it, copy the data off, and remove it as quickly as possible.

Jeremy Cole wrote about an open-source pluggable tool he's writing for things like LVM. At the UC he was talking about doing some more serious testing of the exception file size and performance hit you take with active shapshots. Will be interesting to see what comes from that.

Update: MyISAM vs InnoDB

Harrison (who needs to start a weblog) points out that my post is MyISAM-centric. With InnoDB the LVM snapshot can be taken directly from the filesystem without locking the tables. On restore InnoDB will recover as if there was a system crash, rolling the data forward from the binary logs. Given that, it seems like LVM snapshots give you something very close to the ibbackup tool you can buy from Innobase Oracle.

Posted by mike at 8:54 PM

May 3, 2006

Oracle and the Dolphin

On the way to the airport from Santa Clara (after the MySQL Users Conference) I pulled off Route 101 to grab a few snacks for the plane ride (yea, I don't like paying $4 for a warm soda at the airport). I laughed out loud when the random exit I chose just happened to be the exit for the Oracle Corporate Headquarters (another view). Really, I had no idea. I've seen them before but it was purely random (or subconscious). If you haven't been near them, the series of pods and surrounding campus is pretty cool.

I couldn't shake the irony that after having been immersed in MySQL for a solid 4 days the first place I stopped at was Oracle, still find that humorous.

To top it off the Oracle building where I stopped to take a few photos of the pods had an address on Dolphin Drive. Of course I couldn't help thinking about Sakila, the MySQL dolphin (and sample database), and finding that funny too.

Maybe it's not that amusing. Perhaps after the 4 day submersion in MySQL the mind gets a little loopy, at least when it comes to databases.

The all-night flight got me back Friday morning ~7am to spend a very groggy day working on stuff and having fun with the family.

Posted by mike at 11:10 PM

The Helpful Code Editor (my switch to vi)

Pete and I got into this discussion yesterday about development environments and using an editor for coding that does work for you. The idea is that the more an editor can do for you the more productive you can be at writing code. I suppose this is things like syntax highlighting, bracket matching, auto-indenting, and syntax completion.

It was time to confess that a few months back I switched from emacs to vi (vim to be exact). According to Pete, I moved in the wrong direction on the path towards a more useful editor.

Why did I switch? I've been using xemacs, running remotely via X11, since the dawn of my tech career. I've been around many vi folks but always considered it a tool to be used for emergency sysadmin tasks when emacs wasn't available or overkill for the simple configuration edits needed. A few months back I managed a deveoper who was all vi, all the time, and I got to see first hand some of the cool stuff you can do in escape mode.

When I started at OpenAir there was some resistance to running xemacs. Development is done on a remote server so the obvious choice for an editor is something that can be run in a terminal. After some discussion about why there's no X I moved to emacs running in the terminal. At this point I realized that over the years I haven't really taken the time to learn how to use the power of keyboard commands in emacs. As I started to build up my emacs skills in keyboard mode I thought "while I'm having to overhaul my understanding of my preferred development tool, why not do it in a more drastic way and switch to vi?" So that's what I did.

Having had a conversation with Pete about vi and how unhelpful it is I decided the least I could do is take a little time this morning and build a .vimrc file that helps vim be a little more helpful than it is in it's default state. In poking around I found that there are lots of options, including auto indent, smart indent, show matching brackets, incremental search (for emacs-like, real-time search matching). I'm sure there are a ton more.

One complaint I had originally about vim is it's lack of cvs integration, no keyboard shortcuts for diff and commit. What I'm doing now is using the escape mode "execute a shell command" for this. I'm sure it's not hard to build an alias that would allow me to type one command and have vim execute the cvs commit.

I think the bottom line for me is that I was at a point where I had a good reason to learn a new tool. It just happens that the one that makes sense for my environment now is vim. Maybe someday I'll find a great IDE that is compelling enough to give a go and will mount my directory tree locally in order to use that kind of a desktop editor. Some folks have suggested Eclipse with a Perl plugin but I haven't seen it in action. Pete suggests TextMate which seems to be getting a lot of attention in the Mac development community. The story is compelling (develped by a Unix guy coming from emacs). Will have to look at it closer sometime.

Posted by mike at 10:35 AM

May 1, 2006

DBA Code of Ethics

There's an interesting discussion going on over at DBAZine and SSWUG.org about building a code of ethics for DBAs. Of course they are looking for folks to participate in the formation of such a document. If you haven't been over to either of those places they tend to focus on Oracle, SQL Server, and DB2 but are expanding to include open source databases. The SSWUG about page even mentions MySQL.

I first caught sight of this movement in a post by Craig Mullins a few months back. Just last week Craig posted an update on the happenings with a call to get involved.

At this point a proposed outline has been posted by Stephen Wynkoop, along with some comments on the feedback he's gotten so far.

I know, just another thing to stick on the enless to-do list. If it strikes a chord with you there's no reason to hold back.

Posted by mike at 12:49 PM