Monday, October 31, 2005


Just finished the UKOUG day 1.  I did two presentations – one on SQL Techniques and a stand in for a friend who became ill (on flashback query).  The attendance this year looks pretty good – crowds are “big” but not too big.  

This morning started out “not good” as the power in the city of Birmingham went out.  First for a half hour in the hotel (from about 8am to 8:30am) and then again for another half hour or so when in the convention center from 9:30 to 10am – that got the conference off to a late start but things got back on track after that.  I started about 40 minutes late – to a pretty good crowd after the keynotes in the morning.

The rest of the day went pretty smooth though.  I got to see most of the presentations I wanted to – but due to a last minute fill in, I missed Connor McDonalds talk.  I’ll get the slides from him.  

Just on my way out the door at 9pm for the bloggers dinner (had to stop back and get my camera…) 9pm is about 4 hours late for my dinner – hungry describes me now…

Blogs I read – has been restored on the sidebar…

Saturday, October 29, 2005

Thoughts from Stockholm

I spent the day walking around Stockholm. I started with the Vasa Museum which was recommended many times over. It was pretty neat, this is the only picture that “made” it however – the museum was very dark and most of the photos came out that way (dark):
That shows part of the hull of the Vasa as it would have been painted back then (after much testing – the experts confirmed that) next to parts of the hull as it looked when the ship was lifted. The bright shiny lights in the picture are reflectors – they had hundreds of them all over the ship for some reason (did not make for good pictures obviously). If you are interested in the Vasa and why we as technical people working on software should care – you need to read this link provided by “Anonymous”. I remember watching a Discovery Channel special on the Vasa and it was pretty cool to see it, and to be able to tie the entire story back to what I see all of the time. The most amazing part of the story – they tested stability (ran a benchmark) before launching and knew the ship would not float (people running back and forth on the deck could capsize the boat). That is like shipping the code – knowing it won’t work (which happens…)

Pressure from the King (management) forced them to “ship it” (all pun intended) with predicable results. At least people don’t typically die from software implementations (not often, think about how much of our lives is falling under the control of software though….).

I concur with the many comments on the blog before that this is a paper to read – you will see amazing parallels to our everyday lives in that paper.

After the Vasa, I walked over to Gamla Stan – Stockholm’s Old Town:
This is what I like to walk around and see – old stuff. I spent about 1.5 hours in the museum – and about 3 hours here, just taking in the sights. Ended up having a very late lunch (early dinner) at the “oldest pub in Stockholm” (at least they said so). As a tribute to our current state of technology – I had a conversation with my manager over instant message while he had breakfast and I had lunch. I remember going to the UK in 1993 and feeling like I had fallen off the end of the earth. No email, no phone, no nothing – no network. Today in 2005, I was messaging with someone in Denmark, my manager in the US and responding to email – all from within a pub in Stockholm on my phone.

I’m still not sure if that last bit is good or bad… But it is convenient. And the beer, it was probably the best in Sweden.

Tomorrow, I travel to the UKOUG – I’ll update over the week with some pictures/commentary from the conference. Looking forward to the “blogger dinner” on Monday.

Friday, October 28, 2005

One week down, one more to go...

Done for the week.  Five days in a row – morning to night, talking.  Doing the seminar thing.  I got to meet well over 100 people this week and it was pretty good.  Made some new friends, met lots of really good people – ate too much good food.

I can say the nicest thing you can say to someone after they’ve been talking to you for 2 or 3 days is “Thanks, you made it interesting – and I learned some things”.  I got some of that after both seminars and that really makes the whole thing worthwhile.  That is the entire goal.  I don’t know who has the harder job – me standing and talking for 2/3 days or them – sitting there and taking it.  I really think they do and I try to make it as fun/interesting as possible (I want them to come back after lunch!).  At least I know I probably won’t fall asleep – they have to work at it.  

Sometimes when doing these talks in countries where English is the second language – I’m not sure if I’m making sense or not.  I get fewer questions than normal during the talk, mostly I think because the translators in their heads are going full steam.  Most of the questions I get are during the breaks.  What I try to do is save them up and start right after the break with “Well, the questions I got were….” just so the rest of the room gets the benefits of the answers (if one person had the question – undoubtedly someone else must have had the same question).

Now, I’m looking forward to the UKOUG.  I get to attend some talks…  Since others have published their agenda, here is my tentative one – hoping events won’t take me away from it:

11:05-12:05 – SQL Techniques (that is a definite, I’m giving it)

13:05-13:50 - Getting Started: Introducing JDeveloper 10.1.3 IDE Sue Harper – Oracle.  I’ve known Sue for a long time – I’ve never seen her give a talk yet.  I know this will be good (looking for presentation style techniques I can steal…)

