Video : Oracle REST Data Services (ORDS) : REST Enabled SQL

Today’s video is a run through the REST Enabled SQL functionality in Oracle REST Data Services (ORDS).

I wasn’t originally planning on doing this video yet, but the subject of REST Enabled SQL came up a couple of times in the last few days, so I thought I would alter my schedule.

This video is based on the following article, where you can find a lot more examples than are present in the video.

There is a lot more information about ORDS generally in these articles.

The star of today’s video is Emrah Mete, who finished up with an crazy grin. 🙂

Cheers

Tim…

APEX 19.2 Download Available

Yesterday evening Hildo Haenen tweeted that the APEX 19.2 download was available. You had to use the direct file URL and you had to have agreed to the license agreement on another download, as pointed out by Markus Hohloch, for the URL to work, but you could get the software. Of course, I wouldn’t dream of doing such a thing (I totally did…).

Today it seems the download page has been updated and you can get hold of the software in the normal way.

Happy installing/upgrading folks!

Cheers

Tim…

Update: Some people may still see the download page as a 19.1 download. I guess it’s just a matter of waiting for the CDN in your region to update…

PS. First upgrade done… 🙂

“Thank you for installing Oracle Application Express 19.2.0.00.18”

PPS. Joel Kallman just made the official announcement here.

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…