jump to navigation

Friday Philosophy – Building for the Future August 14, 2015

Posted by mwidlake in Architecture, development, Friday Philosophy.
Tags: , ,
2 comments

I started my Oracle working life as a builder – a Forms & Reports Builder (briefly on SQL*Forms V2.3 but thankfully within a month or two we moved up to SQL*Forms V3, SQL*reportwriter V1.1 and SQL*Menu 5 – who remembers SQL*Menu?). Why were we called Builders? I guess as you could get a long way with those tools by drawing screens, utilising the (pretty much new) RI in the underlying Oracle V7 to enforce simple business rules and adding very simple triggers – theoretically not writing much in the way of code. It was deemed to be more like constructing stuff out of bits I guess. But SQL*Forms V3 had PL/SQL V1 built in and on that project we used it a *lot*.

I had been an “Analyst Programmer” for 3 years before then and I’ve continued to be a developer/programmer/constructor-of-code on and off over the intervening couple of decades. I’m still a developer at times. But sometimes I still think of it as being a “builder” as, if you do it write {sorry, little word-play joke there} you are using bits of existing stuff and code designs/patterns you know work well and constructing your system. The novel part, the bit or bits that have never been done before (at least by me), the “architecting” of those units into something interestingly different or the use of improved programming features or techniques vary from almost-none to a few percent. That is the part which I have always considered true “Software Development”.

So am I by implication denigrating the fine and long-standing occupation of traditional builders? You know, men and women who know what a piece of two-by-four is and put up houses that stay put up? No. Look at the below.
House_and_odd_feature

This is part of my neighbour Paul’s house. He is a builder and the black part in the centre with the peaked roof is an extension he added a few years back, by knocking his garage down. The garage was one of three, my two were where the garage doors you can see are and to the left. So he added in his two-story extension, with kitchen below and a very nice en-suite bedroom above, between his house and my ratty, asbestos-riddle garages. Pretty neat. A few years later he knocked down my garages and built me a new one with a study on top (without the asbestos!) and it all looks like it was built with his extension. Good eh? But wait, there is more. You will have noticed the red highlight. What is that white thing?

Closer in - did he forget some plumbing?

Closer in – did he forget some plumbing?


This pipe goes clean through the house

This pipe goes clean through the house

When I noticed that white bit after Paul had finished his extension I figured he had planned more plumbing than he put in. I kept quiet. Then, when he had built my new garage and study, I could not help ask him about the odd plumbing outlet. So he opened it. And it goes through the dividing wall all the way through to the other side of the house. Why?

“Well Martin, putting in cables and pipes and s**t into an existing house that go from one side to the other, especially when there is another building next door, as a real pain in the a**e. It does my ‘ead in. So when a build something that is not detached, I put in a pipe all the way through. Now if I need to run a cable from one side of the house to the other, I have my pipe and I know it is straight, clean, and sloping every so slightly downwards”. Why downwards? “Water Martin. You don’t want water sitting in that pipe!”.

I’ve noticed this about builders. When I’ve had work done that is good, there is at least one person on the team who thinks not just about how to erect or do what needs to be done today, they do indeed think about what you will need after the build is done, or in a few years. Such as hanging doors so they do not smack into the cupboards you will put in next… *sigh*. Paul is the thinking guy in his little team. I suspect one of the others is pretty smart too.

But isn’t this what the architect is for? To think about living with the building? Well, despite the 7 years plus needed to become a true architect (as that term really means, not as some stolen label for software designers with too much ego) I’ve had builders spot the pragmatic needs a couple of times that the architect missed.

And as I think we would all agree, a good software developer always has an eye on future maintenance and modification of the software they develop. And they want to create something that fits in the existing system and looks right. So just like my builder neighbour does.

I’m not a software architect. I’m a code builder. And I’m proud of it.

Friday Philosophy – Being Rejected by the Prom Queen July 13, 2015

Posted by mwidlake in conference, Friday Philosophy, Presenting, Tech15.
Tags: , ,
1 comment so far

If you follow me on twitter (and if you are on twitter, why would you *not* follow me :-) See Twitter tag on right of page -> ) you will know what the title is all about. I posted the below on my twitter feed a few weeks ago:

Submitting to speak at #OOW15 is like asking out prom queens. You live in hope – but expect rejection :-)

{BTW if prom queens are not your thing and you would rather be asking out the captain of the football/ice hockey/chess team, the vampire slayer or whatever, just substitute as you see fit.}

I’ve not submitted to Oracle Open World for years – in fact, I’ve never submitted papers to OOW. Of the two times I have spoken at the conference, once was at the request of an Oracle product manager as the “friendly customer” in his talk {I did 75% of the talking and was not even mentioned on the agenda!} and the other I was actually presenting back at Redwood Shores at an Oracle Life Science conference running parallel to OOW. Both were a decade ago. But this year I decided to give it a shot and put forward 3 talks – all technical but intro talks, which I thought they would like as it would be a nice balance to much of the content, which is either deep technical stuff or, more often, “how great is Oracle” presentations on the latest stuff. And for 2015, endless fluffy Clouds.

I know it is hard to get accepted at OOW and, despite my personal, utter conviction that my talks would be brilliant and wow the audience, I had no great hopes. I was up against the Oracle-Presenting-Equivalent of the Sports Jocks and children-of-the-fabulously-wealthy at college. But for a short & wonderful period, I actually thought she was going to say “yes”!!! You see, lots of my friends who had also “asked out the prom queen” were tweeting that they had been rejected. But I had not, no email in my inbox saying that whilst I was cute, we were not right for each other. In fact, when the odd tweet went out from people saying that one or two of their talks had been rejected but not all, I started to think I was going to slam-dunk the whole affair and get all 3 talks in! What would be the equivalent of that with the Prom Queen? Probably stuff her dad would not be happy about.

But no, I’d forgotten I’d submitted under my ORA600 email address and when I remembered, I found the email waiting there. All three rejected. No dancing with the Prom Queen for me. *sigh*. It was like she’d not only turned me down but rung up my mum to refuse my offer of a date, rather than tell me direct. I would not have found it so hard to take if only, for that short while, I thought I was going to get a “yes”.

I suppose it is only fair. I’ve been on the panel of people choosing the content for the database part of the UK Oracle User Group Tech15 conference in Birmingham. Notification for acceptance or rejection of submitted papers to that event went out just a day or two before the OOW notifications and I knew some of my friends were going to be disappointed. I worried about that a little, they knew I had been involved in the choice and so was partly responsible for them not being selected. {I really hope that the person who told me to stay on holiday in Montenegro as they knew where I lived was kidding….}.

