jump to navigation

Top and Tailing Bulgaria. November 9, 2016

Posted by mwidlake in conference, Meeting notes, Presenting.
Tags: , ,
add a comment

Tomorrow I head off to Bulgaria for the BGOUG Autumn Conference 2016. I’ve only been to the Bulgarian user group once before, having heard from so many people what a fantastic user group conference it was – and they were right. Milena Gerova and her team do an amazing job of organising it and make everyone feel really welcome. So I am really looking forward to my return.

Bryn always gets a good crowd but this was typical for  Bulgaria (sorry it's blurry)

Bryn always gets a good crowd but this was typical for Bulgaria (sorry it’s blurry)

In one of those strange quirks of fate, I’m “opening” the conference and also “closing” it. I.e. my first session is in the first slot on the first day and my last is, well, the last slot on the last day. In between I’ll be enjoying the other talks, doing a third session myself and trying to avoid repeating the “6am with the crazy Ukrainians” experience of last time!

Having the first slot on the first day is just perfect for the session I am doing “The heart of Oracle – How the Core RDBMS Works”. A while back I realised that there are a lot of experienced and highly capable Oracle practitioners who do not actually know some of the basics of how the database software works {if I look in the mirror I see one of them}. That is, why redo is so important, what goes into the redo stream, that all table and index data is accessed via blocks (until you get to that fancy engineered systems stuff) and it is blocks that go into the SGA buffer ache, what a consistent get is or how Oracle finds a block of data in memory. That last one I had no clue about until about 6 years ago, I had made some stupid assumptions.

When you discover these things or tell someone about them, a common response is “Oh! That makes so many things make more sense! I wish I had known that from the start…”. So this talk tells people about these things and, though it understandable by anyone who has only got as far as writing their first SELECT statement and was originally aimed at those new to Oracle, most experienced people take something new from it that helps make all those more detailed talks make sense. It really suits all levels. Thus having it at the start of the conference will hopefully help give them a better understanding of the core framework of the Oracle RDBMS into which knowledge of specific areas can slot into.

The location in Pravets is lovely

The location in Pravets is lovely

The final session is equally suitable for everyone. Which is good as it is the only session available at that time! It is a “Discussion Over Beers About Oracle Database” – beers are available to all. It’s a fun and relaxed way to round off the event, with questions coming from the audience. I loved the session last year and this time I’m up on the panel. Bryn Llewellyn was sniping from the audience last year (as only Bryn can) so they are doing what you should do with any troublemaker, which is to put them in charge :-). So Bryn is also on the panel, along with Joze Senegacnik and Tim Hall.

Sometime in between those two bookends I’ll do my talk on clustering data for better SQL and overall database performance but more importantly I’ll be listening to many of the other great talks. I’ve looked over the agenda and I know I will have the complaint common in any conference with good contents – more than one talk I want to see at most points in the day. Thankfully, having been a bit of a conference tart this last few months, I have seen some of them already which makes my decision making easier.

Traditional Dancing is a Traditional Entertainment (and my shot is traditionally blurry!)

Traditional Dancing is a Traditional Entertainment (and my shot is traditionally blurry!)

Another thing I am looking forward to is enjoying the hospitality & entertainment that BGOUG is so famous for. The conference is in a hotel that is not that near many other things, which could be a problem. But the organisers make sure that we are entertained in the evening and the food last year was great. This made even better by spending time talking with the delegates and other speakers in the evening. Last year I was struck by how engaged the audience was during sessions and how enthusiastic they were to learn & share outside of them.

Just like The Polish user group conference I went to in October, BGOUG has the three things a great conference needs: Excellent presentations; good organisation; an engaged audience. For some people there, this will be their 10th or 20th time (or even more) at the BGOUG conference. Nothing says more than that.

From Forms to DB v12.2 via Ask Tom, the Real World Performance Team, & The Optimizer Lady – UKOUG TECH16 next month November 7, 2016

Posted by mwidlake in conference, UKOUG, User Groups.
Tags: , ,
2 comments

In just under 1 month the annual UKOUG conferences are happening – Tech16, Apps16 and JDE16

screenhunter_124-nov-07-13-05

All three run from Monday the 5th December through to Wednesday the 7th in the centre of Birmingham, at the International Conference Centre – and if you are registered for the main conference you can register for free for Super Sunday the day before the main conference kicks off. Places on Super Sunday are limited and are allocated on a first come first served basis.

{I do not usually sat this but -this post is my opinion, not sanctioned by UKOUG. I may do a lot for the UKOUG but I’m just a volunteer not a member of the board or employee}.

I’ve been coming to the UKOUG Tech conference for pretty much the whole of this century. I think I started in 2002 and I have only missed one year since then and I come for the whole event every time. Why am I so keen to make it to this particular conference? Because it has a huge breadth of technical content and the UKOUG is independent of Oracle – that last point is vital and some people do not realise that UKOUG is an independent user group. They are not financially supported by Oracle and they can put on whatever talks they want to. I like to think we have a mutually beneficial relationship with Oracle but it is not a marriage!

As a result of that independence we (and I can & should say “we” as I am involved in organising the conference) do not have to follow the current sales and marketing direction of Oracle Corporation. If you have seen any Oracle marketing activity over the last 2 years you would have picked up on a slight “cloud” bias from them. If you went to Oracle Open World 16 then you would have had 5 days of being force-fed cloud, cloud and more cloud. Cloud is going to save the world it would seem.

