jump to navigation

Friday Philosophy – The Singular Stupidity of the Sole Solution April 22, 2016

Posted by mwidlake in Architecture, Exadata, Friday Philosophy, Hardware.
Tags: , , ,
13 comments

I don’t like the ‘C’ word, it’s offensive to some people and gets used way too much. I mean “cloud” of course. Across all of I.T. it’s the current big trend that every PR department seems to feel the need to trump about and it’s what all Marketing people are trying to sell us. I’m not just talking Oracle here either, read any computing, technical or scientific magazine and there are the usual adds by big I.T. companies like IBM and they are all pushing clouds (and the best way to push a cloud is with hot air). And we’ve been here before so many times. It’s not so much the current technical trend that is the problem, it is the obsession with the one architecture as the solution to fit all requirements that is damaging.

No clouds here yet

No clouds here yet

When a company tries to insist that X is the answer to all technical and business issues and promotes it almost to the exclusion of anything else, it leads to a lot of customers being disappointed when it turns out that the new golden bullet is no such thing for their needs. Especially when the promotion of the solution translates to a huge push in sales of it, irrespective of fit. Technicians get a load of grief from the angry clients and have to work very hard to make the poor solution actually do what is needed or quietly change the solution for one that is suitable. The sales people are long gone of course, with their bonuses in the bank.

But often the customer confidence in the provider of the solution is also long gone.

Probably all of us technicians have seen it, some of us time after time and a few of us rant about it (occasionally quite a lot). But I must be missing something, as how can an organisation like Oracle or IBM not realise they are damaging their reputation? But they do it in a cyclical pattern every few years, so whatever they gain by mis-selling these solutions is somehow worth the abuse of the customer – as that is what it is. I suppose the answer could be that all large tech companies are so guilty of this that the customer end up feeling it’s a choice between a list of equally dodgy second hand car salesemen.

Looking at the Oracle sphere, when Exadata came along it was touted by Oracle Sales and PR as the best solution – for almost everything. Wrongly. Utterly and stupidly wrongly. Those of us who got involved in Exadata with the early versions, especially I think V2 and V3, saw it being implemented for OLTP-type systems where it was a very, very expensive way of buying a small amount of SSD. The great shame was that the technical solution of Exadata was fantastic for a sub-set of technical issues. All the clever stuff in the storage cell software and maximizing hardware usage for a small number of queries (small sometimes being as small as 1) was fantastic for some DW work with huge full-segment-scan queries – and of no use at all for the small, single-account-type queries that OLTP systems run. But Oracle just pushed and pushed and pushed Exadata. Sales staff got huge bonuses for selling them and the marketing teams seemed incapable of referring to the core RDBMS without at least a few mentions of Exadata
Like many Oracle performance types, I ran into this mess a couple of times. I remember one client in particular who had been told Exadata V2 would fix all their problems. I suspect based solely on the fact it was going to be a multi-TB data store. But they had an OLTP workload on the data set and any volume of work was slaying the hardware. At one point I suggested that moving a portion of the workload onto a dirt cheap server with a lot of spindles (where we could turn off archive redo – it was a somewhat unusual system) would sort them out. But my telling them a hardware solution 1/20th the cost would fix things was politically unacceptable.

Another example of the wonder solution is Agile. Agile is fantastic: rapid, focused development, that gets a solution to a constrained user requirement in timescales that can be months, weeks, even days. It is also one of the most abused terms in I.T. Implementing Agile is hard work, you need to have excellent designers, programmers that can adapt rapidly and a lot, and I mean a LOT, of control of the development and testing flow. It is also a methodology that blows up very quickly when you try to include fix-on-fail or production support workloads. It also goes horribly wrong when you have poor management, which makes the irony that it is often implemented when management is already failing even more tragic. I’ve seen 5 agile disasters for each success, and on every project there are the shiny-eyed Agile zealots who seem to think just implementing the methodology, no matter what the aims of the project or the culture they are in, is guaranteed success. It is not. For many IT departments, Agile is a bad idea. For some it is the best answer.

Coming back to “cloud”, I think I have something of a reputation for not liking it – which is not a true representation of my thoughts on it, but is partly my fault as I quickly tired of the over-sell and hype. I think some aspect of cloud solutions are great. The idea that service providers can use virtualisation and container technology to spin up a virtual server, a database, an application, an application sitting in a database on a server, all in an automated manner in minutes, is great. The fact that the service provider can do this using a restricted number of parts that they have tested integrate well means they have a way more limited support matrix and thus better reliability. With the Oracle cloud, they are using their engineered systems (which is just a fancy term really for a set of servers, switches, network & storage configured in a specific way with their software configure in a standard manner) so they can test thoroughly and not have the confusion of a type of network switch being used that is unusual or a flavor of linux that is not very common. I think these two items are what really make cloud systems interesting – fast, automated provisioning and a small support matrix. Being available over the internet is not such a great benefit in my book as that introduces reasons why it is not necessarily a great solution.

But right now Oracle (amongst others) is insisting that cloud is the golden solution to everything. If you want to talk at Oracle Open World 2016 I strongly suspect that not including the magic word in the title will seriously reduce your chances. I’ve got some friends who are now so sick of the term that they will deride cloud, just because it is cloud. I’ve done it myself. It’s a potentially great solution for some systems, ie running a known application that is not performance critical that is accessed in a web-type manner already. It is probably not a good solution for systems that are resource heavy, have regulations on where the data is stored (some clinical and financial data cannot go outside the source country no matter what), alter rapidly or are business critical.

