Tuesday, February 28, 2006

Quote unquote...

Quote unquote.  Oracle Announces General Availability of Oracle(R) Database 10g Express Edition.

How is this for multi-tasking.  I simultaneously installed both the 8bit and unicode XE versions into two different Windows VM’s while at the same time catching up on email and some blogs I read.

10 minutes – 2 installs (including the OS! I just cloned my base VM), 15 emails and even had time to write a long follow up on a blog that had a bit of bad advice.  Not bad – now it is time for lunch…

If you haven’t played with XE before – now that it is production, I’d recommend taking a look at it.

How to tell...

How to tell you are concentrating on a problem too hard.

The motion detector in your seating area times out and turns off the lights – causing you to wave your arms to get them back on.

The typing from my fingers isn’t enough motion to keep the lights on sometimes… All of the lights in the building I’m in are on motion detectors and if you don’t move something (my body blocks the line of sight to my keyboard), they turn off. I’m just hoping no one walks by as I wave my hands over my head to get the lights back on!

Monday, February 27, 2006

In with the new...

I just read through the March/April 2006 Oracle Magazine and thought it was a particularly good edition.

First, I’d like to say congratulations to my friend/editor at the magazine, Tom Haunert. I’ve had three editors at the magazine over the years. Kelli Wiseth was the first one, followed by Jeff Spicer – who had the position Tom Haunert now has. Tom H. became my editor when Jeff moved up to become Editor in Chief of the magazine and now that Tom H. has moved up as well – I’m wondering if perhaps I’m due for editor number four!

There were a couple of really good articles in this issue that I’d like to point out (well, besides my column of course!).

The first was “Using Bind Variables” by friend and coworker Steve Muench. I failed to see how you could go wrong with a title like that! All I can say is read it, believe it, live it. I read it, and if I were to be quoted in the newspapers regarding it, the quotes might look like this:

I laughed, I cried, it was the feel good article of the year”.
Two thumbs up!”

Then there was the article by another friend of mine - Mark Williams - on “Following the Changes”. If you program using .NET technologies, you will be interested in his book “Pro .NET Oracle Programming” and column in the magazine. In this installment, Mark describes how to interface ODP.NET to the new change notification feature of 10gR2.

And then, I flipped the page and who do I see staring at me? Yikes, it is Raj Mattamal with his first article! I’ve worked with Raj for over 11 years now (seems like yesterday he was our little intern… Time flies). This is really cool.

And then there is Arup Nanda with his ASM article, Mark Rittman with his Faster Batch Processing article

And there is more – I must be doing this stuff for way too long – I know almost everyone that has something written in the magazine this issue.

Welcome to the new (congratulations to Tom H on the promotion, welcome aboard Raj!). Good to see the old (me for one – this is now my sixth year writing for the magazine) as well.

Did you know that Oracle Magazine is free, you can subscribe online to either Oracle Magazine (technology) or Profit (applications related)…

Sunday, February 26, 2006


Coincidence – I think not. Some of these anagrams are amazing.

Thomas Kyte
They AskTom

Friday, February 24, 2006

I often wondered...

I often wondered if the “shark tank” stories are made up. That one has me thinking “they have to be”.

But then again… Now you know what I do during lunch at my desk…

Two Random Things...

I got a headache reading this one. Just thought it was funny. Hws tht fr hrd t rd.

I wonder if this time it will really work. I’ve seen the “phone over power” (it does not work very well). I’ve seen initial “network over power”. But if Netgear puts this out and it works – I’ll be a happy camper.

I’ve got the Wifi running in the house but – so many things seem to interfere with it from time to time. The microwave being the biggest one (might mean I need to buy a better microwave). No matter what channel I put the Wifi on – the microwave just knocks it out dead. That, and the idea of 200Mb instead of my current Wifi speeds, hmmm.

I could get rid of that Ethernet cable I have running out my office door, across the porch, down into the basement. Moving VM’s (which are 5, 6, …. many gigabytes in size) over the Wifi just doesn’t work.

Wednesday, February 22, 2006

Crashing in public...

I saw this and found it amusing.  It reminded me of my first really big presentation.  I was scared to death, pacing like crazy before.  It was the first session of the first day of IOUG in Florida way back in 1994.  I wrote about it once before,  but will recap it here.  I did a demo, the demo GPF’ed on a huge screen behind me – real slowly it GPF’ed, about one pixel per second it was drawing on the screen.  Nothing like a huge screen with an error message on it behind you.

This is why I have a “no demo” clause in my contract these days.  Well, I’ll demonstrate with Sqlplus but that is about it.  Funny, I have taking to running my demo databases like production systems.  I travel with my backups on different storage devices – just in case.  Call me paranoid.  The only time I had a demo mess up big time was when I answered an asktom question but used my “production” instance to do it.  I changed something that messed up one of my scripts.  I will never do that again (they are my production instances and as such I have no right to be using them to answer questions on the fly, that is for TEST).

