Oracle Developer Community (ODC) Appreciation Day 2018 (#ThanksODC)

It’s that time of year where we say #ThanksODC…

History

Back in the day we had a community site called Oracle Technology Network (OTN), which is why the first incarnation of this event was called #ThanksOTN. Later OTN got re-branded as Oracle Developer Community (don’t call it ODC 🙂 ), so last year we got #ThanksODC. That confused a few people, as they thought this was about the Oracle Developer Champions, Oracle Database Cloud, Oracle Developer Cloud or some other such stuff. It wasn’t. Some people didn’t identify as developers, so thought it was not for them. None of that is true. It’s pretty simple. I can’t image there is anyone working with Oracle technology that hasn’t used forums, read articles or downloaded Oracle software from OTN/ODC over the years. You must have directly, or indirectly, benefited from the work done by the people at Oracle who support our community. This is just an opportunity to say thanks to those brave folks who endure our endless moaning. 🙂

When is it?

Every year I pick a date and have to change it because of a national holiday on some country. 🙂 At the moment the date of the event is in two weeks time on Thursday 11th October 2018.

Check back closer to the time to make sure the date hasn’t changed. If we have to move it, it will only be by a day either side.

How can I get involved?

Here is the way it works.

  • Write a blog post. The title should be in the format “ODC Appreciation Day : <insert-the-title-here>“.
  • The content can be pretty much anything. See the section below.
  • Tweet out the blog post using the hashtag #ThanksODC.
  • Publishing the posts on the same day allows us to generate a buzz. In previous years loads of people were on twitter retweeting, making it even bigger. The community is spread around the world, so the posts will be released over a 24 hour period.
  • Oracle employees are welcome to join in. I’m happy for you to post about a feature of your product you think adds value, but please don’t just do a sales pitch for your product. 🙂
  • As always, you are not allowed to call me a kiss-ass, then subsequently join in. 🙂

Like previous years, it would be really nice if we could get a bunch of first-timers involved, but it’s also an opportunity to see existing folks blog for the first time in ages! 🙂

The following day I write a summary post that includes links to all the posts that were pushed out through the day. You can see examples of the last two here.

What Should I Write About?

Rather than having an individual theme, which can exclude some people, this year you can write about whatever you want. Here are some suggestions that might help you.

  • My favourite feature of {the Oracle-related tech you work on}.
  • How I got started using Oracle technology.
  • My biggest screw up, and how I fixed it.
  • How the cloud has affected my job.
  • What I get out of the Oracle Community.
  • What feature I would love to see added to {the Oracle-related tech you work on}.
  • The project I worked on that I’m the most proud of. (Related to Oracle tech of course)

It’s not limited to these. You can literally write about anything Oracle-related. The posts can be short, which makes it easy for new people to get involved. If you do want to write about something technical, that’s fine. You can also write a simple overview post and link to more detailed posts on a subject if you like. In the previous two years the posts I enjoyed the most were those that showed the human side of things, but that’s just me. Do whatever you like. 🙂

So you have two weeks from now to get something ready!

Cheers

Tim…

Oracle Cloud Infrastructure (OCI) : Create a Compartment, VCN and DB

Having spent time playing on the Autonomous Data Warehouse and Autonomous Transaction Processing services, I kind-of lost sight of the Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) stuff. I had a question recently about running (non-autonomous) databases on Oracle Cloud and I didn’t really have anything of my own to point them at, since my only DBaaS article was on the old “Classic” bit of Oracle Public Cloud. I figured it was about time I did a quick run through of the OCI version of that. This resulted in the following three posts, which are just scratching the surface of course.

At first glance it seems a little more complicated, as there are some prerequisites to think about, but actually it makes a lot of sense. The sales pitch demo of any cloud service is to click a few buttons and everything magically appears, but there is some thought needed in the real world. Defining a reasonable network topology for security, and separation of duties and functional areas are pretty common in most companies. This does feel more sensible, and sets you off on the right foot.

If you need a certain amount of manual control and access to the server, the Database VM approach is fine, and there are also Bare Metal and Exadata services too, but I think my starting position would be the autonomous services, unless I had a specific reason not to go that route. I’m all about doing as little as possible… 🙂

Cheers

Tim…

Debugging Code : Problem Solving Revisited

A couple of incidents/discussions happened recently that made me think about this topic again. Here are some random thoughts on a subject that should definitely not be approached in a random manner. 🙂

Systematic Approaches Pay Off

I know it is really boring, but a systematic and meticulous approach will always yield better results than randomly jumping at stuff. I’ve discussed this before here.

It’s easy to become focused on what *you know* is the problem, just because of a gut feeling, without any supporting evidence. When you eventually find the real issue, you feel a bit stupid for looking at the wrong thing for so long.