14:00 - 14:45 Oracle HTML DB New Features / Access Migrations / Project Raptor, Donal Daly – Oracle.  I want to see Raptor again…  That and I talked Donal into coming!

15:10 - 15:55 Flash me back, Scotty; Lex de Haan - Natural Join BV.  I really like Lex’s presentation style.

15:55 - 16:55 10g - the G stands for Goodies, Connor McDonald – Fujitsu;  Connor is talking – what more needs be said.  Even if it isn’t good – it’ll be funny…

17:20 - 18:05 Oracle9i: Understanding Automatic Undo Management And Flashback Query; Kirtikumar Deshpande - Verizon Information Services.  Another person I’ve known for a long time but haven’t seen present….


09:00 - 09:45 Performance from a Different Perspective; Mogens Nørgaard - Miracle A/S.  This will probably be a very good presentation.  Mogens is nothing if not entertaining and every once in a while – I learn something (he hides his smarts with humor).

09:55 - 10:40 Forgotten Features;  Julian Dyke -  Read the abstract.  How could you not go.  I remember Connor doing a similar presentation for 9i at the Hotsos symposium.  Funniest thing happened – he described a feature, I take notes and say “cool, I like that”.  Then Connor points to me and say “and Tom told me about it” – I had completely forgotten about it entirely.  I’m hoping I get to see what I saw and remember it all over again here.

11:10 - 11:55 Help! I'm a Newbie! Lisa Dobson - One NorthEast.  I helped to push her into this situation, I want to see how it all turns out.

13:40 - 14:25 What Are You Expecting? - Oracle 10g's Expression Filter Uncovered; Melanie Caffrey - Proximo Consulting Services, Inc.  I like Melanie’s presentation style and frankly, I haven’t looked very much at this feature.  I curious what she has to say…

15:10 - 16:10 Sifting through the ASHes: Performance Analysis with the Oracle 10g Active Session History; Graham Wood - Oracle Corporation.  No one, repeat no one, knows this better than Graham.

16:20 - 17:20 Performance Data Mining using ADDM & AWR; Gaja Krishna Vaidyanatha - Embarcadero Technologies.  Gaja – need we say more?  Might have to skip out early though since…..

17:30 - 18:15  Keynote: Tom Kyte, Oracle (I hear he is OK, want to check it out…)

09:00 - 09:45 PeopleSoft: A Properly Instrumented Application? David Kurtz - Go-Faster Consultancy.  Yeah, I know “why am I going to an apps presentation”.  Two reasons – I want to see David present (another person I’ve known for a while, but haven’t been able to see) and I love code instrumentation – so I’m curious what they did.

10:25 - 11:25 All About Binding.  Thomas Kyte – Oracle. (I sort of have to be at this one)

13:20 - 14:05 Development Tools  Panel Session – (I’m on the panel, best be there….)

and then I catch a flight to Dublin…..

Thursday, October 27, 2005

This does not bode well...

This does not bode well for my next employee review!  I was asked to speak at a local technology group meeting over dinner next month.  They were hoping I would be able to do it – but I was already booked out of town at that time.  I’ve been helping them find someone else to come and suggested my manager (an excellent presenter by the way – I’ve learned a thing or two from watching him).

Anyway, this morning I got an email from him – a very very long one with a huge email trail.  His comments were:

OK, I guess I finally know my place.  Below you'll note that they soften the blow that they couldn't get you by saying:

"I have great news the speaker for this event is actually Tom Kyte's manager Tim Hoecsht."

So, now I'm Tom's Manager, Emily's husband, Grant's dad,.... 


