Saturday, December 08, 2007

Dispatch from Lisboa (Lisbon)

Tomorrow I return to Chicago and Veva and Eli. I am so happy. It is my last trip of the year. I am getting REALLY tired of being on airplanes...just finished a visit to Lisboa (Lisbon), at which I did my best practice infotainment session for about 150 PL/SQL developers, sponsored by DUTEC. It was a wonderful visit to a beautiful city, made even better by the incredible hospitality of Joao and Carlos of DUTEC.

I loaded up all my Lisbon photos here:

And the highlights (first pass):

The Umbrella Tree - A truly incredible and beautiful tree I came across in the small Parque Real northwest of city center. It is a short, but horizontally spread tree held up by metal supports. Very peaceful.

Lisbon sidewalks - The sidewalks in Lisbon rival those of Prague, about which I have previously blogged. They don't have quite the regularity or, in some ways, granularity of the patterns in Prague, but they are still very attractive. This is one of my favorites.

Jakub Nepras - Babylon Plant 2007 - The most impressive piece of artwork I saw at the Berardo Art Museum at the Belem Cultural Center was a 3 minute collage video by Jakub Nepras titled "Babylon Plant". It's really not possible to describe it to you; you have to see it and I urge you to seek it out if it comes to your town. Suffice it to say that many of the tiny splashes of color you see in the photo are actually things like people walking, cars moving through traffic.\

"Where are your panties?" A rather off-beat piece of graffiti I encountered walking down from the Castle.

Of course, there are many monuments, incredible old (and new) architecture, and so on....

Train station -
Lisbon Castle viewed from afar -
One of many tiled houses -
Memorial to Vasco de Gama (sailed around the Horn of Africa) -
Love-evoL-Love-evoL in plaza -


Sunday, December 02, 2007

My first visit to Warsaw

I write this from Slovenia; it is December 2 and for the next two days I will be training a group of PL/SQL developers in Ljubljana for Oracle Corporation.

I flew here this AM, from Warsaw, where I taught a class to Polish developers on Thursday and Friday. That was my first visit to Warsaw and it left a deep impression.

First, something kind of funny about Poland: when I travel internationally and mention that I am Chicago, I generally get one of two responses: "Al Capone!" or "Michael Jordan!"

But in Warsaw, the response is a knowing nod of the head: "The Other Polish Capitol" was how one person put it. Chicago has an enormous Polish population, so there are lots of connections between the two cities, and everyone there seems to be very aware of Chicago.

Beyond that, I found a city in which the past is very present, especially the past known as WWII and the Soviet Occupation.

For example, outside the national library is an enormous war memorial, set of sculptures, including this one. I usually find more peaceful and "bookish" themes/scultpures at such buildings.

I was also shocked by how little I knew of the history of Warsaw during WWII. I have long been familiar with the 1943 Ghetto Uprising, in which a small number (on the order of a few hundred) of very brave Jews decided to fight the Nazis rather than submit to shipment to Treblinka and certain death.

But I never really had heard of the Warsaw Uprising of 1944. Here's the shocking nutshell of what took place (I learned this from a visit to the remarkable Warsaw Rising Museum):

The Germans were clearly losing and also retreating. The Polish Home Army, based in Warsaw, and surviving underground, decided it was time to attack the hated Nazis and drive them from their city. So they launched a massive uprising involving 10s of thousands of soldiers. The element of surprise and sheer numbers gave the Poles the early advantage. Then Hitler ordered a full assault with reinforcements from surrounding countries. The Home Army asked for and expected support from the Allies.

But the previous year at Yalta, Stalin, Roosevelt and Churchill had already agreed on how they would carve up Europe (and more) - and Poland was in Stalin's playground. Stalin didn't want a successful, empowered and independent military/political base in Poland. He wanted to install his own puppet government. So his armed forces stopped their advance on the East side of the Wista River. He also refused to allow the Allies to use air fields under Russian control to resupply the Poles.

And so after a long, brutal battle throughout the city (during which the Nazis killed some 150,000 civilians - including the Wola massacre, in which 50,000 were killed in one day), the Home Army capitulated. Now, that's tragic enough. But there's more....

** Hitler was very, very pissed off and told the officers in charge in Warsaw to expel all remaining inhabitants and level the entire city (more specifically, he told them to rank buildings by their significance to Poles and destroy them in that order)! And they went about it very systematically. Warsaw was essentially completely destroyed. I had no idea.

** When the Germans were defeated and withdrew from the city, Stalin moved his forces in. He then arrested all the Home Army leadership, accused them of collaborating with the Nazis, executed many and threw the rest in prison. How twisted...

** The decision was made to rebuild the Old Town of Warsaw, buildings that had stood for hundreds of years. And so they did, so well in fact that the UN has recognized it as a World Heritage Site even though it is a reconstruction. Fair enough - but part of the way they were able to accomplish this is that the Soviet-controlled Polish government went to nearby towns and demolished their old buildings so that something like 27,000,000 million old bricks could be "donated" to the cause. Oh, so very twisted....

Whew. it is no wonder that Warsaw still shows its scars.

Don't get me wrong, though: people don't just live in the past, bitter and depressed about what was done to them. Warsaw is vibrant and growing. I very much enjoyed my time there....I just got some education along the way.

I'd like to end this post with some positive thoughts about how fortunate it is that we, humans, have moved beyond such brutality and perversion. Sdaly, I don't think the state of affairs in Iraq, Afghanistan, Sudan, Tibet, Gaza and so many other places filled with pain and suffering can afford me that generosity of spirit.

Saturday, November 17, 2007

Back from Oracle Open World

(finally getting around to posting this!)

I am flying back from San Francisco; it is Wednesday evening, November 13. I made a relatively early departure from the overwhelming Oracle Open World conference, but I made good use of my time while there:

* Three presentations, with probably a total of 700 attendees. Nothing like Tom Kyte's blow-out experience, but hey there's no percentage in worrying about whether you could ever be as popular (or technically proficient) as Mr. Ask Tom!

* A Meet the Experts informal discussion at the OTN Lounge

