jump to navigation

Friday Philosophy – When Not To Tune! Or Maybe You Should? May 20, 2022

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

This week there was an interesting discussion on Twitter between myself, Andy Sayer, Peter Nosko, and several others, on when you do performance tuning. It was started by Andy tweeting the below.

As a general rule, I am absolutely in agreement with this statement and it is something I have been saying in presentations and courses for years. You tune when there is a business need to do so. As Andy says, if a batch process is running to completion in the timeframe available to it, then spending your effort on tuning it up is of no real benefit to the company. The company pays your salary and you have other things to do, so you are in fact wasting their money doing so.

Please note – I said “as a general rule“. There are caveats, exceptions to this rule as I alluded to in my reply-in-agreement tweet:

I cite “Compulsive Tuning Disorder” in my tweet. This is a phrase that has been kicking about for many years, I think it was coined by Gaja Krishna Vaidyanatha. It means someone who, once they have sped up some SQL or code, cannot let it lie and has to keep trying and trying and trying to make it faster. I think anyone who has done a fair bit of performance tuning has suffered from CTD at some point, I know I have. I remember being asked to get a management report that took over an hour to run down to a few minutes, so they could get the output when asked. I got it down to a couple of minutes. But I *knew* I could make it faster to I worked on it and worked on it and I got it down to under 5 seconds.

The business did not need it to run in 5 seconds, they just needed to be able to send the report to the requester within a few minutes of the request (they were not hanging on the phone desperate for this, the manager just wanted it before they forgot they had asked for it). All that the added effort I spent resulted in was a personal sense of achievement and my ability to humble-brag about how much I had sped it up. And my boss being really, very annoyed I had wasted time on it (which is why it sticks out in my mind).

However, there are some very valid reasons for tuning beyond what I’ll call the First Order requirement of satisfying an immediate business need of getting whatever needs to run to run in the time window required. And a couple of these I had not really thought about until the twitter discussion. So here are some of the Second Order reasons for tuning.

1 Freeing Up Resource

All the time that batch job is running for hours it is almost certainly using up resources. If parallel processing is being used (and on any Exadata or similar system it almost certainly is, unless you took steps to prevent it) that could be a lot of CPU, Memory, IO bandwidth, even network. The job might be holding locks or latches. The chances are very high that the 4 hour batch process you are looking at is not the only thing running on the system.

If there other are things running at the same time where there would be a business benefit to them running quicker or they are being impacted by those locks, it could be that tuning those other things would take more effort (or even not be possible) compared to the 4 hour job. So tuning the four hour job releases resource or removes contention.

I had an extreme example of this when some id… IT manager decided to shift another database application on to our server, but the other application was so badly designed it took up all available resource. The quick win was to add some critical indexes to the other application whilst we “negotiated” about it’s removal.

2 Future Proofing

Sometimes something needs tuning to complete in line with a Service Level Agreement, say complete in 10 seconds. You get it done, only to have to repeat the exercise in a few months as the piece of code in question has slowed down again. And you realise that as (for example) data volumes increase this is likely to be a recurring task.

It may well be worth putting in the extra effort to not only get the code to sub-10-seconds but significantly less than that. Better still, spend extra effort to solve the issue causing the code to slow down as more data is present. After all, if you get the code down to 1 second and it goes up to 5, even though it is meeting the SLA the user may well still be unhappy – “Why does this screen get slow, then speeds up for a few months, only to slow down again! At the start of the year it was appearing immediately, now it takes forevvveeeeer!”. End users MUCH prefer stable, average performance than toggling between very fast and simply fast.

3 Impacting Other Time Zones

This is sort-of the first point about resource, but it can be missed as the people being impacted by your overnight batch are in a different part of the globe. When you and the rest of your office are asleep – in America let’s say – Other users are in Asia, having a rubbish time with the system being dog slow. Depending on the culture or structure of your organisation, you may not hear the complaints from people in other countries or parts of the wider company.

4 Pre-emptive Tuning

I’m not so convinced by this one. The idea is that you look for the “most demanding” code (be it long-running, resource usage, or execution rate) and tune it up, so that you prevent any issues occurring in the future. This is not the earlier Freeing Up Resources argument, nothing is really slow at the time you do this. I think it is more pandering to someone’s CTD. I think any such effort would be far better spent trying to design in performance to a new part of the application.

5 Restart/Recovery

I’d not really thought clearly about this one until Peter Nosko highlighted it. If that four hour batch that was causing no issues fails and has to be re-run, then the extra four house could have a serious business impact.

Is this a performance issue or is it a Disaster Recovery consideration? Actually it does not matter what you label it, it is a potential threat to the business. The solution to it is far more complex and depends on several things, one of which is can the batch be partially recovered or not?

When I design long running processes I always consider recovery/restart. If it is a one-off job such as initial data take-on I don’t put much effort into it. It works or it fails and your recovery is to go back to the original system or something. If it a regular data load of 100’s of GB of critical data, that process has to be gold plated.

I design such systems so that they load data in batches in loops. The data is marked with the loop ID and ascending primary key values are logged, and the instrumentation records which stage it has got to. If someone kicks the plug out the server or the batch hits a critical error, you can restart it, it will clean up any partially completed loops and then start from after the last completed batch. It takes a lot more effort to develop but the pay-back can be huge. I worked on one project that was so out of control that the structure of the data was not really known and would change over time, so the batch would fail all the bloody time, and I would have to re-run it once someone had fixed the latest issue . The ability to restart with little lost time was a god-send to me – and the business, not that they really noticed.

Simply tuning up the batch run to complete more quickly, as Peter suggests, so it can be blown away and repeated several times is a pragmatic alternative. NB Peter also said he does something similar to what I describe above.

6 Freeing Up Cloud Resource

Again, I had not thought of this before but Thomas Teske made the point that if your system is living in the cloud and you are charged by resource usage, you may save money by tuning up anything that uses a lot of resource. You are not satisfying a First Order business need of getting things done in time but you are satisfying a First Order business need of reducing cost

7 Learning How To Tune

I think this is greatly under-rated as a reason to tune something, and even indulge in a little CTD even when the First Order business need has been met. It does not matter how much you read stuff by tuning experts, you are only going to properly learn how to performance tune, and especially tune in your specific environment, by practice. By doing it. The philosophy of performance tuning is of course a massive topic, but by looking at why things take time to run, coming up with potential solutions, and testing them, you will become really pretty good at it. And thus better at your job and more useful to your employer.

Of course, this increase in your skills may not be a First, Second, or even Third Order business need of your employer, but it could well help you change employer 😀 .

8 Integration Testing

Again highlighted by Peter Nosko, we should all be doing integrated, continuous testing, or at least something as close to that as possible. Testing a four hour batch run takes, err, more time than a 15 minute batch run. For the sake of integration testing you want to get that time down.

But, as I point out..

{joke – don’t take this tweet seriously}

As I think you can see, there are many reasons why it might be beneficial to tune up something where the First Order business need is being met, but the Second Order benefits are significant. I am sure there are some other benefits to speeding up that batch job that finishes at 4am.

I’ll finish with one observation, made by a couple of other people on the Twitter discussion (such as Nenad Noveljic). If you fix the First Order issue, when management is screaming and cry and offering a bonus to whoever does it (like that ever happens) you get noticed. Fixing Second Order issues they did not see, especially as they now may not even occur, is going to get you no reward at all.

Rescuing An Almost Dead Lawnmower May 3, 2022

Posted by mwidlake in off-topic, Private Life.
Tags: ,
2 comments

As I slowly slip into something like proper retirement I thought I’d do some more blogs on “retired” topics. And as I know some of my Twitter followers have shown a strange fascination with my lawnmower and wheelbarrow “collection”, I thought I’d show you how I saved my old Honda Izy lawnmower from it’s imminent demise.

I’d had my old Honda Izy since 2007 and, though it had served me well, I had not been as good at cleaning if after use as I should. And it was often used on rough ground or ground with lots of stones on it, so the inside of the deck (the grey body that the engine, wheels, and other parts are mounted on) had got a lot of abuse and rusted badly. Grass mulch is quite corrosive. Looking on the net the rusting of the deck is a common problem with the Honda Izy. If I’d taken more care of it I am sure the Izy would have lasted many years longer. Anyway, the deck was splitting all the way around the engine mount and the engine & cutting blades were wobbling, causing the blades to catch the inside of the deck whenever it got jolted. In time the whole engine/blade unit was going to come away, probably when at full spin. That could be nasty! As you can see, I had used duct tape to keep the mower going until I got it fixed or replaced it, but this was my third or so duct tape repair and the whole machine just felt dangerous.