Only Cloud is not everything. Many companies that use Oracle are not going to cloud-based systems yet, some have no interest in cloud offerings and though only a fool would ignore Cloud, most technicians are here and now still mostly dealing with traditional services that are hosted somewhere on your premises.

So what do we have at Tech16? Up to 14 concurrent sessions running through each day. Have a look at the agenda here. There are 3 or 4 database streams on each day, at least two streams covering development and pretty much 3, at least one whole stream dedicated to Systems (including engineered solutions like Exadata), Big Data and Business Analytics, plus other streams on each day.

The 12.2 version of the database is out. But it isn’t. It’s in the cloud but it is not in OTN to download. So where exactly is it? Even now, that is not clear and Oracle Corp is not helping to make it clear. But it will be at the conference. We have talks on 12.2, what is in it, what is new. So if you want to know the latest, you will be able to get a lot of information about it at UKOUG Tech16. It’s not 100% clear if it will just be called “next generation” or not. After all, when it is generally available maybe Oracle will call it something else. I’m hoping for Oracle Twelveteen.

A complaint I hear from people over and over again every year is that there is nearly always 2 or more talks of interest at any time, for almost any point in the conference. Whilst I sympathise with how annoying that is, what this indicates is that we get so many excellent talks submitted to the conference that we are able to pick only good ones :-).

This is not to say we get the scheduling totally right. With so many streams, with each delegate’s sphere of interest being different and with the juggling that happens as some speakers have to ask for slot changes or pull out (stuff happens, sometimes a speaker cannot make the event no matter how much they would like to), the ball is occasionally dropped and talks on very similar topics occur at the same time that would have been better spread apart. If this happens, please let one of the organising staff know so we can track how often we get it wrong and learn for next year. (But please, don’t shout at anyone – a lot of people put a lot of effort into this).

As for the content, it is across the board. We have talks on Forms as we realised is was a missing area and is still used by lots and lots of people. We have our introductory pathways that are explained in the conference brochure – a recommended itinerary of talks for people new to that area of tech. We had deep dive stuff for the ner… very technical people. And we have some of the best speakers in the business plus the official word from Oracle. Connor McDonald is doing the Database keynote and a couple of other sessions and the other half of “Ask Tom”, Chris Saxon, is presenting too – and both will be taking questions. “SQL Maria” Colgan will be talking about in-memory and the Real World performance team is represented by the evergreen Graham Wood. I know I’ve concentrated there in the DB part of the conference but it’s the area I know best and the one the majority of you looking at this blog will be interested in.

This did not happen at one of the socials. You did not see this

This did not happen at one of the socials. You did not see this

There is another reason I come to the conference (overlooking the slight issue that as I help organise it I am not going to miss it!) which is the social side. Other conferences have social events that secretly we at the UKOUG are envious of – but the larger you get the harder it is to organise special events but we try to ensure there is plenty of stuff going on after the talks. We make sure there are a couple of events each evening that we can all get together at – Exhibition Drinks, Community Drinks and the Tuesday party. Drinking is not obligatory but meeting people is!

Or this - move along, nothing to see

Or this – move along, nothing to see

I go to UKOUG TechXX for the content. I stay up until late for the social. If you have never been before and you have the opportunity, well I’ve been coming along for 13 or 14 years. I must think it’s worth it.

Pint with Oracle User Group – First International POUG (Polish) Conference October 14, 2016

Posted by mwidlake in ACED, conference, Friday Philosophy, Meeting notes, Presenting, User Groups.
Tags: , , ,
4 comments
Kamil kicks it all off: Apparently water has bacteria in it - so drink beer! (stolen from Pieter v.Puymbrooeck)

Kamil kicks it all off: Apparently water has bacteria in it – so drink beer
(stolen from Pieter v.Puymbrooeck)

Last week I enjoyed being at the first international conference that the resurrected Polish Oracle user group has put on. I say enjoyed – I actually mean really enjoyed! Why did I like the conference so much? Three major components came together.

(Before anyone rushes to mention the Polish custom of entertaining you with alcohol, that was not one of the three parts. It was the fourth instalment of the trilogy…)

Let’s start with a little history. I first came across Kamil Stawiarski just a year or so back. I had blogged about Pragma UDF and how it improves the performance of PL/SQL functions called from SQL – and then came across his blog post on it. About the same time he came across mine and we got in touch. He’s an “Oracle DBA type” and his company is called ORA600! {if you had not noticed, so is mine}. The similarities do not stop there. He loves beer+presenting (for some reason I have this reputation…) and using an axe. I am a little more technical – as I use a chainsaw as well as an axe. In respect of Oracle Technical, I’ll give Kamil the prize in that. The biggest difference is I am old enough to be his dad. I might adopt him. Anyway, Kamil came to the UKOUG Tech15 conference, we met up and he asked me (as well as several others) if we as international speakers would support him running a conference in Poland? Of course! I had so much in common with Kamil, he and his travelling companion Adam were so friendly, positive and knowledgeable that it was an easy decision.

