Video : Converting Exact to Approximate Query Processing in Oracle Database 12.2 Onward

Today’s video is a dash through some of the Approximate Query Processing functionality introduced in Oracle database 12.2.

If watching videos scares you, don’t worry, you can get all the information and more from these articles.

The star turn in today’s video is provided by Franck Pachot. 🙂

Cheers

Tim…

OBUG Tech Days Belgium 2019 : Day 2

Day 2 started a little late for me and I missed the first block of speakers. Sorry Alex!

The first session of the day for me was Franck Pachot with “Microservices : Get rid of your DBA and send the DB into Burnout”. The session started with a rousing chorus of “Happy Birthday” for Franck. My bad summary of the session would be, pick the right tool and the right approach for the job. The “obvious” solution for the job is not always so obvious. One size doesn’t fit all!

After that it was keynote time with Gurmeet Goindi and Maria (questions at the end) Colgan. Gurmeet started off with the key features of Exadata past, present and future. Maria continued with some of the optimiser goodness coming in “a future release”.

Next up was Roger McNicol with “Understanding Oracle External Tables”. This was one of those sessions where I sat smugly thinking, “I knew that”, until he started talking about some stuff I didn’t have a clue about. I’ll check out some of this stuff when I get home and sneak it into some existing articles, then act superior, like I always knew it. 🙂

The next session was “REST enabling your Oracle database with Oracle REST Data Services” by Jeff Smith. Which Jeff Smith? That Jeff Smith! I’ve seen Jeff do this talk before, but he’s reworked his demos, so I wanted to see the new and improved version, and I was the next speaker in this room so… 🙂

I was the next speaker, with my session, “Multitenant : What’s new in Oracle Database 18c and 12.2”. There is a lot of good stuff in the Multitentant architecture now. All my articles on the subject are listed here. I think the session went OK, but I did overrun. Sorry!

From there I popped out with some folks for a farewell drink, then it was off to catch my plane. I ended up on the same train as Maria. When we got to the airport I tried to get her case off the luggage rack and it destroyed my hand. For a totally accurate depiction of what happened, check out the “I’ve got his pig sticker” scene from Blade.

I had about 2 hours before my plane left, so I got out the laptop and played catch-up on life. We boarded about 10 minutes late, and then sat on the plane for about 35 minutes before we left. The flight was fine and we gained back a little time on the way. I got a taxi home and that was the end of the trip!

Thanks to everyone at OBUG for inviting me to come and play. Thanks to the attendees and speakers for making the event happen. This was a self-funded trip, but I’d like to thank the Oracle ACE Program and Groundbreaker Ambassadors Program for allowing me to fly the flag.

Cheers

Tim…

Video : JSON Data Guide

Today’s video is an overview of the JSON Data Guide functionality introduced in Oracle 12.2.

If videos aren’t your thing, you can read the articles instead. This video focuses on the main features that were introduced in 12.2, but there are some nice additions in 18c also.

The cameo in today’s video is Toon Koppelaars of #SMartDB fame.

Cheers

Tim…

PS. Subscribe to my YouTube channel here.

It’s not my job to do your job for you!

I’m currently drowning in a sea of requests for a number of things, including people wanting me to help them with specific issues, which feels a bit like they want me to do their job for them. I feel a little bit uncharitable saying that, but that’s how it feels.

Let me start by saying I understand what it’s like to be asked to do stuff in your job that you don’t know anything about, and also don’t care about. Sometimes, if you can Google a solution and move on it’s a happy day. Having said that, I’m also aware that I can’t expect every article and blog post I come across to contain exactly what I’m looking for. You have to do a certain amount of digging, mixing & matching and it involves a certain amount of trial and error to get to a solution.

Here’s an example I’ve had recently. I’m not saying this was a case of “do my job for me”. The person in question was very polite and not at all demanding, so I feel safe to use this example, and I’m hopefully not going to offend them.

The interaction started with a question about XMLTABLE. It became clear over time this was actually several points wrapped into one.

  • Basic usage of XMLTABLE, explained here.
  • Usage of XMLTABLE with a variable, rather than from querying a table, explained here.
  • Populating a variable (presumably an XMLTYPE) with XML from a URL, explained here.
  • Dealing with network ACLs, which was mentioned in the previous link, but explained more fully here.
  • Making HTTPS calls from the database, explained here.

All these pieces were already explained on the website, but there wasn’t one page that put them all together. As a result of that question I added a bunch of extra links between articles to make the situation a little more obvious.

People contact you and from their perspective it’s a one-to-one interaction, but from your perspective it’s a one-to-many, as they are not the only person requesting your time. You end up feeling guilty you can’t help more, and I’m sure some of them think you are being a dick because you are not helping them. This situation just doesn’t scale.

It’s almost impossible for anyone to be an expert these days. You have to mix & match information to get to a solution. If you want a job in IT, you have to develop this ability to find information from several sources and combine it to get to a final solution. If you are expecting someone else to do that for you, you are never going to get anywhere.

Cheers

Tim…