* A book signing at the Toad World event on Tuesday night (O'Reilly Media released new editions of two of my books: Oracle PL/SQL Best Practices and Oracle PL/SQL Pocket Reference. The BP book is completely rewritten and, I think, one of my finer efforts. I hope you pick up a copy and enjoy it!

* Publishers Forum, an opportunity for senior Oracle managers to tell us what books they'd like us to be writing :-)

* Several media interviews - which gave me solid opportunities to repeat my latest mantra: "it is time to take testing much more seriously."

* Many one-on-one discussions with programmers on our favorite topic: PL/SQL.

As I implied above, I find the OOW experience to be generally quite overwhelming. Too many people, too much dilution of focus (DBAs and developers now seem to be a clear minority of attendees, with the majority "playing" in the application space). And, I must admit, large crowds simply make me nervous. I find humans mostly pleasant and rationale on an individual basis. In groups of 40,000 thought....hmmmm.....

Oracle addressed this issue somewhat by putting all developer-focused talks into a sub-conference at the Hilton hotel; that was very convenient, cutting down on the number of trips I had to make to Moscone.

Still, I remember with fondness the "old days," when OOW only had perhaps 5,000 in attendance, instead of 40,000. It was a much more technical experience, and much less of a marketing extravaganza by Oracle.

I am very glad to have gone, though. It is extremely important to make sure that PL/SQL has the highest possible visibility at OOW (Bryn Llewellyn, PL/SQL Product Manager, also had three presentations). This will cut down on the chance that the "PL/SQL is going to be replaced by Java" rumors will flourish once more.

I still get that question, though, and it always surprises me. Even if Oracle did rewrite the entire range of application software in Java, PL/SQL will not disappear. It runs hundreds of thousands of applications worldwide - PL/SQL will be around for as long as Oracle, and Oracle will continue to invest in improvements to the language. Of this, I am certain.

I also was able to enjoy a room on the 43rd floor of the Hilton, looking out over the Bay. Beautiful sunsets and sunrises and no evidence of the oil spill that has caused the latest ecological crisis in the area.

All in all, a quick and productive three days. And now back in Chicago, where autumn has arrived in full force and the land has turned yellow, as this view from my front door reveals.

Saturday, November 10, 2007

Catching up with me at Oracle Open World

Sorry about the lateness of this posting, but if you are interested in attending my presentations next week at Oracle Open World, here's the info:

Session ID: S290723
Session Title: Break Your Addiction to SQL!
Track: Database
Room: Grand Ballroom A
Date: 2007-11-12
Start Time: 12:30

Session ID: S290725
Session Title: Collect Yourself: Optimize PL/SQL Code with Collections
Track: Database
Room: Yosemite Room B
Date: 2007-11-12
Start Time: 15:15

Session ID: S290727
Session Title: Test-Driven Development in the World of Oracle PL/SQL
Track: Database
Room: Continental Ballroom 6
Date: 2007-11-13
Start Time: 12:15

In addition, I will be at the OTN Lounge on Tuesday the 13th (Moscone West) at 4:15 PM. I would love to see you there, and I think we will be raffling off a few of my books – you have very good odds on winning one of these!

Finally, on Tuesday night, I will be at the Quest Toad event (come round the booth #1414 for details) at which I will be signing complementary copies of my newest books (or latest editions, anyway).

Other than that, I will be hanging out at the Quest booth, eager to give demonstrations of Quest Code Tester....

Saturday, November 03, 2007

More joys of Scrabble: zeugma


Now, that is a fine word, except it sounds like a made-up word.

I would have thought, in fact, that it was, but one of the joys of playing Scrabble (our way of playing, anyhow) is that you are given the opportunity to go exploring through the dictionary.

Sure, when I open the dictionary, I am supposed to simply be verifying the existence of a word. Along the way, however, my eye stops on the first and last words of the page and occasionally I get a nice surprise.

Like "zeugma."

Here is an example of a zeugma:

"He caught a fish and a bad cold."

So, you have waited long enough. Here is the definition of zeugma:

"The use of a word to modify or govern two or more words when it is appropriate to only one or them or is appropriate to each but in a different way."

Like I said: a very fine word!

Monday, October 29, 2007

October Travelogue #3:

Written on Saturday, October 27:

Here I am in seat 31C of an old Air India 747, making my way north to Paris and from there to Chicago. In some ten hours I will be home, at long last, after two weeks away - one in Europe and one in India.

For the last six days, I traveled to four different cities in India - Delhi, Bangalore, Chennai and Mumbai (Bombay) - and in each one, my friends at Quest Software India (led by Krishnan Thyagarajan, a very tall, very smart and very experienced software industry executive), put together a busy agenda that had me exhausted by the end of each day. My time in India was also just about the most successful, gratifying and exciting country tour I have ever experienced.

I'd been told for several years that there were lots of PL/SQL developers over in India who would love to come hear me speak. And, of course, I also knew that India was a country in transition - population growing rapidly, the high tech sector exploding even faster. Well, this was one case in which knowing intellectually about something and experiencing it personally are two very different things.

And before I say anything else about my time in India, I need to say this: I saw very little of it, and most of what I saw was from the window of a moving car. Of those six days, I spent a total of four hours as a tourist, being driven around Delhi, seeing some interesting tombs, mosques, monuments, etc. The whole rest of the time, I was either (a) presenting on PL/SQL best practices and Quest Code Tester to enthused groups of developers; (b) driving in totally insane traffic between those presentations; (c) sleeping in very nice hotels (but having time to nothing but sleep in them, sadly); (d) going to and from airports; and (e) flying around in planes.

I am not complaining, though. I told Krish that I was not coming to India to be a tourist. I wanted him to make the most of my short time there, and he did just that. In the five work days, I spoke directly to some 2000 developers! My audiences ranged from 10 (which was also one of the best in terms of discussions) to 400, at my public seminar in Mumbai just last night. I usually did three or four presentations each day (and I must tell you: I do not want to even think about presenting on best practices for quite a while).

Even with that very limited view of India, I could write for pages and pages about what I experienced. Sadly, I have many other things to do. So instead I will offer a scattering of impressions and highlights.

PL/SQL Ascending!

PL/SQL is an interesting language and the people who write PL/SQL code make up a very unusual programming culture. It is relatively small - perhaps a couple million developers. And PL/SQL developer are generally more focused on getting the job done than on debating the pros and cons of methodologies like Extreme Programming and Test-Driven Development. Yet there is a broad and deep appreciation of the language, from its simplicity and ease of use to its powerful methods of accessing the Oracle database.

In the US and Europe, it is also a language that is seeing very slow growth, in terms of numbers of new PL/SQL developers. It would be fairly typical for me to present to a group of 200 at an Oracle User Group event and find that only 10 people have started using PL/SQL in the last year or two.

In India, the numbers are starkly different. In a group of similar size, easily 50-75 people will be new to PL/SQL! That really warms my heart and gives me hope of ever blossoming book sales (:-) What can I say? I still need to food on the table...). And they are so young! One of my standard jokes goes like this:

"The programs you write today are likely going to still be running 20 years from now. How many of you have children under the age of 15?"

And in the US crowds of 200, perhaps 1/3 will raise their hands.

"Then there is good chance," I continue, "that some of those kids will grow up to be programmers. And maybe, just maybe, your daughter or son will end up maintaining your code. So you have two choices: either never put your name in your code or write code that you are proud of, that will not cause nightmares for little Johnny or Sally."

That gets a pretty good laugh in most of my presentations (so yes, I admit it: I have a standard repertoire of jokes. I am a "stand up comedi-programmer."). But in India, when I ask "How many of you have kids under the age of 15?" they all stare back at me unmoving. Heck, I think some of them are 15 years old!

In India, PL/SQL developers are young, they are energetic, they are enthusiastic, they are eager to learn. It was a real joy to spend time with so many of you in this past week, and I very much look forward to my next trip!

Rock Star!

I travel around the US and Europe mostly, doing trainings and presentations. And I always remind the people who are organizing the events that while it seems like it is easy to get people to come attend my events in respectable numbers, if you want to get lots of people to show up, you have at least pretend that the event is a BIG DEAL, really super special, etc. Otherwise, why would anyone else think it was going to be a big-deal, must-attend event?

Well, Quest India really took this advice to heart. Besides the on-site presentations at something like 15 companies, Quest organized two public events, one in Bangalore and the other in Mumbai. Hundreds of people attended each one and they were greeted by quite a show. I expect to post some vide clips on YouTube soon - you will not believe your eyes. A full stage backdrop set up, with an introductory video with pounding music...and then the phony fog hisses across the stage and as I step through the door in the center, confetti explodes into the air all around me! I have never experienced anything like it (and, honestly, I am not sure how much I want to :-) It was very entertaining, but I sure did a little bit weird).

