Video : Oracle REST Data Services (ORDS) : OAuth Client Credentials Authorization

Today’s video is a zip through the OAuth Client Credentials Authorization flow in Oracle REST Data Services (ORDS).

For those of you that are afraid of videos, this is one of the authentication and authorization methods discussed in this article.

You can get more information about ORDS here.

The star of today’s video is Øyvind Isene, who is trying to act all cool about being in one of my videos, when in fact I’ve made all his dreams come true. 🙂

Cheers

Tim…

In Defence of Best Practices

The subject of “Best Practices” came up again yesterday in a thread on Twitter. This is a subject that rears its head every so often.

I understand all the arguments against the term “Best Practices”. There isn’t one correct way to do things. If there were it would be the only way, or automatic etc. It’s all situational etc. I really do understand all that. I’ve been in this conversation so many times over the years you wouldn’t believe it. I’ve heard all the various sentences and terms people would prefer to use rather than “Best Practice”, but here’s my answer to all that.

“Best practices are fine. Get over yourself and shut up!”

Tim Hall : 18th October 2019

I’ve said this more politely in many other conversations, including endless email chains etc.

When it comes down to it, people need guidance. A good best practice will give some context to suggest it is a starting point, and will give people directions for further information/investigation, but it’s targeted at people who don’t know enough about what they are doing and need help. Without a best practice they will do something really bad, and when shit happens they will blame the product. A good best practice can be the start of a journey for people.

I agree that the “Always do this because ‘just bloody do it!'” style of best practice is bad, but we all know that…

I just find the whole conversation so elitist. I spend half of my life Googling solutions (mostly non-Oracle stuff) and reading best practices and some of them are really good. Some of them have definitely improved my understanding, and left me in a position where I have a working production system that would otherwise not be working.

I’m sure this post will get a lot of reactions where people try and “explain to me” why I am wrong, and what I’m not understanding about the problems with best practices. As mentioned before, I really do know all that and I think you are wrong, and so do the vast majority of people outside your elitist echo chamber. Want to test that? Try these…

  • Write a post called “Best Practices for {insert subject of your choice}”. It will get more hits than anything else you’ve ever written.
  • Submit a conference session called “Best Practices for {insert subject of your choice}”. Assuming it gets through the paper selection, you will have more bums on seats than you’ve ever had before for that same subject.

Rather than wasting your life arguing about how flawed the term “Best Practices” is, why don’t you just write some good best practices? Show the world how they should be done, and start people on a positive journey. It’s just a term. Seriously. Get over yourself!

Cheers

Tim…

PS. I hope people from yesterday’s tweets don’t think this is directed at them. It’s really not. It’s the subject matter! This really is a subject I’ve revisited so many times over the years…

Updates

Due to repeatedly having to explain myself, here come some points people have raised and my reactions. I’m sure this list will grow as people insist on “educating me” about why I’m wrong.

I prefer “standard” or “normal” to “best”. As I said at the start of the post, I’ve heard just about every potential variation of this, and I just don’t care. They are all the same thing. They are all best practices. It’s just words. Yes, I know what “best” means, but that’s irrelevant. This is a commonly used term in tech and you aren’t getting rid of it, so own it!

I’ve seen people weaponize best practices. OK. So are you saying they won’t weaponize “standard practices” or “normal practices”? They won’t ever say, “So are you telling me you went against normal practices?”. Of course they will. Stupid people/companies will do stupid things regardless of the name.

But it’s not the “best”! Did you even read my post? I’m so tired of this. It’s a best practice to never use hints in SQL. I think that’s pretty solid advice. I do use hints in some SQL, but I always include a comment to explain why. I have deviated from best practice, but documented the reason why. If a person/company wants no deviation from best practice, they can remove it and have shit performance. That’s their choice. I’ve been transparent and explained my deviation. If this is not the way you work, you are wrong, not the best practice.

