Wednesday, May 30, 2007

Back from a week in Europe - a travelogue

I have a been a very busy boy. Just spent the last week living in (well, visiting anyway) a different hotel every evening, moving between six cities in four countries in Europe as follows: Frankfurt, Dusseldorf, Zurich, Munich, Stockholm, Copenhagen.

Some might find that exhausting, but I am a lucky fellow: my body and mind are not much affected by jet lag nor by many hotel changes. Plus, I try to stay very disciplined about exercising each day and eating lots of fruit and vegetables, avoiding meat. So I made it back home without getting sick, without getting tired, actually returning totally energized by my time in Europe, because....

I gave my latest best practice presentation, now titled Practical Best Programming, to a total of over 400 developers (with the single largest turnout - over 150! - taking place in Dusseldorf, at an event cosponsored by Quest Software, the German Oracle User Group, and Trivadis). You can download this presentation at:

http://oracleplsqlprogramming.com/PracticalBestPLSQL.html

How bad can a trip be when I spend a big chunk of it talking to lots of people who actually seem to want to hear what I have to say, laugh at lots of my jokes (so kind!), and show proper appreciation for my (Quest's) amazing new tool: Quest Code Tester for Oracle?

Can't be bad at all. Here are some highlights:

* First, the weather. It was sunny and warm, even hot, throughout. The downside of this fact is that I felt absolutely compelled to abandon my laptop and hotel room and go outside whenever possible to enjoy the real world.

* The Das Stadel and Modern Art
(MMK) Museums in Frankfurt were very enjoyable. Lots of the art in the MMK was whimsical and amusing. Some of it seemed, well, ridiculous. Blobs of formless clay strewn about on the floor. Dates ( "12 OCT 1997") painted on small canvasses, filling a whole room. Not my cup of tea. But others...well....check out the photos: Frankfurt

* A lovely run along the Isar River in Munich, very close to the Hilton, where I stayed and presented. A very beautiful park, full of mothers and their children enjoying the outdoors, people riding bicycles....I wish that my legs and lungs were stronger so I could have covered more territory and breathed in even more of that clean air...photos:
Munich

* Hotel breakfast buffets: while I am trying to lower the importance of food in my life (with the intention of reducing the quantity of food I ingest), I definitely take every possible opportunity to eat fresh fruit. Most business class hotels in Europe feature extensive breakfast buffets containing a wide variety of fresh fruit, yogurt, healthy cereals, fresh juices and so on. Eating fruit makes me feel great!

* My friends at Quest, in particular Daniela, Calle and Patrick. Daniela and Calle worked very hard to organize my week of events and she is clearly a professional - very organized, great attention to detail, strong commitment to carrying out the highest quality programs. Patrick, an SC, shared the agenda with me for three days, showcasing critical best practice functionality in Toad, including CodeXpert, SQL Optimizer and Benchmark Factory.

* Raffling my books: O'Reilly Media generously provided books to raffle off to participants at each location. That wasn't the highlight, though it was certainly a great thing for those who won. What I liked most about the raffle is that we used PL/SQL technology to pick the winners! At first, I used this simple block of code to pick winners (we had a number forevery name):

BEGIN
DBMS_OUTPUT.put_line (ROUND (DBMS_RANDOM.VALUE (1, 70)));
END;
/

But that led to duplicates (randomly!) and also since there some no-shows at each event, I would have to run this block lots of times to give everything away. It was a bit clumsy. So I enhanced this simple block into a stored procedure with this header:

PROCEDURE pick_winners_randomly (
total_count_in IN PLS_INTEGER
, winner_count_in IN PLS_INTEGER
, ineligible_in IN VARCHAR2 DEFAULT NULL
, delimiter_in IN VARCHAR2 DEFAULT ','
)

With this procedure, I pass in the total number of attendees, the total number of possible winners (how many prizes we have), the list of ineligible numbers (those next to the names of people not in attendance) and delimiter for the inelgibile list. Then we could pick and immediately show all raffle winners in a matter of a second or two with a block like this:

BEGIN
pick_winners_randomly (50, 10, '4,22,27,33,47');
END;

If you would like to see the code for this handy program and possibly use it yourself, click here.

* I am now flying back and was lucky enough to get an upgrade. So I can work for 6+ hours on the way home! Very exciting. Really. Sadly, at this point in my life, I am SO busy and traveling so much, that I feel like I need to stay in my hotel room and order room service to minimize time spent on meals. And I try to fill every available chunk of time with typing on my laptop. Sigh....well, I have a great life and I chose to take on all the work I am doing. Anyway, I just learned something very interesting and useful: on American Airlines, odd numbered flights mean that the flight attendants ask Business Class passengers for their menu preferences from "aft to forward" - meaning if you don't eat meat, like me, then you want a seat towards the back so they won't have run out of fish or vegetarian meals. And on even-numbered flights, ask for a seat up towards the front. Now that's the sort of information I would rather not have be important in my life. But there you have it.

* My last day on the trip was spent in Copenhagen. We finished the morning seminar and lunch at 1 or so. After visiting the Quest offices nearby, I went out for a long walk, meandering through several really nice parks and ending up at the Statens Museum of Art. I've gotten tired of seeing paintings of crucifixions and little baby Jesus from the Middle Ages, but I always enjoy finding the relatively few modern paintings that affect me deeply. On the way back from the museum, I found the Assistens Kirkegard, an enormous cemetery containing the graves of many famous Danes, like Soren Kirkegard and Hans Christian Anderson. It is a truly beautiful, incredibly peaceful place. And that evening I visited the expansive Frederiksberg park. Most striking there were the raucous nesting birds - and I am talking big birds like herons. They made a LOT of noise and it was very fascinating. Photos:
Copenhagen

* Another unusual and troubling site at the Frederiksberg park was this . As far as I could tell, it was used by parents to hang items that belonged to a child who had died, as a way of saying goodbye. Pretty darned spooky.

Oh and by the way, if you are looking for some entertaining ways to pass the time and still use your knowledge of PL/SQL, check out the brand new Toad Squared Flash game:

http://www.toadworld.com/LandingPages/ToadSquared/tabid/168/Default.aspx?qac=ToadSquaredBloggers

1 comment:

Michael said...

If I could get one ounce of the energy you have. It looks like your travels were a success and I loved the pictures from the earlier blog. I have to admit, my most favorite shots were of the buildings because you took shots of the structures that had character :-) Well Steven, I turned 41 June first and I plan to get some of that energy you have.. Time for a diet and some exercise and lets see if at 42 I gain that first ounce :-)
PS: Thanks for the link to test my PL/SQL skills. Just what I needed another game to get addicted too.