True story – I staged a small demo in the asktom database one day, one you could run from the site.  It included in it the fatal words “CREATE VIEW V AS …”.  Anyone care to comment on what a view named V might do to an HTMLDB (Oracle Application Express) application?  Anyone care to comment on how long it might take to figure out what you’ve done (not long).  Never use production to ad-hoc something, the smallest of changes can have unintended side effects.

Another new blog to add to the lists.  I edited one of Eric’s papers (learned a thing or two, but that went both ways) recently and suggested he started blogging on topics like that as the technical content was “high” but understandable.  Check it out, interesting investigations using redo to see what Oracle does.

Monday, February 20, 2006

This cannot be good!

Flight 1555

Check out my flight number in the upper left hand corner! UA1555

I can only hope the undo retention period is set properly... See you on the other side.

So what was the answer, part IV

Finishing up the four questions thread – we are now on “Continuity of operations”. Basically, what the discussion was about was fail-over – disaster recovery.

The topic of conversation was – data guard and/or remotely mirrored disk. “We need to provide for continuity of operations and want to understand the options”.

What I find unnerving sometimes in these conversations is the theoretical desire some people have to operate a heterogeneous disaster recovery (DR) site. That is, one group really really wanted me to tell them how to use data guard with different operating systems (the answer is: you do not and no matter how hard you pressure me, I will not say otherwise). I had a question about using data guard between 9i and 10g (the answer is: you do not). DR is supposed to be something that is relatively bullet proof – easy to have happen when you need it to.

Trying to do DR for your 9i database to 10g (or vice versa) would be less than useful in my opinion. When the day comes for you to fail-over, you really want things to go smoothly. The fact that you are failing over indicates you are already having a really bad day. The data center has burnt down, exploded, flooded, whatever. Maybe people are injured or worse. Maybe the lead person who knows everything about everything isn’t around to wave their magic hands and fix things. You just want it to work. Period. You don’t want to be faced with not only activating the standby database – but upgrading the database your application runs on (or downgrading) at the same time. When I state it that way “you really want to activate the standby and upgrade your database at the same time?” (usually I throw in – when is the last time you upgraded anything with zero errors the first time) – they usually get it.

The same is true for cross operating system – you need the standby/fail-over site to basically be the same as production. Maybe standby is not as large (fewer CPUs, less expensive disk setup, whatever) but it is “the same”. Running production on Solaris and trying to have a Windows machine as a fail-over is a recipe for disaster itself (or to be fair, the converse is true as well).

The problem I think is most people have never actually had to fail-over (that is a good thing I suppose). It is something they’ve heard has happened to a friend – but they never have experienced it themselves. This leads me to the next point people seem to forget with DR sites.

You do not want to fail-over for the first time the very day you actually need to. No more than you want to test your ability to recover a database for the first time when you actually need the recovery to work!

Probably the best way to ensure your DR plan won’t work is to not test it. Data guard is pretty good in allowing you to test – it allows you to do graceful switchover and switchbacks so you can verify that if you actually ever need to run on your standby site – YOU CAN.

Oh, and you need to do this on a recurring basis. Because, as we all know, software has a shelf life, it goes stale over time. Just because you tested the failover (via a switchover) 4 months ago doesn’t mean it’ll work today. Things change. This is one of the things you do want to do on a scheduled basis, after major changes (like an application upgrade – you need to make sure the standby has the upgrade application and can function as well!).

Some of the people I was talking to had questions about data guard versus remote disk mirroring. I myself would prefer to use database methods to protect database data. The problem with remote disk mirroring and databases is that databases tend to write a ton of stuff. In reality however, all we need is the redo to be mirrored. Consider an insert into a table with three indexes on it, using an 8k blocksize. Oracle will modify 4 blocks at least (one table, 3 index), generate at least one block of UNDO, write to at least 2 redo groups, and eventually archive that redo. Remote disk mirroring will be forced to perform that work over the network (it just sees 8k block writes all over the place). Data guard however will just transmit the redo stream. The reduction in data transferred over the network can be huge when you compare data guard to remote disk mirroring. Not only that, but the DR site using data guard can be used for some things – like a reporting database, as the database to be backed up (offloading that from production) and so on.

Does that mean “no remote disk mirroring needed?” No, not really – you still have software, configuration files, setup information – other data that needs to be over at the standby, but that isn’t in the database. Remote disk mirroring and a standby database are complimentary, it generally takes a bit of both to get it done.