Most vendor best practice documents are crap. I have some sympathy for this, but I raise tickets against bad documentation, including best practices, and generally the reception to these has been good. The last one was a couple of weeks ago and the company (not Oracle) changed the docs the same day. I always recommend raising an SR/ticket/bug against bad documentation. It doesn’t take much time and you are improving things for yourself and everyone else. I feel like you can’t complain about the quality of the docs if you never point out the faults.

Virtualbox 6.0.14

Virtualbox 6.0.14 was released recently.

The downloads and changelog are in the usual places.

I’ve done the install on Windows 10, macOS Catalina and Oracle Linux 7 hosts with no drama.

If I’m being super picky, the scaling on Windows 10 is kind-of wacky.

Having said that, it seems loads of apps have weird issues when dealing with a laptop with a 4K panel, and a secondary monitor that’s not 4k (it’s 3440×1440).

I rarely open the gui, as I do most things with Vagrant, version 2.2.6 out now, so after this post I will probably forget this was even an issue… 😉

On macOS and Oracle Linux 7 hosts everything is visually fine.

The important bit is I’ve done a bunch of builds and not hit any issues. Happy days! 🙂

Cheers

Tim…

PS. Check out my Vagrant builds for Oracle 19c.

There is a video that shows you how they work here.

Video : Oracle REST Data Services (ORDS) : Create Basic RESTful Web Services Using PL/SQL

Today’s video is a brief run through creating RESTful web services using Oracle REST Data Services (ORDS) and PL/SQL.

This is based on the following article, but the article has a load more examples and variations compared to the video.

I don’t mention handling complex payloads or status information, but you can find that here.

You can see all my other ORDS related content here.

The star of today’s video is Alan Arentsen. Finding a clip without him giggling or laughing was kind-of tough… 🙂

Cheers

Tim…