After that rousing introduction, though, I got right back down to talking about PL/SQL, running code and so on. But for those few moments, I could pretend I was a "rock star."

.... to be continued ....

Sunday, October 28, 2007

October Travelogue #2: I arrive in India!

[Note: now I am home, after flying for over 17 hours yesterday. Ugh. So nice to sleep in my own bed and hug my wife...the following was written on Tuesday, Oct 22....more to come...including photos]

Continuing my travelogue, I left Germany on Saturday morning but instead of heading home (which I would really loved to have done, given the small amount of time I have had lately to spend with my wife, Veva), I got onto a Qatar Airways Airbus 330 and headed to Doha, Qatar. This is a very popular transfer point to India (I assume Qatar is offering not only many flights but also low fares), and as a result I visited the Middle East for the first time ever.

In other words, even though I have been very active on Middle East peace issues for the last five years or so (with a focus on supporting Israeli soldiers who refuse to enforce the occupation of the West Bank), even though I was raised in a typical Conservative Jewish home on Long Island, I have never visited Israel nor any other country in that region.

And this wasn't much of a visit in Doha or the Middle East - I never left the departures area. Still, when I came down off the airplane, it felt a bit special and different to stand on this ground. I stood there in the heat and looked around, eager to make the moment last - and immediately an airlines employee began to urge me to get on the bus. Take it easy, there!

Then a long bus ride to the terminal....looking out the window, I was struck by how much the area directly outside the bus reminded me of Chicago in the winter, after a light snow. Of course, in this case, it was sand and not snow, but in the darkness, they looked much the same!

Entering the terminal, I saw that all the signs were in English and Arabic -- and was immediately struck at how beautiful Arabic lettering is. English seems very boxy and boring, all business, compared to the flowing curves of Arabic (the same is true for Sanskrit - beautiful, as I glance at the signs on the seat in front of my on my current plane ride from Delhi to Bangalore).

And a few hours later off to Delhi! I arrived in Delhi at 6 AM on Sunday and my first impressions were that this is an old airport in major need of upgrading. Which, apparently, is how the airport authority feels about it as well, since they are in the midst of a major renovation project. Then whisked away by my arranged driver for the ride to the Le Meridien hotel....I am not sure if he was just being friendly or was hoping for a better tip, but he decided to show me the sights all the way, pointing out embassies, big government buildings, etc., usually creeping along at about 3 MPH to provide his brief explanations in halting English. And all I, rather exhausted on 1 hour of sleep, wanted to do was to get to the hotel....

I finally arrived and found that the Le Meridien was a very beautiful and fancy hotel - the sort that makes me a bit nervous, because they are so well appointed. I'm just not much of a luxury sort of guy. My room was very modern, with a console for all electronic operations right at my fingertips by the bed.

And then after just a couple hours' in that beautiful room, off I went for a half day of a tour through Delhi, organized on my behalf by Quest Software India. I saw the Presidential Palace, the Parliament building, India Gate (on which are carved the names of all soldiers who have died for their nation, I believe since World War II - not sure about that. I mostly looked at it and hoped that they would not run out of space), several tombs and adjoining mosques, the Red Fort and more. It was a hot sunny day and I got worn down rather quickly. My driver, Amar Singh, was very enthusiastic and knowledgeable, though I would have enjoyed it more if he was a bit more fluent in English; discussions were rather difficult. Sadly for me, October 21 is a national holiday, so all the museums were closed - a big disappointment.

Delhi is an enormous, busy place. Usually, traffic is an utter horror. Sunday, it wasn't as bad as usual, because of the holiday, but it also made some areas and streets even more crowded, as they prepared to celebrate. I was intrigued by the three-wheeled, very small taxi vehicles that zoomed in and out of every available open space (when, that is, a motorcycle hadn't beaten them to that space). Everyone honks at everyone else, but without any real anger so far as I could tell. And, yes, the contrast between wealth (such as my hotel) and poverty (the beggars lining almost every street, knocking at the window of my car whenever we stopped at a light, accosting me as I walked around the India Gate and other places) is downright depressing. Of course, this contrast also exists in the US - and it is getting worse with every passing year, under the grand leadership of "W". Yet it is a bit more "in your face" in India, unavoidable, ever-present. I guess in the US, we have compartmentalized and hidden extreme poverty from the eyes and thoughts of every day middle class existence. And I am not saying that is a good thing, but there it is.

One of my favorite moments in Delhi was standing at the window of hotel and watching hawks circling around on the air currents, right outside my window (which was, unfortunately, quite dirty). I also saw flocks of noisy, green parrots swooping about.

The roads are full of three-wheeled, 2 stroke engine mini-taxis (they are all green in Delhi, yellow in Bangalore and their official name is "auto rickshaw"). They jam themselves in between cars. And then the endless stream of motorcycles fit into every space between the mini-taxis. So there is absolutely no room to maneuver, but everyone maneuvers endlessly.

Well, that was it. A very short visit to Delhi, a very constrained visit to Delhi. My friends here at Quest did not think it would be a good idea for me to just go out and walk around (my usual, preferred method of visiting a new city). So I was driven around, I saw the very typical tourist sites, I bought my wife a gift, and then back to the hotel.

Because by 3 PM, I was mostly sitting in the car and falling asleep, and when I was awake, I was thinking about how I would have to wake up before 5 AM to catch my flight to Bangalore.

And that is the flight I am on now....I have two days and nights in Bangalore, the highlight of which will be a public seminar on Tuesday evening to which almost 900 developers have registered (!!). So I will write another entry in my blog after we see how that goes.

Looking forward to years of sub-standard flying in the US....