I hope that everyone who uses cloud also insists that the recovery of their system from backups is proven beyond doubt on a regular basis. Your system is running on someone else’s hardware, probably managed by staff you have no say over and quite possibly with no actual visibility of what the DR is. No amount of promises or automated mails saying backs occurred is guarantee of recovery reliability. I’m willing to bet that within the next 12 months there is going to be some huge fiasco where a cloud services company loses data or system access in a way that seriously compromises a “top 500” company. After all, how often are we told by companies that security is their top priority? About as often as they mess it up and try to embark on a face-saving PR exercise. So that would be a couple a month.

I just wish Tech companies would learn to be a little less single solution focused. In my book, it makes them look like a bunch of excitable children. Give a child a hammer and everything needs a pounding.

Wednesday Philosophy – A Significant Day (but only to me) April 20, 2016

Posted by mwidlake in Friday Philosophy, history, off-topic, Private Life, working.
Tags: ,
3 comments

Today is a significant day. Well, to me it is – to the rest of you it’s just a Wednesday in the latter half of April, in the mid 20-10’s. Because we count in 10s (probably due to the number of flexible pointy bits on our front limbs, but that is a much debated argument) we have “magic” numbers of 10, 100, 1000 and multiples thereof. As geeks we also have 2,4,8,16,32 etc. And as nerds (but nerds who appreciate certain literature) we have 42. But today is not significant to me for any of those magic numbers.

Today I have been classed as an adult for twice as long as I was classed a child. 2/3rds of my life ago I hit 16 (which means I hit 48 today) and I was legally responsible for my own crimes, allowed to have sex as I saw fit & get married (which suggests those 2 options were open to me at that point – but if you were a lady and met me back then, neither was likely!) And I was allowed to smoke cigarettes – though the age limit for that has since changed to 18 in the UK. And drink in a pub – so long as someone else bought the booze and I was having a meal.

I could also leave home, get a job, draw benefits or join a group that was legally allowed to shoot at people, or in turn be shot at (armed forces – and yes, I know they do a lot more than that). But, best of all, I could have ridden a moped, a lawn tractor (oh yes, yes, yes!) or flown a glider.

In reality, many of the above still needed parental consent and you truly become an adult in the UK at 18 (so I could write almost the same stuff as this in 6 years’ time too), but back then it felt like you were stepping out of shorts and into long trousers. Except for girls. They tended to step out of skirts and into shorter skirts, if memory serves. (If anyone thinks I’m being sexist, when I was 16 the girls were half a decade more mature than most of us boys and they *did* all start raising their hem lines). And I still wear short trousers when I can get away with it.

At age 16 I also chose what subjects to study for my “A” levels, the exams we do in the UK which help decide what college courses we can go for. I chose all sciences (biology, chemistry and physics) and threw in maths (not “math” mind you – though I’ve never been able to decide which contraction is more silly; we don’t do “Econ” or “Econs” ,”chem” or “Chemy”). I did the physics just so I did not have to do this waste-of-time subject called “general studies”, that no one could tell me was of any use for anything but seemed almost mandatory. No, I never did find out if “gens” ever helped anyone get a job, career, college course or anything. Anyway, it turns out it was a wise move as I was found to be useless at maths at “A” level but pretty good at physics. Who knew? All I knew was I was going to be a surgeon or a scientist. Or maybe a coroner, I quite fancied being a coroner. Well, that worked out as planned, eh? I’ve never put my hands on a living brain, never extracted a dead brain and never tried to work out how a brain works. I’ve just created a few small brain-replacement tools to allow people to use their brains for more interesting stuff.

A key thing about 16 for me was that most of the people who were not academic or decided they would rather try and earn an income rather than sit in school rooms anymore left school at that age, and that included a large swathe of the floor-knuckle-scraping thugs who had made the last couple of years at school such a deep, deep joy for me. A few of the goons stuck around as there was very little work around back then (thank you Margaret) but the worst of them went off to… oh, I don’t know what they did, but as I did not see them generally around I think a lot of them ended up in prison or in factories where they were kept out of society’s way for 8 or 10 hours a day or something happened to them to stop them being arseholes. For me, 16 was when I started to actually enjoy life more.

I’ve changed a lot since I was 16 and of course the world around me has too. The career I’ve ended up having is nothing like I expected I would back then – and has in fact been, to a large extent, using stuff that did not even exist back then. Computers were around, but they were not common. Relational databases were more theoretical than practical and as for the internet & smart phones, you had to look at Sci Fi to see anything like that. Maybe it is a good thing I never planned a career given how much things have changed. I wonder if we should be teaching today’s 16 year olds to not even think about a career but more think of how they can make the most of whatever comes along. ‘cos it’s all gong to change.

I wonder what the next 1/3rd will bring for me and what I’ll be up to when it has become 1/4th.

Friday Philosophy – You Lot are Weird April 8, 2016

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

I mean this in the nicest way, but some of you lot are weird. I’m not aiming this at individuals (though there of plenty of “personalities” amongst you) but at whole damned countries.