I did enquire about getting a new deck for the mower but the person who maintains if for me, a garden machinery mechanic, refused to do it. “The deck is not cheap, well over £100, I have to take the whole lawnmower apart which can be a right swine, re-build it on the new deck and then sort out all the little issues found doing it. It would take me a whole day or more. I’d charge you almost as much as a new mower costs”. So, as you can see from the above, I did buy a new Honda Izy. I have to say, the engine is a little quieter and smoother on the new one.

I looked at a couple of videos online about replacing the deck myself, but it did look very fiddly and that is with all the tools you need. However, I resented throwing away a perfectly good lawnmower and cracking little engine just because the deck was knackered. How about a car body repair kit? Hmmmm. I’d used one 32 years ago on my Mark 1 Golf, I could do this…

To prepare the lawnmower I emptied the oil (it needed replacing anyway), removed the blades, took off the petrol tank & fuel filter and gave them a thorough washing. There was a fair bit of sediment in the tank and fuel filter so it was good get rid of that, it had been causing some running issues. I then scraped away most of the caked on dirt, grass, rust, washed away most of the remainder and rubbed it down with wire wool. I did try a wire brush but that was pretty ineffective, wire wool was much better. Finally, I gave it a rub over with some rough glass paper, a final wash, and I left it 24 hours to dry out. This was last summer, it was about 30C during the day so it dried quickly. It might not look that clean in the pictures but that’s due to the remaining specs of paint and pits with a little rust in. I could see the metal was scoured and ready to be a good surface to bond to.

If you have never used fibreglass body repair kits before, it is very simple. You have a sheet or two of glass fibre (the white stuff) that folds out like fabric, a pot of resin, and a little packet of hardener. And a pretty useless pot and stirring stick, plus a crap brush. I’d advise getting another pot (a yoghurt pot will do at a pinch), a second little brush, and some spare sticks. My brother keeps lolly sticks (like you get with a Magnum ice-cream) for such purposes, I use literally a little stick off the ground!

WEAR GLOVES! The fibres of glass can get into your skin and irritate like crazy and if you get the resin on your skin it is not coming off until the skin does. Most kits come with a crap pair of thin plastic gloves but you can buy a pack of 100 disposable gloves for a few quid and you will need more than one pair probably. Put on the gloves and then cut the fibre glass sheet up into patches that will cover the area you want to repair. Normal scissors will be fine for this. 32 years ago I tried to cut just one piece to fit the whole repair, it was not ideal. And in this case I am fitting the sheet to a curved, circular surface. I cut several smaller pieces, about 5, and put them in place to make sure all looked OK. Now remove the fibreglass pieces.

Still with the gloves on, put some of the resin in the pot, I used about a third of the tin. Add the hardener as described. Actually, don’t, I made that mistake. Add about half the hardener as described, especially if it is warm like it was this day, and mix quickly and thoroughly with the stick, do this in 30 seconds if you can. Generously paint the edges of the area you are fixing with a little of the mixture, covering all the area the fibreglass is going on, and then put the fibreglass patches over it. The mixture should make them stick in place. Now put the rest of the mixture over the fibreglass and work it in with the brush. If the fibreglass patches shift or you ruck it or in any other way make the fibreglass patches do something you don’t want, fix it ASAP. This stuff goes tacky and then gloopy very quickly, which is why I say only put half the hardener in. The aim is to soak all the fibreglass with the resin and get it worked into the fabric before it turns to treacle. If you have time, scrape any residue out the pot with the stick and either try and get it on the repair or use some scrap of waste fabric, piece of card or whatever to get the gloop off. This way you might be able to use the pot and stick again. The brush is probably history.

I left the first layer for about 4 hours, then I cut a second set of smaller pieces to cover the weakest areas (where, basically, there was no metal anymore), mixed up some more resin and (less) hardener and used it to apply this second layer.

I left it to cure overnight, then gave the repair a sand with glass paper and washed it down. I then painted the repair with a tough paint designed to go on rusty metal (“Hammerite” in my case) and once it was dry, a second layer over the whole area. Be generous, it fills little pits and missed bits in fibreglass that somehow did not get enough resin in it.

I should mention I took care not to get any resin or paint on the nuts holding the engine onto the deck, just in case I ever want to remove the engine.

I now had a workable repair and it looked OK from the inside. If I did it again I would uses less hardener from the start and take a little more care over applying the fibreglass.

I turned the mower right way up and I could see the fibreglass through the holes in the metal. I used wire wool to prepare the surfaces arounds the holes, pushed any proud metal firmly down onto the fibreglass repair, mixed up the last of my resin/hardener mix and used the scraps of fibreglass matt I still had to patch the top and smothered the repair and surrounding metal in resin.

Once it was dry it was Hammer(ite) time again and I painted the repairs and some other areas of scratched paintwork and mild rust.

The engine now felt rock solid and the deck was not flexing at all. I counted this as Job Done.

I gave the blade a damn good clean and sharpen (though it could have done with grinding back another 5mm to be fair), put that back on, put the cleaned fuel tank and engine cover back on, replaced the air filter & spark plug and put in the oil (standard servicing kit) and then finally a bit of fuel. Only a bit in case I needed to empty it again…

I set the choke, pulled the starter cord, and the engine fired straight up in a couple of pulls. I did a couple of swipes along the rough grass near the castle mound and it cut beautifully. The engine was a lot smoother now too, due to the clean fuel system and new air filter. I now filled the fuel tank.

I’m the first to admit it is not the cleanest, most professional looking repair in the world, but it has proven to be effective. I did this repair last year and I’ve used the repaired machine many times since.

I use the old Honda Izy on rough terrain and anywhere I think there may be stones or similar that might damage the new Izy. And I am cleaning off the new lawnmower more conscientiously as, though I now know I can patch a knackered mower deck, it took me a few days and I’d rather not have to do it again through sheer laziness.

The old lady is now a useful member of my lawnmowing family again…

(BTW the below is not the full set, there is the petrol strimmer. And the hover mower. And the hand-held trimmer for small areas around plants…)

Friday Philosophy – Are Good IT People Just Lucky Starters? April 22, 2022

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

There is a tradition in IT that older members of the community complain that “the youngsters of today” don’t really understand how to design systems, develop code, and test applications properly. It was like this in the late 80’s when I started. It was a common theme of discussion at the end of the 90’s. The 2000’s seemed to me to be endless carping about development frameworks that simplified things to the lowest common (poorly performing) denominators. And it seems to be a big part of what us oldies do on the likes of twitter or at conferences now – or at least did when we had proper conferences pre-plague.

One aspect of IT certainly has changed over the decades and that has been a shift in the layer(s) where most professional IT people need to concentrate to get the best out of a system. Back in the late 80’s the oldsters were saying you had to understand registers, memory pointers, the physical constraints of the hardware to get decent performance, and use a low-level programming language like C or even assembler. As time has gone on the move has been up the technology stack, leaving the lower levels like memory management and how interpreters work as either solved or looked after by a tiny set of people.

By the end of the 90’s it was all Middleware and application servers took most systems and thus development off the database servers or mainframes. software architecture and frameworks were supposed to remove the need to worry about *how* the data was got, and more modern languages meant you did not have to worry about memory maintenance, freeing resources etc.

One thing that has not changed (IMHO) but is now often overlooked is the physical placement of data, data structures, and how the storage works. I can often vastly improve the performance of applications or specific pieces of SQL by doing what we used to do in the 1990’s – storing data in a manner that makes accessing it require less IO, putting related data together. Some of us old database types moan endlessly about places not doing proper database design anymore.

But sometimes I wonder if the actual areas of focus moaned about by the old guard are not that significant. The thing they (and now I and many of my friends) also complain about is actually more significant – and that is our attitude towards the process of designing and building systems.

I was not trained in IT at college, I studied biology. But I was trained when I came into the industry, in SSADM, database design, structured testing methodologies, even logical problem solving. And I was lucky to work with people, mostly those bitter old people, who spent as much time teaching me why you do things in a certain way and not just the syntax of a language or which framework to use or which source control repository was flavour of the year.

Looking back over my whole career I’ve encountered a huge number of very average or even poor developers/DBAs/analysts/system designers. And yet some people from every generation are much better than their compatriots, even though they have similar backgrounds and experience. And often these very good people are not apparently any more generally intelligent than the not good ones. Thinking of those good people, I believe a common trait across them is that they listened to the old people complaining and, though they ignored a lot of it, they learnt to ask why things work the way they do and to try and understand the overall technical architecture of computer systems – and not just their little bit. They learnt to consider the whole system, even if some of it was only understood at a simplistic level.

I’m not sure that this curiosity about how things work and the need to look at the wider picture is taught at college (and these days most people coming into IT have come from a college course that either focuses on computing or is a main component of it). If it was taught, wouldn’t it be more common?

