My Utopian Development Environment

Some thoughts about my perfect development environment. Of course it will never happen 🙂

Compulsory PL/SQL APIs
Client application developers would have no direct access to tables. Not even for queries. All access would be provided by PL/SQL APIs. I like this because:

  • It removes the need for triggers as all inserts, updates and deletes are wrapped in APIs. Instead of writing triggers you simply add the code into the API. I loath triggers.
  • It prevents people who don’t understand SQL writing stupid queries. All SQL would be written by PL/SQL developers or DBAs, reducing the likelyhood of dodgy queries.
  • The underlying structure of the database is hidden from the users, so I can make structural changes without client applications being changed.
  • The API implementation can be altered and tuned without affecting the client application.
  • The same APIs are available to all applications that access the database. No duplication of effort.

J2EE abolished
I like Java, but I dislike J2EE. When I look at the way J2EE applications interact with the database it worries me. Perhaps I’ve been unlucky, or perhaps I’m missing the point, but I think it’s shocking. Using container managed persistence (CMP) to generate SQL on the fly worries me. I want to know at development time what is going on. I want to be able to cut and paste the SQL, not try and capture or trace it during a run. At least with bean managed persistence (BMP) you get this, but Java developers seem to avoid BMP like the plague.

Even when J2EE developers use BMP with calls to PL/SQL APIs, the containers have some strange ideas about what’s sensible. To update a record the container requests a query, update and requery of the data, rather than just a query and update. What’s this extra work for? I know what the state of the data is. I’ve just updated it. Even if someone does sneak an update in after me, the bean is being destroyed so the extra query was pointless.

I’m not saying that J2EE is pointless, I just think that 90% of the people out there don’t know, or care, how badly their applications interact with the database. Maybe some Java guru will tell me why I’m talking rubbish, but I can only judge this on my experience and that tells me that J2EE applications are not performant.

Just a few extra points to throw into the mix.

  • All client application developers would understand the rudiments of SQL, PL/SQL and DBA work. They don’t have to be experts, but they should understand the basic concepts.
  • All DBAs would understand the rudiments of client application develpment work. Once again, they don’t have to be experts.
  • All DBAs would be skilled at SQL and PL/SQL. I feel they should be the best in the company, but I know others would disagree. Oracle has now dropped the requirement for PL/SQL in the OCP DBA syllabus. In my opinion this is a mistake.
  • Managers would understand when a decision should be made by the techies.
  • Techies would understand when a decision should be made by the management.
  • People would share ideas and information, rather than trying to empire build.
  • Companies would encourage reskilling of employees.
  • Techies would want to keep there skills up to date, or make way for someone who does.
  • Applications would be planned, designed and built using more formal methods, not RAD or iterative development.

Perhaps the most important point is that I would be presented with lavish gifts whenever I entered the room.



Firefox Livemarks

One of the guys from work has just pointed out the Livemark feature of Firefox, which allows you to create dynamic bookmarks based on XML feeds.

  • Open the Bookmarks Manager dialog (Bookmarks > Manage Bookmarks…).
  • Create a new livemark (File > New Livemark…).
  • Fill in the properties dialog with appropriate values and click OK. Try these:
    Name: “AskTom – Recently Updated”
    Feed Location: “”
    Description: “Most recently updated posts on”

The resulting bookmark is dynamically generated from the contents of the feed.

I think it’s neat, but now I have to decide between Bloglines, Thunderbird and Firefox as my blog reader 😉

By the way, the blogger spellcheck tries to substitue the word “Asthma” for “AskTom” 🙂



Personal Development

This is a random collection of thoughts on personal development, both in and out of the workplace.

Developing your skillset
Jeff Hunter has a very nice post on the relevance of certification called Does Certification Matter Anymore? The comments section includes some of my own thoughts.

On a more general note we all have to make choices about whether to try and progress our skillsets or stick with what we have. I’m reading and learning constantly, but now and then I start “the next big push” and for a moment I’m filled with dread. The more I learn the more I understand the process of learning and the more I realise there are no short cuts. The only way to understand something is to chip away at it until it all makes sense.

Putting yourself on the line
The first time I posted on a forum I was terrified. I watched the thread for ages waiting to see if someone trashed my answer, which they did. My choices were to (a) stop posting or (b) get myself up to speed and try again. I picked (b).

The same thing happened again when I started to write articles for my website. I hate to think what rubbish is still lurking on my site, but at the time I wrote it I believed it to be true…

Even after all these years it’s still happening to me. I’ve just sent out a batch of books all over the world to get reviewed. I could have picked people who would say good things out of loyalty to me, but instead I picked people who would tell me the truth. If the reviews say the book is rubbish I would rather people didn’t waste their money on it. If the reviews are positive then I know I’m moving in the right direction. Either way these reviews will have a positive affect on my life. This conveniently links into my next point.

All experiences are good
The dedication in by book reads,

“This book is dedicated every person I’’ve met, every place I’’ve been and every event I’’ve experienced.”

OK, it sounds a little cheesey, but I believe it’s true. Sometimes even the worst situations turn out to be the source something good.