OOW15 and UKOUG Tech15 actually had a common issue I believe – less physical space for talks. I’ve been told that the Moscone centre has been overhauled and some space is still not ready. For Tech15 we are sharing space with Apps again so do not have as much room as we would ideally like. However, the main issue (again for both events) is just the number of good presentations by good speakers that we get. If we had space for 6 concurrent database streams at the same time (we do have space for 4 or 3, depending on the day) we would still have more than enough good talks – and the delegates would have to be picking between maybe 3 or 4 talks out of the 6 that they personally would like to see – and feeling they were missing out no matter what.

I’ll say more at a later date about how we actually pick the talks (the post is half written) but the take home message for anyone rejected from UKOUG Tech15 this year is:
(a) The competition was strong.
(b) You have a known target for your anger (Look, it really is 90% decided by the judging scores!!!)
(b) You can take comfort schadenfreude in the knowledge that I (and several other committee members) have suffered exactly the same disappointment as you. Maybe worse for me – for a while I was convinced the haughty little minx was going to say yes….

If you got rejected by OOW15 then I think the important things to keep in mind are:
(a) It’s all just Sales Pitch & Company flag waving & cloud-cloud-cloud and you never really liked that prom queen anyway. {Me? Bitter?}
(b) There is a stellar line up of people who have also been rejected. Try checking out the twitter tag #TeamRejectedByOracleOpenWorld {quick nod to Tim Hall for coming up with a such a funny idea}.
(c) At least you put in for it. The one way to be sure you won’t get something is to not try.

Oh well, there is always next year. If my ego has recovered by then. I quite fancy the new captain of the chess team…

Computers are Logical. Software is Not July 3, 2015

Posted by mwidlake in development, Friday Philosophy, future.
Tags: , ,
2 comments

We’ve all heard it before. Computers are totally logical, they do exactly what they are told. After all, Central Processing Units (CPUs) are built out of fundamental units called Logic Gates. With perhaps the exception when a stray cosmic ray gets lucky, the circuits in a computer chip and memory act in a totally logical and predicted manner.

And of course, anything built on top of computers will be utterly logical as well. All those robots that companies are designing & building to clean our houses, do our manual labour and fight our wars are going to be logical, follow the rules given and be sensible.

But they are not. As Software is not logical. Often, it is infuriatingly illogical and confusing. Which makes you worry about the “domestic servant” robots that companies are developing, the planned “disaster scene recovery” robots they keep telling us are coming and especially the “Killer Robots” -sorry, “Defense Robots” – that the military are beavering away at.

This XKCD cartoon very much refelects some recent experiences I have had with consumer software:

XKCD - Haunted Computer

XKCD – Haunted Computer

I’d say that, unless an algorithm is about as simple as a Centigrade-to-Fahrenheit conversion program, it will have a bug or will mess up with out-of-range values. Just think back to when you wrote your Centigrade-to-Fahrenheit program (we all have, haven’t we?) back at school or on your home computer or you first week on the college course. What happened if you input a temperature of -1000C, an impossible temperature? I bet it either fell over or gave a just-as-impossible Fahrenheit value. Logical but stupid.

I worked on a financial system a few years back that, as one very small but significant part of what it did, showed you your average spend on things over 3 years. It took several weeks to explain to the program manager and his minions that their averaging code was wrong. Utterly, hopelessly and tragically wrong. First, it calculated and displayed the value to several decimal places – To thousandths of a penny. Secondly, it did not take into account the actual period over which you had spent your money. If you had opened your account 1 year ago, it still calculated the value over 3 years. As for taking into account months, weeks and days of the year, don’t make me laugh. You might be able to forgive this except the same team had also written the code to archive off data once it was 3 years old – in whole years. So there would only be between 2 and 3 years of data and only 3 whole years for, theoretically, 1 day. But no, they had hard-coded the “divide by 3 years”.

We have all experienced endless issues with computers or peripherals that will work one day, not work properly the next and then go back to working. Firmware and Operating Systems are just software really, with the same flaws as the stuff we write and fix in our working lives day after day. There will be a twisted reason buried deep somewhere why the printer will not work on Thursdays, but it won’t be a sensible reason.

All the software out there is more or less illogical and broken. The less broken gets used and we learn it’s idiocies. The worst gets canned or labelled “Windows 8” and forced on us.

Crazy (illogical) Killer Robot

Crazy (but logical) Killer Robot

I know some people worry about the inexorable rise of the machines, Terminator Style maybe, or perhaps benign but a lot smarter than us (as they are logical and compute really, really fast) and we become their pets. But I am not concerned. The idiot humans who write the software will mess it up massively. Oh, some of these things will do terrible harm but they will not take over – they will run out of bullets or power or stop working on Thursday. Not until we can build the first computer that is smart enough to write sensible software itself and immediately replaces itself with something that CAN write a Centigrade-to-Fahrenheit conversion program that does not mess up. It will then start coding like a human developer with 1 night to get the system live, a stack of angry managers and an endless supply of Jack Daniels & coffee – only with no errors. With luck it will very soon write the perfect computer game and distract itself long enough for us to turn the damned thing off.

Friday Philosophy – At What Point Can You Claim a Skill? June 26, 2015

Posted by mwidlake in Friday Philosophy, Knowledge.
Tags: , ,
9 comments

I’ve just installed Oracle 12C on my laptop {I know, why only now?}. I went for the option to have a Container database with a pluggable database within it. {It is easy and free to install Oracle on your own home machine – so long as it is for personal use only and you are singed up to OTN (which is also free) }.

12C with pluggable databases (PDBs) is a little different to the last few versions of Oracle as it introduces this whole concept of the Container database that holds portions of the data dictionary and, within that, what we used to think of as Oracle instances plugged in underneath it. It is not *quite* like that – but this post is not about the technical aspects of Oracle 12C multitentant databases. And you will see why.

Whenever something I know well has changed more than a bit, I tend to hit this wall of “Whoa! it’s all changed!”. It isn’t all changed, but sometimes some of the fundamentals, the basics are different. For the last 15 years, once I have my database up and running I will have created my test users and some objects within 10 minutes and be playing away. Not this time. How do you create a user in a multi-tenant DB? How do I tell Oracle to create my users in that PDB? Hang on, how do I even check what I called my PDB? My ignorance is huge.