I think we learn how to solve problems and design systems from those around us who have done it for real, many times. And that’s those moaning old buggers. But it’s not understanding a layer of technology that is important but actually the total opposite – understanding the wider picture.

I think most people who are good at IT, no matter what their age, were blessed by early exposure to talented (but miserable, complaining) people who simply did things in a sensible, holistic way and asked “why?” a lot. We were lucky.

If you think this whole article is just a plea to listen to me when I complain about the youth of today, you may have a point. But, if you do listen, I might (probably by accident) teach you something that helps your career for years to come. It’s not so much how smart you are but your attitude which makes what you work on a success.

Friday Philosophy – On The Return To Physical Gatherings December 3, 2021

Posted by mwidlake in Uncategorized.
Tags: , ,
2 comments

In my last post I talked about why I had decided to return to attending physical events, even while having reservations about it. The event, UKOUG’s annual conference at the Oval cricket ground in London (a wonderful premises to spend time in), happened at the start of the week. So, how was it? Did I feel safe? How did they look after us?

The Event

Sorting out a few technical AV issues before a cracking session on hacking

I’ll just start with a couple of paragraphs on the actual event and then move on to how I found it all.

The conference itself was very, very good. It covered both Tech and Apps over 2 full days, with a speaker/volunteer evening event the day before the conference. The Oval was generally a nice venue but the number of issues I saw with AV… Boy they need to sort that out! As for the evening event on the roof terrace – great for Covid security, terrible for avoiding hypothermia! I heard a few people who said there could have been a bit more technical content and there were some slots where there were too many “Oracle Names” at the same time or two talks on the same topic, but unless you have helped organise the schedule for a large, complex event like this, you have no idea how hard it is! This was not helped this year by a larger-than-usual drop-out of speakers just before the event due to the new Omicron covid-19 variant. The variant itself was not the problem (there are very few cases outside Southern Africa yet), it was how countries were changing their travel and isolation rules. Coming to speak at a conference than then having to spend 10 days locked down when you get back to Switzerland is a big ask. I used to take complaints about there being too many good session clashing as almost a complement – there was just too much good stuff to see.

I have to take my hat off to the board, office, and volunteers who put the conference together. It’s always been a challenge and that was with an office of over a dozen people and a small army of volunteers, with the board having oversight. To survive Covid-19 and the massive drop in revenue, UKOUG has had to par right down to 3 staff and the board have been very, very hands-on. The conference this year was nothing to do with me, I had to step down from the board last year. For the first time in over 10 years I had nothing to do with the event at all, I was there purely as a delegate. I hope I made this clear to all the people who thanked me for the event! It was strange being just a delegate after over 18 years of either presenting, hosting, planning, or fronting.

Being With People Again

As anyone who regularly reads my sporadic blog output or follows me on social media knows, I’ve been very cautious about Covid-19 from the outset. I’ve kept away from people, followed all the guidance, and actually gone beyond the official rules as I’ve kept abreast of what professional epidemiologists, medics, and virologists have to say. But as I covered in my previous blog I had made the decision to go to the conference despite my general caution. I’m double vaccinated, had my ‘flu jab, I know the majority transmission is via aerosol droplets so I can do some things to reduce the risks. I love the community and conferences, it’s pretty much what I have focused on for 5 or 6 years, so for me I decided it was worth the risk. I utterly respect anyone who comes to the opposite conclusion.

As I said in that post, the part of attending the conference I was most anxious about was getting there. I ended up travelling into London with a friend, Erik van Roon. He had been amazed at how few people on the London Underground were wearing masks, often sat under signs saying it was mandatory. That’s what happens when you have a government that does not lead by example, ignores their own rules, and no one enforces any restrictions. I hate being on UK public transport at the moment. We both wore our masks. The trip in on the train was OK as it had come from the airport. Most of the other people were from other countries and were happy to wear masks. None of them passed out or spontaneously died… On the London Underground is was about 50/50 mask wearing but, thank goodness, it was remarkably quiet and quick. I’ve never done that route so quickly and quietly except at 10pm at night. Despite the pleasant company I had, I really disliked the trip and I was glad when it was over.

We had a gentle introduction to “crowds” on Sunday night when we had a speaker/volunteer gathering at a club in central London, just off Leicester Square. I have to confess that for the first few minutes, as more people arrived, I got a little anxious and had to concentrate on not showing it {standing in a room screaming “get away from me you plague-ridden vermin!!!!” is likely to dent the atmosphere}.

However, the room was waaaay bigger than it needed to be for the numbers there and there was a wide open doorway out onto an outside balcony. I would have preferred more mask wearing but I noticed people were standing in looser circles than normal. Most people avoided physical contact. After the first half hour I found the experience easier than I thought I might, partly I think as I knew most of these people and (utterly wrongly) thus unconsciously felt they were “safe”. That’s an oddity of human behaviour, we tend to treat people we know as safer than strangers, even when logically we know it is not true. Also, of the people I actually knew, I was sure they were vaccinated. I don’t personally know many people who are Covid-19 denialists. One thing I did do is not go for food when it came out. It was platers of stuff with people crowed around them. No thanks. But later on more food came out and people had wandered off, so I had some of that. This might sounds a bit “off” but I’m probably at more risk from Covid-19 than most. If I get a bad spell of it, it’s probably hospital time again and I don’t like the idea…

As the evening wore on and alcohol was consumed, people did relax more and distances shrank, but then so did the number of people there. I confess that when, at the end of the night we moved on to shorts, I totally stopped worrying about how many SARS-CoV-2 particles there might be. The lesson there is that increasing alcohol consumption decreases bio security. Who knew? (sarcasm).

The Big Crowd

Next day came the real test. Would I find being in crowds worth it for the event?

Martin Klier explaining why PDBs can impact each other

I should say at this juncture that everyone at the event was double vaccinated or had had a negative test prior to the event (or at least should have) and I know checks were made. I could not guarantee to you that everyone was checked, but that was the intent. {update – see the comment by Neil Chandler for more details on the steps taken to keep us all safe}. I had personally also taken lateral flow tests for 2 days before attending and did more during the event. I didn’t want to be Typhoid Mary All foreign speakers/attendees had had to do tests as part of their trip here (though ask me some time how well all of that was handled!!!) so I knew I was safest with my overseas friends.

Even so, walking into the keynote talk I found unnerving. But also really welcome. People, “my” community, lots of men and women with a shared interest and a desire to learn or teach. And not via (excuse my French) bloody Zoom or MS Teams or some other sodding screen.

I noticed that the crowd was spread out far more than normal, people were sat with spare seats by them or between their little group and the next one. The windows were open. The turnout for the conference had been higher than the organisers had feared, especially given the hype of Omicron variant for the prior 2 or 3 days, but we were well below 50% capacity for the venue, I would say 30%. It helped that, unlike most conference venues, all the rooms were in a long row with windows/doors outside on at least one side. Thinking back, it was also nice to be at a conference where there was natural light in every room.

As the conference progressed it remained the case that people kept a little extra distance (though I moved away from some people who got too close) and everyone seemed relieved to be having a fairly normal conference experience. We had coloured badges on to indicate how hands-on we wanted to be. Green was “touch me if you want”, yellow was “I’m happy to be in your presence but no tongues” and red “Keep the hell away from me!”. I can’t remember meeting any reds (well, they should have been keeping the hell away from me) and I was yellow. A few people said they were surprised I was yellow – they can’t know me that well! I hope the colours were different enough for anyone colour blind to work it out as there was no text on the button (kiss me quick/I’m terribly British so no touching/bugger off).

The only times when there were a lot of people together where breaks and the evening event. All the catering staff were masked & gloved, generally they were putting your food on a plate and giving it to you at the end, no finger food or standing coughing over sandwiches. Even the tea/coffee was prepared for you and handed over. Having said that, on the first day I decided not to join in (helped by the fact it was all dry, brown food) and I went out and got something. Again, my lungs are shot so I take extra precautions.

The evening event was, as I said above, in the open air and with lots of space. I did not feel anxious about it at all. The venue was originally booked for June when the terrace would have been stunning. At the very end of November during a cold snap, you were in more danger from the cold than any virus.

The final thing I’ll cover is masks. Very few people wore masks. It’s the one aspect of the whole experience I was not happy with – and yet I was not wearing my mask. Trying to talk with people when you have a mask on is harder. I also personally find wearing a mask for long difficult. I was strapped to ventilation machines for a week, unable to breath enough on my own to keep me alive, and as a result I sometimes get very anxious wearing a mask. I’ve still got poor lung function and, though I am generally OK wandering around or going for a walk on the flat, any incline is a challenge and forget trotting or running at the moment. A set of stairs can leave me gasping on a bad day. A mask makes me breath that little bit harder so it’s tiring. But I always wear one on public transport or in shops. I find people who claim masks “poison you” farcical, given how many people in medical or dirty jobs wear them all day just fine. If I can wear one with my problems, they can. But at the conference I didn’t wear a mask and I am not really sure why.