Sometimes you end up focusing on the symptom, not the root cause. If I do this it all works again. Great! Then the same problem happens the next day. Before you know it you have a bunch of voodoo operational tasks to keep the system running, with nobody knowing how and why it works.

It really does pay to take a scientific approach to fixing things.

A Leap of Faith

Over time you get to spot patterns, which will sometimes allow you to jump straight to the root cause of a problem without doing the necessary legwork. There is no problem doing this, provided you are willing to accept it won’t always pay off, and you don’t become controlled by your hunches. You have to know when to accept your hunch could be wrong, and take a step back to a more meticulous approach.

This is not a contradiction of the first point. It’s something that you will learn to do because of prolonged use of a systematic approach. Be careful when working with more experienced people, as it is easy to believe their seemingly random approach to problem solving is just that. Random.

I mentioned this here.

Instrument Everything

I can’t emphasise enough how important instrumentation is.

You should be able to determine what went wrong just by looking at the instrumentation, without having to know or look at the code. In my opinion if you are doing it correctly, non-developers should be able to figure it out from your instrumentation.

We have a perfect example of this in Oracle. I have never seen any source code for the database, but I can diagnose and fix issues by using the instrumentation built into that code. Things like SQL TraceReal-Time SQL Monitoring, ASH, AWR, ADDM are all possible because of instrumentation in the code.

The problem with Googling solutions is you often see cut-down code examples, which can promote bad programming practices. I have almost no instrumentation in the examples on my website. That’s because I’m trying to keep them small and lightweight. I don’t want you to have to install a bunch of tracing, logging and unit testing packages before you paste in a 10 line bit of example code. That doesn’t mean those things are not important in your real solutions. It’s all about context.

A Fresh Pair of Eyes

Your brain is a weird thing. You work on something and get nowhere. You walk away and do something completely different and you get a flash of inspiration. All that time your brain has been churning it over and come up with the solution. Sometimes walking away is enough to solve the problem.

You can also call someone in to help you. Talking through the problem can help for a couple of reasons.

  1. They don’t have the mental baggage you have, so they might spot something obvious you are refusing to see. 🙂
  2. In explaining the issue to them, you are ordering your thoughts and effectively explaining it to yourself. The net result is you sometimes answer the question for yourself. This is one of the reasons why you should learn to ask questions properly, especially on forums. In formulating the proper question, you may answer the question for yourself.

I wrote about the second point here.

Cheers

Tim…

The Future of Single-Discipline User Group Conferences

It’s just my opinion, but I think the days of the single discipline user group conference are numbered…

The big company flagship conferences will still happen, as they are more about hype and marketing, but I’m not sure what the future holds for regular user groups that want to stay with a single focus.

I don’t know many people who work on a single technology anymore. I certainly don’t know many people who would be allowed to go to a separate conference per technology they work on. That means they need to pick a subset of events, or not get involved. Either way they are being sold short.

I’m starting to think multi-discipline events like Riga Dev Days make a lot more sense. Even Oracle have gone this route with the Oracle Code events, which are multi-discipline, with an Oracle spin of course. These types of events are not without their issues too, as there has to be a limit on the content for each discipline and there can be scheduling clashes, but I think it makes it a lot easier for people to cover their bases with less conference visits per year.

There are some really strong user groups out there, but for those that are struggling, I wonder if widening the net would help? This could affect the enthusiasm of some sponsors, but it may open new opportunities too.

What do you think?

Cheers

Tim…

Update: As per comments and twitter discussion, people have cited successful “single-discipline” conferences. There will always be winners and losers, and I think many of these probably do have quite a diverse range of material, with a common thread running through them. This is how I think of Oracle Code, a diverse collection of subjects loosely woven together by an Oracle thread.

If someone has hit upon a winning formula that is still specialist, I’m not suggesting they change what is currently working for them. For those that are struggling, maybe now is the time for something different?

Why Automation Sucks

I’ve written a number of posts about how important automation is (here), but thought I would mention something that happened on Friday…

If you’ve followed the blog you will know I recently released a hands-off installation of 18 RAC. On Friday I received a pull request from GitHub suggesting a change to the GI software installation, switching the public and private network device names from “enp0s8” & “enp0s9” to “eth1” & “eth2”. I hadn’t seen ethernet device names like this since RHEL5/OL5, so I was convinced it was a mistake. I was in the middle of writing a comment on the pull request, but I thought I better do my homework, rather than making an assumption.