A date was chosen, Kamil let us all know and those of us who could went along. The conference took place in Warsaw on Friday 7th to Saturday 8th October, with a speaker’s meal on the Thursday. There were two streams during the conference, one mostly on database topics and the other mostly on development & BI. We had a lot of well-respected and talented speakers including Jim Czuprnski (who has Polish roots), Joze Senegacnik, Piet de Visser, Heli Helskyaho,Phillipe Fierens, Neil Chandler, Sabine Heimsath… Apologies to the others I have not mentioned. Why did we all turn up? Because we were asked to. Most of us presenters just enjoy presenting (as we crave attention and being asked to present appeals to our egos 🙂 ). Being serious, if you want to organise an Oracle conference or user group meeting, don’t be afraid to ask people to consider coming along. The worst we will do is say “no” (and please be cool if we do; we all have other calls on our time).

What a set of Mug Shots :-)

What a set of Mug Shots 🙂

With this cunning trick of simply asking people he thought could speak well to come speak at his conference, Kamil had got himself a bunch of good speakers, one of the three things you need for a good conference.

Speaker gifts

The speaker gifts were just so apt!

The next part that is key is the organising of the conference. So Kamil set too organising it. Well, I say Kamil orgainised it, he actually got Luiza Koziel to organise most of it, which he says was one his best moves! So he, Luiza and probably half a dozen people I should thank but have not (I really should get a list of the volunteers), spent a lot of time and effort planning the event. Update – Kamil let me know the names. In his words:

Rafal Rebecki- he found all sponsors.
Pawel Chyliński, Adam Jagielski and Radosław Kut – always ready to help with every issue we had challenging us
Kamil Kozieł – directly responsible for all marketing stuff like website and social media
Adam Boliński- help with organising speakers and preparing agenda he was also one of the sponsor
Of course Luiza Kozieł – she was responsible for everything 🙂 finding venue, organising hotel and gadgets. she did most of the work

I’ve helped out with many conferences & meetings, from the huge behemoth that is the UKOUG Tech conference to small SIGs and special interest groups. It takes a lot of work – much, much, much more work than you can appreciate until you do it yourself. They sorted out a suitable venue, they compiled the abstracts for the talks and speaker profiles (often not an easy task, some of us are such prima donnas), put together the web pages for it and advertised the event well. During the event they smoothed out the issues that invariably crop up and they looked after all the delegates and speakers. The food at the venue was excellent, both the speaker’s meal and the conference party were fantastic, signage at the venue was good, crowds were managed and encouraged back into sessions at the appropriate time. There are a dozen other things that go to making the mechanics of an event work and, from what I could see, it was all done well or quickly resolved such that I did not notice.

Heli Helskyaho's crowd is a nice example of how busy the sessions were

Heli Helskyaho’s crowd is a nice example of how busy the sessions were

The organisation was great, the speakers were fantastic, what is the third thing you need?

The final thing is sort-of beyond the control of the organisers. For a conference or meeting to work you need an engaged audience. The audience does not have to be huge (though full rooms really help) but they have to be there mentally as well as physically. POUG got an excellent, large crowd of delegates. As a presenter I like it when I feel looked after. A speaker’s meal is great, havng registration and any admin done for you by the “office” is a help. There are lots of “nice” things you can do for the speakers but, for me at least, there is only one absolute. What makes a conference great for a speaker is actually having delegates who want to be there and want to hear presenters speak – and who then are chatting between themselves, challenging the speaker “experts”, asking questions in sessions, continuing discussions outside the presentations and generally making that “buzz”. Lots of things can be done by both the organisers and, to some extent, the speakers to help this. But in the end it comes down to having an involved audience. And in Poland we had that in spades. It was very, very “buzzy”.

Don't water the speakers after midnight!

Don’t water the speakers after midnight!

Obviously the organisers can prime the pump by getting the speakers and organisation right and I think it helped that the people leading the conference were relaxed and yet determined that everyone had a good time. But in the end, I think the delegates take some of the credit for making the conference so good.

All in all it all came together wonderfully in Poland last week. It’s in my top three conference experiences. (I won’t confirm where or which the other three are – It changes depending on what aspects I am thinking about).

The end of the conference summed it up. Just as in Ireland earlier this year, the last session was an open, “panel” affair with some speakers at the front and an intention to get the audience involved. At POUG we had a discussion about why DBAs are so arrogant and Developers so useless. Of course, neither statement is true all the time and it led to a lively, good-natured and often very funny discussion. The organisers had ensured that this could roll on if there was the desire to do so and the audience demonstrated that there was. I am sure we went on for twice the allotted time! Finally POUG stepped in and closed the conference (in a very nice way).

The DBA-Dev "love" - thanks to Kiran Tailor

The DBA-Dev “love” – thanks to Kiran Tailor

I’ve got lots of stories to tell about the POUG conference but that can be in another post – or simply when chatting at other conferences or in a a bar. Some of them involve the use of alcohol as an enabler in IT.

I hope there is another POUG next year. I hope it is even half as good. I especially hope they let me come back!

OTN Appreciation Day – Instrument Your Damned Code. Please! October 11, 2016

Posted by mwidlake in ACED, performance, PL/SQL.
Tags: , ,
1 comment so far

Today is OTN Appreciation Day.

This day is the idea of Tim Hall, Mr OracleBase, and you can See his post here. The idea is that as a sign of appreciation to OTN we do a technical (or not so technical) post on a feature of Oracle we like. I’m going to visit an area I have mentioned before…

DBMS_APPLICATION_INFO.