Something a friends said to me during the conference was that if he heard of someone going off to a big party, especially now with the new variant in everyone’s mind, he’d think they were mad. But we came to this conference. It’s called cognitive dissonance, hold two opposing opinions at once. OK, it was not a party, it was something we do as part of our careers (or in my case my hobby), but really it was something we did not NEED to do.

Was I glad I went? Yes. Was it sensible? Probably not. Would I do it again next week? Absolutely not. For one thing, I count myself as a risk to others for the next week or so. Would I do it next Spring? Depending on unknowns with the pandemic and whether I can manage the flight (or go by land) probably.

I love conferences and other meetings. I don’t take part in the community for my career anymore as my career is over, I do it as I like many of the people I meet in the Oracle sphere and I love the sharing of knowledge. It’s important to me and I will take some risk, if I feel that those around me are going to also be sensible. I would not go on a holiday to the costa del sol at the moment as I know what the average UK tourist over there is like, and I would not go to a night club (but then, I don’t like them!). But another conference? Yeah….

All rooms opened out onto the famous Oval cricket grounds. Don’t ask me to explain the rules of cricket.

Friday Philosophy – To Physically Meet Or Not? October 29, 2021

Posted by mwidlake in Uncategorized.
Tags: , ,
1 comment so far

We are seeing a slow return to user groups having physical events, or hybrid ones where some people stay at home and use zoom (other remote networking solutions are available) and other people physically come along along to the venue. Some people are now happy to meet physically, some would like to but their company will not support it, and some people don’t want to come within spitting distance (quite literally, given it is now pretty much established that SARS_CoV_2 is primarily spread in airborne droplets of saliva) of other humans.

I miss this

Most of us have taken part in virtual conferences or meet-ups since Covid-19 first arose. Let’s face it, though they are better than nothing, remote events are not exactly a proper replacement for being in the same place, chatting with old friends, making new contacts, and seeing people talk about topics in the flesh. And presenting remotely is a very different experience (as I covered in this post on training remotely) and takes a different skill set to live presenting, and many presenters really do not enjoy. I’ll do it but I am not keen and I have mostly stopped presenting remotely at user group events. I know some people prefer virtual events but the majority don’t – which is fine, we are all different.

So what to do? Keep home and keep safer but continue to miss out on what a physical event brings, or take an increased risk of contracting or spreading Covid-19 and go? It’s a difficult choice for many people.

I’m returning to physical events. But I fully understand anyone who does not want to, especially if they live with (or are themselves) at higher risk, such as having a relative who cannot be vaccinated.

For a different opinion you can go look at this post by Brent Ozar. He sums up a few reasons for still keeping away from physical events.

I really miss this

I’m double vaccinated, I have a good understanding of Covid-19 (as anyone who was reading my blog last year will know), both how it is transmitted and what it does to you. I’m going to return to going to physical events but I am going to take precautions – not just to protect me from the infected hordes but also to help prevent me from infecting the hordes. I will be attending the UKOUG tech 21 conference at the end of November and I am really, really looking forward to it.

The UKOUG Tech 21 conference organisers will be taking many precautions themselves over ventilation, number of attendees etc. I was still on the board of UKOUG in the spring of 2020 and we were the first user group to deem physical events too risky and cancel one, the first I think to make a solid call of having no physical events in 2020 at all, one of the first (if not the first) to organise a proper multi-stream virtual conference. UKOUG have demonstrated a real focus on the safety of it’s membership and yet try to keep the oracle community breathing (see what I did there). I was really proud that UKOUG listened to myself & Neil Chandler, looked at the science, and made decisions that protected the membership to the cost of the user group itself.

I’ll be wearing my mask when I travel to the event. I know, in some countries it would be deemed madness to not wear a mask on public transport but, despite all the signs saying it is mandatory, the UK government have not attempted to enforce such rules at all. And when they sit in parliament in a crowded room, not a mask is to be seen usually. They have failed to govern or lead effectively on Covid-19 since day one. I was not a fan of masks initially, if you asked me 2 years ago I would have laughed at the general public using them as viruses & bacteria are massively smaller than the pores in non-medical-grade masks, most people have not been shown how to wear them (and still don’t know), are useless at not touching the mask or keeping them clean, and often just wear them as a pointless chin warmer. But it’s been demonstrated that masks are very good at catching the droplets of saliva that we expel and so greatly reduce the wearer transmitting SARS-CoV-2, and somewhat mitigate against breathing in tainted droplets. They help.

Once I am there I am staying at a local hotel (I could have done the trip in and out from home each day), walking to the event, basically minimising my public transport usage.

If there is any finger or buffet food offered, I ain’t touching it. It only takes one infected person coughing when serving themselves to massively increase risk.

I won’t be shaking hands (or bumping elbows, a practice I have always thought was bloody ludicrous, especially when we were told to cough into our arm to contain it – “Hey, touch my plague infested arm!!!”) or hugging people unless it seems very important to them. So pretty much no one I know in the IT sphere. Licking other delegates and wild sex is definitely out this year

If anyone is coughing, spluttering, looking flushed, complaining they feel hot but “it’s just a cold” I am not staying near them. If Covid-19 taught us anything it is that we should not regard people who go to work/meet people even when they are ill as heroes but as lunatics. And employers who encourage or force such behaviour are not only abusive but mad. You want all your staff to get ‘flu?.

I’ll probably wear a mask quite a lot as I cough a lot these days, as a result of having crappy lungs. I don’t want to make people feel unsafe and there is always a chance I could be carrying SARS-CoV-2 and not realise.

I’ll be taking a lateral flow test every day and for a few days before the event. They are not desperately good at detecting the virus when you first have it but it’s some indication. If one says you DO have Covid-19 you almost certainly do. If I can I’ll get a proper PCR test a few days before.

I would have already started going to physical events if I felt safe to fly. This is nothing to do with Covid-19 though. I was supposed to be at POUG2021 last September (they had much lower Covid-19 levels than the UK so I would have been safer there than the UK!) but my lungs have never really recovered from my fun with ‘flu a couple of years ago and any demands on them above a steady walk and I can’t do it for long. I might be fine in a plane, but taking a four hour flight and finding out I’m not is not a clever idea. I could get tested to see how I would cope with the reduced pressure and O2 levels of a flight but the UK NHS has been under extreme pressure for most of this year and I see my getting the test as a frivolous waste of their resources, even if they would agree to do it.

Another aspect of remote events is a lot of them have been put on free to the delegates or considerably cheaper than a physical event. This makes physical events look expensive and introduces the complexity of do the organisers have two fee structures, for physical and virtual attendance. You can reduce the costs of your venue by having fewer people actually there but it’s not really proportional. Many user groups, especially those that have any sort of organisation behind them (like most of the big ones such as DOAG, UKOUG, POUG) incur costs just by existing and the drop in income caused by Covid-19 has been crippling. Conferences that delegates pay for, and membership fees for user groups, keep these groups going and if people (or more often companies) stop paying for them… You are going to lose your user groups.

A final consideration is how the UK is doing Covid-19 wise. The UK is doing bloody awfully and has done so for most of the year. The one thing we did, that the government pretty much left our National Health Service to sort out, was immunising everyone who would and could do so. Our case rates are, excuse my language but I am a little vexed by this, fucking awful, about the worst in the world compared to our population size (poor Ukraine and Romania win there as the moment). The vaccines and steadily improving treatment methods are keeping death rates at only terrible. But if we get another large spike, UKOUG will cancel and I would not go anyway.

I MISS THIS!!!!

Community is Communication – #JoelKallmanDay October 11, 2021

Posted by mwidlake in Friday Philosophy, Perceptions, UKOUG, User Groups.
Tags: ,
add a comment

My life is not just Oracle and the Oracle community. I’m part of a couple of other communities as, I hope are we all – be they your hobby, an interest or pastime, the church, your friends. And the key to community is, I feel, communication.

2 days old

I was thinking of this a few weeks ago in another, important (to me) part of my life, which is fostering cats for a local pet charity. I’ve had cats for most of the last 40 years of my life and I’ve missed them since our last one died about 6 years ago. For a mixture of reasons we decide that rather then get another “forever” cat we would temporarily look after cats that needed care before being rehomed permanently.

We’ve had several cats now and it’s something we enjoy doing. What has not been so good, at times, has been interacting with the staff at the charity. There have been several situations where we have tried to contact them and either the reply is slow to come or does not happen at all. We do understand that they are often dealing with a fast moving or unclear situation and, especially with Covid-19 at times effectively removing most of their volunteer staff, more things to do than they have hours to do it in. But when you are asked if you can take on a new cat in an emergency and you drop your plans to do so – and then hear nothing for 3 days before being told “Oh! No, we organised to support the current owner in keeping it”, it’s… vexing. Especially the third time in a row it happens.