When I got home I fired up the existing RAC on my Linux server and the device names were “enp0s8” & “enp0s9” as I expected. I fired up a new DNS server on my laptop and the public network device name was “enp0s8”. At this point I was convinced I was correct, but I thought I better just make sure. I was using the latest VirtualBox and Vagrant releases, but I noticed the output from the build said there was a newer version of the “bento/oracle-7.5” Vagrant box. Did a “vagrant box update”, “vagrant destroy -f” and “vagrant up” and the new DNS server was built with a public network device name of “eth1”.

I went back to my Linux server, did the same and the device names were eth1 and eth2 on there too. So the “bento/oracle-7.5” box update had caused the ethernet device naming to change. As a result of this I accepted the pull request, made a similar change to another config file, then destroyed and started a rebuild of my RAC. I went out to visit some mates and watched the first two episodes of Ozark season 2. By the time I came back I had a new RAC up and running.

Why does this mean automation sucks? Well it doesn’t really, but it does show you how your automation can be broken by things outside of your control. That could be change to a Vagrant box, a Docker image, the Kickstart file from your system admins, or even a cloud service. You have to keep on top of this stuff. You can’t just define it and forget about it. Having said that, I would rather find a problem like this in an automated build than in a manual process… 🙂

Cheers

Tim…

 

Living the Dream

I was watching a rerun of X Factor at my brother’s house at the weekend. Most of the time I was wincing at all the bum notes sung by the people the judges were saying were fantastic, or wincing at everyone who was doing it for their { mom | dad | grandma | grandad | dead parrot } in an attempt to get me emotionally invested. Apart from all that cringe, the other thing I noticed was people saying things like,

“This is my dream!”

This really gets on my nerves because invariably they’ve done nothing to make their dream become a reality, other than turn up to audition on the day. They haven’t put in the hours practising their craft. They’ve not gone out looking for constructive criticism, then using that to improve. They’ve not tried to get some training to perfect their skills. They’ve just turned up thinking that singing a bunch of off key runs will make everyone think they are Mariah.

Getting good at anything takes time and effort. If you enjoy it, you might not notice how much effort you’ve put in, but that doesn’t negate the effort you’ve put in. We always hear people speaking about natural talent, but invariably you see those “winners” put in the effort, as well as having natural gifts.

I remember hearing someone saying you should praise effort, not results. From my experience, life is a grind and the people who succeed are the people that are prepared to work hard. Natural talent doesn’t go that far in life.

Next time you hear someone talk about “their dream”, ask them what they’ve done to make it a reality. If they’ve done nothing, I suggest you tell them they are full of shit and need to get off their lazy ass and make it a reality!

Cheers

Tim…

Community participation is not cheap!

I’m in a really privileged position where I’ve spent over a decade speaking at events all over the world. That has been made possible by being part of the Oracle ACE Program, and more recently the Oracle Developer Champion program, who have provided funding for some of the events I’ve participated in.

I guess it’s easy for someone on the outside looking in to think this is a really cushy number, but after my latest trip I started to think about the true cost of all this, so I started to check and got a bit of a shock.

Money

  • I’ve paid for a number of trips this year myself, and I’ve got some more to come which I’m paying for.
  • I regularly buy additional holidays from work, as I need more days away from work that I get by default. I don’t go on holiday. I go to conferences.
  • Even when I’m on a funded trip, I end up spending a lot of extra money. This includes some transport that is not covered, some hotel nights that are not covered, washing, visas and vaccinations etc. You also end up spending a lot of money on food, as you are often having to buy hotel or restaurant food, which is kind-of expensive. I don’t do that at home. 🙂 There are often miscellaneous expenses that just come out of nowhere, and you are in a different country, so you just buy your way out of the inconvenience…
  • I’ve also spent my own money on upgrading some flights. This is not strictly necessary, but when you have a long flight and know tomorrow you will be on stage it can be kind-of daunting. Once again you are just buying your way out of a potential problem.

You can get involved in the community for free by blogging and getting involved in social media, but once you start to travel to conferences the costs start to mount up pretty quickly. I get it really easy compared to a lot of people, but it’s still surprising how much it comes to. For this year alone it’s several thousand pounds. It’s great if your company helps you with this. Mine doesn’t.

Time

I’ve already mentioned about having to buy back extra holidays. The travel time is obvious, but there are other things that are not so obvious.

  • If you are doing new talks, you have to prep them.
  • Even existing talks require some rehearsal.
  • Depending on potential audience, you have to prepare alternatives, or at least plan for how you will deal with different types of crowds.
  • Organising the travel can be a real pain. It’s not always as simple as going to the website of your choice and booking a flight. It can take literally hours dealing with “a certain travel company” before you have your flights and hotels sorted. Even for comparatively easy trips. Once you start talking tours it really starts to sap your time and will to live.
  • There are a stream of emails before, during and after events for you to deal with. It’s quite surprising how much effort goes into just working through this stuff.
  • If you are like me you get the post conference/tour zombie syndrome, where you pretty much have no productivity for a couple of weeks.