Glad he has a sense of humor (  No personal identity, but a sense of humor…

Wednesday, October 26, 2005

Halfway there...

I’m halfway through a week of 5 days of non-stop talking. Exactly halfway. One more half day in Copenhagen, then two in Sweden. Definitely looking forward to the weekend.

It is amazing how physically draining talking all day can be. At the end of the day – I am very much finished. The group has been great so far – lots of questions, which I enjoy the most. If I talk for an hour and get no questions – I start to get nervous. Maybe I’m not making sense, maybe it is not interesting, …. Getting lots of good interaction though, which is good.

I can say – if you ever come to Denmark, the food is great. I have not had a bad meal yet. Monday evening Mogens took me out to a restaurant that likes to serve lots of small plates – to give you a taste of many things. We had rabbit, fish, deer and more – but desert was best – 4 cheeses with a specially picked small taste of rum to go with each (4 cheeses, 4 rums). That is my kind of desert.

Last night – they did a dinner for the seminar attendees. That was surprisingly good for a “large dinner”. Sometimes that food isn’t the best – but in this case, it was well done. I have noticed it takes much longer to eat over here than back home – the average dinner so far has been some 3 hours long. But all have been good.

I have decided that I must visit the Vasa Museum in Sweden. The suggestions I received about what to do overwhelmingly said “go there” – so I shall. For $10, it looks like a bargin. Looking forward to it…

Now to just finish the next 2.5 days…

Oh, and thanks for all of the feedback on "Probably". We have been using that as a joke phrase all week now - I've had many discussions out the use of that word in the advertisting. Mogens Nørgaard believes it has to do with the law of Jante as much as anything else (marketing rules in Europe and all). It has made for some interesting discussions online and offline however - never thought it would be so controversial, that is for sure!

Sunday, October 23, 2005

Hospitality in Copenhagen

Today I had the grand tour of Copenhagen by two locals, Jan and Kirstine:
As luck would have it, Jan actually worked as a tour guide for a bit, and is a history buff as is Kirstine – so I not only got to see the city, but hear about it as well. We just walked all over looking at stuff, taking photos and eating some excellent Danish food for lunch. Good thing we walked, given the amount we ate. I enjoy eating what is considered the local food wherever I go – it is a change from what I normally get day to day. Marinated herring, red cabbage, plaice (another type of fish, sort of like a flounder), baked fat (tasty), pork – it was all good (and the beer isn’t bad either).

It is really nice to have someone to take you around and show you the city rather than try to figure it out for yourself. I really appreciate Kirstine and Jan taking time out from their lives to take me around. Hopefully some of these people will come to the US some day and I’ll have the chance to return the favor.

Last night was dinner with Mogens:
He is not nearly as mean as he looks in that picture (really, he’s a nice guy). We hit a couple of his favorite places before dinner (he really wanted me to have a margarita) and ended up finishing dinner around midnight (6pm as far as I was concerned).

Now after two days of being a tourist, I have a week of seminar to deliver. Looking forward to next weekend already in Stockholm. With that in mind – if you had a single day (a Saturday) in Stockholm and wanted to make the most of it by yourself – what would do (yes, looking for suggestions).

Just closing up with a thanks to Mogens, Kirstine and Jan for making the weekend go by really fast – the hospitality they showed me was awesome. To say I appreciate it is understating it.

Saturday, October 22, 2005

How not to advertise

I was walking about Copenhagen today and came across a classic example of how not to advertise:

Bad Advertising!

Do you want to drink what is claimed to be “probably” the best beer in town? I don’t, I want to drink THE best beer in town. Who thought that sign up? Sort of like trying to sell a Chevy Nova in Mexico – “no va” <-> “no go” in Spanish. “Probably the best”… Hmmm.

Anyway, very ‘raw’ weather here in Denmark – not too bad, a little misty out there but dry most of the day. I walked around for a couple of hours and took some photos. I’m staying at a hotel downtown and this is the street behind the hotel:


Not a bad view. Everything was in walking distance and I managed to not get lost (like I did for a while in Prague..). Tomorrow – I’ll be looking for something inside – while it is not supposed to rain, it won’t be warm.

I’m heading out for an evening with Mogens Nørgaard, going to try and find some good seafood – should not be too hard around here.

One gripe I have – hotels that charge for internet. Only 300dkk for a 3 day pass (about $17USD a day!). I miss my EVDO card! In the US/Canada – I have internet everywhere and usually high speed internet to boot. I don’t like paying for it in hotels. That and I had to go down to the desk and buy a scratch off card (unable to buy it directly from the room). How many times have they been out of scratch off cards during my travels – what a pain. Well, I bought the very last 3 day pass, it’ll keep me going till Tuesday afternoon. Hope they get a refill – I don’t want to have to buy 30 minute passes!

Friday, October 21, 2005

I'm off to Europe...

I’m off to Europe for the next two weeks. I like to travel really light – so this is all I’m taking for 16 days:
I usually get a funny look when I check in for a two week trip with carry on only luggage.

First stop – Copenhagen, Denmark. I’ll be spending the weekend there looking around and then doing a talk. The second half of the week I’ll be in Stockholm, Sweden doing the same thing. I plan on spending Saturday in Stockholm poking around and then traveling Sunday afternoon to Birmingham in the UK.

That will be to spend some time at the UKOUG – I’ve three talks set up and I’m rather excited about the Tuesday night talk. First – I get the entire crowd (well, everyone that shows up anyway) . Second, there is a mystery “guest speaker” after me (so, if they are famous, I’ll get to meet them – that and the mystery will draw more people). But the best part is – I might actually have a pretty cool topic to talk about. I’ve a talk prepared – but I might toss it all and just do a talk. I won’t know until that afternoon for sure.

After the UKOUG – I’ll be off to Dublin and Belfast in Ireland for the last two days of the week. Haven’t been to Belfast yet, looking forward to that. I’ve been to the rest of the cities on my itinerary before – but haven’t taken the time to look around enough – I plan on changing that this time.

Then, I’m on an early morning flight from Dublin to Heathrow – to do the 10mile run they have us do to make the connection and back home. I thought about staying a bit in Ireland – but the suitcase wouldn’t take one more thing (it is full). It would have exploded.

That – and I do miss certain people stateside when I’m gone so long – 16 days on the road is just about as long as I ever want to be on the road.

Good thing I only have to go to Edmonton Canada, San Francisco and Sacramento in California the week after I get back…

Thursday, October 20, 2005

Speaking out loud...

Speaking out loud, in front of a room full of people.  Something that can scare the daylights out of many of us.  It used to make me physically ill to a degree.  I got over it by forcing myself to do it.  I signed up for 15 cities when 9i Release 1 came out to do a new features over overview as the main speaker.  The first one was hard – by the time we were done though, it was like I could do it in my sleep.  (I have caught myself sometimes thinking about something entirely different from what I’m talking about!  That is when I know “time to update the material dude”)  

By the time I was done with that seminar series, I was quite a few times better at speaking than I was before I started.  I learned a lot, I asked people to really criticize me – be harsh, be honest.  

Not that I don’t still get nervous – new material, first time presenting – that is a killer.  I’ve never been on a blind date in my life, but it probably is very much the same.  You don’t know if you’ll have anything in common (with the material), you don’t know if you’ll have something witty to say, you don’t know if you’ll be wishing your cell phone was going off part way through the experience, you don’t know if you’ll ever want to see the material again.

Last Tuesday I did a ‘best practices for upgrading’ session in Atlanta (20 minutes on that, 45 on what I thought was cool about 10gR1 and R2…).  I was “on” (as least I thought so) – a really good session.  And reading this article this morning reminded me of that session.  There were over 100 people and I think I made contact with most of them.  I too break the room into three parts – left right and center (of course) and use that technique.  But it is really “left back”, “center front”, “right middle”, “center back”, “left front” and so on – maybe like a grid of nine.  I try to connect with as many people as possible.

Since my first presentation (IOUG in Orlando, 1994), I’ve never “read” at a session.  I read there (I was also in a state of shock, my manager made me do it, I really did not want to).  It was horrible.  I vowed never to do that again.  

Now when I speak, I just know what is coming next.  I find every time I give the same material it takes a couple minutes longer than the last time – because I’ve thought of yet more to add.  I even practiced sessions before giving them a couple of time (when I just cannot sleep the night before…)

Have you ever been to a session where the speaker read or just didn’t look at you.  It drives me nuts.  

I thought that was a really good article – was surprised to see it in the financial news (I’m a news junkie).  Take it to heart if you have speak.  Your message will be received better, people will feel the connection to you.  Look at them, engage them, talk to them.  When I answer a question in a session, I typically start by walking directly in line with the questioner and looking right at them while they ask it, then start answering just to them but after a bit – start looking all around.

I’m always (always) looking for the head shakers too.  There should be at least three of you out there – left, right and center!  I need to have that positive affirmation that what I’m saying is getting across – and nothing like the head nodder to make me feel like that is happening.

One thing I’d add – be really excited about what you are speaking about.  I really dig Oracle and I know that comes across when I talk.  I think it is contagious.  Even after three days in a row (I’m getting ready to do 5 next week – 3+2) I’m still excited about what I’m talking about.  (Now, try to talk to me about 30 minutes after I’m done for the day and forget it!  Stick a fork in me, I’m very much done).

Wednesday, October 19, 2005

Someone asked me...

Someone asked me “I've been reading your blog and so far I haven't seem any mention by physical exercises. Let me explain, as all we know, everybody should have a healthy life trying to conciliate among work (sat somewhere) and physical activities. How do you deal with? I don't know whether would be a good matter to write down.”

Interesting question – once, I did go to a gym regularly, frequently. Over the last four/five years I have not (since about the time of Expert One on One Oracle in fact…). However, I do tend to “do things”. For example – moving wood from one place to another. We had some down trees – they get chopped up, but not taken away. My fireplace runs on propane, not wood, so we have a lot of wood. I use it to line paths in the woods:



This is some “not insignificant in size” wood:


And – I’m not done yet. Also – traveling lets me get some good exercise in as well. Anyone that has ever landed at Toronto or Montreal Canada from the US knows they care about our health there. They must be seriously worried about blood clots in the legs because when you get off the plane – your walk to customs is measured in double digit minutes. Nothing though beats a US connection to Dublin Ireland via Heathrow (a sign that says “you have at least a 20 minute walk from here….” greets you…).

Seriously though – I have every intention of getting back to it this winter (the regular workaround routine). I have the equipment downstairs, I just need the motivation. I’ll have it – working on Expert Oracle Database Development. What more motivation do I need besides that!

I am curious about something though - I haven't been able to update the blog as much as usual in the last week (traveling...). Yet the hits stayed "up there". That seems to indicate to me that most/many people are not using RSS newsfeeds to be told when there is new content. I'm wondering if that is right? If you don't mind, take this quick poll:

Do you use RSS newsfeeds?


No clue what RSS newsfeeds mean

Current results

and let's find out. I'm a fan of the RSS newsfeed now and use that pretty much exclusively to see "whats new" out there.

Friday, October 14, 2005

This is even funnier

Alberto Dell’Era pointed this out to me. A while ago, I talked about a playmobil toy. At that time, Alberto forecast that amazon might have "we've noticed that people that bought Playmobil toys also bought these books by Thomas Kyte ..." by the toys.

Well, it came true:

Customers who viewed this book also viewed
  • Expert Oracle, Signature Edition (Expert One-On-One) by Thomas Kyte

  • Practical Oracle 8i: Building Efficient Databases by Jonathan Lewis

  • Expert Oracle Database 10g Administration (Expert's Voice) by Sam R. Alapati

  • Playmobil - Exclusive Airport Terminal #3353 by Playmobil USA Inc

The original blog was “this is funny”, this is will be “this is even funnier”…

Thursday, October 13, 2005

I was in Montreal...


I was in Montreal in Quebec Canada yesterday giving a presentation. The venue was the Paramount Theatre downtown. It was strange presenting in a movie theatre but it worked surprisingly well.

We were in room 11 as shown above – neat marquee – “Now Playing – Tom and David”. I was there with David Knox for the day. At first I thought “Hmm, a movie theatre, that is a bit strange” but then I saw the screen. The first time I turned around and looked at SQL*Plus towering above me (it was an Imax theatre to boot), I was convinced – a movie theatre is a great place to give a talk. They had this sound system thing “down pat” – no problems hearing us, no problems seeing the material (the room was actually designed – gasp – to see the screen from every seat!). Additionally – they had the external noise problem solved as well – movie theatres were designed not only to show movies but apparently to give talks as well.

The neat thing was that during breaks we got to see movie trailers – it was hard to follow the movie trailer from “Something About Mary” – I kept laughing every time I saw it.

I was tempted to sneak next door while David was talking to catch the “Corpse Bride”, but I stayed and had my popcorn and soda while he talked (what else would you serve for an afternoon break at a movie theatre after all?).

All in all – it was a good, but long day. Didn’t get back home until about 10:40pm, flight was of course – delayed (surprise, surprise).

Tuesday, October 11, 2005

And I did not pay him!

And I did not pay him anything (really). Chris Foot wrote the nicest review I’ve ever received. He commented on everything from the layout and format (which is not the standard Apress layout! I had changes made to it – ones he pointed out like the gray box for code to make stand out), to writing style, content and so on.

Chris, thanks for the review, what more can I say. Oh – and yes, metalink is the place to start for non “howto questions”. What version is supported on platform X? – metalink. I’m getting an ORA-0600 – metalink. But questions that are “howto” or “best practices” – forums, metalink forums, otn forums, oracle-l, asktom – they are best suited there.

Monday, October 10, 2005

An update on an earlier blog

An update on an earlier blog – “A new view indeed”.  Just thought I would pass it along.  Before posting this, I asked Curt.

<quote> 2005/ 10/ 10/ typical-bogosity-the-censorship-furor/ - comments
Bash my opinions all you want -- you have every right to be wrong :) -- but that censorship story is utter nonsense -- just character assassination on Pascal's part.  Please see the link above.



Curt A. Monash, Ph.D.
President, Monash Information Services

Not that I agree with the concept behind DBMS2, but I do agree with his decision to move somewhere that is not edited.

Saturday, October 08, 2005

What attributes...

What attributes should we embody?  As technology people, as leaders, as implementers, as followers – what attributes should we have.  I believe at various times we are all one of the three – sometimes the leader, the implementer the follower.

I found a good starting list today.  I subscribe to a lot of different blogs these days – always looking for different opinions, different perspectives.  And occasionally I even find something that I agree with (well, more than occasionally). This blog entry was a case in point.

I liked the first point, it grabbed me – “Let Go”.  That reminded me of a moment about 15 years ago where I think I first learned that.  In the past, I could be pretty “aggressive” with my ideas – give me a white board and a marker and you’d have to be fairly outgoing to get them away from me.  Before I was in a lead position – this was an “ok” attribute – I wasn’t in charge.  Later however, this did become an impediment – it squashed ideas, it was assumed “my way or the highway” (it wasn’t, we just never got to hear the other ideas).  Some of the best advice I got was to “sit back for a while, take it in”.  I still have to remind myself of that sometimes – especially when I working on something I’m excited about.

“Let Go”, excellent advice.

The communication bits – all good as well.  Write clearly, write profusely.  Write as if your Mom was going to read it sometimes.  Remember the person reading it (your technical paper, your white paper, your idea) doesn’t have the closeness to the problem you have.  They haven’t been looking at it for hours, days, weeks, months – you have.  It might sound verbose to you but the person reading it will appreciate the detail.

I really liked the “be modest”.  There are many people with more and different experience than you have.  There will be people smarter than you, as smart as you, not as smart as you – but any of them could be smarter than you at some point in time.  Goes back to “Let Go” I think – let go and be modest go together.

Let me add some of my own though.

  • Do as you say.  Practice what you preach.

  • Accept criticism gracefully.  Even if it seemed to be delivered in a mean spirited way.  You want to throw someone off balance – thank them for giving you the advice, when they thought you would be really mad instead.

  • Learn outside your industry.  This is something I’m working on now.  

  • Be someone others want to be with.  That is – be approachable, be nice, treat everyone the same – regardless of their level.  Be fair.  

Friday, October 07, 2005

Next Book, Part II

I wanted feedback on my proposed topics and I got it.  Thanks very much to everyone that contributed.  I’ve modified the outline accordingly and I think it looks pretty good.  However, I’m open to more comments!

I put back in some dynamic SQL, in a newly added section on PL/SQL.  It makes sense there.  Beefed up the security section with more stuff.  Added a Design considerations section.

One thing I will not be covering is the use of specific application development tools such as HTML DB.  There are a couple of books coming out on HTML DB itself in the near future that I’m aware of.  I prefer to remain “tool independent”.  I believe the material I’m covering impacts every Oracle development shop – regardless of the tools used. And I’d like to keep it that way.

One other thing I will not be covering is the area of backup and recovery.  I cannot do it justice in a chapter, and there are in fact pretty good books out there already (Freeman, Oracle Press – RMAN book).

So, if you have further feedback, feed away – I’m going to stop comments on the other entry and point them here.

I) Introduction
Short light and fluffy section to get going – why you have to design if you want to have any of the following three items…
1) Design to perform  
Case studies, analogies to why performance is something you design into the “system”, not something you graft on later.  You need to understand a bit about the use patterns of your data and design accordingly.  Performance does not “just happen by accident”.  
2) Design to scale
Similar to prior section, but goes one step further.  Ok, so you have the fastest single user piece of code ever.  But if two people run it at the same time – it takes forever.  Single user doesn’t cut it – you need to design  your application with scalability in mind – and constantly benchmark mark throughout development in order to ascertain you can meet the required load.
3) Design to secure
Security doesn’t happen by accident.  Security is really hard to graft in after the fact.  Case studies and analogies (I have a favorite analogy using a “car” and what would happen if security wasn’t designed in)
4) Design to be available
Availability – when was the last time someone said “it is OK if you are down, no rush, take your time…”.  So, how do you design to be available…
5) Design to be portable
Same sort of concepts here as the prior sections….

