Rewriting Old (Crappy) Content

One of the mildly annoying things about writing articles on the internet and blogging is coming across your old articles that are utter crap. 🙂

Something happened at work yesterday and I responded to the person in question with a few quickly typed notes and thought to myself it would make a reasonable “backfill” type article for the website. Nothing interesting and new, but a useful addition for myself, so I could answer the same question in the future with a link, rather than having to type stuff.

So this morning, before I launched into the “new” article, I did a quick search on my site and that was when I found it. I had already written an article on that functionality, but what I had written couldn’t have been more off the mark if I had tried. We are talking moronic levels of wrongness.

So a few hours later and all the evidence is now gone, except for Google’s cache and the Way Back Machine. I’m not going to tell you which article it was because you will compare them and a little piece of me will die. 🙂

I’ve written about my attitude to rewriting content in my writing tips series. I spend a lot of time rewriting old content. If something is factually incorrect you owe it to potential readers to correct it. It also stops you looking like an incredible Muppet! 🙂

Perhaps this afternoon I will get to do something new for a change. 🙂

Cheers

Tim…

Oracle Applications User Experience (OAUX) News

I’m no UX expert, but it’s a subject I’m interested in. The contents of this post is me forwarding (with permission) the latest OAUX newsletter.

NEW OAUX STRATEGY AND ROADMAP EBOOK: The OAUX team’s updated cloud UX strategy ebook contains information about what guides the design of Oracle’s cloud UX as we continue to evolve. It is based on our research with Oracle’s applications users, and offers you a glimpse at the roadmap and where we’re planning to invest time and resources. Download a copy at tinyurl.com/UXstrategy.

HOW PARTNERS ARE TAILORING UX FOR CUSTOMERS: Perhaps you’ve already seen our recent post on Oracle platinum partner Boxfusion Consulting, which worked with members of the OAUX team to build a custom solution for a customer based on Oracle UX design patterns. Boxfusion has written more about the project and offers screenshots of what they built.

R13 UX HIGHLIGHTS: Have you had a chance to review what you’ll find in Release 13 of the Oracle Applications Cloud? This release leverages the flexibility of the cloud to give customers more control of the cloud’s user interface (UI). Learn more about UX highlights of R13:

NOW AVAILABLE — Oracle Conversational UI for the Enterprise RDK: The OAUX team announces the release of another RDK in a post on the OAUX Blog, “Oracle Conversational UI for the Enterprise Rapid Development Kit (RDK).” Conversational UIs are enterprise-level chatbots that can help streamline a workflow. For more about conversational UIs, see this post on the OAUX blog.

TIMELINE FOR VIRTUAL REALITY: Are you wondering how virtual reality (VR) might be integrated into your company’s software? Tawny Le, a member of the OAUX Emerging Technologies team, or The AppsLab, writes about her research into VR and where it will fit in enterprise systems. Her answer may surprise you.

MORE EMERGING TECH: Check out this short video on Instagram, where one of our OAUX developers moves a Sphero ball through a maze using a Muse headband. There’s also a new post on TheAppsLab blog about using push notifications with the Amazon Echo and devices like it.

Cheers

Tim…

The Definition of Done

One of things I find myself getting increasingly frustrated with is the definition of done by some people and companies.

For context, I’m speaking about work that is allegedly entirely complete, not necessarily what I expect out of the first sprint on a project. Sorry for stating the obvious, but someone will try to explain to me what the “Definition of Done” is from an agile perspective and I’ll get cranky… 🙂

Just off the top of my head I can think some things I think are important.

  • It has to work : I mean actually work! It needs to do what I need it to do, and it needs to do it without falling over every 5 minutes.
  • Functional Testing * : It should have some defined functional testing to prove it works. That should preferably be automated, but manual will do. Either way there should be a definition of what has been tested and the known limitations of that testing.
  • Load Testing * : Just because it works on your PC with one row in the database, that is no reflection on how it will react in a multi-user system with lots of data.
  • Tooling/Automation : There needs to be enough automation and/or tooling to allow the day-to-day operations to happen without having to refer back to the code or run SQL directly on the database to fix things.
  • Documentation : There must be some concise and accurate documentation so people know how to use the product, and what operational tasks, if any, need to happen in order to stop the thing falling in a heap after a few days, weeks, months.
  • Support : I need to know who to fall back on if I’m stuck.

* These may not be fully transparent to you if it is a 3rd party product, but you will soon know if it is happening when you use the product. 🙂

