I realized something the other day. When it comes to explaining things, I really need a good mix of dialog (2 way communication) and exposition (1 way communication) to really get it right. The problem is that I tend to be quite bad at balancing the two. The same appears to be true for the acts of saying something and writing it down. I need to do both.

For the last 6 months or so, I've been attempting (off and on) to write a document that helps explain data storage technology choices in software engineering at Yahoo: what's available and how you might decide when to use a DBM system vs. Oracle vs. MySQL and so on.

Every time I've attempted to start it, I had written a sentence or two and then stared at the monitor. After 15 minutes or so, I'd erase everything and stare at the blank space on the monitor some more. Never quite sure where to start or even how to put bounds around the problem, I got nowhere. It was like squeezing Jello. Every time I manged to get a hold of something--an idea, stuff began moving elsewhere.

Then, about a week ago, a co-worker posed a very simple question on our "database stuff" mailing list. It was a question I'd answered a few times before. It had came up now and then during the "MySQL at Yahoo!" talk I've given in a handful of Yahoo's remote offices. The question, if you're wondering, was roughly "We seem to have a lot of MySQL around here. Does anyone use PostgreSQL? If not, why?"

Having answered it before verbally, I set out to do the same thing in writing. In the process of doing so, I finally drew (using ASCII art, of course) the visual aid that I'd previously described verbally (and by waving my arms a bit): my database technology continuum.

After I finished, I re-read the message and it hit me. This could be the starting point for that damned document. If I begin here using this (and explaining it), almost everything else just falls into place.

Bingo!

I was further encouraged by the fact that several folks contacted me off-list to say that my explanation really cleared some things up for them.

Duh. It was right there all along. In my head. Someone just had to get me to pull it out. I really wonder how long this would have lasted if he hadn't asked that question.

Is it just me, or does this sort of thing happen to other people too?

Posted by jzawodn at December 15, 2003 10:48 PM

Reader Comments
# Manuzhai said:

So, will you put it out here so that non-Yahoo people can also get a grip on the differences? :)

on December 15, 2003 11:03 PM
# Tom said:

I have no idea what you just said, but as for not using PostgreSQL instead of mysql there really is no suitable answer.

on December 15, 2003 11:28 PM
# Scott Johnson said:

It often seems as if some people live their lives solely to post anti-MySQL comments on this blog. That's really sad.

But anyhow, that same thing happens to me, Jeremy. If I'm writing some code and come to a place where I don't know what to do next, I'll often stare at the monitor for hours. It's not until somebody asks me a question about the subject matter that I see the answer to my problem staring me in the face.

It amazes me how little some need to know help me answer my own questions. Typically, it's the people who know the LEAST about what I'm doing that help the most.

on December 16, 2003 12:02 AM
# James Robertson said:

Jeremy,

This has been my experience as well, and your comments enthused me to also write a blog entry on the process:

http://www.steptwo.com.au/columntwo/archives/001032.html#001032

on December 16, 2003 12:17 AM
# Tom said:

Sad? What I find sad is people who are so close-minded and so set on mysql. I know both databases - and there licenses - very well, and I think any anti-mysql remarks are completely justified.

on December 16, 2003 12:52 AM
# Tom said:

goddamnit. All the bad spellers online is rubbing off on me.

on December 16, 2003 12:54 AM
# Michael Moncur said:

I can't offer anything but commisseration, but I've run into the same thing many times. I'll be staring at the screen trying to write a chapter on a topic, someone will ask a question in my forum about that topic, I'll have no trouble coming up with a quick, detailed answer - and I find it gives me a starting point for the chapter.

on December 16, 2003 01:45 AM
# paul robichaux said:

This can be tricky, but if you get in the habit of trying to write conversationally, I think it'll get easier. Like James, your posted inspired a spinoff entry of its own on my blog (of course, I'm supposed to be working, but hey...)

on December 16, 2003 02:25 AM
# Charles said:

You might be on to something, but maybe not quite what you think. A long time ago, I took a course from some creepy Werner Erhard/EST-types, they promoted a different philosophy of teaching. They said that instead of "teaching" as in trying to pound something into people's heads, you consider it as "coaching," as in trying to draw out what people don't know and show them how to do better, with information you provide. Sometimes it's useful to imagine yourself coaching a specific person with specific needs. Perhaps that's why it was easier for you to start with someone's specific questions, you knew how to fill the gaps, it was easier than starting from scratch with a generic "everything you need to know" essay.