I popped over to Tim Hall’s site, OracleBase and the section on creating users under multi-tenant Oracle, scanned Bryn Llewellyn’s White Paper on it. A few google searches as well and soon I was there. My standard test to make sure the DB is alive, “select sysdate from dual” – only I altered it to show the PDB:

select SYSDATE from Dual

select SYSDATE from Dual

So I am logged into my working PDB on 12C, I have selected sysdate from DUAL, created my new user. I have used Oracle 12C and multitentant.

Next step?

Update CV to claim 12C expert and experience of Multi-tenant Oracle Database

This is of course a joke on my part.

Sadly, some people would actually do this.

It is something that has always annoyed me and often seems rife in the I.T. industry – people claiming skills or even expertise in something they have barely touched, let alone understood. And often about a thousand miles away from any legitimate claim to Expert. I chortle whenever I see a CV from someone with only 2 or 3 years’ experience of Oracle but list 20 areas they are expert in. Before I throw the CV in the bin.

Maybe part of the issue is that I.T. moves so fast and people feel they need to be seen to be on top of the changes to be worth employing or being listened to. Well, it’s nice to be leading edge – for much of my career I’ve been lucky enough to be exposed to the latest version of Oracle either as soon as it is out or even before (beta programs). But much more important is to have some integrity. Claiming to be an expert when you are not is incredibly dangerous as anyone who really does know the subject is going to suss you out in no time at all. And you will be exposed as a fraud and a liar. Gaining any respect after that is going to be really hard work, and so it should be.

Sadly, you do get the situation where people get away with this sort of deceit, usually by managing to deceive non-technical management but annoying the real technicians around them. Many of us have suffered from this.

This issue of claiming a skill before you had was very common with Exadata when it came out. Lots of people, it seemed, read the white papers, looked at some blogs and maybe saw a couple of talks – and then started talking to people about Exadata as though they knew it inside out. I actually saw a “professional” presentation like this at a conference, on Exadata, where it was soon clear that the presenter had probably never got as far as “select sysdate from dual;” on an exadata box (not that there is any difference for that statement :-) ). I could not help but interrupt and query a statement that was utterly untrue and at that point the presenter checked his “facts” with a more senior member of his company in the crowd. To his shame, the senior member of staff repeated the error of claiming knowledge he also did not have to back the presenter up. Every time I come across that company now, I think of that.

So when can you claim a skill? If you look at my screen shot you will see that I failed to actually log into my PDB database with my new user – #fail. Of course I can’t claim these skills based on reading some information, seeing some talks and all of an hour’s practical experience.

I think you can only claim a skill once you can tell for sure if someone else also has that skill. Or more significantly, tell when they are claiming a skill they lack. Personally, I tend towards not claiming a skill if I doubt my abilities. Don’t worry, my huge ego balances that British self-doubt quite well :-)

I used to give introductory talks on Exadata as I got so tired of the poor information I saw being given on the subject. Also, all the best talks were soon about the details of smart scans, the storage cells and patching. Not much for newbies. Interestingly, even as an intro talk, most times I did the talk I learnt something new in discussions at or after the talk. But I’ve retired that talk now. Why? Well Exadata has moved forward 2 versions since I last used it and 3 since I used it in anger. I could no longer tell you if something someone claimed for V5 of Exadata was true or not. So I am no longer skilled in Exadata.

Only claim skills you have.
Distrust those who claim skills they lack.
Try to teach those who seek your skills – you will only get better for it.

Friday Philosophy – Friday Afternoon Phone June 19, 2015

Posted by mwidlake in Friday Philosophy, Private Life.
Tags: , ,
6 comments

{<<my earlier attempts to sort out my phone}
{Update on my trip to the Apple Store >>}

There used to be a phrase in the car industry in the UK (I don’t know about elsewhere) a “Friday Afternoon Car“. This is a car which is unusually unreliable, as it was built on Friday afternoon when the workers were tired, the weekend was coming and, heck, they might have been to the pub at lunch. It is occasionally used just to describe something that is a bit crap and unreliable.

I have a Friday Afternoon Phone it would seem. I am fast becoming quite disillusioned with it. You may remember my post about my sitting on said phone to make it work again. It’s an iPhone 5, I bought it as I was finally persuaded that it would be more useful to have a smart phone than the “temporary” cheap Samsung I had bought about 2 years prior to then – as an emergency replacement for my previous web-enabled phone that committed suicide with a jar of pickled onions (it’s a long, hardly believable story). I expected the Samsung to keep me going for a month or two but it was so simple and reliable it just stayed in use for over 2 years.

Your Honour, allow me to present item A and item B

Your Honour, allow me to present evidence item A and item B

Comparison:
. . . . . . . . . . . . . . Phone A. . . . . . . . . . . . Phone B
Cost. . . . . . . . . . .£400 or so . . . . . . . . . £15 with a free £10 pay-as-you-go top up.
Battery . . . . . . . . New, 8-12 hours. . . . . .New, a week
. . . . . . . . . . . . . . Now, 4-5 hours. . . . . . Now, a week!
Reliability . . . . . . Breaks every update . . .No issues ever
Making calls. . . . .6/10. . . . . . . . . . . . . . .9/10
Receiving calls . . .4/10. . . . . . . . . . . . . . 9/10
Plays Angry Birds. Yes. . . . . . . . . . . . . . . .No
Taking pictures . . 9/10. . . . . . . . . . . . . . 0/10
Helps me up a . . . Yes. . . . . . . . . . . . . . . No
mountain
Connection to web 6/10. . . . . . . . . . . . . .Are you kidding? But I’m mostly sat at a computer anyway
Impresses friends. No. . . . . . . . . . . . . . . Yes, for all the wrong reasons :-)

{There must be a better way to line up text in this wordpress theme!!!}

The Web Enabled Phone that Does not Like to Connect
In some ways the iPhone has been really good. The screen (at the time I bought it) was very good, apps run nice and fast, way too much software is available for it and it can hold a lot of pictures and videos before running out of space. Its size also suits me. But phone and web reception has always been a bit poor and its ability to hold onto a wireless connection seems to be especially questionable – as soon as a few other devices are contending for a router with my iPhone, my iPhone seems to give up its hold on the connection and sulk. I’ve had this in several places in several countries. I’m the only one up? Phone connects fine. 2 others wake up and connect? I’m off the network. I’ve also often been in a busy place (conference, sports event) and everyone else seems to be on the net but my phone just pretends.