OGB Appreciation Day 2019 : It’s a Wrap (#ThanksOGB)

Yesterday was the Oracle community OGB Appreciation Day 2019.

I would like to say a big thank you to everyone who took the time to join in. Here is the list of posts I saw in chronological order. If I missed you out, give me a shout and I’ll add you. 🙂

Another happy “Blog Birthday” celebration for Flora B., who first started blogging because of a previous appreciation day. It’s always good to see one of the children come home. 🙂 

Once again, thanks everyone for getting involved and of course #ThanksOGB

See you all next year!

Cheers

Tim…

OGB Appreciation Day : Infrastructure is dead. It’s all about the platforms baby! (#ThanksOGB)

Here’s my entry for OGB Appreciation Day 2019

If you’ve followed me in recent times, you’ve probably heard me say something like this.

“Infrastructure is dead. It’s all about the platforms baby!”

I might not have added the “baby” though. 🙂

This may seem like an unusual statement for someone that has been involved in infrastructure for most of their working life. So what gives? I think this is a natural progression for someone like me.

Automatic Updates

I’ve always pushed to move to the latest and greatest version of things. I push upgrades and patches quite aggressively. I always want people to be using the latest versions, and the latest features on those versions if possible. That can be problematic for people who don’t no-life this tech game.

Using a platform, where it’s someone else’s responsibility to keep the platform up to date, is great. Without it, welcome to technical debt town, population you!

Reducing Complexity

Life is getting more complex, not simpler. Take a look at something like the CNCF landscape and tell me how confident you are putting together a bunch of those projects to deliver a production system. There is some great stuff there, but I would be very worried if someone put me in charge of that. Sure, things like OLCNE will make things easier, but it’s still going to be scary. Why would I put myself through that stress if there is a service/platform built on that, and I can get all the benefits, without the hassle? I wouldn’t.

I don’t know how to build a car, but I can drive one. I want a platform that lets me drive, without having to build, or in some cases even understand what’s under the hood…

Take the robot out of the human

I’m not sure who came up with this phrase, but I hear it all the time, and I’ve started to use it all the time. I’m a fan of automation, but for many people the transition from manual build to automated build is really hard. One of the bonuses of good platforms is they come with automation built in.

Even when you can’t do conventional automation, Robotic Process Automation (RPA) tools like UiPath can allow you to automate existing manual tasks to make them automatic, or semi-automatic.

Clearly this is not just about platforms and cloud, but for a lot of people they need a sufficiently big push to get them moving. For some a cloud project and adoption of platforms may will be that push.

There are lessons to be learned

You need to be at least trying platforms and cloud services because they alter your approach to things. It’s very easy to get set in your ways and do things the same every time. My copy/paste foo is strong too!

When you start to play around with platforms and services you will start to rewire you brain and it will alter the way you approach tasks, and alter your expectations from yourself and others. My “definition of done” is a lot different now than it was before I started using services.

Even if you stay on-prem, you should be aiming to emulate the experience of cloud, because it’s what your users expect, or will come to expect.

And nothing can go wrong!

Believe me, I know what can go wrong. I have first-hand, and ongoing experience of what can go wrong, but it still doesn’t alter my opinion that this is the correct course of action.

A little something I’ve said in a few conversations goes something like this. People that work in technology are often into science fiction. When the captain of the USS Enterprise asks, “Computer, what is the composition of that nebula?”, they don’t expect the computer to answer with, “I can’t give you the answer. Someone needs to extend a tablespace!” How can some of us be so into the science fiction future, yet be so committed to a zero-change policy where our systems is concerned? It doesn’t compute for me.

Unless you are working for a cloud provider, I think you’ve got to move beyond the obsession with “internals” and focus on adding value to the business. We need to elevate our focus…

Where do I start?

If you are reading this you are probably an Oracle developer or DBA, so a good place to start would be the Free Tier on Oracle Cloud. Dip your toe in the water. If you like it, maybe this will be the start of something big for you!

Cheers

Tim…

Video : Oracle REST Data Services (ORDS) : AutoREST

Today’s video is a demonstration of the AutoREST feature of Oracle REST Data Services (ORDS).

This is based on the following article.

I also have a bunch of other articles here.

The star of today’s video is Connor McDonald of “600 slides in 45 minutes” fame, and more recently AskTom

Cheers

Tim…

My Oracle Support (MOS) : Where do we go from here?

Well, it happened again. I lost the plot on Twitter … again. I deleted them a lot quicker this time, but a few people saw them … again…

Today’s “incident” was because I was juggling multiple SRs, where I don’t think I’m getting straight answers, and what I believe is a reasonable level of service.

Having deleted the tweets I put out this one.

I am venting because I have no filter these days, and I am quickly deleting them because I know they will cause problems for some of my friends inside Oracle.

I feel like I want to go to war over this, but I know the best thing to do is to go home and play with tech…

I’m sure the conspiracy theorists out there will make a thing out of these tweets disappearing, but what I said above is it. I was walking away from a fight because of my ties with Oracle, but not because I was worried about the impact on me. I have a lot of friends in Oracle and I know some of them get it in the neck when I lose my shit like this. Then I re-read my post called Oracle ACE = Oracle’s Bitch? and wasn’t too happy with myself.

The first draft of this post was me backing off from a fight. The second draft was me resigning from all ties with Oracle. Now I figure the most sensible thing to do is to try and figure out a way forward.

I have an incredible level of access to information and people within Oracle, but you shouldn’t have to be in my position to get a reasonable level of service. Part of what frustrates me about this is I know I can DM someone and “jump the queue”. Every time I have a meltdown, my DMs light up with people wanting to help, in part because they know me and genuinely want to help, and no doubt in part as damage limitation. It would be really easy to shut up and think, “I’m alright Jack!”, but then I’d become what I said other’s should not!

Where do we go from here?

Part of the Oracle re-branding is about being customer focused. What better place to start than support? It’s pretty clear that Oracle Support is in a really bad place. If someone quotes great resolution/response metrics to me, I would like to point them back to my previous post on the automated responses. I could also mention SRs with a status of “Solution Offered”, where IMHO no valid solution has been offered…

I’m happy to be part of the process. I’m not saying I can help, but I’m willing to try. I could do this in the background, because I now know the people in MOS I should contact, but I feel like this sort of thing needs to be public. To build any level of trust people need to feel like they are being listened to, see an action plan, and see that it’s delivered.

So come on Oracle. Put your money where your mouth is. Where do we go from here?

Cheers

Tim…

PS. You might want to read this old post called Oracle : Technology Company or Service Company?

PPS. I’ve now got some movement on my issues due to internal folks at Oracle, and one of the issues is due to my lack of understanding. 🙂 It was never about the SRs themselves. It was about the emotional cost of dealing with Oracle Support to get a reasonable response, even if that response is “Don’t be stupid, Stupid!”

Midlands Microsoft 365 and Azure User Group – October 2019

On Tuesday evening I went to the second event of the Midlands Microsoft 365 and Azure User Group. It was co-organised by Urfaan Azhar and Lee Thatcher from Pure Technology Group, and Adrian Newton from my company.

First up was Matt Fooks speaking about security in M365 and Azure. He did an overview and demos of a number of security features, giving an idea of their scope, how easy/hard they were to configure and importantly what licenses they were covered by. Some of this was a bit over my head, but for me it’s about understanding possibilities and what’s available, even if I wouldn’t have a clue what to do with it. Other people in the company do that stuff. At one point I leaned over to one of my colleagues and said, “Could we use that for…”, and he came back with, “Yeah. We’ve done a POC with that. Look!”, then showing me an example of it working with one of our services. 🙂

After food and drinks it was Urfaan Azhar speaking about Azure pricing, and working through an example with the Azure Pricing Calculator. I’ve been using AWS for a few years, so when I have questions I tend to use AWS terminology, which I’m sure can be annoying, but I’ve not learned the new language yet. As I expected, it’s “the same but different”. 🙂

Both guys were keen to point out that just doing a lift & shift from on-prem to cloud using infrastructure as a service (IaaS) isn’t what you should be aiming for. The real value comes from using platforms. My feelings exactly! If I just put what I have now into the cloud, it’s just other people’s servers. I’m more interested in what I can offload to give me more time to do other things, and to stop me screwing up on the daily because I’m to busy to do “the basics”…

Thanks to everyone who turned up to support the event, the speakers, and the sponsor Pure Technology Group. See you at next month’s event.

Cheers

Tim…

MOS Auto Responses : What’s my problem with them?

A couple of days ago I took to Twitter with a rather “incendiary” tweet caused by my frustration with MOS. It’s not about the specific SR or issue itself. It’s more a frustration with MOS generally and the way they handle some requests, specifically the automatic responses. I’ll explain.

The Moaning

  • I had an issue.
  • I Googled and didn’t find too much in the way of help.
  • I opened a SR about the issue, including an image to help explain my issue.
  • During that process it suggested some other stuff I might want to look at, one of which was quite interesting, but none of which were actually relevant. No problems I thought. At least I’ve learned something…
  • Next thing I get some emails about updates to my call. I logged in to find these 4 responses.
Response 1
Response 2
Response 3
Response 4
  • I was really angry about the auto-responses, and unloaded on Twitter using some rather “choice language”…

I totally understand a request for more information. The response of, “Please upload the RDA/TFA/AHF file”, is common and understandable on many occasions. It does annoy me more than a little when you are asking a general question, that is not specific to your software version, but you still have to upload it. Whatever…

So why did I lose the plot this time?

  • There are 4 messages, instead of one consolidated message. I hate that. It’s annoying. I just know that someone is running a report saying, “Look, we’ve done 1 gazillion responses this month”, but it’s all generated crap! This should have been one concise and clear request for additional information.
  • Just look at that second response. Are you kidding me? Loads of rubbish I don’t need to know and repetition of the first message. If I sent this sort of message to my users I’d be marched out of the building. If you think this is acceptable, please quit your job now! You have no place in a role that is even remotely user-facing.
  • How do you think people are going to respond to this? It makes me angry and I kind-of know what I’m doing. How do you expect some junior member of staff to respond to this? I’ll tell you how. They will ignore it, never fix the issue and think “Oracle is crap”. Thanks! Just what we need. I asked a colleague to look at it and their response was, “It’s like they don’t want you to continue with the request”. See?
  • People pay a lot of money for support, and this is what you are presented with? Really?

I’ve now deleted the tweet. I was *not* asked to delete it, and if I had been I definitely would not have, but I decided to because it was gathering too much momentum, such is the general feeling about Oracle Support, and it was not meant to be me grandstanding. It was just genuine frustration with a service my company is paying money for!

I’m a fan of automation. I understand wanting to streamline the SR process, and if automation can help, that’s great, but this is not the way to do it!

What should it look like?

It’s just my opinion, but I think something like this would be reasonable.

We need more information to continue. Please run the following Trace File Analyzer (TFA) commands and upload the files.

1) Run this command on the Agent target machine and answer the questions when prompted.

./tfactl diagcollect -srdc emtbsmetric

2) Enable debug on the OMS server using this command.