II) Performance & Scalability
Very much like the existing work in Expert One on One but redone to cover the new tools, new options.  Statistics is all new, I ignore that in the first book.  
1) Performance Strategies
Overview of ‘how to tune’ which to me really starts with ‘how to design’, much easier to design than to ‘tune’.
2) Tools
Coverage of the classics – tkprof, statspack, runstats.  Coverage of the 10g new dbms_sqltune package and the like.  Might even mention the GUI (
3) Statistics
Statistics are an area of “gray fog” for many people.  This will be an introduction to what they are – what the defaults for gathering them imply – and suggestions for what to consider when gathering them/determining how/when to gather them
4) Instrumentation
The ins and outs and why of instrumentation.  Why it is crucial, vital, necessary – and most of all, helpful
5) Testing
What to test, how to test, how 1, 2, 3 above fit into testing.
6) All About Binding (includes sql injection)
All about binding covers everything – performance, scaling, memory utilization, SECURITY, peeking, cursor sharing exact, force and similar.
III) Security
I had FGAC the first time (but a LOT has changed), and a preliminary N-Tier (to be totally redone).  Grants, roles and the like – new.  Auditing – new.  Invokers and Definers rights will be perhaps the least changed of all chapters…
1) Grants, Roles and the like (least privilege as a theme)
how to use grants, roles and the like properly – meaning most implementations get it “wrong”, they over grant like mad “just in case”
2) Automating database logins
A good idea – how to automate database tasks “safely”
3) Fine Grained Access Control
All about VPD, maybe compare to OLS?
4) Auditing
The options you have for auditing, why auditing is relevant, why auditing is not overhead, why auditing should be designed into the application beforehand.  Ties in with last section way below however – on data purging…
5) N-Tier Proxy Authentication
description of what it is, how it fits in, why it is useful.  Examples of how to “use it”
6) Invokers/Definers Rights
What is the difference – roles and plsql – when do you use which kind.  Why plsql stored procedures rock and roll from a security perspective in further helping to carry the least privilege theme further on down..
IV) Advanced SQL Features
Lots to add to analytics!  Materialized views, much to add.  Practical Partitioning – in the Architecture book I described “how” they work, here I’d like to look at practical use cases.  So, it’ll be different from the Architecture.
1) Analytics
All about analytics, take existing chapter and update with more examples learned over the last 4 years and add new features.
2) Materialized Views
What they are, how they are, what they do – cover MV creation, maintenance, query rewrite, dimensions.
3) Practical Partitioning
Different from the architecture chapter where I described the physics behind partitioning, this will show “use cases” – when to use partitioning, how to decide when to use partitioning.
V) Advanced PLSQL Features
1) Using Datatypes (collections, arrays, etc)
Cover the ins and outs of using the various more “complex” datatypes in PLSQL, when to use what.
2) Dynamic SQL
When and Why to use dynamic sql (which is in reality a lot less often than you think).  How to use dynamic sql – revisit sql injection talked about in all about binds
3) Optimizer Settings
Not the CBO – the PLSQL optimizing compiler, what the levels are/do and what changes between each.
4) Native Compilation
How and why and when to ncomp your code.
5) Exception Handling
How and why and when to actually have an exception, why “when others” not followed by RAISE; is probably a bug.
6) Conditional Compilation
How and why and when to use conditional compilation in 10gr2 and above.
7) Bulk Processing
VI) Extensibility
Spatial will be new… External procedures will be much de-emphasized, as they have been in real life with the advent of java stored procedures over time.  Object Relational will be from the perspective of “using them in PLSQL to make PLSQL a better language”, not using them to store data in the database…
1) Domain Indexing
- Text
- Spatial
2) External & Java stored procedures
De-emphasize external procedures in C, but still describe them and demonstrate them.  Concentrate more on java stored procedures – the how, when and why to use them.
3) User defined functions/aggregates
Define them – demonstrate them, caveat them – show also how you can create your own *analytic* functions which is pretty cool.
4) Object Relational Features
Much like the existing chapter, updated to cover the 4 intervening releases.
VII) Design considerations
Collection of thoughts on things to consider when working towards build a system in support of OLTP, Data Warehousing, or in order to support data purging.
1) For OLTP
2) For Data Warehousing
3) For Archiving