Battery Blues
And of course, there is the issue of the battery becoming very poor. It runs on a full charge for only a few hours and if it gets cold it has a tendency to act like a squirrel and hibernate. I now carry around the spare battery pack my wife got given by her work for her work phone use abroad. The good news is, having been put on to it by Neil Chandler, I am now aware my phone has been recalled for a battery replacement. What I am a little irked about is that Apple have my details and the serial number of the phone but have never contacted me directly to let me know. OK, it is not a car (it’s just like a car – a Friday Afternoon Car) so I am unlikely to die as a result of the fault, but if they know it has a fault and it did cost a good whack of cash to buy, they should be being moral and contacting me.

Upsetting Upgrades
But the thing that utterly hacks me off is how it does not handle upgrading to the next version of iOS. I had an upgrade early on in my relationship with the phone and it blew everything off the phone. Not a big issue then as I had not had it long. But it made me cautious about upgrading. About this time last year the phone was insisting it must be upgraded and things were getting flaky (I suspect software manufacturers do this on purpose – I’ve noticed my PC running Windows can start acting odd when an update is due). Before doing anything, I backed it up. Or tried to. The first attempt said it worked but it was too swift to have backed up anything, let alone back up my photos. After then it just refused to back up. But the phone utterly refused to allow me access to the photos from my PC – it should do of course but no, nothing would pries those images out of the phone. I was particularly concerned as I had lots of snaps from a friend’s wedding. Said friend eventually helped me out by pushing all my photos to an iCloud account (It’s Just A Server On The Net) in a way he could access. I then updated the phone and, yep it failed. And locked the phone and I had to factory reset and lost all the photos. It had also lied about uploading the pictures to the net (which it took hours to not do) so they had gone for good. Grrrrr.

So this time when it started getting dodgy I managed to save all my photos (Huzzah!), backed it up, ran through the update – and it failed and locked up the phone. *sigh!!!!*. Only, this time it won’t respond even after a factory reset. My iTunes is up-to-date, it could see the phone OK at the start of the update (because I was doing it via iTunes!) but now it won’t see the phone and once I try, guess what, iTunes also locks up. So the phone is useless. I can’t help wonder if the battery issue and the failure to ever upgrade smoothly are linked somehow (by eg it being rubbish).

So I pop along to the kitchen drawer with the odds n’ sods in and pull out the old Samsung & charger and plug it in. 20 minutes later, I have a working phone. Turns out I have no credit on it anymore but I can sort that out. It even gets reception in the kitchen (I have to lean out the window of the back bedroom to get the iPhone to pick up a reliable signal at home).

Oh No! I have to Contact Apple!
Now the real fun starts. I contact my local Apple shop. Only I don’t, I access a damned annoying voice system that smugly announces “I understand full sentences” and immediately knows who I am and what my device is and when it was bought (as Apple have my details including home phone) – and it was over 2 years ago and it wants me to agree to a paid support package to go further. Of course it won’t give me options to speak to a human or understand “full sentences” even when I shout “battery issue recall” and “your update killed my phone!” plus various permutations at it. It also did not understand the sentence “I want to speak to a person”.

I eventually trick it by pretending that I will buy a support package. Huzzah, a human to talk to. Said human is helpful, pleasant, a bit hard to understand (usual call center woes of background noise and she has the microphone clipped to her socks). I explain that the phone has a recall on it and I just want that sorted and a proper reset. She’s not sure I can have this without a support package {after all, her job is to sell me some support and I am breaking her script} but she says the battery might be replaced under the recall (she has all my details, she can see the iPhone serial number, she could check!). “So I can drop it off at the store?”.

I expect “yes”. I get “no”. I have to organise an appointment. A 10 minute slot. Why? I want to drop off some kit for you to repair and I’ll come back another day. I am not making an appointment to see a doctor to discuss my piles. No, I have to have an appointment. On Monday at 10:10 or “plrbsburhpcshlurp” as the mike once once slips down the sock. OK, 10:10 Monday, she’s getting tired of me saying “please repeat that”. Then she says what sounded like “and the repair may cost up to £210 if there is a hardware fault”. WHAT?!? I don’t fully understand what she says next – but she understands I am not going to pay £210 to fix a device that has a known fault and has been screwed over again by their software update, so she backs off to “they can look at the device and advise me”.

It’ll be interesting to see how it goes on Monday. At 10:10 am. If they try and charge me hundreds of pounds to reset the damned thing or tell me (after I’ve checked) that they won’t replace the dying battery, I can imagine me becoming one of those ranting, incoherent people you see on YouTube. If they want anything more than the cost of an evening in the pub to get it working, I think it will become a shiny, expensive paperweight.

Meanwhile, welcome back Reliable Samsung Phone. You still seem to make calls just fine. Still not able to play Angry Birds though.

Friday Philosophy – Flippin’ Technology June 5, 2015

Posted by mwidlake in Friday Philosophy, off-topic, Perceptions, rant.
Tags: , ,
5 comments

Sometimes I think I would have been a Luddite or a member of other groups who have trashed new technology in frustration. Some days, I can just scream at it. You would think having worked in Information Technology for so long would make me more of a fan, but it actually makes me worse – as I know there is no need for there to be so much wrong with the electronic dross we all have to deal with day-to-day. And if I, someone who has used (heck, even programmed) computers for 3 decades, have trouble with these damned things, how frustrating must “normal” people find it?

Tesco Challenge - original on RevK Rant's blog

Tesco Challenge – original on RevK Rant’s blog

Take this morning’s source-for-a-rant. Self checkouts in supermarkets. I had popped into Tesco to get the weekend’s rations of baked beans, wine and cat food and there were large queues for all manned (though, I should more correctly say, mostly womanned) tills. And almost no queue for the self-service ones. We all know why almost no queue for the self-service ones, most of us hate them. But I had to get back home for a UKOUG conference call and there was very little chance the three-people-deep queues would be negotiated in time, so I manned up and went to one of the vacant screens.