This’ll be the topic of conversation (well, one of them) for me tomorrow in fact. I’ll be speaking at this conference in Orlando for 2 hours about Availability, Manageability, and Security.

Friday, February 17, 2006

A couple of things...

A couple of things. First the best quote ever:

I think the point some seem to be missing is that it is just not a healthy idea to generalize people.

I recently “ranted” about something – and it included of course that Instant Message (IM) speak pet peeve of mine. Some of the comments did start to get into generalizations about groups of people. I heartily agree with LC’s comment there. The “IM Speak” issue isn’t limited to a group of people, a country, a time or a place. It is becoming ubiquitous (and I despise it anywhere except on my mobile phone or IM conversations).

Here is something from my inbox just this morning:


I would like to place my candidature for a suitable position in ur
esteemed organization,
I hereby submit my profile for you kind perusal. kindly acknowledge
the receipt of same …. Hope to hear from you ASAP..

Ouch, ouch, ouch. They heard from me, but likely they will not at all like what I had to say. I described what a cover letter should be. Why you never should consider using “ur”. Why the shift key is a necessary evil when typing professional business communication. Why a resume should not be 8 pages long (and have so many jobs listed that you think this person must be at least 500 years old, not the approximately 30 years old that they are).

I just don’t get it. I really don’t.

Best of all – here is the kicker: While writing this entry up, my email reply to them bounced back. They supplied a bad email address. Perfect. A complete waste of time.

Why do people even do these blanket emails with their resume. There was no “to” list and the SIR/MADAM sort of gives it away that this was a “lets send this out and see what happens”. Has anyone ever gotten a job this way?

But a quick request from me – please let’s not generalize about people or groups of people. I read the comments on the last post and didn’t like where it was going. It never got seriously bad, but I didn’t like the overtones.

Tuesday, February 14, 2006

A bit of a rant...

Warning – a bit of a RANT, but the article closes on a high note! I worry about the future. I really do sometimes. I’m often emailed and asked (sometimes, frankly, demanded) to do homework for someone.

Today, I got a really outstanding example of this. I’ve removed the specific example from this email and all identifying information. (I do not believe this falls outside of my “I won’t post your email on the web” statement previously, this is a representative – but 100% unidentifiable - email text, I have many many more like it). Anyway, it starts:

i read one of the articles authored by jonathan gennick titled "find answers faster" in an archived issue of oraclemag and was deeply impreessed on the little piece he did on Analytic functions. consequently, i'd be delighted if u cud hlp with a lil prob of
mine in passing a correct SQL query to retrieve the following from a SQL server 2000 .

Ok, let us forget for a moment the author of this email is writing to my business email address (which believe it or not indicates 1) I’m at work, this is a business type email and 2) I’m at work at Oracle, the @oracle.com gives it away). I’m sure capitalization isn’t really relevant in “business 2.0” communication today. We’ll skip that. I do like the use of “u”, “cud”, “hlp”, “lil prob” (is that “lil abner’s” relative?) and the like.

But how do you get from
  1. I read articles by this other guy, Jonathan (whose email address is actually included in the article they read!)

  2. I see you work at Oracle, makers of the Oracle Relational Database

  3. Therefore, you can write my SQL Server query

Ok, I missed that logic leap (used the same logic machine as this guy). Now, just so a teacher/whatever won’t see their problem posted here, I’ll skip the problem statement (actually, it was “not specified very well” so I doubt the teacher would actually recognize it. It did include lots of capitalization though, that was nice).

It closed with:

i'd be delighted if u cud help me out as it's pending my academic project.

Ouch. They just had to rub it in didn’t they.