In my opinion, one of the key differences between good code and poor code is that it is instrumented in someway. I certainly believe that an application that is instrumented is much easier to live with and, over the lifetime of that application, runs much more smoothly and significantly more efficiently as (a) problems can be resoled easier and (b) any change in code performance is easy (and thus more likely) to be identified. It is because of this second point that I feel the overhead of instrumentation is not 10% or 20% but rather -15% – it improves overall performance.

The easiest way to instrument PL/SQL code is to use DBMS_APPLICATION_INFO. You use simple calls to set the values for the columns MODULE and ACTION in V$SESSSION and you can also populate a third column CLIENT_INFO.

ora122> desc v$session
 Name                                      Null?    Type
 ----------------------------------------- -------- ------------------------
 SADDR                                              RAW(8)
 SID                                                NUMBER
 USERNAME                                           VARCHAR2(30)
...
 MODULE                                             VARCHAR2(64)
 MODULE_HASH                                        NUMBER
 ACTION                                             VARCHAR2(64)
 ACTION_HASH                                        NUMBER
 CLIENT_INFO                                        VARCHAR2(64)

It is incredibly easy to use the DBMS_APPLICATION_INFO built-in package to set these columns via the procedures set_module(module_name,action_name), set_action(action_name), and set_client_info(client_info). The values set are held in memory, and there is no inserting or updating of any table rows – so it is incredibly quick and light-weight. V$SESSION is a view on top of memory structures.

Part of the reason that DBMS_APPLICATION_INFO is so powerful is that nearly all performance and development tools that are used for Oracle will show you this information. Of course this is especially true of Oracle tools such as OEM/Grid Control and SQL*Developer. Thus when you are looking at what code is taking up time or running slowly, you can use MODULE and ACTION to identify the exact code and area where the issue is – you are not having to guess. One of the reasons that performance tuning and problem resolution can be so hard is that you are guessing as to the source of the problem. Instrumentation means you know, you are not guessing. DBMS_APPLICATION_INFO is simple and thus, almost as a direct result of this, efficient at identifying where the problems are without blinding you with too much information.

The below is from OEM Express, showing which modules and actions are taking up the most time.

OEM Express showing what modules take up time

OEM Express showing what modules take up time

I go into more details about DBMS_APPLICATION_INFO at this post about it and I go into a lot of detail about this and other types of PL/SQL instrumentation in the book I contributed to – click on the link on the right of this web page for details on that 🙂

The OTN Program
Like many people I am doing a technical blog today in order to publicly thank the Oracle Technology Network for what they do. Why do I want to do this? Well, because they have helped me for years and they support me helping others.

As I write this blog I am rudely ignoring Ludovico Caldara explaining 12c dynamic optimizer features to a carefully listening crowd in Denmark, as part of the OTN Nordic tour. They help fund some of us on the ACE program to go on these tours and spread knowledge with people. I would struggle to do all the talks I do if, as an ACE Director, the OTN ACE program did not help cover some of my expenses. They do not pay everything but, heck, I can’t go complaining about them *only* paying for some of it!

OTN provide huge amounts of information on their web site(s), the place you go to download the software and documentation for free.

The final thing for me personally is that they help me contact people in Oracle who can help me better understand parts of the tech or even report back issues and help get them resolved.

Thank You OTN

Nice Social Media Profile Picture! Oh… Err… September 30, 2016

Posted by mwidlake in ethics, Friday Philosophy, humour, Perceptions.
Tags: , , ,
5 comments

A few (months/weeks/days/hours)* ago I saw a friend request on Facebook. I looked at their profile which indicated that they were kind-of in my technical arena and the profile picture made me think “Wow – that’s an attractive person!” and I was about to click on the accept button.

And stopped.

I only friend people on Facebook who I know. By that I mean I have either met in real life and liked or have had a LOT of contact with through social media and liked. People who, if they were delayed at Stansted airport at midnight and needed a place to sleep, I’d be happy to go pick them up and bring them home to stay in my spare room.

This person did not pass this criterion. I was going to add them to one of my social media cohorts based on a superficial, image-based reaction, based on a pretty weak “they mention Oracle and DBA in the profile” and a much stronger “that’s a nice looking lady”. Whether this is Facebook, LinkedIn, Twitter, whatever – it struck me that if I am adding people based on looks then that is the wrong reason and is “appearanceist”. When I link to someone on LinkedIn it is supposed to be all about “are they in my area of I.T.” not how hot they are. But I do notice that attractive people, especially ladies, seem to get a lot more followers. That made me think about the whole tricky subject of whether we are allowed anymore to comment on someone’s looks, what is sexism, how some people get ahead by being attractive or even get held back by it.

I could now write a long, meandering, and probably pretty much worthless analysis of sexism in IT and how social interaction should be different to professional interaction. But I will keep my point brief. I’ll just state three thoughts and three brief paragraphs:

1) How often do we socially link to someone based on their physical image?
2) Is this wrong?
3) How often do we attempt to improve the physical appearance of our own online profile picture?

I am guilty of 3. I have Rosacea – a long-term reddening of the facial skin a bit like teenage acne. I don’t really like it so I use an older image of myself for my profile picture. I know that many people use a photo of themselves from when they were younger (sometimes a lot younger) or one taken by a professional photographer to show themselves in the best (and let us be frank, atypically flattering) light. i.e. a picture to make us look more handsome/attractive than we really are.