Have I mentioned I’ve been using computers since before Wayne Rooney, Keira Knightley or Michael Phelps were born? So I have some affinity and experience to navigating screens of information. But, like all of theses devices, using them is painful. Given they are designed to be used by everyone including idiots, why is the “UX” so low? Why does the important information appear at different spots in the screen at different times? Why does there seem to be no button to press for a simple, key-word triggered guide (“How to weigh Veg?” Oh, look up there, press the correct icon, look down there and press another and then finally click over here to say “yes I really did ask you to weigh some bananas” – that would be nice). Why does the Waitrose one make me swipe my card to pull up my scanned items but insist I shove the card up the slot to pay? Plus all the times you have to get some human to come over and confirm you are over 18 (I need to be 18 to buy expanding foam?!?) or don’t look suicidal. I’m not being funny but the age check is just not needed, if I am using a credit card it can know I am 18 or over (you cannot you have a UK credit card under 18, partly as you are not allowed to sign up for a credit agreement below that age and if I am using someone else’s credit card, me buying a bottle of wine is the least of the potential issues). To give them their due, at least our local Tesco (unlike many other stores I have used around here) have someone on hand to constantly swipe, press, tap and harass the machines into playing correctly.

I can’t believe how badly these self service checkouts work. I can’t believe the companies have not tested them extensively with real people (I know, they claim to, but then I’ve seen “user system testing” in big banks and it is shockingly poor). How can they think such terrible systems are good for business? That people still insist on queuing for checkouts with real people rather than use them must tell the companies something! Why can’t these systems be better designed. Why are they so painful to use? It can’t be me. Maybe it is me….

Next rant. My internet & email supplier. Hi BT. BT, you are crap at running your internet & email service. I’ll only mention in passing the regular episodes of slow internet, the times mail seems to struggle to keep moving, the harassing emails to buy more allowance as I am reaching my limit…for the prior month (“HI BT, I think I might pop back in time and download 15 films last March, can I have more allowance for than as I’d used over half my limit”) – but I am going to complain over the fact that for the last 5 weeks now, each weekend you stop accepting valid connection requests from my Laptop – but allow them from my iPhone. So my account/pwd is working fine. But no, from the PC you tell me I have to validate my account. So I log on to the web site and as soon as I put in my details you tell me I have to change my password as there has been too many failed attempts at access my account? Well, if they failed, I chose a decent password maybe? Trying to force me to change it is likely to make me change it to something simpler maybe? Especially as this is the fourth time this month… but then, usually the system fails to actually process my password change and just hangs. My iPhone still keeps working with the old details and, usually by the next day, the errors have gone and I can access my mail with my old details with a real machine again too. My conclusion has been that it’s their software screwing up. Each. And. Every. Weekend.

It’s got worse, it now fouls up some workdays too. And I made an interesting discovery. When I log in to the web site to validate myself, if I put in a password of “scr3wy0uBT” – it accepts it and puts me into the Change Your Password screen exactly the same as before. No, my password is not “scr3wy0uBT” {it rejected it when I tried…}. So top security there. Whatever is happening, it’s just…..pants {UK phrase, it means “utterly rubbish”. Pants are not trousers, they are undergarments, you strange Americans.}

What is BT doing wrong to have this problem keep happening? Is this a good “UX” experience for me and all the other people who seem to have similar issues? Is it so hard to sort this out?

What was the third rant? Oh yes. Windows 8. Too many people before me have vented spleen and given pieces of their mind on Windows 8 for me to be able to add any more to the pile, but what I cannot fathom is, as soon as they got the almighty ass-kicking that they did for ballsing up the Start Button/Menu, why did they not in the next version just put it straight back as it was?. Or put out and advertise a simple “patch” to put back what millions of people were screaming they wanted back? All I can think is someone’s ego was too large to wave their hands in the air and say “Oh boy, did we make a dog’s dinner of that – let us help improve your “UX” and our reputation by fixing that straight away”.

Final rant. Games. Computer Games. I like running around shooting things. It gets rids of some of the IT-In-Daily-Life anger. But I am not very good at it and my broadband connection is slow and a bit laggy, so I am not interested in running around shooting things with friends. The same broadband issues mean I also don’t want to spend 4 hours downloading a game, I want to buy it in a floppy disc…..I mean CD…. Errr, DVD… and play it. So I went to this place called a “shop” and I bought a game on media in a box and checked the packaging. No where did it state I have to have an internet connection. I get the DVD out (hmm, there are actually three), put it in the machine and 30 mins later the software is loaded. And now it FORCES me to register with some crapola online gaming site to register my copy (like, if I had a bootleg version that would not be the first bit they strip out) and that takes an hour to download it’s own shitty software. That done, it will let me fire up the game – that immediately bombs out to download the latest patch (which I think it the crapola online site’s version) and that takes two hours as it is obviously much, much more than a patch. I suspect it is the whole damned game again. This is not a “UX” I wanted and, you can bet, next time I buy a game, crapola online gaming company is one thing I will be looking to avoid. It does not help that said game won’t fire up without logging into said game site or making me watch a minute of adverts about who wrote the game on who’s graphics card using what game engine. Thankfully a few minutes on the net explained how I could avoid all of that. But why do I have to take steps to stop these companies annoying me and, this is the bit that confuses me, what makes these companies think I’ll be impressed by being repeatedly exposed to their adds that I don’t want to see? I’ll just despise them a little bit more each time.

I just don’t get it. The number one thing any IT system needs to achieve is User Acceptance (as I have said before, if you check the link). Why do so many large companies miss this and inflict on the world a seriously sub-standard experience of IT and technology? If someone like me who has driven a screen, a keyboard and a mouse for 3 decades, understands some of the limits to IT and must have at least some brains in his skull, if I get endlessly caught out, befuddled and simply screaming-out-loud-frustrated by crap IT, how is my poor old mum (and everyone’s poor old parents) supposed to cope?

I’m going to become a Lumberjack. Chainsaws do not have screens and keyboards.

No I.T. Hassles Here

No I.T. Hassles Here

Friday Philosophy – Make a Team by Letting Them Burn May 29, 2015

Posted by mwidlake in Friday Philosophy, Management.
Tags: ,
add a comment

The title of today’s Friday Philosophy sounds extreme, but it’s true.

Sir John Harvey-JOnes

Sir John Harvey-Jones

Recently, I was watching a TV program about “experts” helping companies turn around. A couple of decades ago the BBC had a program called “The Troubleshooter” where a gentleman called Sir John Harvey-Jones gave companies in trouble advice {the similar idea but without the cheap and tacky elements we have today with making the targets of the program cry and over-emote for good TV}. John just gave solid advice. But one thing that was true in the program back then and is true in the tacky 21st century take on the program is that eventually you have to let the new team make mistakes.