Reading through the Herald Tribune (NY Times' international daily - I always look for it when in Europe because it has a daily chess puzzle), I came across this item:

Strapped US airlines fail to upgrade fleets

"In essence, a new generation of jetliners - bigger, more comfortable, more fuel-efficient - is largely bypassing U.S. airlines and their customers."

Instead, they are being purchased by European, Asian and Middle Eastern airlines. U.S. airlines have $28 billion in the bank (cash) but prefer to use it to pay down debt, rather than upgrade their fleets. We are assured that the old planes (flying for 20, 25, even 35 years) are perfectly safe. Oh, goodie.

Flying back from a two weeks in Europe and India, it just struck me as another example of how our empire is in decline. We, the citizens of the US, supposedly among the most powerful and affluent people in the world, live in a country whose bridges are falling apart, whose mass transit systems are in decay and crisis, millions of people are being foreclosed out of their homes, and we are shuttled around the country in dilapidated, dirty airplanes. Oh, and we, our government, somehow can't afford to even make sure that our children receive health care (thanks, George W, for your brave dedication to fiscal discipline by vetoing legislative that would help children instead of your cronies in Halliburton and the despotic Saudi Arabia).

Meanwhile, the very rich among us grow unimaginably richer, fly around in their own private jets, build bigger walls to stay cleanly separated from the rabble.

I know, I know - what a pathetic bleeding heart I am! Well, I'd rather my heart bleeds than is a stone, looking down from on high and urging everyone to "trust the market."

Monday, October 22, 2007

October Travelogue #1: A week in Europe

Hello there from Chennai, India! I am halfway through my first ever visit to India, and I am simultaneously exhausted and exhilarated by the experience. What a country, and what an almost-overwhelming population of PL/SQL Developers! In the past three days, I have spoken directly to well over 1,000 programmers. It has been an absolute morning-to-night whirlwind of activity organized by my very capable friends at QSFT India: Krishnan, Selza, Berta and Christina. I will write more about my experiences in the coming week or so, but for now, I am going to post what I wrote about last week's trip through Europe:

Quest Software organized a series of seminars and Toad Conferences in Norway, the Netherlands and Germany. I volunteered to talk about my favorite topics: best practices and testing.

I started off with a visit to one of my favorite countries, Norway. I like it so much, because they are just so darned civilized. Norway, in case you didn't realize it, is a major oil exporter, extracting crude from the North Sea. As a result, the country has lots of money, but they use it wisely, compared to so many other nations.

What do I mean by "wise"? Rather than allow oil wealth to concentrate into the hands of a very few people, Norway invests in social services to provide a high quality of life for everyone. It also recognizes that oil revenue will not last forever. To address this issue, Norway has established a national pension fund that today tops $350B in value. More than that, the fund operates in a totally transparent manner, publicly listing all of its investments (which are widely and shallowly - no more than 1% investment in any one company - spread across the world) and also explaining its investment strategy to its citizens.

That's smart, that's democratic, that's a model for other countries to follow. Thanks, Norway, for leading the way!

Then on to another favorite nation and city - Netherlands and Amsterdam. I always greatly enjoy coming to the Netherlands for several reasons:

* Amsterdam was my first international destination, years ago, when I participated in a European Oracle User Group. Amsterdam was in the midst of a wonderful spring, the weather was great, everything was subtly and not-so-subtly (think: coffeeshops) different. I had a wonderful time!

* The PL/SQL community in the Netherlands is just about the most advanced I have ever encountered. Many developers are very interested in writing high quality code, in exploring different ways of creatively using PL/SQL, in engaging with PL/SQL as more than just a way of getting their jobs done.

* My good friend, Patrick Barel (PL/SQL developer, Delphi developer and about-to-be newly hired AMIS consultant), has welcomed me into his family and so whenever I can, I stay with him and renew my friendships with Quinty, Kayleigh, Mitchell and their mom, Dana. It is so nice to avoid the hotels and stay in a real home with friends!

Now, on this trip, I made a couple of too-short presentations at the Toad conference, which was held at Ajax Stadium. Ajax is the Amsterdam football team. The stadium is enormous, and while we of course presented in the conference center, we all got together for a group photo in the stadium itself. That was different. At the end of the conference, I participated for the first time in the SQL-PL/SQL quiz by Lucas Jellema and Alex Nuijten of AMIS Consulting. That was hilarious and very challenging, but I am proud to say that even though I had no idea about many of their quiz topics (centered as they were in SQL and DBA features), I was able to use logic to narrow down my choices. I ended up 1 out of 14 answers correct, and was quite happy with that.

I learned one very important lesson from this conference: never agree to speak for less than one hour in a session. I had just 45 minutes each for my talks, and it was simply not enough. From now on, I draw the line: give me at least one hour - preferably two - or leave me off the agenda!

But the Toad conference was only the first part of my day. In the evening, Ordina Consulting held its second public program featuring yours truly as its speaker. They did this the last time I was in the Netherlands (back in March) and we had a really fun time; over 200 enthusatic, easily amused people (they laughed at every one of my jokes) showed up to hear my thoughts about best practices. In October, we again had close to 200 people in the MediaPark, a futuristic, high-tech conference center in Utrecht. Once again, a very attentive and responsive audience and, once again, Ordina did a bang-up job organizing a really fine program. My warm thanks to Jenny and Frank!

What next? Ah, yes! Germany: Cologne, Berlin and finally Mannheim (near Frankfurt). I took a 6:30 AM high speed train from Amsterdam Central Station to Cologne. Very nice form of transportation. I then stepped out of the Cologne station to see the incredible Cathedral, a gothic wonder with a very tall tower (which I was to climb in a few hours). I headed over to the Hilton and a little while later performed for the "masses." Actually, the audience size was a bit on the small size, something that repeated over the next two days as well; it seems that the Toad events attracted many more DBAs than developers; I am not sure why. They were also much quieter and more serious than the Dutch, partly I believe due to a bit more of a language barrier. Yet some of the attendees gave me great ideas for new features to add to Quest Code Tester.

With the afternoon free, I went to the Cathedral and climbed the 500 steps up through a very confining circular stone stairwell. Good exercise, a great view, and a marvel of gothic architecture. Besides that, the highlight of my Cologne visit were the excellent pastries and numerous Snickers bars put out over the break. Photos to come later....

From there, to Berlin - my first time ever to this historic city. Unfortunately, time was very short and besides giving my presentations, I only had time for a short walk in the neighborhood of the Crowne Plaza hotel.
Photos to come later....

And then Mannheim. Following the pattern of this trip, we traveled into the evening, then rented a big Mercedes van to drive the hour to Mannheim and the Dorint hotel, which was a major disappointment. To my and others' utter amazement, this conference center hotel only offered dial-up Internet access in the rooms; I had to sit out by the elevator to find a wireless connection, thereby sharing my conversation with my wife via Skype with anyone going in and out of the elevators. To plug in my laptop at the desk, I had to unplug the lamp. No fitness center. And to top all that off, at 7 AM construction workers started their day right outside my window, making more than enough noise to ensure that I did not need an alarm to wake up in time. Very irritating.

All in all, though, a fine trip to Germany. Many thanks to Daniela for organizing the events so professionally. And it was great to see again my friends Johannes and Thomas, two fine Quest SCs.

Monday, October 08, 2007

An amazing Scrabble achievement

Veva and I have been playing Scrabble lots lately....

A few weeks ago I was delighted to put down this word


Nothing terribly special, except that I was able to put it across the board in such a way that both the V and the G were on double word spaces - so I got a quadruple word score! That was the first time I had ever done that.

But this accomplishment was nothing compared to last night.

On Veva's first turn she put down BREEZES - 7 letter word -> 106 points!

I immediately countered on MY first turn with SOUTHING - another 7 letter word but "only" 74 points.

Well, from there my game definitely took a turn for the worse; I ended up with only 298 points.

But Veva...Veva...she never slowed down. She came up with a SECOND 7 letter word score: DIVERTED, good for another 70 points, followed that by CREW on a triple word score that netted 48 points and....

She ended up with a score of 437 points, an average score per turn of 21 points!


That was a lot of fun, though I have to admit I would have had MORE fun if I was the one who got 437 points.


Sunday, October 07, 2007

Liberal Media bites again? Hah!

I find the charge that the US media is "liberal" to be especially amusing, because it is one of those claims that has no resonance in the real world. But if "you" (that is, the people taking up lots of our bandwidth on radio, TV, etc.) repeat something often and loudly enough, after a while, people seem to accept it as a sort of truth.

It is, for example, almost impossible to find a real left wing voice or face on television. And of course in recent years, all major media, even that most "liberal" of newspapers, The New York Times, went out of their way to support President Bush as he lied his way straight into the tragedy unfolding in Iraq.

Yet those are very broad-brush examples/counter-arguments. I ran across a much more concrete example this morning of how the US media is largely biased in favor of the right wing.

Check out this article on Yahoo News:

Springsteen ready for criticism over "Magic" words

From Reuters, it leads off with this text:

"Bruce Springsteen's new album "Magic" marks his return to the pop sound that propelled him to mega-stardom in the 1980s, but the hook-laden melodies mask lyrics portraying an America of despair and hopelessness.

"Springsteen says he is prepared for criticism from those who may take the lyrics on his latest album "Magic" as unpatriotic for speaking out against the Iraq war and President George W. Bush in war time."

Now, c'mon, folks - who at this point pretends that this war is popular or that criticism of this war would be considered "unpatriotic"? Just the right wing nut cases. The war is demonstrably, overwhelmingly unpopular. Many people, from all walks of life, all political parties, are criticizing Bush and Cheney and Gates.

Wouldn't a more accurate headline and overall subject for this article be something like: "Springsteen to put Bush Administration further on defensive with new album"?

This article, in other words, is not really news. It is a twisting of the news to persuade us that we should be thinking of Iraq war criticism as being "unpatriotic."

Saturday, September 22, 2007

PL/SQL developers converge on .... Newark!

Just back from the third Oracle PL/SQL Programming conference: OPP2007-East.

Close to 200 developers and their close friends in Quest Software, Oracle Corp, OReilly Media and Dulcian (the sponsors) gathered at the Sheraton Newark Airport Hotel to rejoice in all that is PL/SQL: two days of intensive training, conversation and contests.

Unlike the "work hard, play hard" theme of ODTUG's Kaleidoscope conference (held in June), we at OPP proudly call ourselves the "Seriously Practical" conference.

At OPP, we mostly work you hard and then work you some more.

I started off on Tuesday with a keynote at 8:15 AM, after which there were five 1.5 hour sessions organized in four tracks (Best Practices, Fundamentals, Advanced and Vendor). The sessions ended at 7:15 PM. But wait -- that's not all! For another twenty or so brave souls, it was time to participate in the third-ever PL/SQL Test-a-Thon.

The Test-a-Thon ("Who can build the most/best automated tests for a set of programs you've never seen before, in an hour?") went till 9 PM, resulting in a very pleased winner (closely beating out two others nipping at his heels): Todd Barkus of Barkus Consulting, Minneapolis. Congratulations, Todd!

That is one very long day, and with little time for sleep, we all gathered the next morning at 8 AM to listen to Bryn Llewellyn, PL/SQL Product Manager, tell us all about the wonders to come in Oracle Database 11g.

Poor fellow - his laptop powered down on its own accord twice, leaving him to explain things like the Function Result Cache, compound triggers, native compilation and more without the benefit of a single Powerpoint slide. Horrors! As expected, though, Bryn captivated his audiences with both his technical know-how and dry wit.

Cursory scans of attendee evaluations reveal the following:
  • Continued, tremendous enthusiasm for PL/SQL and the OPP conferences
  • Great appreciation for the deep expertise of the instructors. (Well, it is rather hard to hide behind a superficial understanding of topics when you have one or more 1.5 hours sessions to fill!)
  • "We don't want to do five sessions in one day, going from 8 AM to 7:15PM!"
  • "We need more breaks - 1.5 hours straight is tough to do over and over again."
Wimps. :-) OK, OK, we will look adjusting our schedule!