If we all accept that, especially on a professional level, we should all be judged on what we do & who we are as opposed to our physical appearance – why are we so careful of our own online physical appearance?

If we falsely manipulate our own online physical image have we any moral basis for criticising anyone who uses their good looks to gain exposure, acceptance or advantage? No matter how subtle or blatant it is.

So my premise is, if you manage your own image you have to accept others doing so and, to some extent at least, lose the right to object to anyone making judgements based simply on physical appearance. Can I now feel justified in only hiring women who I personally find attractive ? (I don’t find many men attractive, sorry guys).

I’m sure many of you feel that combing your hair, putting on nice cloths and perhaps using a touch of make-up is absolutely nothing like using a salon hair stylist, most of Max Factor’s product line and slightly revealing clothing to get a job. But where on that spectrum is OK, where isn’t and how are you making that judgement call?

A final thought. I did not link to the person who sent me the Facebook request as they were, in my opinion, attractive and I would be doing so for the wrong reasons. Was that morally strong or morally weak? In this case I would like to feel the former as I use Facebook only for established friends. If this was in, say, LinkedIn which I use totally on a professional level, if I did not link to that person as I felt I was doing so partially influenced on their looks… That’s a very interesting take on positive/negative discrimination. Especially if their image turned out to be old…

(*) I get so few Facebook friend requests that if I stated when I saw this one, the person I think is attractive might realise who she is and then I would be very British Reserved uncomfortable around her 🙂

Friday Philosophy: Be A Hero – OR Be The Best August 26, 2016

Posted by mwidlake in Friday Philosophy, humour, Perceptions, working.
Tags: , , ,
19 comments

There is a crisis! The database is not responding, the apps can’t work and the business is suffering. Management are doing what management are there for – panicking and demanding “Someone Do Something!!!”.

Step forward a DBA who logs into the server, checks the alert logs, spots what is wrong and fixes it. The database starts processing requests, the applications are all working fine and the business is back on track. What a hero!

The Mantra of the DBA Hero

The Mantra of the DBA Hero

Such situations are not just the preserve of the database and the DBA of course. You get the hero System Administrators who step in and sort out the lack of storage space at 3am. Or the programmers who look at the code that has been running slow for weeks, that others have not been able to fix, and make it run in 5 minutes rather than 5 hours. All heroes who then bask in the gratitude of management and colleagues. Thank goodness for the Hero Developer/DBA/Sys Admin or whatever. You even get articles and advice on how to be The Hero in some quarters. I’ve even seen job ads like “Are YOU our next Developer Hero?!?”.

Only, 9 times out of 10, whatever was wrong should never have occurred. Yes, there are always going to be hard-to-predict failures or unavoidable catastrophes. But the majority of situations I have seen when the database goes seriously wrong, a critical program messes up badly, or a server goes offline, it is down to something that could and should have been spotted before hand – or never set up in the poor manner that it has been. These are things like Archive Redo log areas filling up, an “innocuous” network tweak taking out a major connection or a data processing program that goes wrong if it is run with no data to process. Just a little bit of thought or testing will avoid these sorts of issues.

As you get better at your role, and I mean really, truly better and not just older, you learn about better ways to do things. Either you make mistakes yourself and have to fix them (the best way to learn, even though it does not often feel like it), correcting something someone else did poorly or you read about how to set up systems to be more fault tolerant. You become more experienced with the tools and you grab hold of any new features that are going to make the systems run better. I’d hope we also all learn skills and working practices that help avoid disasters, such as proper testing methodologies (something that we seem to get less and less time & resource for) and proactive rather than reactive monitoring of our systems. If I am owning a database and it unexpectedly runs out of space for the data files or archive redo – I failed. The database did not, I did – as I know how to set up checks for those things.

The best technicians (in my opinion) that I have worked with are all like this. They don’t monitor for things that have gone wrong so much as monitoring for things that are going wrong. Every week or month they will change something that was OK – but it could be better, more resilient. The end result is a much quieter life and a substantially better service provided to the business.

But that’s where the rub is. That’s where things become unfair. When you are being the Best DBA or the Best Developer, things just work without a fuss. There are no disasters that impact the business and thus no need for The Hero. The systems run smooth & fast and management figure you are probably not doing that much. Heck, you seem to be spending all your time tinkering rather than fixing stuff! They often don’t get that the “tinkering” is what stops the disasters and the need for Heroes. That can lead to a lack of appreciation for what you are doing and it is extremely hard to see someone get praise for fixing an issue that they should never have let happen and even getting a pay rise and you get just a “yeah, thanks for, like, keeping the lights on I guess”.

I had this in spades in one role. I turned up and the critical databases would all be going down once or twice a week. People just accepted it. I worked on the problems, got my team together (and trained them!) and improved the service. For a couple of years I was a card-carrying member of the cape and spandex pants club. I was a Hero. We provided more services and incidents became very rare. And then they decided I was not doing enough. No problems were occurring so what did they need me for? After I calmed down from that (it took a few months) I decided I agreed with them and left. But I left behind a fantastic team and rock-solid systems. {It actually took me years to stop resenting the way they handled it, to be fair, but I never stopped being proud of what I did and that team}.

blowing you own trumpet can help - a little

blowing you own trumpet can help – a little