Wednesday, October 05, 2005

Next Book

Ok, book one of three is done. The first “Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions” is focused at developers and DBA alike. I believe the second one “Expert Oracle Database Development: 9i and 10g Programming Techniques and Solutions” will be as well – don’t be fooled by the word development there. It will be full of material relevant to the DBA/Developer and Developer/DBA (I’m a Developer/DBA myself…).

The third book will be the supplied packages (breaking Expert One on One Oracle into three books as it was just getting way too long). But that is later.

Anyway, I want feedback on my proposed topics. If you’ve read Expert One on One, you can see what has been dropped namely:

  • plan stability

  • autonomous transactions (briefly covered in the new Architecture book)

  • dynamic sql

And external procedures will be significantly – much – smaller. Lots of new stuff and all updated. Feedback will not only be gratefully accepted, it will be used when I think it makes sense (and I’ll post a new outline later as it evolves).

Short light and fluffy section to get going – why you have to design if you want to have any of the following three items…
Design to perform
Design to scale
Design to secure

Performance & Scalability
Very much like the existing work in Expert One on One but redone to cover the new tools, new options. Statistics is all new, I ignore that in the first book. All about binding covers everything – performance, scaling, memory utilization, SECURITY, peeking, cursor sharing exact, force and similar.
Performance Strategies
All About Binding