It all adds up to be a big drain on your time, which makes me paranoid about how unproductive I am…

Conclusion

Doing this stuff is good fun and I would encourage everyone to try it. It’s great meeting people and seeing how they use technology. It’s a great way to widen your experience, by adding their experience to your own. Just remember it comes at a price, and it might not be so obvious when you’ve not been part of it.

So now I’ve scared you off, give it a go… 🙂

Cheers

Tim…

Which OS is “the best” for Oracle?

This question comes back to haunt me all the time, and did again last weekend, so for the sake of a few minutes here’s my opinion…

We can break down these types of questions into two main categories. People wanting to use unsupported operating systems, and people who what to know which is “the best” supported OS, so let’s deal with them separately.

Unsupported Operating Systems

Don’t do it! 🙂

I do installations on Fedora which is not supported, but as explained here, I do it for a specific reason, and I put a link to that post on every article as a warning.

If you have a specific need to do an install on an unsupported OS that’s fine, but you should never see that in the wild, and you shouldn’t encourage others to do it, as you are compromising their systems. I don’t care if you prefer another OS or unsupported Linux distro. There are supported alternatives for free, so there is no point wasting your time doing this…

Which is “the best” supported OS?

Oracle Linux!

Why? Amongst other things:

  • It’s what the Oracle database is written on. Having lived through the death of Tru64 and the ongoing death of HP-UX, I would always pick the OS the product is being written against. I don’t care what Oracle class as a tier 1 platform. I care about what their developers are working on, and that is predominantly on Oracle Linux.
  • It’s what Oracle are using for Oracle Public Cloud.
  • It’s what Oracle use on Exadata and Exalogic, their flagship engineered systems.
  • It’s a supported OS that is available for free, including errata. You can pay for support and extra features if you want, but it’s totally fine not too, and you still have a supported DB.

If you are a Windows shop, I can understand if you want to run Oracle on Windows servers. I can understand you may have a love for some other supported OS because you think it is technically superior. I can understand if you use RHEL everywhere else and you would rather stick with RHEL. I can understand if the core factor makes licensing another platform cheaper for you. That’s all fine and might make your choice *the best choice for you*, but I still think Oracle Linux is the best choice overall.

Remember, it’s just my opinion! 🙂

Cheers

Tim…

PS. I have an Oracle Linux FAQ here.

PPS. For those that have commented elsewhere, of course this opinion is based on the fact it is 2018, although it has been true for a few years now. I don’t care that Solaris, VMS or any other OS was “the best” for Oracle in the past. If I get asked the question today, I’m going to answer based on today. Sorry, I’m not living in the past, and I can’t predict the future…

Oracle OpenWorld and Code One 2018 : My Sessions

Oracle OpenWorld 2018 and Oracle Code One 2018 are just around the corner. The session catalogs have been around for a while, but they now include the date, time and location of the sessions.

This year I have three individual sessions, one group session and at least one shift in the Oracle Developer Community demo ground. If you are interested, here are my session details.

Monday

Conference: Oracle Code One
Session Type: Developer Session
Session ID: DEV6244
Session Title: Analytic Functions: A Developer’s Best Friend
Room: Moscone West – Room 2003
Date: 10/22/18
Start Time: 09:00:00 AM
End Time: 09:45:00 AM

Tuesday

Conference: Oracle Code One
Session Type: Developer Session
Session ID: DEV6243
Session Title: Cool New Features for Developers in Oracle Database 18c and Oracle Database 12c
Room: Moscone West – Room 2003
Date: 10/23/18
Start Time: 11:30:00 AM
End Time: 12:15:00 PM

Conference: Oracle OpenWorld
Session Type: Tips and Tricks Session
Session ID: TIP1989
Session Title: Even the ACEs make Mistakes – What did they learn?”
Room: Moscone West – Room 3001
Date: 10/23/18
Start Time: 03:45:00 PM
End Time: 04:30:00 PM

Wednesday

Blockchain Beer Demo
Start Time: 02:00:00 PM
End Time: 04:00:00 PM

Thursday

Conference: Oracle OpenWorld, Oracle Code One
Session Type: Business Use Case Session
Session ID: BUS1224
Session Title: DBA Does Docker
Room: Moscone West – Room 3018
Date: 10/25/18
Start Time: 12:00:00 PM
End Time: 12:45:00 PM

I’ll be there a few days early as I have the Oracle Developer Champion and Oracle ACE Director briefings before it.

See you there!

Cheers

Tim…