So what do you do when you are being the best you can and not the hero and, as a result, you are fading into the woodwork? Well, I advise people to do several things, some of which you can see from a slide (taken from my “disasters” presentation) shown to the left. Record the number of incidents and how they go down as you improve things. Document improved up-time and better performance (which might be the same response time under higher workloads). Generally blow your own trumpet. However, it never seems to be enough to counteract the prestige people get from being the hero. It’s not “Right” but it just seems to be the way it is. I know some people take the other approach, which is to actually let (or even create?) disasters in which they can be heroes. After all, this is your career.

One fix is to just move on. After all, in the situation I described above I had actually completed my job – I had been hired to put in place a professional service and I did. So it would have been best if we had all been grown up and decided it was job done and time for me to move on. As a contractor/consultant this is a lot easier to do. Turn up at a client, be a hero for a while and then do your real job of making the systems solid. And then move on.

But not everyone has that luxury to move on. There may be few opportunities where you live or you would lose other aspects to your job that are very important (good child care is one example I have seen). Or moving roles might be something that gives you a lot of stress. So if you are “stuck” in your role and you are doing the best that you can, it is massively demoralising to fade into the woodwork as a result. What is the reward for all your work – pride and less interrupted nights are good but not getting the credit you deserve is hard.

But in the end I think you have a choice. Be a Hero or be The Best You Can Be. I have to aim for the latter, I can’t knowingly allow disasters without trying to at least warn management it could happen. And if you decide to be the best you can be perhaps you have to accept that, unless your management is very unusual, it may well mean less respect than you deserve. But *you* will know. I suppose it is a pride thing.

Are you a Hero? Or are you Simply The Best!

My first book is now physically in my hands. August 22, 2016

Posted by mwidlake in Instrumentation, PL/SQL, publications, SQL, writing.
Tags: , ,
6 comments
Proud "parent" of a bouncing baby book

Proud “parent” of a bouncing baby book

Today a box arrived from Oracle Press. In it were a few copies of “Real-World SQL and PL/SQL” which I co-authored with Arup Nanda, Brendan Tierney, Heli Helskyaho and Alex Nuitjen. I know I only blogged about the book a couple of weeks back, how I became involved and the impact it had on my life for several months. But as I can now physically handle and read the final article, I could not resist putting up a quick post on it. Honestly, I’ll stop being a book bore soon.

My contribution to the book was three chapters in the section “Essential Everyday Advanced PL/SQL”. The idea was to covers some core, standard ways of using PL/SQL which are often overlooked or implemented without considering the impact they can have. There are a few things I cover that are often talked about, generally regarded as a good thing to do – but so often are not done! So just to quickly summarise my chapters:

Chapter 6 is about running PL/SQL from SQL, ie calling both built-in and user defined functions from SQL. It’s a great way to compartmentalise your business logic and extend the capabilities of Oracle’s SQL implementation in an easy and seamless manner. Only people are often unaware of the potential performance and read consistency impact it can have, or how Oracle 11g and 12c help reduce these issues.

Chapter 7, “Instrumenting and Profiling PL/SQL”, covers something that I feel is a major oversight in many PL/SQL development projects. Instrumenting your code, any code (not just PL/SQL), is vital to producing an application that is professional and will continue to work correctly for many, many years. However, it’s a bit like washing your hands after going to the loo – we all know it is the correct thing to do but so many people just don’t! Without instrumentation it is almost impossible to see how your code is performing, where time is spent and where problems are when they occur. I’m sick of having to guess where the problem is when people report slow performance when some basic and light-weight instrumentation will tell you exactly where the problem is. And as for profiling PL/SQL, it’s one of the rarest things to be done but it is so helpful.

It physically exists

It physically exists

Chapter 9 is on using PL/SQL for Automation and Administration. Like many people, I have automated many tasks with a PL/SQL harness – backups, partitions maintenance, metric gathering, data life-cycle management, regular data loads. You end up writing the same sort of process over and over again and usually there are several versions of such controlling frameworks across a company, written by different people (and sometimes the same people!). A large part of this chapter takes the code for creating the examples from chapter 6 and the instrumentation from chapter 7 and builds up a simple but comprehensive framework which can be used to control almost any data load or administrative task you need to do with an Oracle database. The key thing is it can be used for many, many processes so you need only the one framework. So you don’t have to keep writing them as it’s boring to keep writing them. And because the framework demonstrated includes instrumentation, the framework you implement will be easy to monitor and debug in years to come. I have to confess, I kind of wrote that chapter “just for me”. It is my standard automation framework that I now always use, so I can concentrate on the actual task being done and not the nuts-and-bolts of controlling it, and I’ve wanted to properly document it for years.

Something all the authors agreed on is that whilst most technical books describe how elements of a language or feature work, they do not really talk about the “how and why” you do things. The stuff you learn by using the language for a long time and doing a good deal of things wrong. In this book we attempt to put in some of that “how and why”. In my chapters there are a few anecdotes about when things have gone wrong and, as a result, you learn some of the “how not” 🙂

I’m at a lot of conferences over the next few months, including OOW16, DOAG16 and UKOUG Tech16. If you get a copy of the book and want it signed, you’ll find me very happy to do so. Many of my co-authors are at these events too, so you could get us all to scribble all over the book. NB this will not work for electronic versions 🙂

BTW do you like the t-shirt?