It’s surprising how many things I encounter on a daily basis that don’t seem to live up to this off-the-cuff list. This is not just internal developments, but work produced by expensive consultancy firms and 3rd party products.

Please, please, please finish the darn stuff before you give it to me!

Cheers

Tim…

Oracle Database 18c Released : How to Get Started

Just in case you missed it, Oracle Database 18c was released on Friday. You can read the announcement in this post.

How to Get Started

You might be a bit disappointed if you don’t have an Oracle Cloud account, or an engineered system. Not to worry. You can try Oracle Database 18c on Live SQL.

The documentation is already available. You should probably take a look at the new features doc.

Just a few things to manage your expectations.

Oracle Database 18c is Oracle 12c Release 2 (12.2.0.2)

In the old terms, Oracle Database 18c is a patchset for Oracle 12.2. For quite some time it’s been known Oracle have moved to a new release model for most products, including the database, with the version number now including the year and the quarter etc. How the version numbers now work is explained in MOS Doc ID 2285040.1. The release schedule for these database versions is shown in MOS Doc ID 742060.1.

So before you lose your mind about how few new features there are for a “6 number jump in version”, just think for a second! All this has been reported for months. Mike Dietrich first wrote about the new versioning system in August last year. Many of the announcements at OpenWorld 2017 mentioned 18c was 12.2.0.2 with a different name. None of this is a surprise if you’ve been following the news. 🙂

Oracle Database 18c is Not an Autonomous Database

If you follow me you will have seen these posts.

I can’t believe I’m still seeing this confusion. What has been released in the Oracle 18c database, not the Autonomous Data Warehouse Cloud Service. The product that’s been released is a DBaaS release of 18c, so it’s pretty much what you will get to run on-prem. It’s not autonomous! Once again, none of this is a surprise if you’ve been following the news. 🙂

Oracle Database 18c : Cloud First

The debate about “cloud first” has been going on for some time. I wrote a couple of pieces about it in 2016.

I think the cloud first approach worked out well for 12.2. I don’t remember a release that has been this stable before the first patchset for ages. I think some of that is down to the fact it was released to the cloud first, and the first on-prem release contained a bunch of bug fixes found during that cloud first release.

Another gripe I’ve heard is we aren’t getting 18c until part way through the year, so we will probably get 18.2 or 18.3. By the time we get 18c, the 19c release will practically be due. 🙂 My thoughts on this are:

  • If the first on-prem release is 18.2 or 18.3, but it is stable and usable because a load of bugs have been fixed, and hopefully few new ones have been added, that’s great. I don’t want to use a beta for production.
  • It’s going to be a yearly release, so even if the on-prem version of 18c were to be released on 31st December 2018, you’ve still only got a year before the December 2019 on-prem release of 19c. Obviously I’ve made those dates up to prove a point. That point being it’s a yearly release cycle, so complaining about it coming at “X” months into the year is a bit stupid. The focus should be on the quality of the release.

Personal Feelings About the Release

It couldn’t have come at a better time for me.

You may have noticed I’ve seemed a little quiet on the website front. In fact I’ve recently written 19 articles that are live on the site, but haven’t made it to the front page. Most of them are covering older subjects, or what I call backfill. Many of those articles are covering features that have been available since Oracle 8i, but still relevant now. Since they are not “new”, they’ve not been promoted to the front page of the website, and I’ve not pushed them out on social media. I like to stay in the habit of writing, even if I’m struggling to find things I care to write about. I’m not saying I’ve written everything there is to write about 12.2, but I’ve written about pretty much everything I care to write about at this point.

The new release should give me an opportunity to write about something I can promote without feeling stupid. 🙂

Cheers

Tim…

A week with my Windows 10 desktop…

I mentioned in a previous post I was done with the MacBook Pro, but the combination of it no longer being a brick and my inherent laziness has meant I’ve lost momentum on the switch and I’ve not ordered a new laptop (pause for dramatic effect) yet… Even so I’ve been using a Windows 7 PC at work for nearly six years and last week it got swapped out for a new PC with Windows 10 on it. The new machine is a pretty standard desktop machine (i7, 16G RAM and 500G SSD), so a similar spec to my MBP.