This resonated with me as when I was managing teams it was something I knew I should do – and struggled to allow. A new team and, especially, a new team leader, has to be given space to make mistakes.

I have always found this very hard to watch. When you become a team leader yourself, or a subject matter expert, or the “lead” on anything, you make mistakes. You just do: it’s new to you, you have not done it before and you lack the experience and knowledge to know what works and what does not. If you are lucky you might have a mentor you can talk to or think back on, maybe a team leader you enjoyed working for or an expert you admire. But often it is just you and the new role and a whole green field of requirements into which you can drop your own cow-pats. It is challenging, exciting, frightening, worrying… Looking back, those are the times that have been most demanding in my career and have also been the times I learnt the most.

I would say they were also the best times in my working life (and that would fulfill the usual mythology and story-telling shtick at this point) but that would be a lie. 50% of the time they were, the other 50% of the time I hated it. Am I not supposed to say that? Well, it’s true. Half the time, breaking new ground is not the Star Trek/Friends/Movie-of-the-month feel-good ride to betterment that society sells us it is. Sometimes it is hard work, bruising and sucks. Am I wrong?

So, I know it is not always a nice ride. And, irrespective, I’ve learnt some lessons over the years – and I do not see why people under my tutelage cannot just inherit the lessons I learned painfully without the pain, by me guiding them. I want what is in my head and my experience to be available to you.

What is wrong with that? Well, three things at least.

My way is not your way. I am me, you are you. Ignoring for the minute that I could get things wrong {As if!!! {British ironic humour) }, just because how I handle a situation or my team or a tricky customer interaction works for me, that way may not work for you – as you have a different personality and different strengths. I’m pretty good at dealing with companies that try to rip me off. I face them down and I bloody well let them have it. My wife does not do that, she keeps calm, is passive (in my eyes) and does not point out their stupidity. But she nails them with reasonable logic and calm {but she will go for the throat if reason fails}. We both usually win. She maybe wins more often (please don’t tell her that). We all have to find what works for us as individuals and that varies.

Secondly, though I would like to save you from pain, if you do not make your own decisions and live with them then it was not your work. If you do what I told you to do then it was partly my work. You will know that. What will you do when I am not there? I’m not arguing against seeking advice, that is always (in my book) correct. But if you are in charge of something, you need to BE IN CHARGE so that you learn to know you can (or cannot, let’s be honest) do it. You have to decide if you take any advice, it would be questionable of me dictate you take my advice (though there are times and situations when that would be correct of me). If you succeed because I told you what to do, you have learned a way to handle that situation. If you resolved the problem yourself, you also learned that you can do it. If you mess up, then you learnt a way not to do things and you now have to learn another vital management skill:

To be a good leader you need to accept your mistakes – and sort them out.

That is what I mean about letting the team burn.

The third point, the one I do not like looking at, is that. Well. My way may not be best. Your way might not just be different and better suited to you and your abilities, it might simply be better. If I over-ride a minion when they are not doing it My Way then I am preventing them from learning, I am preventing them from doing it their way, and I am potentially preventing them doing it a better way.

My job as a manager is getting the best out of those I manage. That may include them doing a better job than me. If that is a problem, it is my problem.

This is also true of teaching and mentoring and explaining. If I teach you SQL programming and you become a better SQL programmer than me, I’ll be hurt – How dare you be better than me? I Bloody taught you! I would like to feel that as I get older I can live more comfortably with achieving that aim of someone I teach becoming better than me.

So getting back to the title. If I manage a team leader, I have to let that team leader… lead. I advise, I help, I highlight what I think they missed… And then, if I can over-ride my damned ego, I shut up. I have to risk letting them burn.

If they burn, I try to put out the fire with them.

If they do not burn, they have learnt and will be better.

If they shine, then they have exceeded me and we might be swapping roles one day.

I would like to think that is how I operated at the end of my time managing teams.

Friday Philosophy – Why I Volunteer for User Groups May 22, 2015

Posted by mwidlake in Friday Philosophy, Presenting, Private Life, UKOUG.
Tags: , , ,
add a comment

I’ve just noticed a new page about me popping up on the UKOUG web site – It’s in the section about volunteer case studies, alongside people like Joel Goodman, Simon Haslam, Carl Dudley, Jason Arneil, Brendan Tierney and others who have been stupid good enough to give time and effort to the UKOUG.
{You can get to the page by going to the UKOUG home page (www.ukoug.org) and clicking the Membership or Member Activities tab and Case Studies & Testimonials under that and finally Volunteer Case Studies. Phew. Or follow the link I gave at the start and click on the other names.}

I’m not sure how long I’ve been up on there but only a couple of days I think.

Anyway, Why DO I volunteer for user groups?

The little bio covers most of it but I thought I would put some words here on my blog too. I volunteer because, fundamentally, I am a socialist (with a small ‘S’) – I feel that we are all better off if we all help each other. I’ve been helped by people in my career (presenting stuff I don’t know, giving advice), I guess I feel that I should return that favor. Many of the people who have (and continue) to help me stand nothing to gain personally by helping me. In fact, one or two have helped me when, strictly speaking, they are helping create a rival for work opportunities. I try to do the same to those around me. I know, it sounds a bit “Disney film teaching the kids to do right” goody-two-shoes, but that is the core of it. And there are some other aspects to it too…

Why do I volunteer for the UKOUG specifically? Because they are THE main user group in my geographic area and provide the most support to the Oracle user community here in the UK. Most of the people involved in the UKOUG are just nice people too. But I also support and volunteer for smaller user groups, mostly by either promoting their meetings, going to them or presenting. I started presenting at the main UKOUG conference back when Dido, Eminem and Christina Aguilera where in their hey-days. I also went to the RDBMS and similar SIGs and before long I was presenting at them and then got sucked into chairing one of them – the Management and Infrastructure SIG. I’ve been slowly sucked in more & more as the years role by.

That has led on to me presenting at other user groups in different countries. Actually, I used to do quite a bit of presenting abroad (mostly the US) around 10 years ago, but that was part of the role I had at the time and my employer paid the bills. No employer to pay the bills now, but then as it is my time I try to make presenting abroad also a chance to have a short holiday, I try to take a day or two one side or the other of the event to look around. And actually, it is nice spending time with other people who present at or attend user group meetings.