Many thanks to ODTUG for taking on sponsorship of these conferences, to Kathleen McCasland and YCC for its very competent organizing of the event, to Bryn Llewellyn and the PL/SQL team for their fine work on our language of choice, to our other speakers/instructors (John Jeunnette, John Beresniewicz, Ken Atkins, Karen Morton, Paul Dorsey, Mary Hunsaker Gable, Ron Hardman, John Pocknell, Mark Sewtz and Anthony Harper).

We are thinking now about holding the next OPP in the Southwest, in the first quarter of 2008. If you would like to be informed about our Oracle PL/SQL Programming conferences, let me know by sending an email to

Saturday, September 01, 2007

I know what I did this summer

I went down to Puerto Rico and "worked the land." My wife and I built an enclosure for a vegetable garden. The enclosure was necessary because the land there is almost 100% clay. Actually, a wide variety of colors of clay. Most of it is orange, but we also found big chunks of brilliant turquoise, as well as shades of red and other colors. Veva took some of the clay back with her to Chicago to take a closer look and see if it is something she can actually use in her wonderful ceramist efforts.

This is what the vegetable garden looked like when we arrived.

In other words, an area cleared of what we decided were weeds and, though you can barely make them out, four pineapple plants in the top left corner. They are not doing too well, since it is pretty much solid clay.

To actually be able to grow vegetables there, Veva decided that several things were needed:

* Much better soil - soil that would hold water, soil that contained nutrients and minerals and whatever else tomato and lettuce and other edible plants need to grow.

* A way to keep that soil from washing away in the heavy rains that come almost every afternoon in this tropical part of the world.

* Also, a way to keep the dogs (both those that live at our place, Bunny and Panda, and those that roam Puerto Rico in packs looking for mates, fun and food) and other animals away from our vegetables.

Her decision? To build a wall with fence around this vegetable patch and then load it up with compost and sand. And then mix it all in with the clay to break up the ground and speed the conversion of all of these materials into wonderful growing soil. Do that for several months and, along with lots of sun and rain, it should be ready to start feeding us on a regular basis (or those of us who are living at the old finca).

So...we measured the size of the garden and then went to our favorite ferreteria (hardware store): Mendoza Brothers. Only two miles or so from the finca, it is run by Danny and Joey, two NJ-born guys who moved back to the island when they were kids. Also, Roger the youngest brother works there. Now, "hardware store" doesn't really accurately describe this place. It is more of an open area (fenced in) and full of wood, metal, bricks, etc. with a relatively small building that holds tools, poisons (lots of people use Roundup on the island; we use no chemicals on our land) and so on.

Well, so we ordered 120 cinder blocks, 100 ft of chicken wire, about 120 feet of rebar (steel rods that we would use to hold the chicken wire in place). I could turn this into a really long blog by explaining how much work it took to get those cinder blocks up to our place, since that entails driving a truck down a 1/4 mile access road, over a bridge crossing a creek and then up a really steep hill. Instead, I will summarize: Joey dropped the cinder blocks off just off the main road and we then moved them up to the house 30 at a time. Lots of work.

But then they were there and we laid in the first row of blocks for the wall. You can see that the level to the right is much lower than on the left (up the hill). We were such engineers!

Then we started putting in the second layer of blocks (actually a total of three on the lower end of the hill), along with some of the rebar supports.

After two days of hard, sweaty work (we mostly did this in the morning before the sun hit that area full force), we had our wall completed and even lay down an entry path to the garden area with our signatures. I know what you are thinking: this is pretty crude work. Well, I suppose so. Chris, our son, certainly thought so. In fact, he thinks what we did is incredibly ugly. Maybe so. We were definitely focusing on functionality and getting something done that could be used ASAP.

And we weren't done yet! Next we put up the chicken wire fencing to keep out the animals. Then we sunk two four-by-four posts to which the door to the enclosure would be attached by Chris (we decided he would do a much better job of this than us).

Then I spent hours raking up twelve wheelbarrow loads of dead leaves and other partially decomposed matter and dumping them onto the clay. I also dumped a large volume of sand which was sitting out at the end of our access road, left over from the monumental effort of putting in a new bridge over the creek (3 6o-foot long steel I-beams and who knows how many pounds of hand-mixed cement). Then Veva dug all of this stuff around, mizing it together and there we left it: one enclosed garden, ready for continued composting, turning over, and then finally planting!

We were and are very proud of ourselves. Major accomplishment. Could be growing our own food 3 - 6 months from now.