One thing about social media is that when you tweet, blog, facebook or whatever – you are potentially communicating beyond your own culture. This is especially true when you are doing so to a community that is spread across the globe in the way I.T. is. Maybe most of you think this is blindingly obvious {perhaps as it is} but although I think of myself as intelligent and aware – for the first 2 or 3 years of blogging I hardly considered that some of my audience would not be from the UK and thus not understand any cultural references I made about television, books, sport, the importance of a cup of tea and a biscuit. After all, why would people in the US or Australia or India care what some guy in the UK had to say?

I think I avoid that particular error more these days but I still have to occasionally remind myself that the majority of my audience “ain’t from these parts”. The largest portion of my audience is in the US – which makes sense as there are quite a few people over the other side of the Atlantic pond and a heck of a lot of IT companies. India and my home crowd come second (swapping places from month to month), and after that come several European countries, Australia, Russia and, for reasons I am not sure of, Brazil.

We have some variations across our little nation and of course individuals often do not match their cultural stereotypes but, all the same, people in Britain tend to be pretty British. When I started presenting abroad, I was conscious that I was going Over There and so I tried to use less colloquial language and make allowances for the audience not using English as their first language. But I think I remained oddly culturally unaware for a while – and it still catches me out.

What I mean about this is, sometimes, on occasion – you lot get on my nerves. You annoy me. A whole nation’s worth of you. Because you are jolly well not being British! A recent blog post by Dan Kim about not being an XXXX Ninja reminded me of this. I really have no time for people saying they are “Road Warriors” (thankfully almost a dead phrase now) or “SQL Ninjas”, “Java Master”, “Database Gods” or similar “Huh! Look AT ME, I damned well ROCK!!!” self-labelled self-grandioseing twaddle. Americans are terrible for this, the uncouth lot that they are {though Dan is from the US and does not seem very fond of it – as I said earlier, individuals always vary}.

Of course, the issue is not so much with our American cousins as it is with me. British culture, at least the bits I hang about in, is currently still rather against blatant self promotion or even making a fuss (well, not a loud fuss – we are brilliant as a nation at passive-aggressive fuss). Whereas many people in the US hold the view that you should be proud of what you can do, the things you have achieved and you should stand straight and tell the world. It’s simply a different way of being. They probably think a lot of UK people are stuffy, repressed and have sticks up their backsides. Which is pretty accurate for some of us🙂

Apparently, in Japan (I have to say apparently as I have never been there), when you are listening to someone you show respect by remaining quiet – and this extends to concerts & gigs, which can cause bands not used to it to have some issues. A crowd that does not go nuts at the end of a song (let alone during it) is just… wrong. But they go nuts at the end of the concert. {If I’ve fallen into quoting a national stereotype that does not exist, please let me know}.

Something I have encountered personally is people in Northern Europe being very direct, ie people will simply say “you are wrong about that”. To me that used to come across as rude. You are supposed to tell me I am wrong in words that don’t actually say I am wrong! “I think you might not quite understand” or “well, that is another way of looking at it”. That to them seems bizarre and, when you think about it, it is bizarre. You should just be able to state your opinion, no offence taken.

Personally I find it is not the cultural differences in language or references to shard experiences that are hardest to acclimatise to, it is these cultural changes in behavior. I have to constantly remind myself that if someone is being rude or impolite or over reacting I should first consider if that is only true when compared to my culture, and not theirs. Of course, I can only do that if I have a clue about what is normal for their culture, which is why travelling Over There to do presentations or bits of work is so helpful.

Sometimes they are being rude. Culture is not the issue.

Of course, the single, largest area of cultural difference that bothers me is beer. Lager is fine cold, cider is jolly nice cold. Real ale should be a few degrees below room temperature and not cold.

Or, as my US friends would see it – “Barman, 3 pints of beer please, and a slightly larger glass of warm piss for our UK friend”.

Friday Philosophy – Struggling To Learn Something? You Still Rock April 1, 2016

Posted by mwidlake in Friday Philosophy, Knowledge, Perceptions, Private Life, working.
Tags: , , ,
12 comments

When did you last learn something new about the tech you work with? This week? This month? This year? 2003?

I fell off THAT? No wonder it hurt

I fell off THAT? No wonder it hurt.

{This blog is a bit of a personal story about my own recent career; how I fell off the log and managed to climb back on it – just so you know}.

For me it was (as I type) this week. In fact, it was today! It was in an area of “my tech”, stuff that I know back to front and left to right. I’m an expert in it, I’ve been using this area of Oracle’s tech for two decades and I simply “Rock at this stuff!” I mean, I know quite a bit about it (sorry, went all “USA” on you there for a minute). But still, despite all my experience in it and even teaching others about it, I learnt something new today – And thank the heavens I did.

Why am I so happy about learning something that, really, I perhaps should know already?

About 3 years ago I stepped back from the whole Oracle arena. I’d been struggling with the tech for a while and I was really not enjoying most of the roles I took on. Which is odd, as I was able to choose between roles by this point to some extent, and had no problem saying “no” to a job I did not like the look of. I know, it’s a privileged position to be in – but I pretty much feel it was a position I put myself into by working hard, developing my skills and (which may seem counter-intuitive to some) sharing them.