It nearly made us give up on them, the communication was just so lacking and poor.

2 weeks old

But to balance that, there is an online facebook-type group for all the fosterers and they are much better. We put up pictures of our fosterlings, swap tips, and generally support each other. It’s good communication. I say this despite a lot of the communication having a tone that just is not me (“Ohhh, isn’t paddy pooky so *cuuuuute*! It makes my hearty warty ache!”). However, that’s more my problem than theirs and in fact I modify how I say things a little to suit the general tone (Mrs W looks at some of the things I put on there and says “YOU wrote that?!?!” – yeah, it’s the style they like).

Similarly communication is vital in our Oracle communities. From organising an event to letting people know what your user group is doing, communication is at the heart of it all. Part of it is simply having some communication. If you never hear from a group you are involved with it is, just like with a friend who never gets in touch, hard to maintain the interest. Lack of communication can kill a community really quickly.

On the other side of the coin, over-communication is not good. When I was president of UKOUG one thing I pushed for was for us to communicate with the membership a little less. We used to send out monthly updates and also lots of emails about events and other things. It was too much, I knew people who simply ignored any email from UKOUG as it was endless. I don’t think we got it quite right when I was there, but we altered things so that fewer emails went out and they were more varied. Instead of a monthly update there was an update from the CEO one month and one from me as the president on the other month, with a different flavour and a modified focus.

3 weeks old

The final killer is empty communication. Saying stuff people are not interested in or saying “great things are coming” but nothing substantial about what that great stuff is. Teasers are OK but only if the tease gives a hint of what the new, cool thing is (and it actually is new and cool – so many commercial things are decidedly not cool, let alone interesting, and telling us you are excited about it makes me question how vacuous your life is…). Repeatedly saying “great things are coming” but not what they are sends a clear message of “we have no idea what we are going to do but don’t want to admit that”. There have been a lot of issues with that until recently with one particular Oracle Community area. It’s improving but they have a lot of work to do to make people reconnect with them again.

I love the communities I am in. I am passionate about the Oracle communities I am part of. If I want to help keep those communities vital and active, I need to help with the communication. I can’t think of a single community I am in that I am enjoying where communication is not at the core of it.

This post is part of the #JoelKallmanDay and, if you knew (or even just knew of) Joel , you will know why I chose this topic. Joel was a passionate, effective communicator and a rock within the APEX community.

Friday Philosophy – Early Mistakes Uncorrected Means Poor Final Systems August 13, 2021

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

A few days ago I fitted a sink (hand basin) in my garage. Bear with me, this IS related to I.T.

It’s maybe is not so clear from the pictures, but that sink is at an angle (see the spirit level in the second shot, that bubble is way over from being in the centre), leaning back towards the wall on the left. And the splash back is also not straight, it is a good 5 degrees from the vertical. I’m pretty good at DIY – putting up shelves, building cupboards, fixing furniture, building the odd bit of wall, erecting & insulating sheds (which I take power and lighting down to)… And I am very, very meticulous about things like getting things straight and level. As I progressed with the job of putting up this sink and reflected on the process, it so reminds me of several application development projects I’ve been involved in (or was brought in to help crowbar back into shape)

Where Did I Go Wrong?

I’ll add some pictures to the bottom of this blog, but for now I’ll just describe what happened. When I offered up the sink to the wall I realised that the pipework (put in by competent builders but with no real consideration of my planned improvements) was exactly where the sink should go. And I also realised that even if the sink was put higher (way too high for me) or lower (well to low for a normal heighted person) the pipework would still be an issue. Also, the back wall is not quite vertical and the two walls are not quite at 90 degrees. This sort of thing is not unusual in any building (though slightly vexing in something built only 12 years ago) and to me it’s like the not-quite-perfect situation most application developments start at. You might not be using the best database for the solution, you might have to use a computer language that is not the best but you have staff skilled in it. There will be bizarre parts of the application you are replacing that you have to keep as the end users have got used to them – or even built business processes around and no one wants to change those now.

Good developers and systems engineers can work around such issues. A good DIYer can take into account badly placed pipes and wonky walls. I could have cut out and replaced the pipework – but it would have been a lot of work and I am not very good at plumbing (which is why I use push-fit plumbing: less neat & more expensive, but dead easy & quick). This would be like changing those slightly crazy business practices forced by the old system for ones that would benefit the business eventually, but it’s a lot of effort to change. As for the wonky walls, sorting that out would be like re-skilling or replacing my whole development team to move to better technology – Possible, but not going to happen.

The pragmatic solution was to mount the sink on wooden battens and make the battens thick enough to avoid the pipework and allow me to correct for the wonky walls. A cheap, pragmatic solution to the imperfect starting conditions.

Only, I messed up. I spent hours first doing the extra plumbing work to get an isolation valve beyond where the sink & splashbacks would be (so the water could be turned off for maintenance or leaks), and a feed for the hot water unit to come. Then I failed to plane off the battens for the sink properly and they had to come off and be messed with several times. When it came time to mount the sink, which goes on two metal pegs, I screwed one of them in too high. Bloody hell.

From this point on – I was doomed. I should have taken it off the wall and tried again

I was tired, annoyed. To fix the peg I would have to replace the batten. I did not want to take that sodding batten off the wall and replace it (it had been the hard one to make). It was also the end of the day. So I did a “bodge job” – which means a quick and poor quality alteration to get you past a problem. I packed out the space between one mounting peg and a guessed proper height for the sink. I replaced proper planning and good development with something you throw together at the end of an Agile Sprint, so I could meet my objectives and go home.

The next morning I realised the sink was more than a little uneven – but I decided to continue. And that was it, I had messed up the whole job. In my head I thought I could modify the upright battens, get a little leeway with the tiling and grouting and make up for the “bodge job”. I won’t bore you with the full details but I was so utterly wrong. What would have been two totally square and vertical battens for one splashback and a pair of slightly trimmed for the other turned into endless alterations and re-working, especially as towards what should have been the end of the job, it was obvious the tiles were going to look awful (good tiling is all about straight, parallel, horizontal, well squared lines – they magnify imperfections, of which I now had many) so more reworking was required.

If I had fixed the sink mounts first thing that morning, I think I would have finished the job in that same morning, not one and a half days later.

It’s Not The Starting Conditions, It’s The Cutting Corners

The more I have thought about that sink, the more it echoes what I’ve seen in the world of computer application development.

Many times, when the development of an application has gone wrong, I hear people blame the starting conditions. “We had to use Java Struts” or “The analytics team demanded they could query anything” or “We had to make the system talk to the old warehouse system on Informix” or whatever. I doubt these starting conditions were really a big problem, you knew about them and your design should have taken them into account. A good designer will plan around them, a good developer will code in an interface, a good DBA will add in the required indexes.

Not properly planning the system or not prototyping the solution will invariably lead to disaster. In my sink scenario, that would have been the case if I had not used my experience and thought about the long term and decided to try to attach the sink to the plasterboard walls directly, just under the pipework. I’d never have got the tiles on and the sink would have fallen off the wall very soon. I’m not saying you don’t see this failure to plan upfront in application development, it has sadly become more common. Too many places think “Agile” or similar is just hacking the system together and fixing what is wrong. That is, to use a coarse term, just bollocks. Agile only works well (in my experience) when done on top of a very good design, created by skilled people. It’s not easy.

However, the most common cause of issues I have witnessed, by a long way, is that of “bodging a solution” – and again it is very strongly associated in my experience with “agile” done wrong, or even worse the “develop to fail – and then fix quickly” mentality. Yes, you will get something that works. Very quickly. And it will probably be an “uneven sink”. It will do the job (hold water, let people register for an event) but as soon as you try and extend the system, it gets harder and harder and harder. And you spend more and more time working through that technical debt you inflicted on yourself. And the end result will be very much sub-optimal. OK, a simple thing will be fine when put together like this (a shelf to hold photographs, a simple calendar app) but a complicated system like a hospital patient administration system or a fraud detection application, a whole bathroom refurbishment… It’s going to be a mess. I’ve seen and suffered from this cascade of crap so many times over the years.

The whole idea of things like sprints, where you are put under tremendous pressure to just make your bit work, causes a lot of bodging of things. Yes, it does, I’ve seen it. I’m sure if things like code review, pair development, and periods of planning are put into Agile (like they are supposed to be) the bodges could be un-bodged. But I simply don’t see this. And the whole “fail fast and fix” idea seems to me to absolutely guarantee a system covered in duct tape and almost unmaintainable. All for the sake of get it done NOW.