And while I am at it, here are a few more photos from our trip:

Insane Zuzi, the kitten, tussling with Bunny the very friendly dog. Bunny is very gentle with her, as you can see.

A storm rolling over Mayaguez and heading to Aguadilla. Incredible how you can see the rain when it is falling so heavily from clouds.

Some of the beautiful flowers growing near the house. And this magnificent bird of paradise plant is almost beyond description when blooming (right now, I am just very excited that it is growing so well, since we almost burned it to the ground last New Year's Eve, when we lit an incredible (and some might say incredibly stupid) bonfire that soared 40 feet into the air.

We planted four citrus trees: orange, grapefruit, mandarin orange, lime. These complement the others growing on the property, many of which are too high to easily pick the fruit. Again, we enclosed them in cinder block and chicken wire, so the dogs would not dig them up.

So, yes, that's what I did on my summer vacation this year: work hard, but work in a very different way from the usual work (brain work, fingertip work, eyeball straining work).

Sunday, August 26, 2007

Check out my latest Quick and Useful code offerings!

I am now posting most of my PL/SQL-specific content over at my ToadWorld blog. In fact, Quest Software has now put together a really nice on-line home for me at:

So I thought I might offer a quick reminder here of what you can find there.

My latest blog entry:

Undocumented (but supported) Oracle11g Feature! Reference Fields Of Records In A FORALL Statement!

My latest Quick and Useful offerings:

Quseful #6 - Generate collections of random values
Quseful #5 - Does that string contain a valid number?

And here is a cute little package I wrote to make it easy to put in some insurance against infiinite loops in your code: the loop killer package.

Wednesday, August 22, 2007

Back from Puerto Rico, finding zaniness in the Chicago Tribune

I am just back from a two week "holiday" in Puerto Rico (in quotes, because I spent much of that time working very hard - but manual labor, working the earth...more on that soon) and as I was going through the Chicago Tribune today, pieces of it just seemed, well, weird. Was it because I was out of it for a while? Who knows? Here are the items that caught my eye and twisted my brain:

Tribune fined in worker's death

"The federal government has fined the Chicago Tribune $7,000 -- the maximum allowable penalty -- for a serious safety violation at its printing plant, where a worker was killed in May when he became entangled in a conveyor belt."

This is a fine demonstration of how corporations trump citizens in our democracy. Maximum allowable penalty for killing your worker is $7000. That doesn't present much of a deterrence to companies that want to cut corners to save money, or to simply aren't inclined to proactively protect their workers effectively. Now, why would our government (of the people, by the people, for the people) set up laws that so poorly protect "the people" and so nicely benefit the company? Hmmmm.....

Poll: White youths happier than others

NEW YORK - Young white Americans are happier with life than their minority counterparts, a poll has found.

According to an extensive survey of 1,280 people ages 13-24 by The Associated Press and MTV, 72 percent of whites say they are happy with life in general, compared with 51 percent of Hispanics and 56 percent of blacks.

Twenty-eight percent of minorities believe race will hurt them in the quest for a better life. Among whites, 20 percent feel their race will help.

This is a great example of the numerous polls, surveys, studies I come across that makes me think: "You need to organize a study to figure that out?" This country is still so divided racially -- and that divide (or those many divides) certainly extends into the economic sphere. And let's face it, it's hard to be happy when you work a crappy job for little bits of money, or can get no job at all.

But really, the solution is clear: "minority" youth simply need to stop believing that "race will hurt them in a quest for a better life." Think positive or whatever that latest ridiculous fad-book tells you to do: just think different and your life becomes different.

That's what's wrong with your "minority" "youth" today.

Yes, I am back in Chicago, with lots of evidence of the world crumbling to pieces around me.

Sunday, August 05, 2007

Democratic Party control of House gives us what?

So in November 2006, a sizeable number of the American middle class finally got disgusted with the Bush Administration and his lackeys in the Republican Party, and handed control of the House of Representatives to the Democratic Party.

Fantabulous Day! Perhaps now there would be a voice of sanity to counter the Bush Administration's botched invasion of Iraq and its ongoing attack on our freedoms.

I guess not. The House voted to continue funding the war and this morning I woke up to a Sunday Chicago Tribune article (from AP) titled:

House Approves Foreign Wiretap Bill

WASHINGTON - The House handed President Bush a victory Saturday, voting to expand the government's abilities to eavesdrop without warrants on foreign suspects whose communications pass through the United States. Full article...

Yes, folks, the Democrats also caved when it came to our fundamental civil liberties. Here's how one US rep described this bill:

"This bill would grant the attorney general the ability to wiretap anybody, any place, any time without court review, without any checks and balances," said Rep. Zoe Lofgren, D-Calif., during the debate preceding the vote. "I think this unwarranted, unprecedented measure would simply eviscerate the 4th Amendment," which prohibits unreasonable searches and seizures.

But this is not to say that the Democractic Party did not put up a fight. Oh, no. As the article tells us, "Congressional Democrats won a few concessions in negotiations earlier in the week. New wiretaps must be approved by the director of national intelligence and the attorney general, not just the attorney general."

Oh yeah. This is good stuff. They don't trust the current Attorney General (Gonzalez) and well they should not. He is a crony through and through, but at least historically the position of the Attorney General has implied some level of distance from the White House itself. How do they fix this problem of trust by pretending that the director of national intelligence, another person appointed by the President and without any semblance of independence, is any sort of check-or-balance? Ridiculous!

You can almost see the Democratic Party writing laws today with the hope or expectation that they will win the Presidency this next time. step closer to a police state we come.

Thursday, August 02, 2007

Want to help me regression test the PL/SQL language?

As I hope many readers of my blog know, I have gotten rather obsessed with helping PL/SQL developers test their programs more effectively.

Back in 2000, I released utPLSQL, the Junit analogue for PL/SQL. It was (and is) a big advance over 100% hand-coding tests, but it still requires you to write hundreds, even thousands of lines of code. That fact will always greatly limit who will use that open source utility.

So in 2005, I decided to try again and with the help of many at Quest, we have produced Quest Code Tester for Oracle, a truly amazing automated testing tool that generates almost all of your test code.

Well, I had a brainstorm rumbling around in my head when I woke up this morning:

Wouldn't it be cool beyond cool to build a regression test in Code Tester for the built-ins of the PL/SQL language themselves?

Sure, Oracle has their own extensive regression tests, but we could all have our own! Want to ensure that SUBSTR really does all it is supposed to do? Run the test. Want to make sure that a new version of PL/SQL doesn't have any obvious or critical bugs? Run the test.

I have already "thrown together" a PL/SQL package that will work as a pass through to the programs in STANDARD. We can use Quest Code Tester to specify tests against this API, which will in turn exercise the underlying PL/SQL code.

Well....I am just turning this idea over in my head for now, but thought I would share it with the world....I certainly couldn't do this by myself, but as a community, hundreds of PL/SQL developers certainly could pull this off.

It would be like SETI@home. We could call it testPLSQL@home.

So what do you think? Interested in participating? Feel free to drop me a note and let me know:

Saturday, July 28, 2007

Update on my beautiful Insight

As I expected, State Farm has declared the car a total loss. The estimate for repairing the car came to over to $8000. The pleasant State Farm fellow told me that the cash value of the car is $7750. I get an extra $900 for low mileage (51000 in 7 years!), plus $600 for good condition. is very sad to see the results of all my efforts to keep the car in fine shape and drive it minimally results only in an extra $1500.

Add in sales tax and per diem reimbursement for rental car (which I didn't use, but still I get the per diem), and State Farm stands ready to hand over about $10600 for my wreck of a car.

Which I suppose is not bad considering I paid twice that seven years ago.

But for now, I do not intend to purchase another car. I can do without. Instead, I will check out Zipcar or I-Go, car-sharing services. And ride my bicycle whenever and wherever possible.

Goodbye Insight, it was nice to drive you....

Sunday, July 15, 2007

Nasty Karma - goodbye Insight....

Sigh....Eli and I went to NY this weekend to celebrate my mom's 75th birthday, plus Sally's 4th birthday, plus Laurie's birthday...and we had a great time, made even more enjoyable by my more or less accidentally renting a red mustang convertible:

So that was fun, and the water balloons were fun, and Evan did some great cooking, and so on....then on Sunday Eli and powered our way back to LaGuardia and managed to hop standby onto an earlier flite. We arrived at O'Hare an hour earlier than expected, hopped into my Insight and off we went.

And two miles from home, stopped at a red light, an absolute jerk of a driver SLAMMED into the back of the Insight, at maybe 20 or 30 MPH. And now my beloved automobile, with only 58000 miles on it after 7 years, averaging 50 MPG, no longer sold by Honda, looks like this:

We were covered with glass chunks. My back and neck got whipped around; hopefully I won't be stiff as a board tomorrow. Eli, too. But we are OK right now, anyway. I am very bummed out, though. I didn't have collision on the car any longer, so I have filed a claim with Sandra "My brakes didn't work" Luke's insurance company and sure they will pay, but probably not to fix it, just declare it totaled and write me a check. Goodbye Insight.

Very sad day for me....and to get hit by an idiot who actually puts the following on her windshield:

That is, upside down: If you can read this....ROLL ME OVER.

In other words, she advertises the fact that she is a reckless driver. What a loser.

No, I am the loser. Ah well, I just have to tell myself over and over: it's just a car, just a thing.

But it was such a nice thing. The best car I ever owned.

Wednesday, July 11, 2007

How Oracle describes PL/SQL for 11g

It is summertime, right? I hate it when I am so busy that I barely notice summer in Chicago. Aw, that's an overstatement. I've been out. I've ridden my bicycle a couple of times. I've seen people visiting the beach. I even played some basketball with teenage nephews who absolutely ran circles around and over me. [I will, however, state for the record that in one game, I scored 7 of the 15 points. Dang, I was hot.]

And I also did some work on Oracle 11g during the beta program (which officially ended on July 11, with the launch of Oracle latest and greatest version).

So I eagerly downloaded the Oracle Database 11g Application Development PDF to check out its high level commentary regarding PL/SQL and other dev languages available for use against and within the Oracle database.

Under the heading of PL/SQL, this document offered several interesting statements:

"PL/SQL is an imperative 3GL..." An imperative 3GL? I'd never seen or heard of that before. Now, as some of you may know, this ignorance of mine should not be a big surprise. I have little formal training in computer programming (three 101 classes in 1979, to be precise), so lots of the fancy verbiage goes whistling past my head. This one sure did. Imperative? What the heck is that? Thank the heavens for Wikipedia, which tells us that an imperative language is "a programming paradigm that describes computation as statements that change a program state. In much the same way as the imperative mood in natural languages expresses commands to take action, imperative programs are a sequence of commands for the computer to perform." Oh, OK, right. PL/SQL is a procedural language.

"It...supports exactly the same datatypes as SQL." Now this really surprised me. I think I know what Oracle intended to say....that PL/SQL supports all the datatypes of the SQL language, and that is the case. But let's be clear: PL/SQL's set of datatypes is a superset of the SQL datatype domain. For example, PL/SQL supports Booleans, which Oracle's SQL language does not.

"While it is available in other environments, this document focuses on PL/SQL that is stored and compiled in the Oracle database." This sentence my eye because of the word "environments." I know that PL/SQL can be run on the "frontend" inside the Oracle Developer Suite: Forms and Reports (which, interestingly, Oracle refers to as Traditional Oracle Tools). But where else do you use PL/SQL? Perhaps they are talking about Application Express, but that is still PL/SQL code that is stored in the database, I believe. So what are all those other environments?

And, finally, the most delightful aspect of this high level description:

"A best practice used by many Oracle customers is to have client code access Oracle Database only by calling PL/SQL subprograms." Yes! This is one my mantras, these days. Namely, "SQL is bad" aka "All SQL statements are hard-coding and hard-coding is bad" aka "Hide all your SQL behind a procedural (imperative!) API." It's very nice to see this argument for using PL/SQL highlighted in Oracle's description. By the way, for more details on what I am talking about here, check out Practical Best Programming.

I will, in a near future blog on ToadWorld, talk more about the actual new features of PL/SQL for Oracle Database 11g. Now, however, it is time to head to the airport for a weekend in NY to celebrate my mom's 75th birthday.


Saturday, June 16, 2007

Who would've thought that fighter jets have ideologies?

I read today an obituary for Brigadier General Robin Olds (1922 - 2007). He flew 107 combat missions in 1944 and downed 12 enemy aircraft. But he is apparently best known for leading the biggest air battle in Vietnam, and I quote from the Los Angeles Times obit:

"Commanded an Air Force wing that shot down seven communist MIGs over North Vietnam."

Who would've thought it? A communist MIG. Not even "Communist MIG". No, that MIG apparently believed that wealth should be re-distributed equitably throughout society (or perhaps just among other MIGs?).

Perhaps the silliness of this statement would be clearer if the obit applied the same rule to both "sides", as in:

"Commanded a capitalist Air Force wing that shot down seven communist MIGs over North Vietnam."

Ridiculous, eh?

What's my point? That the propaganda of that war ("Stop the spread of communism!") was so insidious, is so deeply ingrained in our society that even decades later, the writers of the obit could not bring themselves to describe those planes as the Viet Cong MIGs they were.

Back in the 1960s, President Johnson lied to the US people about a fictitious battle in Tonkin Bay to justify the war in Vietnam. That lie, and the millions of others, large and small, that followed all the way up through 1975 (not the least of which involved Henry Kissinger's war crime of secretly diverting B2 bombers to devastate Laos and Cambodia with which we were not at war), fueled the "line" that the US of A was on the front lines of the battle to stop the spread of Communism.

In fact, the military my parents supported through their tax dollars conducted a brutal war against an entire people, killing some 2,000,000 Vietnamese - many of them women and children.

Yet this still cannot be generally and easily acknowledged in our media. How sad, how tragic, how disturbing.

Especially given the same process is now being used to conduct the war in Iraq. And now they are my tax dollars being used to fund the way. This really sucks. What a crappy democracy we have here. Soon, I will have the exciting choice of Clinton vs Guliani or Clinton vs McCain or Obama vs Romney or.... well, it is really very nice of those in control to at least give us two people between which to choose.

'Cause if I could only choose from one person, well, then clearly we would not have a democracy.

Of course, when I am using a black-box voting machine built by Diebold or Sycamore (both companies controlled by heavy contributors to George Bush and the Republicans), who knows? I might only really be choosing from among one person!

Thursday, June 14, 2007

Photos from Paris

I spent one afternoon in Paris. Took the Metro from the Grand Arch (La Defense) to Hotel du Ville, walked to the Pompidou, had a great time there, enjoying much interesting art and snorting in disbelief at other, more absurd pieces (like three big canvasses of white, nothing but white). Then walked over to the Louvre, checked out Mona Lisa (a bit disappointing - too much security), ignored the crucifixions and portraits of dead people, and found some amazing "Islamic Art" from centuries past. Enjoy!

(See if you can figure out which art is from the Louvre and which from Pompidou.)

Monday, June 11, 2007

Upcoming trainings by yours truly in Europe

A reader asked me to post details about my end of summer trip to Europe to do a triplet of two day trainings for Oracle. Here's the info and links:

Czech Republic (30th and 31st of August)

Croatia (homepage)(3rd and 4th of September 2007)

Slovakia (6th and 7th of September)

I hope to see some of you there. Please do come up and say hello if you learned about the class through this blog (come up and say hello anyway!).

Thanks, SF

PS - I am now in Brussels (it is 12:30 AM on Tues June 11). I spend Sun and Mon in Paris. On Sunday, visited both the Lourve and the Pompidou Center. Incredible places. Will be posting photos soon on Flickr.

Wednesday, June 06, 2007

Summery Activity

I can sort of remember a time when I spent lots of time outside in the summer, really noticed the season (and it is a fine one in Chicago...I don't mind it when Chicago occasionally gets very hot). Lately, though, I seem to be so busy on books or products or trainings - and traveling - that the last couple of years, I will suddenly notice the color of the leaves turning and say to myself: "Wait a minute! How did it get to be Fall?"

And the upcoming summer is looking like another one of those, since I am preparing for or working on all of the following:

* My presentations and test-a-thon materials for ODTUG Kaleidoscope on June 18 - 21 in Daytona Beach, Florida. This most-excellent developer's conference has lots of PL/SQL content, plus we (ODTUG, Quest Software and O'Reilly Media) are organizing the second-ever PL/SQL Test-a-Thon! I hope you are coming. You can find more information about, and register for, Kaleidoscope here.

* The second Oracle PL/SQL Programming 2007 conference will be held in mid-September in New Jersey. Two days of intensive training, discussions and test-a-thons for PL/SQL developers. Which means I need to start organizing those materials as well! Almost 300 developers came for OPP2007-I in February. If you missed that one, join us for OPP2007-II!

* The new Quest Code Tester Trial Challenge: we just set up a new and hopefully fun way to learn about Code Tester and possibly win a signed set of my books. Simply download the trial version of Code Tester, install it and explore. Then answer the ten questions in the Challenge and submit your answer. If they are all correct, your name will be added to the pile from which a winner of my books will be chosen (courtesy of O'Reilly Media!).

* I head back to Europe at the end of August to visit Prague, Zagreb, Ljubljana and Bratislava, doing two-day Oracle trainings and Quest seminars. I very much look forward to returning to Prague and seeing Croatia, Slovenia and Slovakia for the first time. But before then I need to write a bunch of new training materials. Sigh....

* Finishing up the second edition of Oracle PL/SQL Best Practices. I originally planned to do a fairly minor rewrite, add some new best practices and update old references, but otherwise leave it unchanged. Ha! That plan has certainly changed. I have, instead, decided that this book needed to stop taking itself so seriously, and have a bit more fun with best practices. I think you will be both entertained and enlightened as you read the exploits of a four person development team (Sunita, Delaware, Lizbeth and Jasper), part of the (fictitious) My Flimsy Excuse dotcom venture. More on this book soon....

* Quest Code Test development: we are QAing release 1.6 (automated XML testing, many bug fixes, much faster performance with a remote database, and much more) and then moving right into development of release 1.7 (major improvements in usability and much smarter test case generation, to name just two key enhancements). I would love to do nothing but help develop Code Tester. It isn't possible, but I cherish every moment I get to work on the backend code! By the way, you can download the 1.6 beta here.

Well, that's what my summer is looking like. I hope you are finding more time for leisure in yours.

Hey, but I am not complaining! I work from my home, take lots of breaks, go outside - life is good, very good, just busy.....

Tuesday, June 05, 2007

Quseful #3: Don't put COMMIT; in your application code!

Why would I say that? Because a COMMIT; in your code is an example of hard-coding, and as we all know, hard-coding is bad. "Hard-coding?" you ask, "What is Steven talking about?"

Well, to find out, please visit my ToadWorld blog. I have decided to publish my Quseful's over there, rather than on my personal blog!

Regards, Steven

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:

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

* 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):


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:

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

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:

* 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:

Sunday, May 27, 2007

Google's goal to organise your daily life

As I traversed Germany this past week (more on that in my next blog entry), I came across an article in the Financial Times (May 23) with the title:

Google's goal to organise your daily life

I found the lead paragraph quite alarming:

"Google's ambition to maximise the personal information it holds on users is so great that the search engine envisages a day when it can tell people what jobs to take and how they might spend their days off."

Someday, according to Eric Schmidt, Google CEO, we could head over to Google for answers to the question: "What shall I do tomorrow?"

Does that sound good to you? Frankly, I find it a bit terrifying.

My feeling is that one of the biggest problems facing humanity today is that so many people have abandoned critical, self-aware thinking. Instead, they absorb hours of high-bandwidth programming in the form of ads, sponsored links, pop-ups, and brand-saturated television and movies. They rely on the narrowest sources of information conceivable to "educate" them about what is going on in the world (and they are getting narrower and more focused and directed all the time).

And they, we, all of us, are completely overwhelmed by data. We have more "information" available to us than ever before, but it is not making us better-informed or more sophisticated in our thinking. Instead, we act more and more like sheep, being led about with gentle prodding and the occasional nip at our heels. We voluntarily give up our privacy in the form of personal information, in search of a "free" search engine or a "free" video or a "great deal" on another electronic gadget.

Every step along the way, we come closer and closer to the ideal world -- for corporations and marketers, that is. A world in which our every move is closely tracked (voluntarily) and our every purchase is driven by, virtually determined by, tightly-beamed messages that enter our brains through ever "richer" formats (amazing graphics, extraordinary resolution, fantastic sound) that are impossible to ignore (we are wired that way).

And so at some point, when we need to decide what our next job should be, we will ask Google what we should do. Hell, by that time, Google will probably wake us up at 7 AM Monday morning and tell us: "You are dissatisfied with your job. It's time to move on. And Coca Cola is offering some fantastic positions for people just like you!"

Not interested?

Then opt out from the Eyeball Economy: Don't click on any sponsored links. Don't click on pop-ups. Don't give up any personal information and take every opportunity to turn off a company's gathering of your data. Seek out varied sources of information (check out - that should give you a different perspective on life and politics in the US and around the world).

AND TURN OFF THE TELEVISION! Don't watch commercial TV. I think that television is much too powerful, compelling and addictive -- we are hard-wired genetically to respond to and be drawn to human voices speaking to us, to react to moving images that closely resemble the real world. We really can't turn away from the tube once it is blaring into our faces. Best to stay away.

Instead, go out and do something instead: exercise, walk around the nearest park, visit your public library (one of the most precious resources any free society has to offer and support), hang out with friends, play board games, discuss politics instead of sports and weather (ask yourselves: why did we, the citizens of the "greatest democracy on earth" let George Bush steal two presidential elections - Florida in 2000 and Ohio in 2004? That should be good for an hour of two of animated talk).

So much to do, so little time to watch.