on December 16, 2003 03:11 AM
# Mike Hillyer said:

Well Tom, I will not get into a MySQL vs. Postgres argument here, as they are both good systems and I feel no need to justify my business decisions to you. That being said I do question why your sole purpose in posting to this blog is to knock MySQL. You are not alone in doing it and it strikes me as very odd.

I never see MySQL users bashing Postgres, in fact I often see positive comments from the MySQL camp. However, I often see Postgres users take any chance they get to bash MySQL. Perhaps you can enlighten us as to why you guys need to take every opportunity you can to bash MySQL.

on December 16, 2003 05:53 AM
# Kiran Jonnalagadda said:

In journalism, they call this "writer's block". When hit by it, I walk away from the computer, pick up a sheet of paper, think of questions an imaginary reader would have asked me, and write answers on paper.

I've managed to entire articles in grammatically correct English on paper.

on December 16, 2003 07:18 AM
# tyler said:

I've managed to entire articles in grammatically correct English on paper.

hehehee...

on December 16, 2003 07:45 AM
# rr said:

And you wonder why my code to prose ratio is about 10000:1 ...

on December 16, 2003 08:04 AM
# jr said:

Actually, the method is surprisingly simple. What you need to do is discover your inner moron. All writing, particularly technical writing, comes about from one person having a dialog with themselves, with one of them being a seven year old. In effect, asking "Why?" whenever you provide some point of information.

Naturally, tuning out some of the "whys" is good, particularly before you start talking about Polly Process and the big nasty Kill Nine, but that's what reviewing is for.

Oh, that's the other thing (something I know you're good at by the way) is to write in a manner that you enjoy reading the results. If you find yourself falling asleep reading the stuff you've just written, so will your audience. There's nothing wrong with keeping things fresh and injecting a bit of fun into it.

Well, unless you're writing about internment procedures, but that's another problem.

on December 16, 2003 08:43 AM
# gabe said:

Mike Hillyer,

Prideful boasting and antagonization are not behaviors exclusive to PostgreSQL users, but is continually practiced by all types of people in this world. There's always a battle to be fought: MySQL vs. PostgreSQL, Linux vs. BSD vs. Windows vs. Mac, Mercedes vs. BMW, Boxers vs. Briefs, Star Crunch vs. Oatmeal Cream Pie, Chocolate vs. Vanilla, Corn Dogs vs. Veggie Dogs, mmmmmm corn dogs...

on December 16, 2003 11:36 AM
# Tom said:

> I never see MySQL users bashing Postgres