Another part of it is I just like presenting. This is not quite so Disney Nice Guy, there is an aspect that is more selfish, that standing up, being listened to and telling people stuff that maybe they don’t know makes me feel better about myself. Better about myself? OK, I’ll let that stand for now but it is more that it makes me feel I am achieving something and having an impact. That I am useful. Fundamentally it is still a desire to help and presenting does not scare me (I know it is scary for a lot of people, but then a lot of people are not scared of heights and I am – it all balances out). But with a slice of “look at me!!!” thrown in.

There are also rewards for the effort. I’ve got to know a lot more people as a result of presenting, blogging (and now tweeting) than I would have had I stayed just one of the audience. For me it has helped me make more friends. As I said above, part of what is now nice about user group meetings for me is meeting friends I’ve made who are also on the speaker circuit and there is inevitable a few drinks in the evening whenever there is a user group. It also gives you more exposure in the community and helps lead to job opportunities – or at least that is the theory. No one has yet offered me a job because they liked my blog post or presentation!

That leads me to the last aspect of volunteering. Some people volunteer primarily for selfish reasons. To get bragging rights, get it on their CV’s, to help them get sales contacts or better jobs. The odd thing is, people who do it for those reasons tend not to last – as volunteering for user groups is a lot of hard work to get those rewards. You can usually spot them as they are the ones who don’t actually do a lot or complain all the time about the coffee being bad (actually, usually the coffee IS bloody terrible) and other things. Don’t get me wrong, some of those rewards do come with the volunteering, but if someone is volunteering primarily to get them, it does not seem to work out for them. Or maybe that is my socialism coming out again :-). Fundamentally, I think volunteering only works if, at the core of it, you want to help other people. Maybe that is why other volunteers are such nice people to hang around with.

Why do you do it? (or not).

Friday Philosophy – Know Your Audience May 7, 2015

Posted by mwidlake in Blogging, Friday Philosophy, Presenting, publications.
Tags: , ,
9 comments

There are some things that are critical for businesses that can be hidden or of little concern to those of us doing a technical job. One of those is knowing who your customers are. It is vital to businesses to know who is buying their products or services. Knowing who is not and never will buy their products is also important (don’t target the uninterested) and knowing and who is not currently buying and might is often sold as the key to ever growing market share and profit. But fundamentally, they need to know who the current customers are, so they can be looked after {I know, some businesses are shocking to current customers, never understood that}.

This should also be a concern to me.

Why? Well, I “sell” something. I don’t charge for it, but I put out my blogs and my tweets and my presentations. I’ve even stepped up to articles. So I am putting a product out there and I want people to use it. Any of us who blog, tweet, facebook or in some way communicate information are fundamentally trying to talk to people. It’s fine to just put stuff out there and see who comes, but if I am doing this in order to reach an audience, well, who is my audience?

I know who my audience is. I’m British. I live in the UK, 75% of my presentations are in the UK, 95% of my work has been in the UK. I drink tea as a hobbie, queue as only the British know how, want my ale at room temperature and I am self-deprecating in my humour. At least, I’d like to think I am, but please forgive me if I fall short of your expectations.

My Audience is UK:

Who comes looking from where

Who comes looking from where

My Audience is American.

Dang!

As you can see from the above, my reasonable assumption was wrong. Those are stats I pulled from my blog about visits by country for a recent period. Most of my audience is in the US. For this particular period the UK is my second highest audience and India is third, but I dug in a little more and at times my Indian audience is higher than my UK audience.

Other countries move up and down but the above graphic is representative – European counties, Canada, South America and Australia all are prominent areas for me, and South Korea – big technology country, South Korea, so I should expect a reasonable showing from there. However, I’ll just let you know that last year (different graph, I hasten to point out) I had only 1 visitor from the Vatican, Vanuatu and Jersey (part of the UK!) each. I’m a bit gutted about Jersey, having worked there once, but the Vatican? Does the Pope need a VLDB?

I have noticed a spike of interest in a given month by a country if I go and present there, but it does not last for long.

What about my Tweet world? The below shows where my followers are from:

Peeps wot Tweets

Peeps wot Tweets

It is nice that this graph emphasises that “others” outside the top 10 are larger source of audience tham any individual country, but it shows a similar pattern to my blog. I’m mostly talking to my American cousins, the home crowd and our friends over in India. I suppose if you think about the number of people working in IT (and, to a lesser extent, just simply living) in countries across the global, the numbers make a lot of sense. If I was doing this analysis on a database of the raw data I’d now be correlating for population size and trying think of a proxy I could use for “IT Aware”.

So now I know who my audience is. Does this mean I should alter the tone of my posts to be more American or International, or is the British flavour of my erudite utterances part of the appeal?

I have noticed one change in my output over that last year or so, as I have become more aware of the geographical spread of my audience. I tend to explain what I recognise as odd phrases (above paragraph allowing) or UK-centric references a little more. And I try to allow for the fact that not everyone visiting my blog speaks English as a first language. But in the end, I have to use the only language I know. However, I don’t think I appreciate well when I am using colloquial phrases or referencing UK-centric culture. I’ll try harder.

One thing I do resist is WordPress trying to auto-correct my spelling to US – despite the fact that the app knows I am in the UK. Maybe I should spend some time trying to see if I can force the use of a UK dictionary on it? I won’t accept corrections to US spelling because, damn it all chaps, English came from this island and I refuse to use a ‘Z’ where it does not belong or drop a ‘u’ where it damned well should be! And pants are underwear, not trousers, you foolish people.

There is another aspect of my blog posts that I find interesting, and it is not about where my audience is – it is about the longevity of posts. Technical posts have a longer shelf life. My top posts are about oddities of the Oracle RDBMS, constantly being found by Google when people are looking at problems. A couple of the highest hitters I put up in 2009 when almost no one came by to look. However, my “Friday Philosophies” hit higher in the popularity stakes when first published but, a month later, no one looks at them anymore. Stuff about user groups and soft skills fall between the two. Some of my early, non technical posts just drifted into the desert with hardly any notice. Sadly, I think a couple of them are the best things I have ever said. Maybe I should republish them?

Friday Philosophy – Do Average to Be a Success March 6, 2015

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

A few days ago a friend of mine, helifromfinland, tweeted something that exactly matched the topic that I was thinking of doing my next Friday Philosophy on. Heli said:

I am learning to do things well enough, not always perfect. Even writing that sentence feels so wrong but #babysteps :-D