I had FGAC the first time (but a LOT has changed), and a preliminary N-Tier (to be totally redone). Grants, roles and the like – new. Auditing – new. Invokers and Definers rights will be perhaps the least changed of all chapters…
Grants, Roles and the like
Fine Grained Access Control
N-Tier Proxy Authentication
Invokers/Definers Rights

Advanced SQL Features
Lots to add to analytics! Materialized views, much to add. Practical Partitioning – in the Architecture book I described “how” they work, here I’d like to look at practical use cases. So, it’ll be different from the Architecture.
Materialized Views
Practical Partitioning

Spatial will be new… External procedures will be much de-emphasized, as they have been in real life with the advent of java stored procedures over time. Object Relational will be from the perspective of “using them in PLSQL to make PLSQL a better language”, not using them to store data in the database…
Domain Indexing
- Text
- Spatial
External & Java stored procedures
Object Relational Features

NOTE: I've disabled comments on this entry, if you have any - please see Next Book, Part II

Struck a chord

Struck a chord

My last entry seems to have struck a chord with some people – many people.  There were too many comments to respond to each one (last couple of days have been busy with travel).  I did enjoy reading them however – they all seemed to come down to the following points:

  • You do not peak in four years, that is not even sensible.

  • You should do what you like, what makes you happy.  If being a 50 year old visual basic programmer makes you happy, by all means – be that.  If the thought of being a 50 year old visual basic programmer makes you cringe – run away.

  • Find out what motivates you and make that part of your career path.  You might enjoy programming but your major motivation is “X” and “X” doesn’t go along with programming.  X might be money, might be travel, might be ‘being recognized as a manager’ – X might be anything.  Fine, program at nights or weekends as your ‘hobby’ and do whatever motivates you.  I have a feeling that the person that wrote this will be very unhappy down the road.

  • Years of experience is no indication of quality, or depth of knowledge.  You might have more than 20 years of full time experience in some field – yet be somewhat not competent in it.  Quality and depth of knowledge is the only indicators of quality and depth of knowledge.

  • Never stop learning.  This morning I learned about a new grant that I had overlooked – “GRANT ON COMMIT REFRESH”.  You might need this if you create on commit refresh materialized views that cross schemas.  I find out something I didn’t know pretty much every single day.