This Autumn, I am mostly being a Conference Tart. August 12, 2016

Posted by mwidlake in ACED, conference, Meeting notes, Presenting, User Groups.
Tags: , ,
add a comment

The first half of this year was a little quiet for me on the presenting front. I was concentrating on writing and also on organising events, as opposed to going to them, so most of my trips were for personal reasons (that means “holidays”…). I presented at the Ireland conference and a few UK user group events but that was it – quite a few European events this spring fell on dates I was not available (including the Israeli and Finnish conferences where I was asked to attend and would have loved to). Or, oh the shock of it, my submissions were not accepted! {How dare they 🙂 )

However, the final third of this year is the total opposite. I’m at a conference at least once each month from September to the end of the year. In the spring this year I decided to make up for my poor showing speaker-wise by offering talks to a few more events. I knew I would probably do Oracle OpenWorld as, being an Ace Director, the Oracle OTN program is incredibly kind to us and help us attend the conference itself and the ACED briefings just beforehand. Despite my best efforts to scupper my own chances of attending OOW16 (I did not respond to an email I should have for ACED and I only submitted technical talks and not fluffy cloud ones) the ACE program have sorted me out and I’ll be there. I’m not presenting (unless my status as standby for the EOUG lightning talks and OakTable World morph into actual slots) but it’s nice to do a conference with no duties.

In December it is the total opposite for UKOUG Tech16. This is “My” conference, as in not just my home conference and the one I nearly always present at, it is the one I help organise. This year I am the project lead for Tech16, rather than the Database community lead role that I filled for the last two years. It sounds like a promotion and it sort-of is, but in reality there is less work than being a community lead, as I have a lot less to do with organising the content and agenda. But I will have duties to do at the event as well as the one presentation I am doing (I keep it down to one presentation when I have other responsibilities) so for me it is quite a demanding conference.

Between these two book-ends I decided to offer talks to DOAG in Germany and I was asked to speak at the Slovenian and Croatian user groups, which I was delighted to do. DOAG accepted two of my submissions so that was 5 conferences, which is a nice number.

Then the Polish user group announced their next conference and I had promised “the other ORA600” to submit for that one. Then last week I was asked to consider doing the Nordic OTN tour. I said yes to both. The Nordic OTN tour is not finalised yet but it looks like it could be 3 or 4 meetings in different countries on consecutive days.

On top of this, my wife is relocating to Switzerland in October for work and I’ll be trying to assist with that. So I’ve had to put together a spreadsheet of where and when I’ll be. It’s all rather busy. It would be foolish to add to all of this.

So I plan to submit to the Autumn Bulgarian conference too because, well, it’s a cracking conference.

The saving grace? Most of the conferences I am going to have asked me to do the same presentations. So I only need to prepare 3 (or is it 4… I’ll check my spreadsheet).

Why do I do all these conferences? Because (a) I actually like presenting and sharing what I know and (b) I meet people and make new friends. So, if you are at any of the above events, come over and say “hi”.

I suppose I should update my “Appearances and Meetings” page.

The Book. August 4, 2016

Posted by mwidlake in PL/SQL, SQL, writing.
Tags: , , ,
6 comments

I’ve just added a picture to the right side of this site. It is for a book about SQL and PL/SQL. If you look at the image of the front cover, at the bottom is a list of authors and, near the end, is my name. It’s all finished and at the printers, but it is not out yet – It should be published in the next few weeks.

The British part of me wants to mumble and say “oh, yes, hmmm, I did contribute to a book… but I think you should concentrate on the chapters by the other chaps, they are proper experts, very clever gentleman and lady… I was just involved in a couple of lesser chapters…”

The part of me that spent weeks and months of late nights and long weekends writing it wants to scream “Look! LOOK! I damn well got it done! And it was way more painful than any of my author friends told me it would be as, despite their best efforts, I did not get How Hard Writing A Book Is!
I BLED FOR THAT BOOK!”

And the final part of me wants to say “If you buy this book, would you mind awfully sending it to me and I’ll cut out my chapters and paste in new ones with a few more things covered and a bit more clarity and I really should have mentioned… and I’ll send it back”. Apparently this is exactly how Douglas Adams and Terry Pratchet felt about all their books, so I feel in good company in that respect. I re-wrote one chapter 3 times and I still think I could do it better. Think? I know I could do it better!!!! Next year I’ll do it better than the current better…

How did I get involved in this… nightmare? It was Brendan’s fault. I hate Brendan. My wife hates Brendan. My cat, before she passed on, hated Brendan. When I am drinking beers with him in September, around the fun-fair that is OOW16, I’m going to suddenly turn around and hit him Really Very Hard somewhere soft. Somewhere reproductive I think…

It was, I believe, March 2015 that Brendan Tierney asked me if I had ever thought of writing a book. I said “yes” and explained how I’d had some ideas back in my Teens about what “intelligent aliens” would really be like and the oddities of people – but then found Mr Adams had covered that way better than I ever could. And then I had thought about a spoof on Dungeons and Dragons but then found Pratchett had that totally covered and I now had only one idea left… “No…” he said “I mean a technical book – about Oracle”. Oh! After all, he said, I blogged, presented and wrote articles. What was the difference?