These are the go-to things I must have on my work computer. There are a bunch of other things as well, but these are the mainstays.

  • DropBox : I use this to hold my personal KeePass file on Windows at work, and Mac and Linux boxes at home.
  • KeePass : Each system I log into has a strong unique password. I don’t know any of them. Without KeePass I would be screwed. I use KeePassXC on Mac and KeePass2Android on my phone. I used to run KeePass with Wine on my Linux desktop, but KeePassXC is a better alternative now.
  • Chrome : Other browsers are available. I don’t dislike Edge, but Chrome syncs on all my machines, so I don’t have to mess about maintaining bookmarks.
  • MobaXTerm : My go-to shell. IMHO it’s much better than anything else on Windows, Mac or Linux.
  • UltraEdit : I have a multi-platform unlimited upgrades license, so I use this on all operating systems. If I hadn’t already bought the license I would probably use NotePad++ on Windows, or maybe one of those editors the cool kids use…
  • VirtualBox : I run this on my Windows PC at work, on my MBP at home and on my Linux servers at home. I don’t mind Hyper-V or KVM, but having one product on all three operating systems I use is nice.
  • SQLcl : I recently wrote about my switch from SQL*Plus to SQLcl.
  • SQL Developer : I don’t use this a lot because I am a command line kid, but it’s good to have just in case.
  • SQL Server Management Studio : I don’t write about it a lot, but I do look after a bunch of SQL Server databases, so this is really handy.
  • PortableApps : This is a neat way to run a load of different apps and utils on a Windows box without having to install them. It works great on a memory stick, but if there is a PortableApps version of an application, I will often pick it over a regular install and just have it sitting on my PC.
  • Git Extensions : On my Mac and Linux boxes I use the command line for Git, but on Windows I use Git Extensions. I don’t know why I use a GUI on Windows when I could just use the command line. 🙂 Of all the clients I’ve tried, this is the one that suits me the best. Some of the more popular clients, like GitHub Desktop and SourceTree, drive me nuts.
  • SnagIt : Great for screen/window/region captures, delayed and auto captures,  and annotations when producing docs. I use it on my Windows PC at work and MBP at home. Could use the free “Snipping Tool” on Windows, or the built in stuff on MBP, but I like SnagIt. On Linux I used to use Shutter, but it’s not great.
  • Spotify : Don’t judge me! 🙂

By looking at this list you can probably see why I don’t have too many problems doing my job on any OS. Most of the tools I use are available on the big two desktop operating systems, and Linux in some form. There are just a lot more options for Windows in the non-work arena, which is why I’m interested in switching back to it at home too…

A week in and I’m really happy with Windows 10. I support family members who’ve used it for a long time, so it wasn’t a big shock to me. If anything, this experience has strengthened my resolve to ditch the Mac when I eventually replace my home desktop/laptop. Windows 10 is quick, responsive and it looks nice.

Cheers

Tim…

Update: Someone pointed out I didn’t mention AV. I just assume all Windows PCs, Macs and Linux Desktops are running AV and probably malware stuff. I know I do on all devices. In this case we are talking about a corporate PC, so it’s definitely there.

Hey DBA, fix it, but don’t touch it!

Martin Berger posted an interesting tweet the other day.

“what’s the expectation a DBA should do when “something is slow” – but HW and SW is ok and DBA is not responsible (and must not manipulate) schema or statement?”

The thread includes some suggestions, but I want to come at it from a different angle…

I have a lot of sympathy for this situation. In my current role I look after a lot of databases that sit behind 3rd party applications. In many cases, that means we can’t change the code. We can’t play around with the contents of the schema, for fear of losing support. Our hands are, to a greater or lesser extent, tied. This presents an interesting problem because you’re damned if you do, and damned if you don’t.

Thought 1

My attitude to databases behind 3rd party applications might surprise you. I try to stick closely to what the application vendor recommends, even if I know it to be stupid. Why?

  • Support (1) : As soon as you do something that isn’t in the vendor’s recommendations they are going to blame that for the problem. They’ll ask you to switch it all back and test it, which is just a delaying tactic most of the time and really annoying.
  • Support (2) : You want the system to be as familiar as possible to the support staff and any consultants they send on site.
  • Support (3) : I would say go for the vendor’s preferred platform, even if it’s not your preferred platform. You want to be on the same platform as the majority of their customers. If most of their customers are using Oracle on Windows, I’m going to consider it. If most of their customers are on SQL Server, that’s what I want. Unless you’re a massive customer, you are going to be at the bottom of the food chain if you marginalise yourself. Having lived through the death of Oracle on Tru64 and HP-UX, I want to be on the “main platform” for the application thank you very much!
  • Sometimes their crap application expects the DB to be crap. I had one case where the vendor’s approach to gathering stats was extremely poor. I revised it to bring it into this century and the application died. Their bad code needed bad stats to work.