I learnt many years ago in I.T. that it is far more efficient if you fix the mistakes when you first see them and fix them well. Always build on a stable base and keep it solid. Otherwise, as you progress, the pain just builds and builds and builds. This latest DIY experience just hammered it home.

The sink I put up does work. None of the pipework leaks, the splashbacks do not have gaps to let water in, the tiles are aligned (mostly), they are high enough to catch splashes. I know I can put the water heater above it… but it will be higher than I would want and if I do not make it lean to the left, it will make the sink look even more skew whiff. But by the end I put in twice the effort (if not more) than I needed to in order to have a functional sink – and it looks weird.

Do not bodge the beginning of a project, make it right and save yourself from endless pain later on!

For the interested, a pictorial progress of the job.

Joel Kallman, The Heart of APEX, Sadly Gone May 28, 2021

Posted by mwidlake in Uncategorized.
5 comments

and nothing I say will dent your faith.

As I said, this blog post is not for you, please go back to your chosen view of the world.

Now, for those of you who knew or cared about Joel Kallman please read on….

News is spreading around the Oracle community, and especially the APEX community within it, of the passing of Joel Kallman from Covid-19, at just 54 years old. Joel, along with Mike Hichwa, created APEX in 1999 and since then he has been passionate about using it for the betterment of anyone and anywhere he could find a use for it. But more than that, Joel has been passionate about community. APEX is the technical product he is known for, but everyone who met Joel knew he was, more than anything, passionate about people and doing the best for everyone.

{Important note – if you came to this post from one of the sites that has tried to use Joel’s death to, in a very twisted way, argue that Covid-19 does not exist, or is not harmful, or that vaccinations against it are dangerous or do not work then please, please, just go back to the echo chamber you came from. I’ve blogged about the science of Covid-19 and the vaccines and suggested you look at those posts instead – and NONE OF YOU DID. You are not here for a good reason so just go away now}.

When anyone in our community passes away there are tributes paid. But I don’t think I’ve ever seen so many and with such depth of feeling as there have been for Joel. Everyone who met him seems to have their own story of what a supportive and kind person he was.

So why add my own, especially as others knew him better and have better memories to share? Because it’s another candle to the shining beacon of remembrance that Joel deserves.

My story of Joel

I didn’t know Joel very well, we had exchanged a few words at various Oracle conferences but never had a proper conversation. However at OOW London 2019 he came over to me, almost jogging through the throng calling me. “Hi Martin, I’ve been looking for you – I’m Joel Kallman”. As we had briefly met a few times and he is so well known I did wonder why he introduced himself. But then I’m not always good with people, but Joel was brilliant with people.

He wanted to write an article for Oracle Scene, the UKOUG magazine. We (well, mostly my predecessor) had asked him a few times in the past but Joel was always really busy. “I know I keep turning you down, but it’s on my list this year to offer you something – would that be OK?” Well hell yes! He’s Mr APEX and I knew he could write well. It would be a feather in our caps to have him write for us. I was actually on my way to meet someone and I suggested to Joel we meet later but he said no, he had no idea when he would get time again, “ Let’s sort it now, I will walk with you”. And he did, for about 10 minutes, away from where he needed to be. And he was not so much interested in talking about the possible article (that took all of a minute), but more in saying really nice things about UKOUG, how he appreciated me taking on being president, saying it was so good that people like us helped the community and asking me how it was going. That 10 minutes made me feel really good.

In the end the article for Oracle Scene did not happen. That’s not unusual, we are all busy and Joel more so than most, authors often let us down at short notice. But the way he handled not being able to do the article was unusual. Joel was blowing us out with only about 2 weeks before copy date (again, not unusual). But he insisted he have a video call with myself and the editor to explain why he could not do the article and to apologise. The irony? Joel had cancelled the article as he had been working 18 hour days, 7 days a week, for weeks to get a prototype app and the supporting infrastructure together to track Covid-19 symptoms and what drugs people were taking (all drugs, for any other illness, to try and spot a correlation and thus a potential drug target and potential treatments). Some of you may remember Oracle making a huge thing of that app. Joel had poured all he could into it as he thought it might help everyone.

To be candid, Joel looked incredibly tired and he said he’d not seen much of his family for a couple of weeks, but he took time out to do this for us and he must have apologised 4 or 5 times. We were saying “Joel! It’s OK! Go get some down time!”.

Such a nice man and such bitter irony that he died from Covid-19, something that he put so much effort into tackling.

Other Stories And Words.

As I said, so many others have wonderful things to say about Joel. Liron Amitzi has a lovely story about Joel going that extra step for his audience. Connor McDonald shares how Joel explained his ethos of raising up those around him and how maybe some good could come from the awfulness of Covid 19, plus a link to an APEX community page we can all leave our stories on.

And Lauren Cohn has put together a really touching video of Joel, including the personal request he made (which Connor quotes), which starts at 1:38) in his last keynote about us all being part of our communities. I think that video might become his unofficial epitaph