But then, right after that, a really good thing happened. I started reading through my RSS feed of blogs and ran across this one. That was so cool – I hope he writes more stuff. You have to laugh at the use of Latin – nice touch. I did not agree with it 100%, but for the most part I did (a little harsh on the DBA crowd, I don't think the DBA job is the easiest thing to get, there are the good, the bad and the ugly in the DBA crowd - but same is true of "anything" in general)

Life – a bunch of ups and downs – those were mine this morning during coffee.

I do worry about the future sometimes. I often wonder what motivates people to write to strangers with their homework, and not even bother to – well, use full words. I have actually received unsolicited resumes that included the same "instant message" speak (u, cud, and so on...). I do feel obliged to write them back - not out of interest in their resume, but to help them understand what they've done.

Surprisingly - they typically don't appreciate it (even though I do it politely - honestly, I really am trying to give them advice to help them in the future).

Monday, February 13, 2006

So what was the answer, part III

Continuing the four questions thread I am now one RAC (Real Application Clusters), ASM (Automatic Storage Management) and Grid.  Most of the question revolved around “is RAC Grid, is Grid RAC”.  General confusion over the terms arose.  

RAC is not Grid.
Grid is not RAC.

You can do “Grid” without RAC.  RAC can be part of your “Grid” – (the use of many computers together as if they were more or less one larger computer).  It doesn’t have to be – but it can be.  

ASM can be part of your Grid.  Slide storage in, slide storage out, move storage around if you need to.  Transportable Tablespaces can be part of your Grid.  Enterprise Manager Grid control – obviously (the name should help give it away) can be part of your Grid.  Identity Management with centralized control over user identities, passwords, authorizations – can be part of it.  In short, anything that helps you achieve the goal of “using many computers together as if they were more or less one larger computer” is part of it.

That seemed to help most people, as they assumed RAC is Grid is RAC is Grid.  Simply understanding that RAC is not “Grid” and vice versa helped to clear up lots of confusion.

Then, we got down to talking about RAC and ASM.  Why might the individual want to use RAC, what it would provide for them.  It always came back to
  • Ability to scale in a different way – instead of bigger and bigger machine, with more machines

  • Availability, the capability to keep on running when a node in the cluster fails

  • Flexibility in resource deployment, the ability to assign or reassign specific nodes to specific services (tasks)
If you ask me, there is no one size fits all answer to RAC, you sort of need to know what the pain points you are trying to solve are to see if and where it fits.

ASM on the other hand, that was somewhat easier.  It seems that the biggest user of disk is – well, the database.  Having a bit more control over that resource doesn’t hurt.  From the small system, where the DBA doesn’t know how to best utilize their six direct attach disks to a large system with dozens or hundreds of devices – ASM does make sense.  The biggest confusion however was again “what is it”.  I try to explain things simply – and the easiest way I’ve come up with for describing this is simply

“this is a database file system, it is a file system like any other file system – it is a file system that only contains database stuff however, it is a database file system.  It is a database file system that provides redundancy if you need it, as well as database knowledgeable striping of data over all of your available devices”.  

That is it – it is a file system.  It has file system “drivers”,  just like anything else.  Once that was understood – it was easier to discuss the ins and outs of  ASM.  

In short, most of the time spent talking about ASM, RAC, Grid was spent defining terms.  Which is actually quite important if you ask me.  

Why do programs...

Why do programs install bits of themselves to run during startup.  I hate that – every time I upgrade something or install a new application – I have to seek out and destroy their little startup bits.  

Case in point, Adobe reader just informed me that there was a patch while I was reading some documentation.  Great, downloaded – installed patch.

Now the Adobe “fast startup” program is part of my startup.  Adobe would appear to be “faster” – at the expense of my machine startup time, memory, whatever.  I hate those little bits that infest my machine over time.

I have for a long time used a little shareware program ‘autoruns” to track down these beasts and zap them.  At least the anti-spyware I’m running informs me ever time some application injects their startup stuff into my registry.  That way I can eradicate them no problem.

Also, why the heck would I need to reboot after patching Adobe?  That just doesn’t make sense – yet it wanted to do just that.  Thankfully it asked me first.  

Oh well, random rant of the day.

Saturday, February 11, 2006

So what was the answer, Part II

Consolidation… From Merriam-Webster Online we discover:

Main Entry: con·sol·i·da·tion
Pronunciation: k&n-"sä-l&-'dA-sh&n
Function: noun
1 :
the act or process of consolidating : the state of being consolidated
2 :
the process of uniting : the quality or state of being united; specifically : the unification of two or more corporations by dissolution of existing ones and creation of a single new corporation
3 :
pathological alteration of lung tissue from an aerated condition to one of solid consistency

I will definitely not be discussing the 3rd definition, that does not sound very good at all. However, the 2nd definition “the process of uniting” – that sounds good.

And to me – it is in general a good thing. Many of the people I talked with had a similar problem. Lots of distributed sites, running basically the same application (well, in fact the same application) and a perceived need to share/replicate data. They wanted to discuss data sharing techniques.

I did not. I’m not a big fan of replication – especially bi-directional, update anywhere replication (which is what they all thought they were interested in). The complexity this adds in terms of design, development, testing, and administration/maintenance is huge. I don’t care whose replication software/process/method/magic you use, it is complex. Most all of them thought they wanted all data centrally aggregated – but each remote site would have the ability to work autonomously – queuing changes when doing so and synchronizing later. If they were not working autonomously, then updates would either happen to the central site and propagate out – or use a distributed two phase commit transaction updating both locations.

I don’t like either of those approaches really. The update anywhere – in an application of any appreciable size (and these were non-trivial, in place/legacy applications) – concept involves a rather complex design (or redesign). It is not something you can just “turn on” and expect to work. An application has to be designed to replicate in this fashion – and if it must replicate over 3 or more databases – the design becomes even more complicated. Two is hard enough, 3 or more is harder. The problem is, many people try to approach this without the design/redesign phase. This is doomed to failure. Update conflicts will happen (same data gets modified in two places). The developers of the application had to of thought of this fact and had to of designed “what happens then”. The problem is – many developers don’t understand “lost update” issues in a single database let alone “update conflicts” in a distributed, replicated, update anywhere database.

Take a simple inventory application. There is a tire, a single tire in stock right now. I, having access to site 1, order that tire. You, having access to site 2, do the same. Eventually, our updates cross each other on the network. Now, the inventory has “negative one” tires in it. What happens here. The update conflict detection was easy enough – the database does that for us. The conflict resolution was trivial (just keep taking things out of inventory). However, we have just violated some sort of business rule. In a single system, one of us would have been told “Sorry, you lose”. In the distributed system – we both think we won. How do you pick who loses? How do you notify them? What is the maximum time someone might be deluded into thinking they have the tire on order? What else can go wrong (remember there are literally hundreds of tables in the application – maybe hundreds or thousands of transactions – any of which could “go wrong”) in this application.

Now, some 15 years ago (early to mid 1990’s), we may have considered this a necessary evil. Networking was a shaky proposition. Wide Area Networking was really shaky and unreliable. But today, in 2006?

I was at the West Wall in Jerusalem that week I was talking with all of these people about their four questions. As far as I was concerned, I was about as far away as I’ve ever been from “my systems” – the computer systems I use, I rely on (email is one of Oracle’s mission critical applications). At the West Wall, I was in line for a tour – nothing to do for a couple of minutes. So what did I do to amuse myself? I checked my email naturally, I could have browsed the web, instant messaged with someone, whatever. I remember when I would go to Europe from the US in 1995 – it was like going to another planet connectivity wise. No mobile phone. I couldn’t even use the phone jacks to dial into a network there without a converter – and even then, I had no phone numbers to dial. I was effectively off of the network unless I was in an Oracle office. Now – it seems that no matter where in the world I am, I have access to a network and to “my systems”.

Whether it be my phone with GPRS/Edge, my Aircard with EVDO or 1xRTT, a line of sight wireless network, a hotspot which seem to be popping up everywhere, a wired network, a satellite connection – whatever. In Tel Aviv – my wireless connection for the 24 hour period expired as I was writing an email in the hotel. I was leaving in a couple of hours and didn’t want to pay again. No big deal, I simply failed over to my phone (plug in the hot sync cable, fire up pdanet, I’m on).

My thought on replication therefore, don’t spend the money in the design, development, test, maintenance, and administration (which will be quite huge, but only if you want the application to actually work) – but rather invest in a redundant networking infrastructure – a failover solution. That is something that will be useful for everything. Not just this one little application – everything.

In some cases however, the problem wasn’t necessarily technical – it was political. People don’t like to give up “their” data (and here I thought the data belonged to the company…). This would mean centralization, coordination, perceived loss of control. Then all I can do is spell out exactly what it entails to build a distributed, replicated application. It isn’t easy.

Our mission critical application in Oracle of email is a single centralized system (with failover of course – RAC in a room to keep the main server going, data guard to a remote site to make it so that a catastrophe doesn’t wipe it out). It used to not be that way. It was many little distributed systems all over the world. We had the same arguments internally – network is the problem, loss of ‘control’ is the problem, you cannot take ‘our’ data away from us was the problem. Funny thing years later – none of these are a problem anymore. It runs, it runs well, it runs with lots less overhead than before. It is easier.

Replication technologies, the unidirectional read only type, has a place perhaps – in warehousing. But to build an application with – not unless there is a really compelling technical reason (a submarine has a really compelling technical reason for example, there data sharing technologies and update anywhere just might be appropriate).

Anytime I’m asked about synchronous replication (this table must be the same in both databases all of the time), my answer is “you’ve done this really wrong”. Even if asynchronous replication is permitted – but the data is modifiable in more than one place, I would answer basically the same. I know how the replication technology works, I’ve used it, I can describe to you what it does – but I personally don’t like to promote it for most applications. It is the path of last resort – not my first choice.

So, back to consolidation – I believe “like systems” should be consolidated. If you were going to replicate between two or more systems – you probably really meant to build a single system. Distributed complexity is just that – complex.

I believe that the maximum number of instances on a single server is one. (in my world that is also the minimum, but that is another story…). If you are running 10 instances with 10 applications – you really meant to run a single instance with 10 applications inside of it. It is the only way you’ll really be able to tune, to control, to manage, to keep them all on the same release (sort of forces the issue). If you can run 10 instances on that server with 10 applications – you could really run 11 or 12 or more applications on that same server with a single instance. You don’t have multiple SGA’s with their redundancies and “oversizing”, you don’t have multiple pmons, smons, lgwrs, dbwrs, and so on (and the contention caused by having multiple lgwrs, multiple archs, all thinking they are operating in isolation). You don’t have one of the instances consuming all of the CPU at the expense of the others (you can use profiles and resource manager in a single instance to control resource utilization).

So, that is my take on consolidation. It does not mean “you will run a single database for everything”. It means you will run as few databases as you can – one instance per machine, and try to avoid distributed complexity. Data sharing has it’s place – in warehousing, but update anywhere replication is hard. It complicates the design (or at least it should, but many times does not, leading to applications that don’t work correctly in the field).

Friday, February 10, 2006

So what was the answer... Part I

So, what was the answer...  Last time – I mentioned that I had been meeting with a series of customers, one after the other (after the other…).  I discovered they all had the same four questions over and over.  I should have realized I would get comments to the effect “so, what did you say”.

You’ll likely find my responses to mirror fairly closely the comments on that blog entry.  I’ll take them one at a time over the next few days…

As for Windows versus Linux, I have a very well known, stable answer – one I’ve been giving for a long time in any “X” versus “Y” situation.  What do you know? What are you (your company, your group) competent in.  What have you invested in.  If you are a Windows shop (now that there is 64bit especially), it would not be in your best interest perhaps to do a radical about face and just turn everything into Linux.  And if you are a Unix/Linux shop already – the same is true.

Many people think the Windows versus Linux decision comes down to “which will Oracle perform better on, which will run more reliably”.  Experience has shown that if you take a bunch of Windows experts – they can make Windows run fast, they can make Windows run reliably.  If you take that same group and put them on Linux, you’ll likely have a slower than average Linux implementation that has certain stability issues – unless and until that group becomes a bunch of Linux experts.  

And the reverse is true.

I am convinced that much of the rap Windows has in the performance/stability arena is as much a function of the attitude/capabilities of the people managing it (although, the same can increasingly be said of Linux I think).  If you take into your system a mindset of “big”, “reliable”, “performance” – you can achieve it.  If you take into your system a mindset of “this will be soooo easy, backup is a push button, things self tune, I don’t need to understand how things function – just that they do function”, you will get unreliable, you will get lackluster performance, you will likely lose your data one day.

In short, you can be successful on either, the choice should be based on what you have, what you know and just realize that it is the attitude and maturity of the people doing the implementation that will decide your success or failure more than anything.

I said “the same can be increasingly be said of Linux” simply because I am starting to see more and more systems just “whipped out there”, with little thought given to reliability, availability, recoverability.  The “never time to do it right, never time to do it over, let’s hope it doesn’t crash” process.  It used to be “never time to do it right, always time to do it over”, but that seems to have become passé as well – just never time to do it right, never time to do it over, cross fingers.

On an unrelated note – it is really good to be home.  Although I don’t often get to see things like this Elvis diner sign here in the US.  The pictures are a little dark (it was getting late), but seeing this statue in the middle of nowhere in Israel – with the Elvis music going – had me laughing out loud.

Wednesday, February 08, 2006

Tired but done...

Tired, but done… Just finished two days of customer meetings. Every hour a different group would come in. I did this from 9am to 8pm yesterday and then again today till just after lunch. The format was - we’d get introduced – and then get down to what they wanted to discuss. It was interesting. I talked to people from health care, independent software vendors, dba managers, managers - and others. They all had the same or very similar questions:

  • Windows or Linux, what should we go to and why

  • Consolidation

  • RAC, ASM, Grid (the what, the when, the how)

  • Continuity of operations

Every now and then we’d get down and dirty (latching, locking, tuning) but mostly the topics centered around those four key ideas. The four key ideas were all tied together as well – most of the people were looking to consolidate, using grid technologies, on either windows or linux and being up 24/7/365 was an important consideration.

So, the conversations got easier, since I was sometimes saying almost the same thing (deja-vu…).

Perhaps the hardest one was the last one I did yesterday. It was an interview with a local computer magazine. These are typically fairly easy – but this time it was complicated by the fact I don’t speak Hebrew and he couldn’t take notes in English. I found it very hard to get complete thoughts across – since I had to talk in “sound bites” (else he couldn’t jot down his notes fast enough). We ended up with sort of a process – I would say “no writing for a moment”, then speak my idea/answer to his question in a complete paragraph. Then we would “sound bite it” – having the other Oracle people present translate some of it into Hebrew. It was quite a process – took a while, but it was working well by the end.

Anyway, this trip is almost at the end. My flight leaves at 5:30am, so I have to be at the Tel Aviv airport by 3:30am, so I have to be up by… Well, really really early.

Normal programming to resume Friday, East Coast of the US time.

Tuesday, February 07, 2006

Areas for improvement...

Areas for improvement.  I was reading Kathy Sierra’s blog again and she had an entry that made me go “hmmmm”.

I remember preparing the employee reviews and spending much time digging for the area’s of improvement.  Most of the review process does seem focused on things to improve – the time spent on “the stuff you kick butt on” was short.  Same with the reviews I receive.  Maybe we do them backwards, or at least not “level” enough.

There are things I do poorly, things I do well and things I’m really pretty good at.  Unintentionally – I focus on the things I’m really good at and let the things I do poorly atrophy.  It makes it so that the things I’m good at get better.

However – looking back, if I hadn’t been pushed into speaking in front of groups, I would not do anything remotely similar to what I do today.  When I joined Oracle – my manager made us submit abstracts to speak at conferences, especially Oracle World/IOUG events.  I lived in fear of getting accepted (but always did get accepted).  It was not my strong point – getting up in front of people and talking.  It took a long time to become competent at it.

Had not my manager (and the fact my job in general) forced me to do the speaking engagements – an event like I did yesterday for the ILOUG (Israel Oracle User Group) would never have happened.  I spoke from 9am to 6pm (they are gluttons for punishment I guess) all about Oracle, technology.  And people actually stayed all day long (which constantly, but pleasantly, surprises me).

So, I agree with the premise of Kathy’s posting today, for me.  However, for “newbies” in a field (any field, anything) – I’m not sure I agree.  We don’t know what are strengths are straight away.  Had you told me in high school that I would major in math in college – I would have laughed.  In college – had you told me I’d write a book that people actually seem to enjoy to read – I would have assumed you were a bit touched in the head.  Had you told me as a programmer starting out that I’d be doing what I ended up doing for a career – I would have said “no way”.

In retrospect – maybe even today, for me – it does not apply.  I have no idea what I’ll be doing 5 or 10 years from now.  I have a feeling it will be different, perhaps radically different.  I’m reading a book now that makes me pretty sure it will be very different to radically different in any case (The World Is Flat: A Brief History of the Twenty-first Century)

So, I agree, we should spend more time in the review process showcasing what we “kick butt” at – but pushing people into “areas of improvement” still makes sense.  Some of us need to be pushed to do things we don’t want to (at first), in order to discover we actually like it.

Monday, February 06, 2006

This is some good news...

This is good news.  Sue Harper has joined the Database Development Tools group in Oracle.  I’ve known Sue for a while, first met her in Copenhagen where she spent a couple of nights with some 17 of us sleeping on floors and such.  It was in January 2004 when I delivered a Master class in Denmark.  As the only female in the group she got one bedroom – as a speaker, I got the other one (had to share it with some turtles but that is another story).  In the mornings we had to step over people to get around (they all had the floor and sleeping bags).

I’ve worked with many of the people in the group she is joining for many many years – dating back to in some cases before I started working at Oracle.  I agree with Sue’s assessment of this group – passion, enthusiasm, incredible energy.  To me, this is a win-win situation for both Sue and the group she has joined.  

Looking forward to working with her even more in the future – as the Database Development Tools group makes many of the things I use every day.

Sunday, February 05, 2006

A very nice weekend

A very nice weekend. I finished a week in Ireland – doing a seminar for 3 days with 60 attendees. Then a day with customers. By Friday I was very much “talked out” and ready to just not say anything. That was good since I was spending the day from about 4am to 6:30pm (with a 2 hour time change) traveling. I left Dublin early, connected via Frankfurt Germany (very cold, snow and stuff there) before arriving in Tel Aviv.

I had no idea what to expect – having heard the stories about security surrounding Israeli airports. More security than normal, but nothing anyone cannot get through (assuming they should get through!). In Frankfurt – I went through a metal detector and was “wanded” two more times – sort of like clearing security three times. But that was about it – getting out of the airport was pretty normal.

Anyway, when I arrived, some local Oracle people and the local Oracle User Group representatives took me out for a nice dinner. They kept talking about this “winter thing” that was happening outside – but for me, it was a nice change. It was in the mid 60’s (about 17 c) – perfect weather for February if you ask me. The told me what the plan for the weekend was (sort of, they were hazy on the details) and it sounded busy. Starting at 8am the next morning (I could have used a little more sleep…) we were off.

I can say that if you want to see a lot in a short time, and really understand what you are seeing – what you should see – and have someone greasing the skids to make it all happen, a local tour guide is recommended. I had an excellent one, Ika Schweitzer:
Ika Schweitzer
He was great and if you want a comprehensive look around Jerusalem and surrounding areas, I would recommend him. We started the day with a camel ride of all things. Fairly strange beast to get on. Rock forward, rock backwards, rock forwards and you are up and then the walking itself kicks in. Not sure I’d want to go very far on such a ride – but it was different.

Then we were off to Ein Gedi, a spa on the Dead Sea for a splash in the mud and the dead sea itself. It is reported to be the lowest elevation on the planet with a human breathable atmosphere. Try as hard as you want, you will not sink in this water, in fact – if you are not careful, you an easily end up face first in the water just trying. Normally the ocean is something like 3% salt – this is somewhere over 30% - and it shows. This is not sand on the beach – it is salt. By the way – the guy in the foreground of that picture is covered in Dead Sea mud – reputedly really good for your skin. Yes, I got covered (no pictures). Very strange feeling.

After Ein Gedi, we were off to Masada. For me, this was the high point of day one. I like old buildings/ruins and that is what this was. We took the cable car up (you can walk, takes about 45-60 minutes that way) and once up there – you get a view like none other. Looking down you can see many of the Roman fortifications that surrounded the location 2,000 years ago. As the Ika said as we got down to the North Palace end – imagine you are the King here with your buddies, having a couple of beers in the evening, here is your view. It went for 360 degrees – looking at everything. Here is a view from the upper level of the North palace looking down. They built the Palace into the side of a cliff. Only way to get there – walk up the mountain, across the top, and down the side. Looked pretty defensible to me. In fact, it took some three years of siege to penetrate in the end.

Next, we went off road for a bit in the desert. Saw something I don’t get to see every day - a mother camel out with her baby. The desert was full of cool looking structures – much of the formations you can look at here are made of salt. There is one thing they have a lot of there by the Dead Sea is salt, tons of it – more than tons of it. Huge amounts of it does not even being to describe how much salt there is.

We closed up day one with a trip to Mount Sodom. The views once again were outstanding. The silence there was profound. So quiet, you could hear the silence. It did not seem like anything else living was around for a long distance. With all of the salt in the ground – there was simply nothing growing there anywhere. Ika said there might be some scorpions and snakes at night, but that is about it – there is nothing to eat.

Day two we set out to explore the city of Jerusalem. Behind us is the city itself and we covered much of the old city in a good 8 hour period:
Getting ready to take a look at Jerusalem
We started on Mount Olive – overlooking a Jewish cemetery. We hit many of the places in the old town – too numerous to list. I learned a lot of history this day – some I knew, much I did not (having a good tour guide, that was a good idea – I would have had no idea where to go). After a while, we got to do some shopping. I picked up a couple of things, including a shelf item for myself from the year 333 AD which I thought was pretty cool looking. We closed the day with a walk to the West Wall (the Wailing Wall). Before we got down there, the sun was just beginning to set:

I thought the sun hit this nicely

I thought the effect was very nice in that shot. The sun was in a perfect spot. We closed out the day with a walk down to the West Wall – where people stick their wishes into the spaces between the blocks in the wall. After that – we got a guided tour of the entire 500 meters of the West Wall – under ground. It is a very long story and if you ever get there yourself – I highly recommend taking the West Wall underground tour. It is not every day you can walk on a 2,000 year old road in the condition this one was. As one of the guys with me said as he touched the wall underground “this, this is history”. It was – that is the thing I take away from Jerusalem more than anything “that, that is history”.

I’d like to come back someday and do it again.

Friday, February 03, 2006

Goodbye to a good friend...

Goodbye to a good friend. Lex de Haan passed away this week after a long illness.

Exactly one year ago, I was in the Netherlands (Utrecht specifically). I was giving a three day seminar, much like the ones that are still going on. For the week I was there, I spent it not in the usual hotel – but as a guest in the home of the organizer, which was of course Lex. It was a really good week – shortly before his illness was diagnosed. He cared about people, he cared about his customers. And it showed. That is a week I’ll remember for a very long time. I’m so glad I had the opportunity to do it, to spend the time like that.

So, it was a sad day this week when I heard about Lex. I last saw him at the UKOUG this year in October/November. He was in good spirits then, but in some pain as well. He was basically “himself” though – presenting and attending the conference. It was inspiring to see.

He was in large part the cause behind the “mull about null” and “something about nothing” articles this week. I remember debating with him about NULLs till far too late into the night that week (after just a few beers and maybe some whiskeys). He was passionate about what he did. He knew what he was talking about. He was just a really good person. I will remember his booming deep voice and laugh. He had an excellent sense of humor.

He is missed. I will remember him often. The last day I was in Utrecht – Lex took me around shopping for a gift to take home to my kids. What we decided on after some time in the toy shops was a Dutch version of Monopoly. My son and daughter love the game – even though we cannot read a darn thing (it is of course all in Dutch). Alan translated many of the Chance and Community Chest cards using Babel Fish. Every time we play it – Lex will be there. And we play it often…