Accuracy Matters

angry-1300616_640One of the annoying things about our industry is the volume of acronyms and very specific terminology used on a day-to-day basis. If you know the lingo you are fine. If not, life can be quite problematic.

In some cases, this is just a smoke screen to hide a lack of true understanding, say enough buzzwords you read in a Gartner report and people will eventually stop asking you to define them, but in other cases it is necessary to be able to communicate *accurately* about complex issues at a reasonable pace.

Some people are completely anal about everything, demanding an incredibly high degree of precision and exact terminology. Deviate from their prescribed ideal and you are in a world of hurt. Others, like myself, allow a lot more slack, knowing that every person is on a different part of the spectrum where this is concerned.

The problem with letting people get away with loose terminology and a lack of accuracy is it can sometimes come back to bite you on the ass. It’s all too easy to let them walk away with an unrealistic view of the situation, that becomes the new office myth, and travels with them through every company they ever work in…

  • Person: So Oracle does this right?
  • Me: Not really. It’s a lot more complicated than that. It’s more accurate to say it does …
  • Person: Yes, but it amounts to the same thing. It basically ends up doing this right?
  • Me: No. It really doesn’t. I can see how it appears that way in this case, but that’s too simplistic a view.
  • Person: Yeah, yeah. I know, but for the sake of argument, we will say it does this, which results in …
  • Me: Fine. That’s wrong, but lets leave that aside and move on…

… One week later …

I’m sure you’ve all been there at some point. It can be a really fine line between getting something across properly and being a total douche. Too far one side of the line and people are walking around believing rubbish. Too far the other way and you end up excluding people and sounding like an elitist prick.

It’s a journey babe!



Database Triggers : Use at your own risk!

error-24842_640I wrote a Tweet about triggers yesterday that seemed to get a strong reaction, so I thought I would clarify some things. 🙂

Guns don’t kill people, people do (or is that rappers). In the same way, triggers are not inherently evil, but their misuse is. Toon Koppelaars, of Helsinki Declaration fame, wrote several post about triggers on this blog, which amongst other things highlight the problem of stigmatising something because it is being misused. With all that said, I dislike database triggers and would advise people to avoid them wherever possible.

My initial Tweet was prompted by an incident at work, where a relatively simple procedure containing a single insert caused a cascade of DML changes. The procedure did an insert into T1, but T1 had a trigger that did an insert into T2, then T2 had a trigger that did and insert into T3 etc. I think in this case there were about 5 jumps like that. This is just a nightmare for people to keep control of, and when something goes wrong it can be a nightmare to diagnose. How many times have you heard someone say, “But my code doesn’t even hit that table!”? 🙂

I’ve listed a few facts/thoughts/opinions on why you should avoid triggers here. The same article includes an example of how triggers make tracking dependencies a lot harder (here).

As Toon says, there are some very real use cases for triggers, but I think a lot of the time triggers are used as a sticking plaster to try and fix a bad job, which results in a spaghetti solution. Once you start down that road, destruction is inevitable.

Just be careful, and don’t say you’ve not been warned. 🙂



Enterprise Manager Cloud Control 13c : It’s Alive!


I wrote some blog posts about Enterprise Manager Cloud Control 13c a little over 6 months ago.

Since those posts we’ve had bigger fish to fry, so I pretty much put 13c on hold until now. I’ve just built a new 13c server and in the coming weeks will be transferring the hosts across to it from the old 12cR5 server.

I said in my upgrade post, we are going for the replace approach, rather than upgrading. That won’t we the best option for everyone, but it suits us this time.

I’m not sure how much, if anything, I’ll end up writing about it. Just thought I would mention I’ve finally got round to it. 🙂



Oracle OpenWorld 2016 : Come and Play!

In a few short weeks I’ll be jetting off to Oracle OpenWorld 2016. It’s pretty crazy to think this will be my 11th visit to OOW and San Francisco…

The rough itinerary for the trip will be…