Any way, thanks for the incredible feedback – I thought that was a pretty good discussion, the way it should work.

Sunday, October 02, 2005

Young Persons Game

Young Person's Game
Recently, someone asked me what I thought about this article "Programming is a young man's game, so don't stay too long". My thoughts on it are rather simple, I don't agree with pretty much anything between the title and the first comment.

It is hosted on Joel On Software but is not written by Joel, take that into consideration when reading it.

The initial sentence reads:

As a programmer you reach your end level in about four years.

If that were true, I would have reached my end level some 14 years ago - I wonder why I'm still learning? I consider myself a database programmer, I learn something new, something I did not know every day. I look at the people with 4 years of experience and just smile wistfully and remember how much I thought I knew back them - but how little I actually did. I personally think if we had more mature (older) programmers - we would have better code.

 When you have 20 years experience as a programmer, you are no super experienced top gun, you are just an old farth (sp?).

Now that is something I really disagree with.  It almost sounds like it could be written by a someone being restrained, held back from plowing ahead by someone with 20 years of experience.  When I was taught to program - it was by a guy who was my age now.  I am so fortunate to have met him and I'm so glad he didn't fall into the "it is a young person's game" folly.  Without a mentor like that - I would never have had the benefit of his 20 years of experience (20 years of successes and failures).

