Friday, January 18, 2008

Relational vs. OO Databases

I found this ACM Queue article interesting:

A Conversation with Michael Stonebraker and Margo Seltzer

The most interesting part for me was the rumination on "Why did OO (object-oriented) databases fail?". I worked on the "Oracle Database Application Developer's Guide - Object-Oriented Features" back in 8i, and heard the mantras about how OO would kill off relational. Previously, back at IBM, I was involved with C++ coding, learning C++ from GOF member John Vlissides, RIP. Then I saw as IBM moved into Java, a lot of code that I felt misconstrued the idea of object orientation, and a lot of instructional material that I felt was kinda lacking. (A car and a truck are both kinds of vehicles; now build a class hierarchy for handling events in a GUI. :-)

So, I was interested to see Stonebraker's take on the potential market opportunity for OO database, and pragmatic reasons why it didn't take over the world.

I have in mind several more blog posts on various aspects of object orientation and how it plays out in database and non-database contexts.

Friday, January 11, 2008

8 Things About Me

I don't do a lot of blogrolling and haven't been tagged yet in Jake's Oracle blogger game of tag. So I'll seize the initiative and post my 8 +/ 1 things anyway.

1. I'm Canadian, and in my time at Oracle have cycled through a special visa for Canadians, then the infamous H1-B, and finally a Green Card.

2. I come from the most recent, and relatively little known, part of Canada: the island of Newfoundland. This means I should by rights have a strong Irish-tinged accent. But for some reason I don't. Pity, as having an Australian, New Zealand, English, or even Welsh accent seems to be a plus at Oracle. :-) Still, I do spell honour, colour, and flavour the correct way. One of the things you can do on a slow day in Newfoundland, is drive down to the local lighthouse and take turns being the easternmost person in North America.

3. I am a pretty good tennis player. When Canada compiled its computerized tennis rankings in the mid-80s, I was in the top 100 national players, but only because they didn't have a very good ranking algorithm at first. I competed for Newfoundland in tennis in the 1985 Canada Games, and was also certified in Canada as a tennis coach. Most strategies that I employ in programming, business, and life trace back in some way to tennis.

4. On my first night in Toronto, I got lost driving at night, by coincidence right by the IBM lab where I would soon work. On my first trip to Berkeley, I got lost driving at night, by coincidence up in the hills a few blocks from where I now live.

5. I was in charge of all the Ada manuals at IBM for pretty much the whole time that IBM put out an Ada compiler. (Which makes designing and coding in PL/SQL feel like coming home.) My crunchiest deadline involved working 72 hours straight when the dates for 2 products fell into perfect alignment. My fondest accomplishment was learning REXX in one day to turn the Ada Language Reference from a plain vanilla text document into a complete hypertext system, after others estimated it as a 40-week project. My dullest piece of drudge work was a tie -- creating 24 separate disk labels and associated tracking paperwork for each one, for an early workstation compiler; and photostatting our original paper copy of the Ada Language Reference that we dug out of the archives for each release. I was assigned to Ada because it was listed on my resume, but in the "Programming Languages" course where I learned it, the DEC compiler didn't arrive in time, so I never actually used Ada for an assignment.

And today, Ada still is only a single word on my resume under "languages known"!

5b. I could go on for much longer about assembler than about Ada. :-)

5c. I also can write a sentence that uses both "FORTRAN" and "Fortran", correctly. Redoing all the IBM XL Fortran manuals was my favourite piece of writing.

6. I play the trombone, and have the stereotypical trombone player physique, temperament, and progression through different styles of facial hair. I didn't know any of that when they asked us in Grade 5 what instrument we wanted to play. I started playing in the Newfoundland Symphony Orchestra while still in my high school band, skipping the usual step of the Youth Orchestra.

7. If you ask why I moved from Canada to the US, I can spin you a tale about a life-changing epiphany over Ethiopian food, a drunken New Year's Eve revelation, a rant about living in Toronto, or a lament about the metric system or Lotus Notes. Depends on which reason you would find most entertaining. Now that the Canadian dollar is on par with the US dollar, I might need to revise some of those tales.

8. I appeared on TV in Canada in "Reach for the Top", a high school quiz show where our school reached the national finals. I have not parlayed that experience into an appearance on Jeopardy!, although I have qualified twice for their contestant pool. Our Reach for the Top team practiced with homebrew buzzers designed by the future founder of Research in Motion.

Monday, January 7, 2008

Search results as RSS

Normally an Oracle doc search gives you a regular HTML (really XHTML) results page:

Recently a developer asked for an RSS-format equivalent, to consume the results as a web service. At your, er, service:

The format/structure of the RSS feed may change. For example, Firefox doesn't display the descriptions when it shows the feed page, because of the way the tags are nested.

This has me thinking of other places to use RSS feeds for doc-related items. The other place that immediately jumps to mind is in the list of books, to have an RSS feed of the most-recently updated books. That involves a few design decisions -- what exactly is the "pubDate" given that the generation of the HTML, the posting of the library on OTN, and the build of the search index that generates the RSS feed might all be on slightly different days?

I'm interested in any other ideas about RSS feeds for the type of metadata that's available from a documentation library.