So, I had finished a job I was enjoying (which had become a rarity) and I had taken on a new role… and I was hating it. And I was especially hating learning stuff. And I had no desire to, once more, pour 10% of my learnt skills down the sink (as they had been superseded) and learn 20% of new stuff. Why do I say once more? Because, as the Oracle tech has rolled on, that is what I and all of you in a band around my age has had to do every few years.

Back in the early 90’s I knew how to get Forms and Reports to work in ways many did not. I would edit the source files for these tools, I could use tricks with the triggers to do stuff and I also knew PL/SQL in a way few people at the time did. But my position as a leading expert went out the window as things progressed and everyone (everyone? OK no, but a good fraction of people) caught up – and then exceeded – my skills in those areas. And some tech was retired. But I had moved onto database skills by then and I knew stuff about segment creation and space management that few others worried about. Which Oracle then made redundant and I had to move on again…

I’m not alone in this, most of you reading this (be you 60, 50, 40 or 30) can relate to this and have your own stories of managing skills and moving on as the skill set you knew evolved.

But as I said, around 3 years ago, for me it ended. I hit a wall. I was simply too tired, cynical and… yeah, pissed off, to keep letting go of some skills and learning new ones. I’d had enough and I stopped learning. Within 12 months I was not pissed off- I was screaming inside to get out of the industry. And I did. If you have followed my blog you might be able to see the pattern if you look back over the posts. I certainly can, looking back over them.

In this industry, if you stop learning you “die”. It might take a while, especially if you are just ticking over in a role where nothing changes and no new features are used. But the nearer you are to the bleeding edge of the tech, the faster you fall off that edge. For 24 years I had either tested the next version of Oracle before it was released or been the person telling (whatever company I was at) how to use (or avoid!) the new features of the latest Oracle release. But now I had stopped learning.

I started having chats with some friends about it and most were sympathetic and understanding and, well, nice. But I still had that wall. My career was based on being near, on or beyond the leading edge. I learnt stuff. I moved with the times. And now I did not as I was… tired. Drained.

But then I had a weekend in America skiing and relaxing after a conference in Colorado and I spent a lot of time with a good friend Frits Hoogland and I told him about where I was. He was also sympathetic – but he also said (and this is not a quotation but a general indication of his intent, as I remember it):

“I can’t tell you how to care about it, it’s up to you. But if you are not driven to learn the tech you won’t learn it. I can’t give you that drive – you have to find it for yourself”.

No one else had said that. Frits had summed up the situation and given it to me straight. You don’t learn by passive osmosis, you need to want to learn. And I’d fallen off the learning log and I didn’t know how to get back on it.

I thought on that for about 12 months. I also hid a little from the Oracle sphere and being “an expert”. And you know what? He was totally right. I needed a reason to learn the latest stuff and keep developing and it had to be something I wanted – be it a career, kudos, being the best I could be, putting kids though college (just checked, I never had kids), anything! But it had to be a drive. Because learning all this stuff is hard work.

It took me 12 months to work it out, but eventually I realised what I did and did not like about my working life. I hated commuting, office politics, dealing with people who were in charge but did not know (and had no desire to know) about tech, seeing the same mistakes repeated – All that stuff we all hate. But for me I was no longer able to balance that with the nice bits. Solving problems, making things work faster, creating programs and tools to help people achieve things and… teaching people.

So I took the decision to spend a year or two doing less work (and not earning much) and being more involved in the UKOUG, technical blogging (I’ve not really done so well on that front), writing articles, doing conferences and smaller user groups.. Basically, doing more in the user community. And I have, even to the extent of being involved in a book.

It took a while but I know it worked. How? I started learning again. I don’t mind if it is stuff that maybe I should already know – if I’m learning I’m not just improving but I am being engaged by my job (whatever my “job” is).

If you are in I.T. and you are still learning stuff, I would suggest that over all, everything is fine. Even if the learning part hurts a little – it does seem to get a bit harder each year to put new stuff into that cerebral cortex- you are not stagnating.

If you are in I.T. and not learning stuff, I’d suggest you might want to think about why – and if you should be changing what you do or where you do it. We spend most of our adult lives working, if there is any way you can make that part of your life more satisfying, I really think you should try and do it. Even if, as in my case, it pays a hell of a lot less!

Friday Philosophy – Being the Best Manager February 19, 2016

Posted by mwidlake in Friday Philosophy, Management.
Tags: , ,
4 comments

I’d like you to spend a minute thinking back on your career and decide who your best manager has been.

Surely your best manager ever deserves a good cup of tea

Surely your best manager ever deserves a good cup of tea

I don’t mean the manager who you personally got on best with or was most popular with the team – though being one (or even both!) of those does not rule them out as being the best manager you had.

It does not have to be in IT – or even work, actually, cast the net wide to include people who have managed teams and groups outside of work that you have been in.

What was it about them that made them such a good manager?

I know what I think made my best manager the best manager I’ve had: She was utterly focused on making her team a success.

The two or three managers I’ve had who are close seconds to the top spot also had that as a high priority. But managers I’ve had who put delivery of whatever their boss wanted above getting the best out of the team just fell short – and, in my opinion, actually delivered less than they could. Because, if delivery of the current objectives comes before the team, you start working on the next objectives with a team less capable than they could have been.