PS. In my response to a comment below, I am reminded of some words from Tom Kyte who said, “The more you do, the more people want you to do!” 🙂

Visibility vs Results

If you speak to my colleagues you will know one of my regular topics of conversation at meetings is the “judgement of worth” within the company. I get quite annoyed when I see people who I believe are adding value, but always seem to get ignored, while others who talk a great talk, but ultimately can’t walk the walk, seem to catch all the breaks. It seems visibility is more important than getting results these days.

One of my colleagues sent me a link to this article and it really sums up what I keep saying.

I’ve spent the last 18 years telling the internet what I think, so I couldn’t deny a tendency for self-promotion, but I like to think I can actually deliver, not just talk about it! Of course, you will never really know unless you work with me, and that’s the point. It certainly seems people believe what they are told, regardless of whether there is any factual basis to it.

So what should you do? Well in my opinion, maybe this is a start.

  1. Actually learn your subject in the first place. I hope your aim isn’t to be one of these creeps. I hope your aim is to continuously improve and deserve any good breaks you get.
  2. Learn to speak about your subject in a clear, concise and professional manner. Don’t sit there silently, then blame the world for being unfair. The world is unfair! Deal with it! Make a positive change! If you need some pointers, I’ve written some public speaking tips here.
  3. Learn to write in a clear, concise and professional manner. If you write unintelligible emails, people are going to assume you are dumb. I happen to think blogging is a good way to improve your writing skills. I’ve written some pointers about blogging here. Ultimately, it doesn’t matter how you get there, but you must be able to make yourself understood.
  4. Don’t let other people take the credit for what you do. I’m not suggesting you write an email to the CEO every time you deploy an application, but by the same token, don’t let someone else stand up and take the credit you deserve, especially if it’s because you are too scared to actually stand up and speak for yourself, and instead rely on others to present your work.
  5. For the bosses out there, try to start judging people by actual results, rather than by what they say they can/have done.

I realise I sound kind-of narky in this post, but I think it’s really important. It really gets on my nerves when I see people taking the credit for other people’s work, and I’m equally annoyed when I see other people letting it happen.

I’m not suggesting you bully the perpetrators, or make a big show of the situation. Just don’t give them the opportunity to steal your moment in the sun!

Good luck folks!

Cheers

Tim…

PS. The wife said something in a Facebook comment that reminded me of something I wanted to say. I regularly get accused of name dropping, because I say things like, “I was chatting with X, and they said…”. This isn’t me trying to brag about all the “famous” people I know. It’s because I don’t want to come over as having these ideas for myself. I’m going to name-check people, even if you think it makes me look like I’m bragging, because they deserve the credit for their work and their ideas. If they tell me the origin of their idea, I’ll say, “I spoke to X, who said they heard Y say…”. Sorry if this annoys you personally, or you want to make a negative judgement about why I do it, but I think it matters…

VirtualBox 6.0

VirtualBox 6.0.0 has been released.

The downloads and changelog are in the usual places.

I’ve installed it on my Windows 10 laptop at work, which I use with Vagrant for testing of Oracle, WebLogic, Tomcat server builds, as well as Docker builds. I’ll do my personal Windows 10 laptop, old MBP and OL7 server when I get home. 

Update:

  • Windows 10 : The install went fine on my home Windows 10 machine. One slight hiccup on my work laptop. The installation went fine, then chucked out a bunch of errors. Once I rebooted it behaved fine. I think this is because we have a company build of Windows 10. I’ve hit a few snags in the past that haven’t been repeatable on Windows 10 at home.
  • macOS Mojave : No worries. I even tried it on an old machine running El Capitan and it was fine there too.
  • Oracle Linux 7 : I couldn’t install straight over the top of the previous version (5.2.22) as it produced conflicts, so I did a “yum remove” of that, then a “yum install” of the new package and it worked fine.

It’s also worth noting I kicked off a few new builds using Vagrant (2.2.2) and they went fine with the new version of VirtualBox.

Anyway, so far, so good.

As always, it’s a new product out of the door. I expect some frequent releases until it settles out, and if you’ve got something that really matters, like you are doing some demos tomorrow, I would probably hang back for a while. 🙂

Cheers

Tim…U

Oracle 18c and 12c on Fedora 29

Danger, Will Robinson! Obligatory warning below.

So here we go…

Fedora 29 has been out for a bit over a week now. Over the weekend I had a play with it and noticed a couple of differences between Fedora 28 and Fedora 29 as far as Oracle installations are concerned. There are some extra packages that need to be installed. Also, one of the two symbolic links that were needed for the Oracle installation on Fedora 28 is now present in Fedora 29, but pointing to the wrong version of the package.

Here are the articles I did as a result of this.

It’s pretty similar to the installation on Fedora 28, with the exception of the extra packages and a slight alteration to the symbolic links.

Once the “bento/fedora-29” box becomes available I’ll probably do a Vagrant build for this, but for the moment is was the old fashioned approach. 🙂

So now you know how to do it, please don’t! 🙂

Cheers

Tim…

Oracle Code : Paris 2018