{I’ve had a report (thanks Steven) of the above link not working so try https://vimeo.com/556008201 if not}.

I’ve said a few times about my thoughts on community and being there for others. Joel not only said it but did it, and was an example of kindness and his passion for doing the best by everyone. He was certainly someone to look to as an example. I’m wishing I knew him better,.

I’ve Decided What I Want, Now I’ll Pick My “Science”. May 20, 2021

Posted by mwidlake in Uncategorized.
1 comment so far

This post is, I’m afraid, a rant. I let rip on social media (Facebook) about something that has been annoying me about some people’s attitude to Covid-19. A couple of friends don’t use FB and said they wanted to see what I wrote, so I’m repeating (and expanding) it in this blog post. Stuff we put on social media quickly drifts into history and out of sight (it’s often still there but no one looks at it) but blog posts tend to live on, so this post may get taken down in a week or two.

Sometime you just have to let it out…

So, what did I say?

Something I have noticed over the last 10 years (OK, 15 months really) is that what many people state about Covid 19 and all the rules & restrictions is generally dictated primarily by what they want for them – and is sod all to do with the societal need. They have already come to a conclusion as to what they want to happen and then they will pick “science” (which is often not science but more what other people, with or without any biological or scientific skill, have said) to support it, or cite “well it just makes sense” or “the rule stopping me doing this is just ridiculous”.

If keeping us all safe means limiting personal contact then personal contact businesses don’t agree (how many of us REALLY need a hair cut, let alone our nails decorated with glitter). Yes, you might like going to the gym or want a new tattoo but that’s a want, a desire. Not a need. Compared to increasing the risk of spreading Covid-19 and once more seeing our health services having to yet again go the extra mile (or 10) and cancel/postpone all the other stuff they do, your want is rather selfish.

If we are told not to move geographically in order to slow the cross-pollination of SARS-CoV-2 strains between regions then many people from holiday based companies & venues scream that travel is not the actual problem. Yes. Yes it is. Most of us have never before had real-world experience of epidemics & outbreaks of highly contagious, potentially fatal diseases (like SARS & MERS or outbreaks of other contagious diseases) as this is the first pandemic (world wide epidemic) we’ve had for a lifetime. But stopping movement and isolating the ill is about the only way to stop such diseases, aided significantly with vaccines if available, and is a common when such outbreaks occur. I think this lack of personal experience is part of the problem, most people have not had to go through it before so they struggle to accept it is needed now. It makes it even harder to accept because, on an individual level, Covid-19 is not actually that fatal. And if most of the people you know are young, you don’t “see” the impact. Population wide, it’s awful. Go chat to a hospital worker, they’ll tell you. Or actually look at the articles on what is happening in parts of India. It’s bloody awful.

But a lot of people want to go somewhere, or their income is dependent on people doing so (which is much more significant than a theoretical risk, isn’t it?) so they decide what they want and then pick the opinions/science to suit. It really helps if government helps those impacted financially, which the UK has sort-of done, but could have done better. Doing so helps remove the immediate, personal threat and allows people accept the wider, actually more significant societal threat.

If preventing new variants coming into the country means limits & forced isolation for travellers – travel companies disagree. What a surprise. And the screams when it is suggested people will not just be asked to self-isolate but will be checked up on and punished if not. Let alone made to stay in isolation in a hotel. If you *really* need to travel, so to see to a relative’s medical/care needs, it seems people are willing to accept the rules as, compared to the serious need for the actual trip, it’s just an imposition. Popping over to Tuscany for some sun but then being expected to stay at home to protect the nation is seen as an over reaction to such a frivolous thing. Maybe the problem is not the “over reaction” but the frivolous part.

People living in rural communities that have lower levels of transmission “than those oiks in the towns” want to be excluded from the local towns when it’s decided a region needs local controls. “They” have the problem, don’t include us! Well, boundaries have to be decided and they have to be simple. In the UK we have had at times just too many areas with different rules and no one is really sure what the rules are for where. My area is Uttlesford and it was level 3 when all around was 4. Have you any idea where Uttlesford is? And it’s boundaries? Didn’t think so. I live in it (so I know where it is) but I don’t know when I leave it and go into Braintree. Every time rules are based on an area which is not really well defined (like a national border) it’s confusing and there are lots and lots and lots of borders. Then people scream “Unfair!!!” about the borders. “Why can’t I go to the pub, but that bloke down the end of the road can!” Because the border has to be somewhere, and wherever it is, there will be people on different sides of it under different rules. It’s an unavoidable consequence of local rules OK? And on the topic of the nasty town where all the disease ridden people are and only they should have the restrictions. Where do you go to shop or get the car serviced? That nasty town. And they probably account for a large part of the financial input to those oh-so-pretty villages which the locals want to keep for themselves.

And the one that grinds my gears most is “It’s my Mental Elph!”. It’s replaced “I know my Rights!” as the cry of the unknowing as a demand for stuff they want. “I want to be able to do X as not doing so is harming my mental health”. Well, laying in a bed for a week tied to a mask keeping you alive with high pressure oxygen sort of takes it’s toll too, as I remember.

Mental health is a serious business, it can be utterly debilitating, life-altering, even fatal. Being sad, or bored or not able to do what you want THE VERY DAY you want it is in no bloody way the same as a chronic mental health condition and is not a threat to your mental health. Just stop it. Mental Health has struggled to ever be taken seriously and, now that it really is getting more attention and justifiably viewed as an illness to treat and not a failing, this almost knee-jerk “it’s harming my mental health” is, in my opinion, belittling a serious issue. Or more accurately a set of serious issues as, like cancer, mental illness is not a single disease but many. But every day you will see someone on TV saying it as a reason to be allowed to do what they want. You wanting 2 weeks shagging in Tuscany is not even comparable to someone asking if life can get any more shit and struggling to function in society.

So many people decide on the “science” and “what is fair” based on their personal desires first and foremost. Not what will give most people the best life they can have. I.e they have not read a single sodding article on “the science” let alone checked out if the references even lead to a real scientific paper. It all just ticks me off. Any time you want the rules about Covid-19 to change, ask yourself a question. Do you just “want it” for you? Or do you want it for the people around you? If it is just for you, fine! But be honest! It’s OK, you want it. But don’t try and make out you want it for the common good. As, chances are, you don’t give a hoot about Janice down the road. Go ask Janice. She don’t want her nails painted or to go to the Algarve or have a rave. She’d really, really, really, like to see her daughter for a hug and go to Bingo. But she’ll stay at home alone another year to “protect the at risk”. Which mostly, it seems to me, more and more consists of a people who will bend all rules to suit what they want FOR THEM. Which is where I started…

So why am I ranting about this now? In the UK we are doing really well, cases are down, deaths are down even further, things are opening up and OH BOY am I glad they are. I want everyone to stick to the rules to protect society but what I really want is to be in a situation where we don’t need the rules. And if everyone had stuck to the rules, and our government had brought in the rules when the epidemiologist and medics told them to rather than later, we would have gotten rid of the rules sooner. And less people will have died or been harmed.

World-wide things are generally improving and more vaccinations are being administered, surely it’s all good?

Well, biology is complex and it’s a sod sometimes. Even as we reduce the limitations in the UK, more and more people seem to be behaving as I’ve described above and demanding what they want, not what is sensible. And there is this new variant from India and it’s a bastard. It’s even more infective than the Kent variant and that was a swine, so I think we might see another increases in cases. Hopefully the vaccinations will mean serious illness and deaths will not rise in the same way here in the UK, but I think we are not out the woods by a long way.

I told you it was a rant, sorry.

Running Courses In Covid Times April 23, 2021

Posted by mwidlake in Uncategorized.
Tags: , , ,
add a comment

I’ve been running courses in I.T. on and off for my whole career – which is getting to be quite a long time now. It’s probably 30 years since I ran my first course, teaching hospital staff how to use the patient administration software I helped to develop.  Of all the things I do, running training courses is probably the part I have enjoyed the most. But it is also the task I find most demanding & draining. Doing so remotely, as is the only option in Covid times, is something I find even more of a challenge. For two whole months this year I ran a course a week, all remote. Below, I’ll explain why I find remote tutoring harder and a few things you can try to make it work a little better.

ScreenHunter_ 672

 

It’s much harder than a conference presentation

I think anyone who was ever taught classes (let alone been a real teacher!) would agree that, until you do it, it’s hard to appreciate the emotional & mental energy it takes – even if you are teaching a topic you know inside out, upside down & back to front. If you’ve presented at a conference or similar, you know how much that can take out of you. Doing a course for a day is like doing a dozen such presentations. Yes, a day’s teaching is probably only 5 or 6 times as much presenting time as a 45-60 minute talk, but it’s the lack of recovery that makes it so much harder. Pretty much anyone can walk  4 or 5 miles. Running it takes some dedication but it’s not too hard to build up the fitness and stamina. Doing a Marathon? Totally different proposition. I really, really respect people who can teach all day, every day for 5 days, then do it the next week, and just keep doing it week after week, year after year.

 

It’s that lack of Interaction

OK, so I’m saying teaching is hard and you may or may not agree, but why do I say it is so much harder remotely? Because being remote and communicating through a screen removes 90% of the interaction between myself as the presenter and the delegates.

When I am stood in front of 12 varied human beings talking to them about how indexes work, if I am doing it the way I like to do it, there is a constant two way flow. I don’t mean they are talking back to me (although that is great and it does happen more face-to-face) it’s more I can get a feel for if the delegates are understanding the topic, if most of them already know this, is anyone lost.. have I just said something that does not make sense? That’s a good example actually, the power of detecting you just lost some of the audience. Often when I have taught people there will be someone (or someones) who’s first language is not English or they did not grow up in the UK, so if I use a colloquialism or make a reference to popular or historical culture, they may not get it. We all do this all the time, we assume that if we make a humorous reference back to a kids’ program then everyone will get it. Which they do if they grew up in your country, even usually if it was 2 decades later! I’ve tried to coach myself to not do this, but then sometimes these cultural references back to something outside the course material that most of us share helps us all relax and get on. So making the references are generally good – but you have to catch when it fails and “mop up”. Real, physical interaction makes this easier.

With a physical course I can judge if someone is not understanding and I do not need to ask “Phil, do you need me to explain that again?”. I simply would not do it that directly in a physical course, it is putting Phil on the spot. I’ll see Phil is perplexed and I’ll explain to the whole class again and watch Phil to see his reaction. With remote training, that feedback and how you handle it is greatly reduced.

The other part of physical courses is that when you have a coffee break or stop for lunch, you are usually all spending time around the terrible coffee & nasty sandwiches provided and you chat – like normal human beings! It’s a lot easier to communicate with people if you have some rapport with them and those breaks are vital to that rapport. Again, it all goes when you teach remotely. As soon as you break for a 15 minute loo-and-refreshment opportunity all screens & microphones that were on are off. I’ve tried staying at my desk, seeing if anyone else stays to chat, but it almost never happens. Besides, eventually I need to nip off for a pee, make a cup of tea and stroke the cat and if I’m talking to someone 1:1 they can take umbrage at this! When you are stood in a group in a physical room chatting, no one minds when I run off for for 4 mins.

I learnt early that anecdotes, especially if they make me look like an idiot, really help oil the wheels of social interaction – and will prompt at least some of the delegates to reply with their own. And I also scatter in some anecdotes that could be classed as bragging, but I am “the trainer” and it helps if they feel I am someone who knows their stuff via actual experience and I have done things for real and not just learnt training material or read stuff.

But hopefully you get the point. Physical presence allows the trainer and delegates to communicate and the trainer to control the flow of information. 

What are the delegates actually doing?

The other downside of remote training is loss of control. With remote training the delegates can do what they want – and most of them think I won’t notice. Of course I bloody well notice!

Of course, it is up to me to make the course as engaging and informative as I can and I do try, but sometimes it’s hard to make some of the necessary material “zing”. I’m sorry, understanding Oracle object statistics is just fundamentally dull, but you cannot understands how to do SQL performance tuning without that knowledge. It’s natural for people to drift off a little during dull-but-necessary bits.

ScreenHunter_ 673

When I have bodies in a room, I can tell very, very quickly if someone is reading email or surfing the web. In such a situation I’ll try to use subtle communication to stop this – looking at them, making a non-specific comment about “you get the most out of training…” or even asking them a direct question, as if I picked someone at random.  If I have the control, I’ll make it harder for people to goof off during the course – I do recognise it can start as something people do “just for a minute” or to check something they are responsible for, but it’s opening the door to distraction.

Fundamentally, If you are in my course, someone has paid for you to be on the course. And you either asked to be on the course or it was deemed appropriate for you to be on the course – deemed by your management/employer who is paying for *me* to be giving the course and for *you* to suffer it! Frankly, I don’t care if you do not turn up at all – but if you turn up, blank sessions & then ask questions that you would know the answer to if you had been engaged, you are now not just wasting your time (and the money paid by your employer) but also damaging the worth of the course to those who want to learn. I’ll have to take time out I could spend on the other delegates to drag you back up to speed.  People like that f**k me off. Sorry

I have kicked people off my courses if I feel they are detrimental to everyone else, but I’ll maybe talk about that at another time. The key things is, in a remote situation I loose a lot of my ability to spot people drifting off or address it.

So what can you do to improve remote training?

1 – you need interaction

The first thing is to encourage (and then if necessary insist) people have webcams on. You do not need *everyone* to have their webcam on – but I sure as hell now know that if no one has a webcam on it makes you feel like you are presenting to a brick wall. It kills the flow. Many people just don’t want their camera on (some people working from home barely wash or dress, some do intend to goof off and so do not want to be seen doing so, and one or two have become really self-conscious as 8 months in reach of endless biscuits and no hairdresser has had an impact). A mistake I made at the start was not encouraging more cameras on.

Ask questions of them. It can feel a little trite and sometimes no one wants to answer questions like “what do you think will happen if…” but you have to do so and then wait them out, until someone answers! Even better, get a few discussions going. It does not really have to be about the course material, but of course it helps if there is some relation to it.

As I said, no one seems to hang around during breaks or lunch. And some bugger is always late. So alternate between having a little chat for the first five minutes of the next session (about  *anything* – “My cat has just thrown up”) to get that interaction going, and starting the material dead on time when the next session is starting, to discourage tardiness. If someone is repeatedly late I stop answering if they ask a question on what they missed.

2 – pretend your web cam is a friend

Most people (including myself) can start to talk in a fast, dull monotone when there is no feedback. And you talk at what you are presenting, the screen with your slides or demo on. It’s not an engaging way to present. One thing I don’t think works (counter-intuitively)  is to put the presentation on the screen your web cam is built into or attached to.  It’s not like a TV camera, the web cam is right up to you. You might think you look like you are looking into the web cam but you are not, you look like you are staring at the chest of your delegates (if they are in front of their screens). You are presenting in a dull, boring monotone, staring at their chest.

So talk TO the web cam. Look at it, train yourself to present to that black dot. And imagine you are explaining this to a mate in the pub. I did wonder about putting a picture of someone I find attractive above the camera to remind me to look at it, but no one wants to see the presenter drool. When you are describing what is on the screen, it’s OK to look at *your* screen, not at all at the web cam, because the delegates are looking at their screen. But when the focus is not what is on the screen, turn to the webcam, to your mate in the pub.

After 2 or 3 hours of this with no real feedback, your own energy levels will probably drop, no matter how hard you try. Fluctuation in tone, willingness to make little jokes & asides, it all dies off – and your presentation style becomes dull, flat, and (frankly) shit. After 3 or 4 days? Awful. This is another part of why you need feedback. I in effect ended up presenting to those who kept their web cams on or were asking questions. On each course I managed to get at least one person to turn on a camera and I gave THEM the course. The others? Well, yeah, they were there I suppose, but I gave the course to Michael or Cali.

And visual feedback is way better than aural. I would rather have people on mute but visible than people I can hear and not see. Apologies to the blind community, but I sure as hell get more out of visual feedback to sound. With sound there are times when all anyone can hear is someone breathing hard into the mic, someone having a coughing fit, someone eating a packet of crisps. A discussion with a partner about the bins, another about why in hell do we have no milk it was your turn to buy milk…. And, sometimes, sound I think I never need to know the source of, but it should have been muted, OK?

3 – Short days, lots of breaks.

An 8 hour day of training in the flesh is hard work – and that is when you have little breaks when you all go over to the refreshments, or queue for the loo, and chat. 8 hours on Zoom or whatever, as many of us have learned this last year, is a destroyer of souls and any will to keep breathing. When I agreed to do these course I said right up front that it would be done in half-day chunks, I’d learnt the hard way that more than one day of solid remote learning is unpleasant for everyone.

One of the courses was a 3-day course, so we had to do 4 half days and a final full day. But we did not, I made sure we edged a little further into the material each day than I had planned and, except for one week, I was able to make that last, full day shorter. The odd thing was, even though I did end the material early on Friday, most people stayed around after to discuss a few things or would listen to a slightly off-topic, undemanding, final session. 

A BIG mistake I made on the first course was thinking we could trim the coffee/tea breaks as there were not going to be issues with the loos (well, not ones I could do anything about!) and everyone had their own source of drinks and snacks. It was a “three-day” course and I was trying to get a little ahead so we could shorten the Friday. So we had 5, 10 minute breaks –  bad move. It’s mentally more demanding to take in information via remote training I think, people needed the breaks. If anything, I ended up in later courses giving the delegates longer breaks than we would have a training room. 

4 – Don’t give them Anything!

If I was on a remote training course and I had been sent the materials, I know what I would be tempted to do… Especially if, like is nearly always the case, you have more work to do than you can get done.

I made it very, very clear that they would get all the slides and that there were lots of words to explain the diagrams I tried to mostly talked around. But not until after the course. So they had to listen or goof off. If I’d given them the slides, most of them would have just goofed off!

I mostly sent the course notes at the end of the week but a couple of times I sent them at the end of the day. This was usually as someone was forced to skip a session and they asked for the notes to catch up. I generally take a very dim view of people skipping sessions on a course, I design the course with a flow of information that grows and builds over the days, but we live in weird times. Some people were juggling childcare, relatives, stuff simply going wrong.

On the topic of course materials… Don’t you hate it when bullet points appear on the screen one-by-one? It usually makes for a relatively poor presentation. But when remote training and you want to slow down the rate of information you are delivering or make points clearly, they can come back into their own – IF you don’t over-do it. People are concentrating on the screen way more than in a normal presentation, when you the presenter are a main feature, so the point-by-pointy method is more suitable. (A friend did point me at some software that would overlay my image over my slides so I could “present” as normal, but I would have had to re-jig a lot of slides for that and it was an added complexity I wanted to avoid. Maybe next time).

If you can, concentrate on images and diagrams, especially if you can animate them. Even something simple and cartoon-like gives a bit more, well, animation! More visual stimulus and something you can talk around is better than text. You still have the wordy slides, but they are more for the delegates to refer back to or to quickly remind me of things I need to cover.

5 – Odds & Sods

I kind of touched on this earlier, but up the human, interactive side as much as you can. Banter. I do this in physical course too, but it really helped with the remote sessions when I got it to happen. Someone is usually OK for a bit of mild mickey-taking. If you say something self-derogatory people will often join in and you go from there. I also try and tell a few more anecdotes and they sometimes prompt one of the delegates to reciprocate. The more conversational flow you can generate the more people are willing to both listen and speak up.

Do keep track of the anecdotes, especially if you are running a course multiple times. I do have specific points in the course where an anecdote highlights a point, others are more “on a whim”. I remember being a delegate on a course about 28 years ago and the instructor, a very entertaining chap, told quite a few little stories. I noticed that after doing one he would often make a note or something on his paper pad. I asked him about this at a break and he explained that, as he ran training courses pretty much every week, he lost track of which stories he had told. So he made a little note of each one.

Get the delegates to ask as many questions as you can, almost beg them to – and always been keen to answer them immediately, even if you know you’ll cover the point later in the course. It’s good interaction, encourages more questions to be asked, and there is a reason they asked that question then. If it is something that is not covered later in the course, the next version of the course may well have a new slide on it!

My only exception is if someone asks a question about a part of the course I knew they goofed off from or they were late for the start of. I’ll probably answer the first one or two and make the point we covered this, and then I’ll say we don’t have time. Don’t get me wrong, I’ll answer the same stupid question 3 or 4 times if the person is just not getting it, but I don’t condone people skipping parts of the course by re-iterating what they chose to miss. I give the course to people who want to learn.

Numbers. Have fewer delegates on the course than you would in the flesh. With a web cast, a single presentation at an audience, the more people listening the better. The communication is one way. But a training course is actually nothing like that, not if it is a good course. You need to be able to interact in all the ways I have described, and it is harder to do that remotely, and the whole process is just so much more draining via screens & microphones. I had to really kick back on this one initially and I am glad I did. I had delegates numbers from 4 to 12. When there was more than 8 of them, I had to give up on keeping tabs on all of them and those weeks left me shattered. I can handle 12 in a room no problem, but I think 6-8 is the ideal for a remote, interactive course.

 

 

 

.