I certainly do. Most annoying is that they've usually NEVER used postgres (and hence don't know squat about it) and totally jump on the mysql bandwagon. They're irrational, naive, and un/misinformed - usually newbie database users. Most postgres users I know are quite familiar with mysql, and have a rational preference for postgres. Most mysql users have no idea why it's such a lousy database (horrible adherence to sql standards, data-loss potential, ad infinitum.

Last time I checked out mysql's web site it certainly was entertaining (for those who know better) how they go to any length to stretch the truth to make mysql look better (like using way out-of-date versions of postgres for benchmarks). Plus their latest LGPL to GPL licensing scheme is classic FUD.

on December 16, 2003 01:41 PM
# technoatheist said:

Isn't it nice that with the various strengths and weaknesses inherent in any application, so many folks are willing to spend time attacking the other free systems rather than trying to get folks who may be using a commercial version to try out an open source solution (or addressing the various concerns said potential audience may have with any open source solution in an open and compelling way).

Religion. It's not just for worship anymore.

on December 16, 2003 04:06 PM
# Donny said:

technoatheist - You hit the nail on the head. Each of us make our own business decisions, doesn't necessarily mean that others have to agree with the decisions. It's business. Personally, MySQL is my preference, Postgres is fine too. Just MySQL meets my needs better. Will I bash Postgres, because MySQL meets my needs better? Hell NO!

But I sure would love if Jeremy would post why they use MySQL over Oracle or Postgres, etc... That would be awesome! Because not only would the developers of Postgres read it, but so would the MySQL developers and each of them would be able to improve their systems even more than they are now.

on December 16, 2003 05:36 PM
# Tom said:

Being *very* familiar with both databases, I can't think of a single reason why mysql would meet my needs better than postgres. mysql'ers often cite speed, but that just shows have woefully out-of-touch they are.

on December 16, 2003 08:42 PM
# BDKR said:

Being *very* familiar with both databases, I CAN think of a single reason why mysql would meet my needs better than postgres.

Replication.

I know Postgres has it now ( but now is too late and I wasn't about to consider third party hacks off sourceforge three years ago), but it's still in development and hardly battle proven. If it wasn't for that simple reason, the last cluster I built would've used Postgres. Being in a money starved startup in a third world country with a rocky political situation, building then running a Lottery operation, uptime and free(!) was of greatest import. How could I have managed that with Postgres if there was no replication? Failures happen! And they happend to us.

Good thing for replication.

But seriously, with the energy you spend here, why not do something that makes a difference. There are reasons that the use of MySQL has exploded in comparison to that of Postgres. None of them have to do with superiority, but instead, things like ease of use, ease of grokking for n00b3's, and the fact that people could run it on Windows (I know that Postgres can be run on Windows now but now is too late).

So instead of wasting energy here, address these issues. Instead of the high brow routine (which a lot of people aren't listening too anyways), do some more positive advocacy instead of just telling the very people that you would like to see use Postgres they're stupid. And you obviously WOULD like to see them using it or you genuinely wouldn't care and therefore wouldn't post in the first place.

Cheers,
BDKR

on December 17, 2003 12:01 AM
# Tom said:

Well, I'm used to getting flamed time and again by mysql'ers. Or reading stuff of this variety:

Here come the uninformed, lazy, opinionated masses...

Other than the learning curve associated with views, stored procedures, triggers, etc. I really don't think mysql is easier to learn. Its SQL is really quite sloppy, and any DB newbie will (if they ever move on to better db's) have to unlearn many many bad practices.

on December 17, 2003 12:51 AM
# Tom said:

Also, very solid third-party replication apps (not "hacks") have existed for postgres for quite a while. AND so have windows ports. I'd much rather rely on those third-party options, than fool-hardily trust my data to mysql.

on December 17, 2003 01:01 AM
# justin said:

Haha, itís pretty funny to see all these people talk about why mysql is bad and how the entire mysql community trash talks about postgres. Funny thing is no one here so far has said anything about it.

I have been using mysql for several years running replication and using a large 500mb+ database and have never experienced data loss. This seems to be one of the main points about using postgres, please explain.

on December 17, 2003 07:53 AM
# dws said:

A friend who really writes for a living gave me writer's block trick. When you're stuck, find a quiet place to sit down, start a timer, open a new document, type "I'm sitting here trying really hard to avoid writing about ..." and then type for 10 minutes without stopping, not even to back up and correct typos. Typing with your eyes closed might help. On rare occassions I've spent most of the 10 minutes typing "All work and no play makes Dave a dull body," but usually the process is enough to get the creative juices flowing.

If you're anal, you can do stuff like counting words to track your typing speed.

on December 17, 2003 08:25 AM
# Jeremiah said:

I've had some really nasty crashes with mysql's innodb tables. Lost everything.

on December 17, 2003 01:51 PM
# Jason Clark said:

I had a music instructor once who insisted the only way to truly understand something is to teach it to someone else. He used to have his students stay 5 or 10 minutes into the next student's lesson, to teach something that they've learned. And it worked. I'm a firm believer in the power of explaining something to someone else to help you undertand it better yourself.

on December 17, 2003 08:46 PM
# Matthias said:

> Duh. It was right there all along. In my head.
> Someone just had to get me to pull it out. I
> really wonder how long this would have lasted
> if he hadn't asked that question.
>
> Is it just me, or does this sort of thing
> happen to other people too?

Yes. You are not alone.
Not with the same thing, of course.
Sometimes, if there is a tricky problem to solve, the solution don't showing up. The puzzles dont't want fit.
In this situations it is good, to talk to anybody. At best, to anybody who don't have a clue, what you are talking about. But it's ok! All what he has to do, is listen ...
I think, it's the way of ordering the pieces and to make it simple, what will help to find the solution of your problem.

on December 18, 2003 09:44 AM
Disclaimer: The opinions expressed here are mine and mine alone. My current, past, or previous employers are not responsible for what I write here, the comments left by others, or the photos I may share. If you have questions, please contact me. Also, I am not a journalist or reporter. Don't "pitch" me.

 

Privacy: I do not share or publish the email addresses or IP addresses of anyone posting a comment here without consent. However, I do reserve the right to remove comments that are spammy, off-topic, or otherwise unsuitable based on my comment policy. In a few cases, I may leave spammy comments but remove any URLs they contain.