Making your team a success does not actually mean being nice to the team, at least not all the time and not to all of them. Sometimes you have to reprimand a team member for doing something wrong, like doing a shoddy job of a task you know they can do better – not doing so is condoning bad behaviour and they will do a shoddy job again, only now it’s harder to call them out for it. You also will have to at times get them do something they don’t want to do, like be on call at a particular time as no one else can or it is their turn. But if you can’t explain why they need to do this thing they don’t want to do, that is not going to help you get the best out of them.

I’m sure some of you will disagree with me about what makes the best manager you ever had so good, but in some ways it does not matter. Because what I feel is most interesting about that question is, if you manage, or ever have managed, a team (be it in work, in sport or whatever) – do you try and emulate whatever it was that made that best manager so good?

If not, why?

.

.

(By the way, if your response to the question about your best manager made you think “the least worst” or “I’ve never had a good manager” then either you have been monumentally unlucky – or else maybe the problem lies not with those managers… )

A Book of Friday Philosophies? February 18, 2016

Posted by mwidlake in Friday Philosophy, Private Life, publications, writing.
Tags: ,
10 comments

It has been suggested to me by a friend (not a publisher!) that I should do a book of my “Friday Philosophy” posts. I’m not sure. I’d like to know what people think.

If you read my blog but “Friday Philosophy” has somehow passed you by (how could they, most of my posts now are Friday Philosophies!) they are usually posted at the end of the week and deal with the non-technical side of working in IT. They are my thoughts and experiences on management, development paradigms, things that seem to still be wrong after 2 generations of programmers have painfully learnt the same lessons. Some have nothing to do with IT. The occasional one is about my life. Nearly all have an element of humour in them (even if it is only when I am laughing at myself and my own stupidity).

I’ve never really meant them to be more than a bit of light relief for people to read at the end of the week, but also to make people think.

A few older posts that have stood the test of time (ie people still occasionally look at them) are:

Oracle Performance Silver Bullets
CABs – An Expensive Way to Get Nowhere
Do Good DBAs Need PL/SQL Skills?
The Small Issue of Planes, Trains and Coaches
The worst Thing About Contracting
The Worst Person In IT I Have Ever Met
The Best Person in IT I Have Ever Met

The person suggesting I make them into a book says there is simply nothing else like them out there – Books on IT are about, well, IT. Books on management are about making you a better manager and tend to be very earnest about it. My Friday Philosophies sit in a wilderness between the two, a bit of fun but thought provoking (so I am told).

The thing is, I am not sure there is a market for it. After all, if you have never heard of me (and close to 7 billion people have not) why would you buy a book by me about opinions on the IT industry? If you know me you can just search my blog for “Friday Philosophy” and read them all. As far as traffic to my blog is concerned, with a few exceptions, they are one-shot pieces. Friday Philosophies tend to get a bigger immediate hit than technical posts but within a week most of them are hardly looked at again. Several of the technical ones get a steady trickle of hits that far outweighs their initial popularity. I know that people search for specific technical terms and not “opinionated view of smart phones” and that has an impact, but even so…

In theory it should be a lot less painful than the living hell of writing (only a part!) of a technical book. I have a lot of material, I can review & tweak them, add some new ones, wrap the lot up into areas. It should only take a week… A month… Maybe 2 or 3 months.

Also, I would not be looking to make any money on this. As in, even less then the very little you get per hour’s effort for doing a traditional book. I doubt a professional publisher would be interested in it, due to the lack of an obvious audience. But maybe a self-published tomb for a few pounds/dollars?

What does anyone think? A thunderous silence will tell me what I need to know….

It does not help that I am not sure how to pluralise “Friday Philosophy”.

Friday Philosophy – Content, Copying, Copyright &Theft February 12, 2016

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

There have been a couple of things this week that have made me think about the stuff that some of us write and what other people do with it.

I’m writing a book with 4 other people at the moment (the 4 being Arup Nanda, Brendan Tierney, Alex Nuijten and Heli Helskyaho, all experienced book publishers already – I’m the new kid) which is on SQL & PLSQL. It has been a very interesting experience. I knew writing a technical book was hard work, took a lot of time and that, frankly, the direct financial return on the effort is very, very poor. I know a few authors of Oracle books and I’d talked to them about it all, so I was aware. However, it turns out I did not really know how hard it was, I still did not understand how demanding of time and effort it was! But I had written technical blogs and a couple of articles before I started the book and I had developed the strong opinion that you do not take other people’s work, and you certainly do not take it without citing the original author – because you are actually stealing a lot of someone else’s time and effort.

Probable  front image of "the book"

Probable front image of “the book”

As a result, at the very start of writing my chapters I was determined that my content was going to be My Content. Me, my experience, the official documentation , my test databases – and a word document to receive the end product from those ingredients. I was not going to read what others had written recently on or around the topics I was covering as I did not want to be even subconsciously borrowing from other’s efforts {I say recently as I cannot unread what I had already read!}. I certainly did not want to be accused of doing so. If I was going to object to people stealing my content, I’d be hypocritical to actually commit the crime.

How very noble of me. How very silly of me.