New York City. I’m going to break my flight in NYC for a few days on my way to San Francisco. I’ve only recently confirmed my flights, but as soon as I did I reached out to NYOUG to see if they wanted me to speak at a local meetup. Unfortunately the only working day I’m in NYC is Monday 12th September and that is a couple of days before a big meeting they are organising. It’s a shame we couldn’t work something out, but maybe next year?

If there is anyone in NYC that would like me to come and speak at their office on 12th, drop me a line and we’ll see if we can arrange something. If not, I’ll just be hunting Pokemon before I go to San Francisco… 🙂

User Experience (UX) Day. I’m going to San Francisco an extra day early this year as I’m taking part in the UX Day. I’m not totally sure what that entails, but I think the folks on the UX team are awesome people and I would like to know more about what they do professionally. I’m keen to feedback about the UX of Oracle Cloud, so building that relationship with team will be good.

Ace Director (ACED) Briefing. After the UX day comes the 2 day Ace Director (ACED) Briefing. We heard a lot about the future versions of several products last year, some of which have still not been released. It will be interesting to see what is in the pipeline.

So that’s three full days before OOW16 actually starts!

User Group Sunday. I’ll be taking part in the EOUC #EMEADBA sessions.

Conference: Oracle OpenWorld
Session Type: User Group Forum Session
Session ID: UGF2630 + UGF2632 (It’s one big double-session)
Session Title: EOUC Database ACES Share Their Favorite Database Things: Part I & II
Room: Moscone South – 102
Date and Time: 18th September 2016, 13:00 – 15:00 (1-3 PM)

In previous years we’ve focused on 12c features. This year Debra suggested people pick their favourite feature for their 5 minute slot and there is a really good mix of features, spanning database versions Oracle 7 to Oracle 12c. I’ve got 5 minutes on Data Pump. 🙂

I really like these sessions. The pace is great, if a little frantic at times. You cover lots of ground in a small time. Even if you don’t care about a specific subject, it’s only 5 minutes until the next speaker. 🙂

SQL Panel Session. I’ve been invited to join in on a SQL Panel Session later in the week.

Session Type: Panel Session
Session ID: CON6557
Session Title: Optimizing SQL for Performance and Maintainability
Room: Moscone South – 103
Date and Time: 22nd September 2016, 13:15 – 02:00 (1:15-2:00 PM)

I was in something similar last year and it was really scary, but good fun!

Of course, I’ll spend the whole week trying to get involved in whatever is going and generally making a nuisance of myself. 🙂

If you are going to be at OOW16 and you see me, please come and say hello. Speaking to people about geek stuff is the best thing about conferences!



Community and the “Hive Mind”

A really great thing about being part of the Oracle community is the networking and access to information it gives you. In my current job I have to do a number of things that are not really my forte. I know how to learn new stuff, but it’s always nice to get some feedback from people who know more than you. Over the last few years there have been a number of specific cases that spring to mind.

  • When I started getting involved in WebLogic administration I reached out to Simon Haslam, Jacco Landlust, Chris Muir and Marcus Eisele for some advice. I had RTFMed and I kind-of knew what I was doing, but I just wanted someone with more experience to validate my approach. Their feedback was, and still is, really valuable.
  • On the Nordic Tour a couple of years ago I spent some time speaking to Lonneke Dikmans about SOA. Our company were starting down the path of SOA and although I was not directly involved in the project, I wanted to know more about the issues we might encounter. Lonnikke was the perfect person for me to speak to.
  • As I started to take on more MySQL work, including some upgrades from early releases of 4.x to 5.6, I reached out to Ronald Bradford and Sheeri Cabral for advice. In some cases they confirmed what I already knew. In other cases they completely altered what I had planned.
  • Our company have recently signed a deal to move to Oracle Cloud Apps. I know almost nothing about them, but fortunately the ball-and-chain does. I’m not directly involved in our Oracle Cloud Apps migration project, but as I said before I like to know what problems may come my way during the process, and Debra is a great source of information.
  • Even when I’m dealing with database stuff, which I think I’m pretty good at, it’s always nice to have access to other opinions. The number of people I’ve had help from in the database world is to long to list. Just a few days ago I reached out to Richard Harrison about a problem I was having and in one email exchange he solved it for me. That probably saved me hours of messing about.