At this point I expect someone to say, “But Tim, you’re supposed to be good at this stuff. I would have expected more from you!” What’s my response? Walk a mile in my shoes. If you have hours to obsess over one system to make it perfect, great for you, just don’t come and work here! 🙂

Thought 2

When you buy a product it should be fit for purchase. Part of that is the vendor should be able to give adequate guidance on getting the most out of their system. Also, when you purchase a system, you should be doing your due diligence. Having written this, I understand it is a complete fiction. Why?

  • Everything works great on PowerPoint. Procurement seems to be swayed heavily by the quality of the presentations, not the quality of the products.
  • I don’t think many people really know what they are letting themselves in for until they are so far down the line, backing out would be too embarrassing an option.
  • Sometimes, the best product on the market is absolutely terrible. I have one in mind, which my colleagues will be able to guess, where we had a choice of two products, both of which were absolutely terrible, so we picked the least terrible. In a meeting with our IT director I said, you’ve heard the expression, “You can’t polish a turd, but you can roll it in glitter!” This product is the turd inside that glitter!

Thought 3

Even when it’s not a 3rd party app, you can’t always fix it easily. As an application grows it gets significantly harder to refactor pieces of it. Sure, you can change that little bit, but what are the knock-on effects? If you have good regression tests, great. If not, it can be a risky endeavour. I mentioned in another post it took about six months to find some of the performance issues brought about by an upgrade from 11.2.0.4 to 12.1.0.2. It was stuff that had been missed during the testing and only ran once a year. The bigger the application, the easier it is for something to hide.

Even if you can refactor, do you have the time and resources to do it? Applications aren’t static. Sure, there is pressure to fix performance problems, but there is also pressure to add new functionality. What’s best for one group of people may not be good for others.

Thought 4

Martin’s tweet exemplifies the misunderstanding most managers (not him) have about databases. There’s rarely a magic button you can press that fixes performance problems. The vast majority of the time it comes down to bad database design and/or bad SQL. When you can’t change either, you don’t have much choice other than to wait for the next application patch/upgrade from the vendor that might fix it, or throw hardware at it on the DB layer or the App layer, depending where the problem is. {Insert “Run it on Exadata” comment here!} I really don’t think a lot of people outside the database world understand this!

Oracle has a lot of goodies that can be used to mitigate terrible applications without having to touch them directly. Update: I’m not trying to make out all these features don’t come with their own set of issues too. 🙂

But the real solution is to do proper database design, write good SQL, and write good applications on top of that. Performance is a development issue, and we are all developers now. Yes, even you DBAs. 🙂

Anyway, just some thoughts on the situation Martin found himself in, and I find myself in all the time. 🙂

Cheers

Tim… (Chief Presser of Magic Buttons)

WordPress 4.9.3 and 4.9.4

I’ve given up on posting about new WordPress releases as most of you who are self-hosting are probably using the automatic update feature, so by the time you read my release announcement you’ve already upgraded automatically. Not this time… 🙂

Yesterday WordPress 4.9.3 was released and got automatically applied to the five WordPress blogs I look after. As well as fixing a bunch of bugs, 4.9.3 also broke the automatic update feature, so you are going to be stuck on 4.9.3 until you manually click the upgrade button. If you are self hosting WordPress, it’s a good idea to log in and manually click the upgrade button, so you get WordPress 4.9.4, and all subsequent upgrades automatically. 🙂

Cheers

Tim…

OUG Ireland 2018

Next month (22-23 March) is the OUG Ireland 2018 event. Somehow I managed to miss the call for papers, so I wasn’t in the race for a speaker slot, but I just booked my flights and hotel, so I’ll be lurking around.

If anyone drops out of a session after 11:00 on the first day, or at any time on the second day, I’m happy to drop in and fill the spot. Just sayin’! 🙂 If not, I have an overnight stay in Dublin.

Maybe see you there!

Cheers

Tim…

Update: I’m registered as an attendee now through my company’s membership, so I’ll definitely be there. If I get a stray speaker slot, all the better. 🙂

Mac updates disaster (again) and a return to Windows desktop?

A couple of nights ago I tweeted about my MacBook Pro being a brick after the latest updates were applied. It was totally unresponsive. The only thing that would work is the “Option” key at boot to alter the boot order.

This is not the first time this has happened to me, and not just on this machine. I think in total I’ve had to restore the entire OS from TimeMachine three times. Once on a previous MBP and twice on the latest one. Twice it was after updates and once because it just stopped working and I never found out why.