A couple of months in I was talking to someone about the first chapter I was doing and how I was struggling to decide how to structure what I wanted to say. I knew the facts and features I wanted to cover but was unsure of how to make it flow so that it would make sense to the reader and build up their knowledge in steps. They asked me how other people had handled it and I gave them the little opinion piece I’ve just given you. And they laughed at me.
Was I including new stuff? Yes. Was I using my own experience? Yes. Was I going to cut lines, paragraphs, even pages out of other sources and put it in mine? No! Of course not! Well then why was I purposefully making life hard for myself?
Then they asked me the killer bit – Did I know every last thing about the topic? Hmm, no, probably not, but then no one knows every last thing and certainly has not used every little aspect of an oracle feature for real. So I was only going to put into my chapters parts of the topic? Well, I guess so. And that is what someone trying to learn about the feature wants? An expert opinion full of holes? That bit stumped me.

I was kind of writing my chapters to show how much I know. I was certainly limiting it to what I knew well. But the reader does not give a fig about how much I personally know, they are not hiring me to do a job. They are reading about a technical topic so that they can do their job. So I should be making sure I know as much as I can about the topic in order to describe it and I should describe all of it that I think could be useful to others, even if so far it has not been of use to me and the specifics of the problems I was solving. And how do I learn about technical stuff? I read the documentation… and blogs… and books… and play with it.

It also got me thinking about what I will feel like if people use my chapters in a couple of years to help them write about a topic (be it in a book, a blog or an article). If they simply copy my stuff, steal my words, I’ll be angry. If they copy it but just change a few bits to hide the fact I’ll be furious. But if they are writing this as they initially learned from me and then added their own experience and knowledge, I’ll be chuffed to bits – because I taught them. And now they would be teaching others.

So I started reading my modern books on the topics around what I was writing and looking at blog posts and articles more. I know I am doing a better job for the audience since I started doing that. However, the list of people I will need to thank in my bit of the acknowledgements is going up & up and I suspect that for years I’ll be meeting people at conferences & meetings and going “here’s a pint for the help you gave me! And, no, you did not know you had!”. {One thing that did worry the pants off me is that when I read around, it turns out that in my first chapter I uses an example very extensively that turns out to be the exact same example at least two other people have used – it’s convergent evolution, honest! But I’m sure someone at some point is going to point a finger… Oh well, the deadlines are too tight for me to change it now. I don’t even have time to write this blog really…}

There was a specific incident this week that made me think again about copying. I noticed (as I was checking out a relatively unused aspect of a PL/SQL tool and what I did not know about it – but others might benefit from knowing) that the same information was in two places. Exactly the same, word for word. Someone had stolen content from Tim Hall’s excellent Oraclebase site. And it was not just one article, it was dozens, with no citation of the original author anywhere and a copyright sign on the pages of stolen content. You can read about Tim’s ire in this blog post he wrote. He got more annoyed than I think he normally does as this guy had stolen stuff before and Tim was suffering from a cold. He got about as annoyed as I would get in that situation, in fact.

I also noticed as I investigated my currently-obscure aspect of PL/SQL that most of the content on the topic elsewhere was mostly chunks just taken from the oracle official documentation with a few lines wrapped around each chunk. Was that stealing content? I’m still not sure about that, but I think that if there is more borrowed content than original content, it’s at best Poor Effort and probably is Theft. If they do not even write their own demo code for the feature but take Oracle’s – it’s theft. Bad people.

I did nearly comment on Twitter that I never got my stuff stolen, as my stuff is mostly just opinion pieces like this and of no technical worth! But the very next day – Yep, you guessed it, someone stole one of my blog posts. There was a single link back to my original post at the very end but it was not a citation, it just said “reference Link Martin Widlake’s”. In fact, initially I think it just said “Reference Link”. He also has a copyright sign on his web pages. I currently don’t, maybe I should add one so that I can simply say “copyright, take it off else i’ll issue a Take Down request to your service provider”.

I’ve emailed him to say I’m not happy to have a word-for-word copy stolen and presented as his and I am certainly not happy that the pieces is appearing on the front of his web site advertising his services! It seems he is just one guy trying to make a living in rural Northern Pakistan. Should I be concerned about the theft of my article and ask him to remove it? If it is helping him make a living thousands of miles away and he has at least added a small citation at the end? Yes, because it is still theft. And if I do not highlight to him how much this annoys people, he will probably steal other stuff. If you don’t challenge bad behaviour you condone it.

And besides, if he does steal more stuff this will certainly include Tim’s material as his site is often on the first search-engine page on any Oracle Topic. And when he pinches Tim’s stuff, Tim’s gonna be angry…

Friday Philosophy – Database Performance is In My Jeans February 5, 2016

Posted by mwidlake in Friday Philosophy, humour.
Tags: ,
1 comment so far

Database performance is in my jeans. Not my genes, I really do mean my jeans – an old pair of denim trousers. I look at my tatty attire keeping my legs warm and it reminds me of Oracle database performance.

comfortable, baggy, old, DW jeans

comfortable, baggy, old, DW jeans

You can buy jeans in a range of styles & sizes. Just as you can set up your database in a number of standard ways. When you create a database with the install wizard or the DBCA (database configuration assistant) you get to pick from a few options. OLTP databases are like skinny, butt-tight jeans that fashionably young things might wear. I’m more of a Data Warehouse type. I like lose, baggy jeans with lots of space. However, no matter how good the initial setup, performance will degrade. Your jeans will get stretched, stained, more baggy and generally tatty. But you also get used to the performance of your database, it’s oddities and how to live with them. Your baggy, saggy jeans become comfortable.