That made me smile – I know the feeling myself and I know some people for whom it is all-consuming. It is something that I suspect many people who are active in the oracle community struggle with. We all try and do the best we can at all we do.

In our jobs in I.T what is needed most often is not the perfect solution – or even the best solution we can come up with. It is:

The best solution that achieves the requirement within the timeframe allowed.

I think I was lucky in that the principle of “good enough” was explained to me fairly early on – and in an environment where “good enough” is not usually the prescribed wisdom.

I was at college doing my degree. In academia or school you are usually encouraged to strive for perfection, in the aim of doing the best you can. It seems to me that they don’t teach you what the real world wants. I can’t remember the exact details (it’s almost 3 decades ago!) but I was trying to finish a written assignment in genetics and it was deadline day. I hunted down the professor who had assigned the task and asked if I could have a few more days as I wanted to check up some of the latest papers on it in the library {I know, what a terrible swot {definition – see item two here!} I was}. He did not say no, he did not say yes. Instead he took me into his office and asked me a few questions about the topic and what I had written so far. I think he was checking I had done something rather than was just covering up being lazy. He then asked me what the purpose of the assignment was.

???

I started explaining the topic again but he cut me short. It took him a few attempts I think to get to where he was directing me, which was that it was a task to be completed in a time frame, to show I understood the topic. I was not doing original research, I was not trying to prove anything. It was Just A Task. The Prof then explained to me that his wife was not an academic but worked in industry. She had tasks to do in set time frames and others relied on her doing those tasks on time. She had more work to do than she could easily cope with. The Prof asked me “Should she keep asking for more time do them? Should she only do a few tasks to the best of her ability or most of her tasks to a level that everyone was happy with?” I got his point, but surely in academia the aim is always “as good as you can?”. He felt not and I think he was vexed {meaning, “really pissed off”} that many academics see it that way. There are times you need to do the very best you can; to spend the time to prove your theory; to cover off all the alternatives or caveats to your point; to get the lab result that clearly corroborates your point. But most of the time, you are doing tasks. Stop dithering and do them. It’s more pointed in the commercial world but the academic world is fundamentally the same.

I think he left it to me to decide if I was going to hand the assignment in late or not but I can’t remember what I did (I’ve got my notes from back then, I can probably find out! But I’ve decided this post does not need that level of perfection… :-) ).

I think we can all agree that, especially in a work environment where others are dependent on us doing our bit in a timely manner, it is better to do an acceptable job on time than constantly overrun. It is also better to get most {aiming unrealistically for “all”} of your work done rather than failing to do tasks that then impact on others. Of course, what is acceptable is all relative and there is a time/achievement cost-benefit-analysis in moving up the poor-acceptable-good-excellent-perfect spectrum.

Maybe what defines your skill in a role is how far up the poor-acceptable-good-excellent-perfect spectrum you hit on a regular basis.

The problem is that, for some of us, we are like Heli and we absolutely, totally and utterly want to do a very good job on everything we do. This is an idea that our parents, teachers and society do press upon us in our formative years, after all.

Of course, your employer will want you to do six impossible things this morning but most are happy with 4 good things this morning and would prefer that over 2 excellent things by the end of the day and 4 undone.

I can’t say I’ve always stuck to the principal of limiting a task to the effort or time it deserves – I have a natural tendency to try and do too good{no, complete is a better way to put it} a job or else I go the opposite and don’t do the task justice {or even at all!}, so I really empathise with Heli’s tweet. When I first became a contractor I struggled with doing enough average work to keep the client happy, I was just spending too much time on doing the best I could at one or two tasks. In reality, they just wanted lots of stuff done competently. So my Prof had failed to instill the right attitude in me!

One of the nuances of “good enough”, and my point about getting {nearly} all your work done, is that it is almost an impossible thing to achieve. If you get all your tasks done, what happens? Yes, more work comes your way. Especially as our working society has gone in exactly the opposite direction to both what many predicted in the 50’s, 60’s & 70’s and also against what we, the workers, would want. The plan was we would all be working, but working fewer hours and days for similar pay. But as most of us can testify, we seem to be asked to do more and more. It’s a topic for a different day but, basically, we are all screwed by the desire by our employers to get more out of each one of us to maximise profit – more work done by the same number or less people is reducing staff pay in relation to output. The reward for getting all your work done on time is more work will be allocated to you.

Another nuance is one I know I have gone on about before. If you do a job, especially an unpleasant or hard job, very well – what is your reward? You get to do the job for ever. Or you get the next horrible, hard job to do. The reward for exceeding expectations is to set the bar that people will want you to hit ever higher and higher and higher

But you do want some recognition and some promotions.

So, for goodness sake, do just an acceptable-good job of a slightly-more-than-is-reasonable number of tasks and don’t do the next horrible job you are handed beyond expectation. And if you forget yourself and go and do the horrible task well, remember to make an utter mess of the next one – you must stop that expectation bar rising!

The final nuance is perhaps the hardest one, and the one I still struggle with despite someone explaining it to me almost 30 years ago. Some tasks really do need to be at the brilliant end of the spectrum and some are fine at being at the average or even poor end. If your role is as a DBA, your backup/recovery protocols need to be towards the brilliant. You may hope to never need to do disaster recovery but one day you will and if it goes wrong, expect to be fired. However, tuning a batch report to run in under an hour? Usually, you are asked for an ideal run time that the business does not need. Under 2 hours is enough and you have a SHED load of other tasks. No one needs the report in under a minute. You should do an average job, even if your soul dies a little in doing so.

As I mentioned above, as a contractor I initially struggled at times to do lots-of-average-work. As a consultant the requirements and expectations are a little different. You are expected to do excellent, come up with something the regular team has not. It’s nice if it is achieved quickly but heck, hard takes time :-). Average (ie what the regular team would come up with) is NOT acceptable (*NB Not always true). I personally find that the consultant paradigm suits me more, my character and working method is more suited to a slower, more considered approach. I really need to get to be a proper consultant…

So the take home message on how to get on in the working world is:

Be just above average at tasks.

Do 80% of your work but back pedal if you hit 90%.

If you accidentally do a magnificent job, mess up the next one.

Occasionally, only occasionally, let rip and blow them all away with your brilliance.

And please let me know how the above works out for you :-)

***

Quick update – a recent xkcd panel that makes the point well :-)

Follow

Get every new post delivered to your Inbox.

Join 199 other followers