For someone to think they hit the top in 4 years, well, sorry - that I cannot believe.  I still learn new techniques, new approaches from time to time - and I can pass on down my experience, my skills over time.  If I didn't keep up - if I didn't "still do it", I would not be able to convey that knowledge anymore (it rapidly becomes stale).

When you want to be director of a construction company there is no added value in laying bricks for five years.

Here the author seems to be saying "In order to be a software architect (whatever that is), you don't need to write code - you just start being architect person".  I think there is great value in laying bricks - or working in the field somehow - before running the show.  It is called "life experience".  Everything we do shapes our views, how we perceive things.  That brick laying experience - you would learn how the people you'll be guiding live, think, feel, what motivates them - what doesn't.  You'll learn what is possible time wise and what is not.  You'll be able to say "no, you are wrong, when I was a brick layer ......" and be accurate.  You won't have to guess as to how things could, should or might work - you'll know.

 The only reason I can think of why someone wants to be a programmer is fun.

I see nothing wrong with that.  I think there are other reasons, I love the 'thought' challenge brought about by problem solving.  It is fun, it is hard, I enjoy it - but many others do not.  But even if it were only about "fun" - so what. If you don't enjoy what you spend most of your life on - well, game over player one, you lose.

 But how do we see a 50-year-old visual basic programmer?

I see them as someone that probably really enjoys their life and job.  I hope they are mentoring the other 20 year old VB programmers, I hope they are the team lead - a developer with some responsibility.  They are probably the only one that can accurately guesstimate when it is possible for a project to complete, why the testing phase cannot be skipped or short changed, why a paper design before writing code is relevant and so on.  They might be viewed as impediments by the more youthful - but they should be.  Banging out code results in code as good as it sounds (banged out).

I very much disagree with "Jan from Rotterdam"''s premise.  In fact, I have angst because people might actually believe it. To think someone peaks with four years of experience (heck, I think it takes 3 or 4 years before someone could actually say "I am a very competent J2EE programmer, or Database programmer" - it takes that long to get your head around all of the concepts)...  I don't think so.