I'm a dab-hand at doing turn-ups and SQL tuning

I’m a dab-hand at doing turn-ups and SQL tuning

Of course, you probably need to alter your database somewhat to suit you performance requirements. You could go to a tailor to get them done (pay a consultant) and make your jeans a top-notch fit but it’s expensive. Or ask the shop to alter them when you buy them (get some oracle consultancy as part of the purchase deal, to do a pretty average job of changing things). Or, if your requirements are specific (I can never get trousers with a leg length to suit me for some odd reason) and you have your have some skills (I can drive a sewing machine and, if needed and I have time, I can hand-sew) then you can tailor your jeans to your needs yourself. Little changes like this are like a bit of SQL tuning. Hand sewing is messing about with trace files.

You fix one performance bottle neck only to find the next one

You fix one performance bottle neck only to find the next one

Of course, over time more major performance issues will occur and the cracks will show. Well, tears. Bits of the system will give way and you’ll have to patch them. Sometimes the patch is a bit of an obvious cludge, but heck it does the job. The other option is to just live with the gaping knee, which is like not fixing your performance issue and just letting your knee get cold. My business requirements don’t allow for this, I need my knee covered and protected from the brambles and spiky stuff around the garden. And just like performance tuning, you fix one performance problem only to reveal the next point of weakness. The point of most stress in my jeans are the knees, what with all the gardening, crawling through hedges, kneeling in the dirt and grovelling to the wife. I patched that big tear across the knee – and within 2 weeks a new one started, just a little lower. You fix your critical batch load that is doing too much physical IO and now your problem is redo generation in the next step! I did not fix my performance bottle neck, I just moved it down the damned leg!

All those little tears needed a lot of fixing

All those little tears needed a lot of fixing

Many of us get tears in the knee of our jeans, it’s a common performance problem. But some performance problems are more esoteric. Not many people have had to patch the bottom of their jeans due to doing battle with barbed wire (and losing). I could do with self-healing jeans to match the self healing leg. I suppose with the latest dynamic performance tricks in the optimiser, we sort-of have self healing databases. I tried patching it with just the sewing machine but the damage was too great and so a swatch of fabric behind the area and a craze of zig-zag stitch is holding it all together. Maybe that’s like using row-level-security to allow different customer to see just their set of data. It works but it was a tad over-engineered.

Of course, over the years the requirements for your database and it’s performance are likely to vary and you might need to do more than a bit of sql tuning or tweaking of indexes. The sewing machine can’t fix all the problems with my tatty old jeans, especially as the workload first grew, shrank, and grew again. I needed a new performance enhancement tool. A belt. It’s stopped them falling down around my knees and also stopped them from cutting off the blood to my legs, depending on how well I’ve done at archiving off excess calories I no longer need.

Addition of a Modifiable Girth Control device

Addition of a Modifiable Girth Control device

The sad thing is, despite all my hard work, I think I’ll have to pension off these jeans soon. Just like computer system I’ve looked after for a while, I know where I am with them and I’ll miss them when I do a hardware refresh.

So there you go. How many of you thought that you could be reading about a tatty pair of jeans this week? I’m good to you lot.

Friday Philosophy – If Only I Was As Good a Programmer As I Thought I Was Aged 22 January 29, 2016

Posted by mwidlake in Friday Philosophy, humour, Perceptions, Programming, Uncategorized.
Tags: , ,
6 comments

I saw a tweet that made me smile a few days ago:

programmer quote

Like many of you, I started out my working life in IT as a computer programmer. Like some of you, I still am a computer programmer from time to time. I don’t think I’ve had a year of my working life when I did not do either some application development programming or some database infrastructure programming. I am constantly writing small (or not so small) SQL or PL/SQL programs to do what I do in Oracle.

I started programming in school, I did an “O” level in computer studies (the exams we sat in the UK aged 16, up until 1988!), and I was pretty good at the programming as compared to my fellow class mates. My first “real” program played Noughts and Crosses (tic-tac-toe to our American cousins and maybe others) and version 2 was unbeatable. Which at the time I thought was pretty cool.
but Wikipedia now tells me is pretty easy🙂. I also remember someone in the year above me unrolling some huge printout of the role-playing game he was writing (you know, the old textual “you have walked into a room where there is a lion, a bar of soap and a chandelier, what do you want to do?” sort of thing) and telling me I would never be able to do it. I just looked at the code and thought: Why have you hard-coded every decision and used all those GOTOs? Some sort of loop and a data block to look up question, answers and consequences would be much smaller and easy to extend? I don’t think he liked me voicing that opinion…

I did not do any programming of any consequence as part of my college course but after that I started work as a computer programmer (sorry “analyst programmer”) in the National Health Service. Again, I seemed better at it than most of those around me, fixing bugs that others had given up on and coding the tricky stuff no one else wanted to touch. And after a year or so, I was convinced I was a programming god!