This is not about expecting help. This is not about trying to offload my responsibilities onto others. It’s mostly about getting a second opinion and the odd bit of advice. More importantly, the other people in the community need to know that you’ve got their back too. This has to be a two-way street!

Access to the community “Hive Mind” is a wonderful thing and will make your life so much easier! Get involved!



WordPress 4.6 “Pepper”

WordPress 4.6 “Pepper” has been released.

All 5 of the installations I manage had it listed as available, but like most new major releases, it hasn’t been set to auto-update immediately, so if you want it today you will have to log in and give the updater a nudge.

The update itself was really quick and didn’t give any errors. There have been some updates to the default themes recently, so if you don’t keep up with those updates, you might see a number of theme and plugin updates that need doing also. I’m a bit of a compulsive upgrader, so I had already done those. 🙂

Expect a quick burst of small updates over the coming weeks as the new bugs this has introduced get fixed. 🙂



OTN Tour of Latin America 2016 : It’s a Wrap!

laotn16The OTN Tour of Latin America (Northern Leg) is now over for another year.

Each tour comes with its own set of challenges. As the tour progresses you get increasingly more tired and less able to cope with those challenges. The journey from Guatemala to Pereira broke me. It was like my adrenal glands had burnt out and there was nothing left in the tank. When I get into that state I just want to be quiet and on my own until I feel normal again. Not exactly possible when you have a two day conference ahead of you.

These tours provide an unusual mixture of experiences and emotions. I love meeting new people and geeking out with them. I hate the travelling associated with the tours. Queues, airports, queues, plane rides, queues, taxis, queues and hotels get pretty old pretty quickly. I dislike the total helplessness you feel at times during the process. Unfortunately, until someone gets round to inventing a teleport system, that’s the way it is.

Despite all that I would still recommend people do them if they get the chance. They are hard work and you will spend a lot of your own cash, but they are also very rewarding and open your mind. Just don’t expect it to be glamorous. 🙂

Here’s a list of blog posts I made during the last couple of weeks.

Each has a YouTube video embedded. You can watch the montage videos of just the events on this playlist.

You can see my less than glamorous travel montages (plus a couple of proper glamorous sightseeing trips) on this sarcastically name playlist.

So that’s it. Another tour in the bag. Thanks to the ACE Program for funding the flights and accommodation. Without you this would not be possible for me. Thanks to all the user groups for their help in organising their respective events and inviting me. Thanks also to all the attendees for coming to the events. I hope to see you all again!



PS. I’ll never do a tour again… Until the next time…

OTN Tour of Latin America 2016 : Pereira, Colombia to Home

laotn16The day started quite normally. I met Debra at about 08:00 for breakfast. We had a chat, then said our goodbyes, as she was leaving a few hours before me.

The hotel kindly allowed me to check out at 14:00, so I went to the gym, then went back to my room to chill until it was time to leave. Whilst in my room I started to feel a little unwell. I had visions of a Machu Picchu incident on the flight home, which made me nervous, making me feel even worse.

I got to the airport about 2 hours before the flight. That’s about 90 minutes too early at Pereira as it’s a really small airport. Check in was fine, and I got my bags checked straight through to Birmingham, which was a result.

The airport was fine, but it was really hot, which made me feel even worse. I put my bag on my knees, then used my neck cushion as a pillow and tried to sleep. Not ideal, but better than being awake in that heat. At one point I saw Frank Munz. He had lounge access, but I was flying on a different airline so he couldn’t sign me in.

About 45 minutes before the flight I moved to the boarding gate. It was much cooler, which came as a relief. I got a drink from a vending machine, took some paracetamol and tried to relax. As I was drinking I realized I was probably dehydrated. I had sweat buckets in the gym during the morning and the night before and I doubt I had drunk enough to make up for it.

We boarded and the row opposite was empty, so I took that row, which allowed me to get some footage of the flight without feeling trapped. The drink, pills and distraction of filming made me feel a lot better.

