WordPress 5.3 “Kirk”

WordPress 5.3 “Kirk” has been released.

I guess many of the people out there are running on hosted solutions, so your upgrade will happen when your hosting company decides to apply it. For those that self-host, you’re just a button press away.

This morning I’ve updated 5 separate blogs, all hosted independently, and they all went through fine. At the moment the upgrades have to be manually initiated, but I’m guessing in a few days they’ll just run through automatically.

Since it was introduced, the Site Health feature (Tools > Site Health) has been improved with each release. It’s worth running this to check if there are any recommended security or performance settings. The new release picked up some things the previous release didn’t. My website was bounced a couple of times while I made changes to sort them.

If I’m honest, I can barely notice a difference. I’m not a “power user” of WordPress. I just write blog posts with it. There are allegedly improvements to the block editing, but I really can’t tell. A couple of the popup controls look a little different, but from the way I use it, that’s about all. I’m sure people with different usage patterns will have a different reaction to this release.

I was interested to see what the Twenty Twenty theme would look like. Not my cup of tea! 🙂

It wouldn’t surprise me if we get a couple of quick maintenance releases coming out soon, but I still think it’s worth pushing forward with this stuff. No point living in the past. 🙂

Happy upgrading…

Cheers

Tim…

Docker Birmingham – November 2019

Yesterday evening I went to the Docker Birmingham meetup, sponsored by Black Cat Technology Solutions.

This event was a single longer session by Matt Todd called “Make Data Science Great Again (Part 2)” I didn’t see part 1, but he gave a summary, so that wasn’t too much of a problem.

Matt started off by introducing the scientific method and discussed reducing variables when testing, so you know the impact of a change. The suggestion being that development and data science should be the same. What better way to reduce variables than to package up a data science lab to make sure everyone is working on the same thing, so there is no/less variability between researchers, and they can focus on their work, not piecing together the kit.

He then went on to discuss Cloud Native Application Bundles (CNAB), and how they can be used to more reliably package multi-container applications, guaranteeing dependencies to a level greater than that possible by using Docker Compose alone. As an example he demoed his Digital Scientists Lab, which is a CNAB bundle containing a bunch of common kit used by data scientists (Jupyter, Spark, Flink, Kafka, RabbitMQ, Nifi, Elastic Stack etc.), which he could in theory give to several people to run experiments. It’s just his playground, but it gives you an idea of what’s possible. Using Nifi to link stuff together looked cool!

I started to make a few mental connections when he discussed the relationship to experimental data, because I look after the infrastructure for a research publishing system, and being able to keep not only the published research, but also the experimental data and potentially a way to reproduce the research findings is pretty important. It keeps those academics honest, if you know what I mean. It’s funny how just a few links to something you know a little bit about, and other stuff starts falling into place.

It was all a bit mind-blowing, but in a good way. I’m still only scratching the surface of this stuff, but it’s really good to see what else is going on in this space. I’ve added a few more things to my list of things to play around with.

It’s a couple of months until the next event, but there’s a CNCF event next month, so watch out for that!

Thanks to the folks at Black Cat Technology Solutions for sponsoring and organising the event, and to the Matt Todd for doing a great session. See you soon!

Cheers

Tim…

Midlands Microsoft 365 and Azure User Group – November 2019

Last night I went to 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.

This event was focused on Microsoft Teams, which is the MS version of Slack. If you don’t know what Slack is, you probably need to come out from under that rock…

First up was Matt Fooks speaking about “Microsoft Teams, the death of email!” We use Teams at work, but I’m a bit of a noob at it and I don’t get involved in any of the administration side of things. The session started with an overview of what Teams does and how it is organised. We spent some time speaking about culture related stuff, which may well be a bigger factor than the tech side of things with regards to transitioning from email to Teams (or Slack) as the primary communication channel. In addition to security and organisational stuff, there was a discussion of integration and applications available from Teams. The first session ended with Urfaan Azhar discussing some of the recent innovations in Teams, covered here.

After food and drinks it was Kevin McDonnell with “Using Bots in Azure/Teams for Automation”. Following the theme of the event, this was a remote presentation over Teams. 🙂 An interesting point raised at the start was how social functionality can help drive adoption and engagement in the company. As an example he showed a daily challenge bot, which allowed people to guess the location of today’s Bing image. It’s not “work”, but it got people engaged in the product and communicating. Amongst other things, there was a quick demo of Power Automate, the new name for Flow, which now has RPA functionality in preview. There was also a demo of Bot Framework Composer, which looks like a pretty easy way to generate the basics of a bot from a simple designer. There was also a mention of Virtual Agents for creating conversational bots (chat bots), which looked pretty cool.

As I’ve said before, I’m not involved in the administration of M365, Azure and Teams, but this is all about context and possibilities for me. My company has some of these products, so it’s good to know what they can do, and maybe take advantage of some of them from some of the stuff I do have a hand in.

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

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.

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…

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…

DevOps : Why do you focus on Flow and Automation?

A few weeks ago I did a DevOps “Lunch & Learn” talk inside my company. I’m not trying to claim I’m “Billy DevOps”, but I need our company to move in that direction or we will die. While I was preparing for that talk I did some Googling for the common complaints about DevOps talks and training courses, hoping to avoid them, and what I got back was a bunch of people complaining about the heavy focus on “The Principle of Flow”, specifically the automation piece of that.

Take a look at any conference agenda and the DevOps talks are mostly focused on automation, whether that’s builds (Ansible, Terraform, Vagrant, Cloud) or Continuous Integration/Deployment (CI/CD). Automation is certainly a part of DevOps, but DevOps isn’t just automation. So why do people focus on the automation aspect of DevOps so much?

I started off my talk by saying something like this,

“I Googled the common complaints about DevOps talks and training, and most people complained about too much focus on the Principle of Flow and automation. I’m going to do the same thing!”

So why did I come to this conclusion? Well, there are a few reasons.

The principle of feedback relies on you getting that feedback and doing something with it, like improving applications or processes etc. I realise I’m being simplistic, but how can you do anything with that feedback unless you have flow sorted? If it takes you weeks/months/years to effect basic changes because of bad flow, the feedback becomes almost irrelevant. It only serves to demotivate you, as you identify all the problems, with no way of fixing them.

The principle of continual learning and experimentation relies on flow being sorted. If you can’t quickly and reliably build kit and deploy apps to it, how do you expect to be able to experiment and learn new things? I discussed this point in a post called Why Automation Matters : Reducing the Cost of Failure.

It feels like the majority of people I speak to don’t have basic automation sorted yet. In public they talk a good talk, but behind the scenes the processes in their company suck just as bad as ours. Either that, or they have one aspect of automation sorted, which they talk about all the time, forgetting to mention the other manual processes that persist.

Let’s not forget that most of the people I see talking about DevOps come from a technical background, and I suspect are probably more interested in the automation aspects of DevOps than the process side of things. Also, in their current roles they have the ability to influence automation more than they do process change, so they are going to focus on a fight they have a chance of winning.

I think it’s important to emphasise to people that automation isn’t the be-all and end-all of DevOps, but that doesn’t stop it being the fun bit for me. 🙂

Check out the rest of the series here.

Cheers

Tim…