I wasn’t of course. Part of it was my juvenile, naive ego and the other part was that, fundamentally, many of those around me were bad programmers. Anybody decent either did not join in the first place or got a better job elsewhere that paid more than the NHS did. I eventually did that myself and joined Oracle. Where I realised that (a) SQL confused the hell out of me and (b) when I started using PL/SQL there were plenty of people around me who were better at traditional programming than I.

I think it took me about a year to feel I was damned good at both of them. Guess what? I was wrong. I was simply competent. But after a year or two more I did two things that, for me, finally did make me into a good programmer:

  • I went contracting so I worked in a lot of places, saw a lot more examples of good and bad code and I met a lot more programmers.
  • I think I hit mental puberty and woke up to the fact that I needed to listen and learn more.

Since then, I think my own opinion of my coding skills has generally dropped year on year, even though I would like to think I continue to get better at actually constructing computer programs and suites of programs.

So yes, I wish I was as good a programmer now as I thought I was aged 22. And after 25 years at it (actually, pretty much 35 years at it on and off!) just like Rich Rogers (or is it John D Cook? I can’t quite decide if it is a quotation or not) I think I am finally getting moderately good at writing programs. If I continue to follow this trend, on my 65th birthday I will be convinced I can’t program for toffee and yet will finally be a Good Programmer.

I wonder if  anyone would still employ me to do it by then?

Friday Philosophy – Database Dinosaurs January 22, 2016

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

I’m guessing many of you reading this are over 40. I know some of you are actually beyond the half century and a couple of you are….older! If you are younger than 40, just print out this and put it in an envelope marked “read a decade later than {current date}”. It will have become relevant for you by then…

beware the network admin

Beware the network admin – creative commons, Elvinds

So wind back your memories to those glorious days in your first role working with IT. For most of us it was half our lives back or more, when we were in our early 20’s or even in our teens. One of you was 18, I know, and I knew one guy who started as a salaried, paid programmer at 16. Do you remember those old guys (and occasional gals) you met back then? Often with beards, an odd sense of “style” and a constant grumbling murmur that, if you listened closely, was a constant diatribe about the youngsters “not getting it” and this UNIX thing not being a “proper OS” {fill in whatever was appropriate for the upstart OS back when back where for you}.

Don't annoy the DBA

Don’t annoy the DBA

You are now that person. I know, you don’t feel like it – you can still do all this technology stuff, you program better now than ever, you know how to get the job done and you have kept up with the tech as it moves forward. And you sure as hell do not look as weird as those oldsters did! Well I have bad news. You do look as weird as those old guys/gals to any youth about {and is that not a good thing, as most of them look a right state} and you have probably not kept quite so up with the tech as you think. You have to keep partly up-to-date as the versions of Oracle or whatever roll on, else the career becomes tricky. But as I’ve realised this last few weeks, you probably use old coding techniques and ways of doing things. This is maybe not a bad thing in you day-to-day job as these older ways *work* and doing it that way is quicker for you than spending time checking up the latest “time saving” shortcuts in the code you write. I’ve had that brought home to me recently as I’m working in PL/SQL at the moment and I am using some code I initially wrote back in the last century {I love saying that} as the basis of an example. It works just fine but I decided I should re-work it to remove now-redundant constructs and use features that are current. It is taking me a lot of time, a lot more than I expected, and if I was writing something to Just-Do-The-Job with slightly rusty ways, I’d have it done now. That is what I mean about it not being such a bad thing to use what you know. So long as you eventually move forward!

Of course it does not help that you work on a legacy system, namely Oracle. I am not the first to say this by a long, long shot, Mogens Norgaard started saying this back in 2004 (I can’t find the source articles/document yet, just references to them} and he was right even then. If you think back to those more mature work colleagues when we started, they were experts in legacy software, OS’s and hardware that did in fact die off. VMS went, OS/2 died, Ingress, Informix, Sybase and DB2 are gone or niche. And don’t even mention the various network architectures that we had then and are no more. Their tech had often not been around as long as Oracle has now. And I know of places that have refreshed their whole application implementation 3 or 4 times – and have done so with each one based on a later version of Oracle (I do not mean a migration, I mean a re-build).

Or the Sys Admin

Or the Sys Admin

The difference is, Oracle has had a very, very long shelf life. It has continued to improve, become more capable and the oracle sales & marketing engines, though at times the bane of the technologist’s lives (like making companies think RAC will solve all your problems when in fact it solves specific problems at other costs), have done a fantastic job for the company. Oracle is still one of the top skills to have and is at the moment claiming to be the fastest growing database. I’m not sure how they justify the claim, it’s a sales thing and I’ve ignored that sort of things for years, but it cannot be argued that there is a lot of Oracle tech about still.

So, all you Oracle technologists, you are IT Dinosaurs working on legacy systems.

But you know what? Dinosaurs ruled the earth for a very, very, very long time. 185 million years or so during the Mesozoic period. And they only died out 65 million years ago, so they ruled for three times as long as they have been “retired”. We IT Dinosaurs could well be around for a good while yet.

We better be as there is another difference between when we started and now. Back then, we youth were like the small mammals scurrying in numbers around the dinosaurs(*). Now we are the dinosaurs, there does not seem to be that many youth scurrying about. Now that I DO worry about.

(*) the whole big-dinos/small scurrying mammals is a bit of a myth/miss-perception but this is not a lesson on histozoology…