Being a DBA, backups are my thing, so I have a TimeMachine partition on my NAS, as well as manual backups for some of the important things, which in turn get pushed up to an AWS bucket. For good measure I also have an external drive with some backups on, because it always pays to be prepared. 🙂

Due to past issues I always keep a Mac Recovery USB Drive waiting to go. This is how I recovered from the latest issue. The recovery took 6+ hours, then it took about 30+ minutes to apply the update that started all this fiasco. So I now have a patched and working MBP again, for now…

I also mentioned on Twitter I might be moving back to Windows for my main desktop, possibly even installing it on the MBP. That prompted a few comments, so I figured I would mention my current opinions on the top-3 Operating Systems, from a *desktop perspective*.

macOS

I bought my first MacBook Pro in 2009 and have used one as my travel machine since then. About 2.5 years ago I bought a 15″ retina, which became my home desktop machine, and travel laptop combined. The 2009 13″ MBP is next to my bed, used every day as my Netflix machine. 🙂

I was convinced to give Macs a go because loads of people at conferences kept telling me how good macOS was. It’s over 8 years, but I’m still waiting to fall in love with it. This seems to have happened for other people instantly, but I just don’t see the major appeal.

I still find it annoying how little support there is for Macs from software companies. Most of what I want to do it fine, but every now and then I want to try something and it’s not supported on Mac, or I’ve got to wait a few months for the Mac version to be released. It’s still a Windows world, so I’m still using Windows VMs occasionally.

The only really positive thing I can say is I like the build quality of the case, but after my Staingate issue and a problem with the fan I had in the first few weeks of the latest machine, I’m not sure the build quality is quite what it was when I bought my first MBP.

Linux

I first used Linux in the RedHat 5.1 days (not RHEL), which Wikipedia tells me was 1998. At some point I ditched Windows at home and Red Hat Linux became my main desktop. I can’t remember which exact version I switched to, but I’m thinking Red Hat Linux 8. When Red Hat Linux became Fedora I made that move also. When I started to do presentations I bought a laptop which used Windows Vista, which wasn’t as bad as people made out. Later on I switched to a MacBook Pro, but Fedora was my main desktop OS until about 2.5 years ago. Once again, I can’t remember the exact version, but it was one of the 20’s. Somewhere between Fedora 21 and 23 at a guess. Since moving away from a Linux desktop I have kept up with Fedora for every release, but it’s not been a 100% desktop for me.

I learned a lot by using Linux as my desktop, but I spent a lot of time trying to get round device compatibility issues, or get what felt like part-finished software to work. I was forever having to use Wine or Mono to run additional software because the Linux support didn’t exist, or didn’t really work properly. I was also having to use a Windows VM to run some software I needed for my business. Like I said, great learning experience, but hardly what I would call an efficient use of time for a regular user.

Someone on Twitter asked me what I wanted from a Linux desktop and I said,

“Support for all apps I want to use and devices, without having to do weekend projects to fix problems…”

Jared Still commented,

“Twice I have made serious attempts to use Linux on a laptop. It is just too fiddly; every time something New needs to be done it is a new project. All my Databases run on Linux, I do dev on Linux, but it was just too much trouble for many common tasks.”

I agree. I am a total devotee of Linux on the server, but using Linux on the desktop is not a viable option for me. Been there. Done it for a lot of years. Moved on!

Windows

I wrote my PhD thesis on Microsoft Word using Windows 3.11. At every job I’ve ever had, Windows has been my main desktop OS, so I’ve lived through all the versions since Windows 3.11. Even when I switched to Linux at home, I was using Windows at work, and supporting family members using Windows. My work desktop still uses Windows 7, but as of next week it will be Windows 10. My family used Windows 8.0, then 8.1 and now Windows 10. Like most IT people, I have to support family PCs, so it was me who did the upgrades and I’ve used these versions a lot. I’m doing the last minute checks to this post on my brother’s Windows 10 laptop.

Windows is far from perfect, but if you’ve not been using it regularly for the last few years, I think you might be surprised. I like Windows 10.

Conclusion

I think my next move will be Windows.

I have a long history of all three operating systems, so it’s not like I’m going into this blind. I think I probably have a better grounding in all three than most of the people who are trying to push their preference on me. 🙂

Most of the time I am in a shell or a browser, so I can work OK on all three operating systems without much trouble, but it’s when I want to go off piste the differences start to become evident.

You don’t have to agree with me. My choice does not mean your choice is wrong. Likewise, your choice doesn’t mean my choice is wrong.

Cheers

Tim…