Oracle Code : Paris started with a short walk from the hotel to the venue. After signing in it all began…

The first session of the day was a keynote by Lonneke Dikmans called “What Happened to My Order? The Need for Orchestration in Modern Architectures”, comparing BPEL orchestrations with orchestrations and choreography used in microservices and serverless architectures. It was a really good introduction to the concepts.

Next up was James Allerton-Austin with “Building a Chatbot Front-end for Blockchain Transactions and Serverless Functions APIs”, which included a description of the stack offered by Oracle and a demo of selling Larry’s car. During this session there were also brief stints by Karim Zein and JeanMarc Hui Bon Hoa.

From there I went to the speaker room and started to feel decidedly odd. I sometimes get migraines that don’t give me a headache, but make me feel dizzy and nauseous. The following couple of hours were mostly lying on the floor and going to the toilets to puke.

I did pop in to see “Build a Decentralized Blockchain Application with Hyperledger Fabric and Composer” by Robert van Mölken, hoping it would distract me.

I also popped my head in to Women in Technology (WIT) session to see what the turnout was like. It was very busy. It was in French, so I could understand what was going on. 🙂

After that I went back to the speaker room floor, then before I knew it, it was time for my session, but not before another conversation with the toilet bowl…

Adrenalin is a wonderful drug. I warned the audience I might have to leave suddenly, but I managed to get through my session without any major problems. I lost the internet connection a couple of times, and had to reconnect to my 18c DBaaS instance on Oracle Cloud. The new laptop behaved itself though. Once my talk was over the Adrenalin started to subside and I felt worse again, but not as bad as before. I was sitting still and chatting to some of the folks in the speaker room for the rest of the afternoon, and I only remember puking once more after my sessions, which was an improvement…

Pretty soon it was time to leave for the airport and Oracle Code : Paris was over for me. Thanks everyone for making it happen. Sorry I wasn’t able to participate more. This year’s conference curse seems to be continuing.

I’ll write about the journey home in a separate post as that is already proving “interesting”, in a conference curse style… 🙂

Cheers

Tim…

It’s all about focus!

When I’m in airports I do a lot of people watching. One thing I notice is a total lack of focus in some people.

In the airport I have several distinct goals.

  • Get through check-in and/or bag drop as required.
  • Get through security.
  • Identify my boarding gate if it is already displayed.
  • If my boarding gate is listed, get to it to make sure I know where it is and how long it takes to get to it, so if I have time to wander off I’m not going to get into trouble later.

Only once these tasks are complete can I relax and while away the time. Now I understand things can get complicated when people are having to sheppard young children, but I see lots of single adults, or couples that seem unable to focus on the task at hand…

As an example I recently witnessed someone being asked the same question three times before answering it. At this point you might be thinking it was because they were hard of hearing, or maybe struggling with the accent. Although that could be true, what I could see was they were not looking at the person dealing with them. Their attention was elsewhere, rather than focusing on the task at hand. This drives me crazy. You are asking for help, so pay attention you flippin’ idiot!

There are lots of characteristics that can be attributed to successful people, but I would suggest one of them has got to be the ability to focus. Being able to shut out everything else and focus on the task at hand is really important. You think you are good at multitasking, but you aren’t. It’s a lie. Sure, you can to some extent multitask mindless operations, but anything that needs proper concentration is single-threaded. By attempting to multitask all you are doing is performing substandard work. It takes time to switch between tasks, so when you think you are just checking your twitter messages, you are actually wasting significantly more time… I notice a big difference in my productivity when I’m working from home, because home is really boring, with very few distractions. In contrast the office is full of people that just want a “quick chat” about something, me included. 🙂

One of the principles of agile development is to control Work in Process/Progress (WIP). This is important because it allows you to focus on a single task (user story or story point) and get it done and out of way, before moving on to the next thing on the list (or kanban board). Since you are only ever focused on the current task, there is no need for context switching during the task. It also has some other benefits…

  • If you are like me, you get a kick out ticking things off a list. This is something I’ve done for years, before I heard of kanban. Something like a kanban board just adds visibility to something you are probably doing anyway.
  • It’s easier to judge progress on large pieces of work if it is broken into steps.
  • Assuming the work moves to production in stages and can be made visible to the users, the users can see it happening too. This is important on long running projects where it’s easy to look like you’ve disappeared for 6 months before the finished product arrives.

There will always be some interruptions, like high priority incidents, but removing all but the essential distractions has a massive impact on productivity. This doesn’t have to be controlled by others and imposed on you. The trick is for you to be disciplined about when you do things. If you can’t live without checking social media, fine. Just do it between tasks, not during a task. If you are already switching between the end of one task and the start of the next, you are already having a mental context switch, so the impact is much reduced compared to checking in the middle of a task. I don’t agree with companies trying to turn workers into mindless drones, but at the same time it is your duty not to waste time you are being paid for.

Most importantly, never stand in front of me in a queue and ignore the person on the desk who is trying to help you, or I’ll write a rambling blog post about you! 🙂

Cheers

Tim…