I carry a small effigy of Ganesha, a Hindu deity who is known as “the remover of obstacles”, a well-timed present from a friend. Ganesha is part man, part elephant, part God and part demon. Now the interesting thing about Ganesha is that he also places obstacles in your path, as a way of teaching you a lesson. I’m not a religous person, but I love what he represents. We can learn a lot about ourselves by our reactions to both good and bad situations.

Acknowledge your ego
We all have an ego. It’s a contributing factor in our desire to progress. I heard this quote a few years ago,

“To deny your own ego is the most egotisitcal thing you can do.”

I can’t remember the source, but I think it’s pretty neat. I guess we all need to keep our egos in check from time to time 😉

Closing statements
I have two quotes to round off this post. The first is from a great sage called Jeff Hunter who said,

“Can’t we all just get along?”

I don’t know where I got this next one from, probably some hippy Yoga teacher,

“Life’s a journey, not a destination.”



My book arrived!

I got home late last night to find a note from the neighbours saying that a parcel had been delivered for me. To my delight it was some copies of my latest book.

I’ve been publishing on the web for years, but it’s quite an ego trip to actually hold a book in your hands with your own name on the cover.

I’ve already noticed a few format changes and additions that have been made by the editorial team, like the inclusion of cartoons at chapter headings, but in general I’m happy with the way it turned out.

I’m nearing the conclusion of my second book, so I’ll keep you posted.



ORACLE-BASE – Recompiling Invalid Schema Objects


I’ve just posted a new article on called Recompiling Invalid Schema Objects.

Since I added the rating and most-viewed sections to the front page I’ve noticed that the really basic articles seems to be very popular. On reflection that’s pretty obvious, but it did surprise me a little. Anyway, this is one of those topics that might interest people that are newer to Oracle, or those that have given up caring 😉



Server Room Air Con

Take a bunch of servers, add some ropey air con and what do you get? A server room that can just about stay at the correct temperature.

Now add a whole bunch of new kit and run it all on the hottest day of the year. What do you think is going to happen? Maybe, one of the RAC nodes will bomb out complaining about the temperature and you won’t be able to get in there to do anything without an asbestos suit. I figure if we install a heat exchange we can probably supply hot water for the whole city.

In the UK we seem incapable of dealing with any temperature variations. I suppose it could be worse. Global warming could flip us into another iceage…



Ad Blocking. Is it right?

I’m having a bit of a moral dilema about ad blocking.

On the one hand I’m totally sick of seeing sites where the whole page is full of flashing ads. It’s a waste of my bandwidth and I don’t like having to scroll down before I can see the subject of the page. On the other hand I place google ads on my site to help me pay for the hosting costs.

Now recently I saw what I thought was a drop in my site (ORACLE-BASE) hitrates, basing this assumption on the stats that were provided by google. When I checked my real site stats (I don’t do that very often these days) I noticed that infact my page hits were through the roof. What does this mean? Either google are telling me porky pies (lies) or people are blocking the ads.

For me this is no major issue as I’m still covering my costs, but it does have a bigger impact. I like being able to access loads of content for free on the net. For alot of the individuals and companies supplying this content the only payback is advertising revenue. If the trend for ad blocking continues this will have one of two affects for alot of people. Either they will start to charge for content or they will stop providing content altogether. Either way this is bad.

I suppose another question is, do we have a contractual obligation not to block the ads? I read something recently about this but I didn’t bookmark the link. Also, there is a big debate in the UK over Tivo which allows you to record programs off TV and remove the adverts. Great for the viewer, bad for commercial TV which pays for it’s programming via advertising.

Personally I’ve decided not to use ad blockers. I think it would be hypocritical of me to place ads on my own site then block them on others. I guess it’s up to each one of us to make that choice.

Of course, if site owners had been a bit more sensible about the adverts they displayed we may not have got to this point.

I’m interested to know what other people think about this. Do you think ad blocking is good or bad?

Maybe a more popular blog might pick up this theme to get some real input on the matter…



Windows not ready for the desktop!

I’m constantly reading that Linux is not ready for the desktop, yet today I’m being forced to use WindowsXP on my desktop and I’m spending most of my time running Firefox, Thunderbird, SQL*Plus and OpenOffice. Now I’m thinking to myself, “Aren’t those the same applications I use on my Linux boxes?” Now all I need to do is invent a Bluecurve theme for XP and I’ll feel perfectly at home. So does all this mean that WindowsXP is not ready for the desktop?

I’m currently downloading Fedora Core 4 and it’s killing me. I foolishly left my disks at work and I don’t think they will appreciate me pulling the ISOs across the VPN. I’ve been using the FC4 Test 3 version of Fedora at home so I’m not expecting anything that different with the full version, but it will allow me to check that my Oracle 10g install guide still works OK.

Whilst I remember, I noticed a few interesting things about Thunderbird including:

  • You can use Thunderbird with your Hotmail, Yahoo and Lycos webmail accounts by using the extensions from this site
  • It allows you to subscribe to RSS and blog feeds.
  • It’s got a built in spam filter that seems to work OK.

The first point is pretty handy. It beats paying Microsoft for the privilege of using Outlook Express to read your hotmail accounts. I installed it for one of my friends who uses dialup. He can now use his Hotmail account without having to make cups of tea between every button click.