I got to Bogota airport, walked out of domestic arrivals and straight over to international check-in and the Lufthansa gate. I don’t know who I was praying to, but I was literally praying my air miles upgrade had gone through. Fortunately it had, so I headed up to the lounge for the 2.5 hours before my next flight. The thought of being able to lie flat on the 11+ hour overnight flight to Frankfurt and the endless supply of peanuts in the lounge lifted my mood no end. 🙂

Having a business class upgrade made boarding really simple. I was in a window seat, which normally starts my, “I’m trapped in my seat”, reflex, but that wasn’t too much of a problem until about half way through the flight when my stomach went crazy. I was back and forward to the toilet about 6 times in the second half of the flight. I was able to step over the guy in the next seat, so I didn’t have to keep waking him.

At Frankfurt airport I rushed straight for my next plane, which was listed as boarding as I arrived. Fortunately it was a little late leaving so I got to it with time to spare, most of which was spent in the toilet.

The flight home was fine. I think it took about 80 minutes. Of course, by that time I was so sick of being on a plane the slightest things were bugging me. People talking too loud. Babies crying. The noise of the earphones on the guy next to me. People being nice to me. 🙂 I had to keep reminding myself tolerance was super-low because of the trip.

I arrived in Birmingham a little late and the queue at security was horrendous. Luckily it moved really fast in the automatic queue. My bag was one of the first on the conveyor, so I grabbed it and made a dash for the taxis, where I joined another queue. 🙂

Suffice to say I made it home in one piece. Headache, bad stomach, I think I have a temperature, but I’m home all the same…

Final travel video and wrap-up post tomorrow I guess. 🙂



Real Talk : PL/SQL and SQL as your only development skill

notes-514998_640This morning I was asked a question about the job opportunities for a PL/SQL developer these days. I’m talking about someone with good SQL and PL/SQL skills, but limited, or no, knowledge of other development languages.

I think most people know I’m a big fan of PL/SQL. If you have good SQL skills and you know PL/SQL well, you can do pretty much anything with an Oracle database, including all types of web service and web development. Throw in some APEX skills and you can be super productive as a web developer against Oracle databases.

So back to the question, what are the job opportunities for a PL/SQL developer? In the UK at least, that’s not a great place to be right now. When I first started with Oracle technology it was not uncommon for companies to employ developers just to code PL/SQL. There are still jobs like that available, my employer has two PL/SQL contractors right now, but the market for a programmer with just PL/SQL is on the decline. Search for “programming language popularity” and you will see a number of indexes don’t include SQL and PL/SQL in the top 20 lists. Search for “enterprise programming language popularity” and you will see SQL and PL/SQL appear. There may be flaws in the way the information for these lists is gathered, but you get the message.

That’s not to say SQL and PL/SQL skills are not of value, just that those skills alone are no longer enough. They have to be part of a package that includes other development skills.

Most people I talk to work in organisations that use multiple database engines (Oracle, SQL Server, MySQL, several NoSQL engines), so having a person that can only do PL/SQL development means they are of limited use compared to someone that also knows Java, C# or Javascript to a high level. That is, development skills that span database engines.

In a similar way, my current employer won’t commit to APEX as a strategic development platform because it is just for Oracle databases. Using database links to other engines to allow you to continue using APEX against them is not strategic. 🙂 In the same way, we have a lot of PL/SQL right now, but in the future I can see this being of less importance compared to other skills that are multi-engine. Do I like this situation? No, but it seems to be where we are right now.

Of course, this could be a conversation about “Java/C#/Javascript as your only development skill”. Development in todays world requires multiple languages, each serving a different purpose. It could also be a database engine discussion. I can’t imagine ever working for a company again that doesn’t expect me to look after MySQL, SQL Server and other engines, as well as Oracle.

I hope this doesn’t come off as negative. I love SQL and PL/SQL and I would love to be able to tell you these skills alone would set you up for life, but that would be a lie. As a developer, you are forced to follow the market and the market says you need multiple development skills to survive. I hope you pick SQL and PL/SQL as part of your skill set, as they are still very important in enterprise companies, but in the current climate betting your whole development career on a single language is not a safe bet. 🙂



PS. Us old folks will cling on until the bitter end. 🙂