./tfactl diagcollect -srdc emdebugon

Repeat the actions in EM that you are trying to diagnose, then disable debug on the OMS server using this command.

./tfactl diagcollect -srdc emdebugoff

If you need more information about TFA or manual file collection for this issue, check out DOC ID 2279135.1.

If you would like to read more about the My Oracle Support automatic troubleshooting, check out Doc ID 1929376.1.

A single message that asks for the relevant information, and gives links if you need something more. That gets the job done, isn’t scary to new people and isn’t going to cause me to lose it on Twitter.

Feedback from Oracle

You may have noticed this post in my feed for a couple of days, but when you clicked on it, it was password protected. That’s because I wrote the post to provide some better feedback than my initial tweet, but delayed the publication while I waited for some feedback from Oracle. I was put in contact with the Vice President, Global Customer Support and the Sr. Director, DB-EM Proactive Support. Their respective responses were as follows. I’ve left out their names as not all folks like being name-checked.

“Hi Tim, Just reviewed your blog post and agree that the auto-responses are verbose. Adding our DB proactive lead who will follow up with you directly on planned next steps.”

Vice President, Global Customer Support

“Hi Tim, I have reviewed your blog regarding your experiences with SR automation. I want to thank you for providing this feedback. Direct feedback from users of SR automation is extremely important and valuable. We take the effectiveness of our SR automation very seriously. Our intention is to provide a streamlined support experience which allows us to identify information, up front in the SR, that will result in the shortest resolution time. There is a balance between casting a wide net to ensure we receive all diagnostic data required vs. the ease of consuming/executing the request to get that data. Admittedly, we don’t always strike the correct balance.   

Regarding the case described in your blog, I agree that our diagnostic messaging should be more concise and consumable. I also appreciate your thoughts on using collectors, such as TFA, to simplify the instructions. We have a plan to address this specific automation flow to eliminate superfluous information and provide a clear message around what is required and how to obtain that information. Additionally, I will incorporate your feedback into our review process, which is conducted on an on-going basis for our automation flows. Please feel free to contact me if you have any other feedback or suggestions. As I said, this kind of feedback is appreciated and always welcomed.”

Sr. Director, DB-EM Proactive Support

The whole Twitter episode wasn’t my finest moment, but if nothing else I’m glad the message got through to the correct people. Of course, all of this is just words unless something substantial happens. Please don’t let us down!

To everyone else out there, please continue to add your own constructive feedback on all things (in life). There’s no point complaining about a problem, if you’ve never actually raised it. I think of it like voting. If you didn’t bother to vote, I don’t really think you are entitled to moan about the outcome.

Cheers

Tim…

PS. Comments are disabled.