Video : Oracle REST Data Services (ORDS) : First Party (Basic) Authentication on Tomcat

In today’s video we demonstrate first party cookie-based authentication, or basic authentication, for Oracle REST Data Services when run on Tomcat.

For those of you that prefer to read, 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 Patrick Barel, who is somehow managing to remain out of focus when everything else in the video is in focus. I’m not sure how I managed that… 🙂

Cheers

Tim…

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…