Brendan and Heli Helskyaho had come up with the idea for a book about SQL and PL/SQL which was not an intro book and not a huge tome about all aspect of either – but more about using both languages to solve real-world issues, based on real experience. It would be aimed at those who could write reasonable SQL and who could throw together a quick PL/SQL program/package but wanted to know more about how experts used the languages based on experience. They had Arup Nanda on board already as well as Alex Nuijten and Chet Justice. I knew these people! Arup is a brilliant DBA and teacher, Alex is one of the best presenters on the circuit and Chet is Oraclenerd! All are ACE Directors. So I said no – looking at the 5 of them, I was not an expert. I’m just a skilled-but-still-learning journeyman.

At this point Brendan got tetchy at me (‘being tetchy’, for non-UK people, means ‘easily annoyed but doing a very poor job of hiding you are annoyed’). “how long have you programmed in SQL and PL/SQL?” about 25 years – before PL/SQL was really ‘out there’…
“When did you last develop a production solution in PL/SQL?” About 2 months ago – it was cool, it was fully instrumented, restartable and used plain SQL for the heavy lifting…and bulk processed the rest…
“Who’s better at this than you”. Well, Adrian Billington, Boneist Dawn, Andy Clarke… for SQL Stew Ashton, Chris Saxon is sh1t hot… “so you can name your peers?!?”.
“what is the most challenging thing you have done with PL/SQL?” – I listed a few things…

The point he was making was, I’ve used both languages for two and a half decades to solve problems others had struggled with. OK, I am not the “Best”, but I’m not bad and I’ve done things wrong often enough to learn some lessons! I know I can deliver a solid solution that will either still be working properly in 10 years or, in my eyes more importantly, telling you why it is not. And the key thing was, as Brendan pointed out, I was happy to share.

So I agreed to contribute in a minor way.

And then Chet had to pull out for personal reasons – and guess who inherited half of what we was covering? :-). I thus became an equal player. (Just a quick note, Chet stayed as our tech editor and he kept me “honest”. Everyone on the book helped me, the new guy, keep up.)

Writing a book is a lot, lot, lot harder than writing a blog or an article. I’d been told about this – I was a non-technical reviewer(*) for Jonathan Lewis’s “Oracle Core” and we talked a little about it the whole process – and there was a long, long discussion between the Oaktable members about the effort and financial reward of book authorship (“an awful lot” and “sod all” respectively). I still did not get it. If you are writing a chapter that is 20 times longer than an article it is not simply 20 times harder or takes 20 times as long. It is both, plus a dash more. Part of the reason is the need to get a flow through such a large body of text and I wanted to do that across my 3 chapters. The other is, somehow a book feels more important and you want to makes sure your mistakes are kept to a minimum – both for your own pride and so as not to mislead the reader. Also, as a shared book (and I was the only new author involved) I was very conscious of letting the side down.

So the reality was that for 6 months I worked on those 3 chapters and, during that time, I struggled to maintain my duties as a house husband, the garden went to hell and my regular exercise ceased. Occasional days were so bad that the cat went unfed and my wife had to cook her own dinner. The hard stares were difficult to take, as was my wife being annoyed with me. And I was only doing a few chapters!

But it is done and I am now looking forward to seeing a copy “in the flesh”. I think that will feel weird. One of my regrets in life is that I did not stay in science long enough to be published. I feel this makes up for that.

Would I do it again? No. I’d rather go back to commuting into London every day and I hated that.

Will I change my mind in a year or two? Maybe. I still have that one idea for a Sci-Fi book.

(*) I represented the “knows some stuff but is still learning” intended reader of Jonathan’s book – I was not correcting mistakes or advising him on technical content. I was saying “please tell me more about X as I’m still confused”. I rather enjoyed it.

Friday Philosophy – Tech Writing Is Like Religious Art July 8, 2016

Posted by mwidlake in Blogging, Friday Philosophy, Perceptions, writing.
Tags: , ,
5 comments

I’m putting together an article for Oracle Scene at the moment – I’ve delayed it for a couple of issues as we wanted the space for other tech articles, but my time has come. And I’m finding it very hard going. Why?

I’m not an expert on religious art (or religion… or art) but one thing I know is that with religious artifacts, especially things like sculpture, furniture, and plaques, they often differ from non-religious art in that the back of them is as well done as the front. I.e. if there is an ornate plaque to be created and put on the wall of a secular building, all the effort goes into the front. The back is likely to be simple or even rough. With a religious plaque, the chances are that the back will be just as well crafted as the front.

The reason is that God can see the back of it. God will know if you skimped on your devotional art to him/her/them. The whole piece has to be of quality. If it’s a secular piece then no one generally sees or cares about the back and, if someone was to try to take your plaque off the wall, you’d smack their hands and tell them to leave it alone.

When I present, teach or (to a certain extent) blog I mostly care about what my audience will see. If I do a demonstration script I can put it up, show the results and move on. The chances of you actually running the script are low so it does not matter if I had to tickle things a little (fiddle with the SGA settings, alter my session, pre-warm my cache) to get it to work as intended. Similarly I can tell you the message I have and not worry too much about the messy details (but IO have to be ready to answer any awkward questions).

But with something written and published, which is going to be there for a while and people can refer to it and test it all out with ease – you can all potentially see “the back of it”. This raises my normal fear about making mistakes in public to the level of paralysing paranoia.

There you go, I think of you all as Gods. That’s a nice place to finish the week, don’t you think?