jump to navigation

Friday Philosophy – Solving Simple Problems By Asking The One Key Question. June 17, 2022

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

For many of us solving problems is a large part of our working life in IT. This is especially true when it comes to getting features of a product to do what it is supposed to do or even making a bit of hardware work the way it should. And, if it a printer, work in any way at all! Often the solution is simple but we ask ourselves the wrong question. I’m going to use this pair of garden secateurs as an example of this. Trust me, go with me on this.

My trusty secateurs as a metaphor for almost all IT problems

I’ve had these secateurs for many years. For the first few years these secateurs worked wonderfully, but in the last 2 years they have not been working so well. They just don’t cut all the way through stems & small branches, you have to almost pull the piece off that you want to smoothly cut away. I was having to squeeze the handles harder and harder to complete the cut. And now it seemed to make no difference how hard I squeezed, they would not cut cleanly.

The trick with any such cutting device is to keep the blade sharp, and I do. A few strokes with a needle file every few months keeps the blade sharp. The other issue with an anvil-type pair of secateurs like this is to keep the anvil, the flat area the blade comes down onto, clean and the little central gap clear. The blade closes down on the anvil and the thin gap allows the blade to *just* drop below the main face of the anvil and cleanly cut the stem. This is like the regular maintenance you do on a computer system, like cycling out redundant data or ensuring there are no accounts for staff who have left or rebuilding all your indexes ( 😀 ).

Only, no matter how much I sharpened the blade or cleaned out the anvil the secateurs would not make a clean cut. Ahh, I know. If you look at the above pictures you will see on the blade that the area closest in to the pivot is silver, it is where most of the wear is. Had the blade worn back into a curve so that the key part of the blade was not cutting all the way through? I used a flat piece of metal and checked the blade. Well, the far end was a little proud so I worked on it with the file and got the whole blade totally flat and sharp along the whole length. It was sharp enough so that when I pulled garden twine over the blade it cut straight through with ease.

They still would not cleanly cut through a stem. I oiled the pivot, for no reason other than blind hope (just like changing configuration parameters for something when you really know those parameters have nothing to do with the problem). I sharpened the blade again (I rebuilt my indexes again). The blade was wickedly sharp, it was flat, the anvil was clean, these secateurs had always worked so well. So I asked the question. Or, more accurately, shouted it at the offending thing:

Why wasn’t *IT* working?!?!!

And that is the wrong question. But it’s usually our attitude to any piece of software or hardware that is not doing what it should. We beat the desk and swear and shout “why won’t you work you piece of crap!!!”

At this point you need to stop and ask a subtly different question:

What is it I don’t understand?

The two questions are similar but the key thing is they come from different directions. When you are screaming at the unresponsive printer or swearing about the SQL hint having no effect, your mind-set is that the thing is broken or has a bug or is in some other way not doing what it should. It’s the printer’s fault. The manual is wrong on setting up the feature. This thing is not doing what it should.

Well, yes it is not doing the required thing – but given other people can get the feature to work or the printer was working last week, the problem is unlikely to be there. The problem is actually that I am not understanding something. And it could be very fundamental, so ask the most basic things first. For the printer to print something it needs to be on and I need to send the file to it. Is it on! OK, maybe not that basic, but are you sending the file to the right printer?

Getting back to my example hardware, the blade is sharp enough to cut, the face it is cutting onto is clean, there is no issue with the pivot. What does it need to *do* to cut? The blade needs to come down on the anvil. I closed the secateurs and held them up to the light.

Note, I slightly emphasised the gap for the sake of the photograph

Ahhh, there is a gap! If I squeezed really hard the gap would shrink, but not completely close. The problem is not the blade, it is not the anvil, it is something else that is stopping the two coming together. The problem is elsewhere. And it is simple. And this is often how it is with software & computers. Yes, sometime the problems are very complex or have several confounding factors, but when you are trying to get something to just work, the problem is usually one of missing something obvious, which is usually being impacted by a component you are not currently swearing at.

This is just like last time my printer would not respond to requests to print from my laptop. I’d checked “everything”, swore at the printer, turned it off and on a few times, kicked the cat, sacrificed a small child to the printer Gods. I stopped and I did the “what do I not understand” thing. It turned out that due to a brief power outage a few days earlier my laptop was connecting to the internet via my neighbour’s router not mine (we have a mutual agreement to share due to the connection issues of living in a field and that we use different service providers). The printer and the laptop were not on the same network.

If you look at the secateurs in full you will notice that between the handles there are two plastic lugs that come together. I’m guessing they stop you squeezing the blade deep into the anvil, potentially damaging both blade and anvil. Over the years of sharpening I had worn away the blade enough that these plastic lugs were now preventing the blade and anvil coming together. Especially as, due to my frustration, I had given the blade a really thorough sharpening. That’s why I had been having to squeeze the handles harder & harder until eventually no effort would get a clean cut. I got that needle file out and reduced those lugs by a millimetre or so. The blade now closes on the anvil and, being about as sharp as it has ever been, they cut wonderfully. The solution was wonderfully simple and it took me all of 2 minutes to implement once I had worked it out.

beautifully closed secateurs

You see, it was not that the secateurs were maliciously working against me or that the components that usually needs some maintenance needed it. It was that I was not understanding something – something very simple & fundamental it turns out. Rather than repeatedly doing the maintenance steps that had worked before but now were not, I needed to stop doing what was no longer working and ask what had changed.

When you are solving problems and it’s got to the swearing stage, it’s time to walk away for 5 minutes, have a cup of tea, and then come back and ask yourself “what do I not understand?”. Best still, do this right at the start. Though to be fair I’m not very good at that, I always get to the swearing stage before I decided to question my understanding.

Especially with printers. I bloody hate printers. Printers are sentient and out to get you.

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.

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.

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.

Friday Philosophy – My First Foray Into I.T November 13, 2020

Posted by mwidlake in ethics, Friday Philosophy, humour, Perceptions, Private Life.
Tags: , , , ,
1 comment so far

This is the first computer I ever used. The actual one. It is a Sinclair ZX Spectrum 48K. It was at the heart of a long, terrible family feud – the source of much angst, anger, and even fist fights. Blood was spilt over this machine. Literally!

Picture of a Spectrum home computer

The actual first computer I ever used

Anyone who lived in the UK in the early 1980’s and is currently about half a century old will recognise this box with the grey, rubber (sometimes called “dead flesh”) keyboard. It was the model that came out after the Sinclair ZX81, which is itself a classic of early home computers, and sometimes the ZX Spectrum was called the ZX82. The Spectrum could put colour on the screen (up to 8 different colours at a time!), had a resolution of 256*192 pixels, the Z80A CPU ran at 3.5MHz, and it could make a sound. A beep, basically (for a wide variation of too few hertz to hear to too many hertz to hear and all tones in between, and of any duration – but it was still just a beep).

The Spectrum was initially a rival in the UK for the Commodore VIC 20, BBC Micro, Atari 400 and, later, the Commodore 64 (C64). They all had their advantages, the Spectrum’s was it was cheap! Even the more expensive 48K version (as opposed to the basic 16K) was cheaper than most rivals. Sinclair Research even tried to make out it was superior to it’s rivals as it was simpler and had fewer chips inside it. That was pure marketing BS of course. But the Spectrum and the C64 were probably the most common home computers in the UK in the early 80’s and they remainder popular even when more capable machines came out. They might not have been the best machines technically, but they both ended up having a huge number of games you could play on them, and that’s what counted. In my local computer games shop most games were for the Spectrum, then the C64, and all other machines got lumped together in a corner at the back.

The Spectrum was the first computer in the Widlake household. My dad agreed to buy it for my older brother Simon, who made a strong argument that it was an educational tool – and the early advertising material for the machine made a lot of it’s suitability as a such, with lots of worthy software for doing graphs and learning computer languages. About the only game available for it on release was chess. Dad was of the opinion Simon was the genius in the family – Simon was going to go to University! (At the time no one in the family had ever gone into higher education, only about 5% of people in the U.K. did then. As it turned out, all three of us kids went into higher education). So Dad felt it was worth spending the money, as he felt computers were going to become something. He wasn’t wrong.

But before Dad agreed to get Simon the Spectrum, he made Simon agree it was something the whole family was to have access to. He was to share it with myself and Steve, the eldest. Simon agreed.

Spectrum with games and tape recorder

The spectrum needed a tape record and a TV to be used

So the Spectrum arrived. Back then, home computers almost never came with everything needed to use them. The Spectrum, like several rival computers, needed a cassette tape record to save and load programs from tapes, and a TV on which to show the image. Simon had his own tape recorder and he was of the firm belief that, except when Dad wanted to watch the news, he could use the family TV whenever he wanted. As he was a genius after all.

He quickly lost the TV argument, the last thing our parents wanted was to lose the power of distraction that the TV provided for the other two kids – especially me as I watched a lot of TV and was a right PIA when I wasn’t. Steve did not watch a lot of TV but as he wanted nothing to do with the computer, it would have been really unfair on him to not get to see the few things he wanted.

However, Simon had a back-up plan. I had a portable black & white TV (so much for those 8 colours) and Simon was older & bigger than me. So he took possession of my TV. I complained to the court of Mum & Dad but the Tyrant justified his acquisition of the resource on the grounds that he was going to have to share his Spectrum, a far more valuable resource, with me – so it was only fair?!? “Yes” I agreed, but only when I was not using MY TV for MY watching of what ever (probably crap) I was wanting to watch. The court came down on the side of the Tyrant, but with caveat of the plaintive upheld. Tyrant could use the TV when Plaintive was not watching it. It turned out that the reality of the situation was that Simon was still bigger than me and to my considerable surprise “I didn’t want to watch anything” whenever Simon wanted to use his – err, sorry, “our” – Spectrum.

The next blow to the plans of Tyrant bigger brother was that it turned out his tape deck (the one in the picture) was crap. Most games would fail to load from it. But my tape recorder worked just fine for this purpose, it was a really quite nice JVC model… So, yes, you guessed it, another possession of mine was now to be treated as his – sorry, “our” – possession, still on the basis of shared access to the Spectrum.

So Simon used my stuff as and when he wanted, but did he share? Well, sort of…

Sinclair User Magazine

Those of us of the correct vintage who got into early home computers would buy magazines like (in our case) “Your Spectrum” or “Sinclair User”. Inside there would be long code listings of programs. Simon “let me” read the text of the code out to him to help him type it in more easily. Or, if he was in a really good mood, he would let me type the code in on my own – whilst he was doing something else (like seeing his friends or watching the colour TV or picking on the cat). If I finished typing it in I was not allowed to play it until he got back. Yeah, like I paid any attention to THAT rule…

These games you laboriously typed in often had bugs in them, especially if they had a lot of code. Some were down to entering the wrong code in, more were down to the actual code really being wrong – quality control was non-existent. And, to give him his due, Simon was really very good at finding and fixing the bugs. Once there was a flight simulator in the magazine, spread over a couple of issues. I think it later got developed further and become “Psion Flight Simulator”. But the version in the magazine did not work properly. Simon found and fixed the bugs and even got them published in a later copy of the magazine. It taught us both that software could be wrong and that it could be fixed. I did fix some of the games myself, especially if I had been left typing it in and got it finished. And sometimes Under Orders from the Tyrant (who was out setting light to papers in people’s front doors or something…)

But I was not allowed to play with the computer myself without permission, and certainly not if he was out. Apparently I was old enough to enter code for him unattended but not to load up “Meteor Alert” or “Ant Attack” and have fun. You’d think from this I was maybe 8 or 10, but I was actually about 14 and more than old enough to recognise hypocrisy and injustice. I would say that’s what older siblings are primarily for, to teach you about these philosophies. Not by saying “this is something you should not do, oh younger brother of mine” but by amply demonstrating for real what it feels like to be on the receiving end of such bullying and unfair treatment. But my oldest brother felt no need to deliver such life lessons, so I could be wrong.

Simon would let me play “with him”. This usually took the form of him playing the game and, once he lost, letting me play until I lost – and then we would swap again. Sounds fair? Not really, as a lot of the time he would be playing on his own or with his friends and I was not invited. He would be using “our” TV and “our” tape recorder but it was still His computer and he was not letting me join in. So given my lack of practice and that I was younger and not so good at computer games as him, when he did let me join in his go would last 20 minutes and mine would last 2 minutes. Basically, he liked to be beating someone. I was better than him at a couple of games, one being “Attic Attack”, as I had learned the layout. We never played Attic Attack. Oh, he did play Attic Attack. He played it on his own, trying to get better, good enough to beat me…

I could beat the Tyrant at Attic Attack

After maybe a year, 18 months, things came to a head. Simon was never going to play fair, in his mind it really was his Spectrum and also now his TV and his tape recorder. After all, as he kept telling me, his computer was the more expensive item. Only, in reality, it was less expensive than my contribution combined. I started playing on the Spectrum when he was not in, as far as I was concerned I’d put more into this pot than he had and I was not going to accept this shit. I could not use it against his will when he was there but once he was out, I damned well was going to get some of my fair share. As you can guess, this did not go down well with him when he found out and the Tyrant did what all bullying, older brothers did and he physically asserted his authority. He’d hit me. I was not really pleased about that, so when he’d go out I would absolutely bloody well would play on it if I wanted to or not, out of spite & defiance (and also to keep my edge in Attic Attack) – and it would repeat. It came to a head when he made my nose bleed – and it dripped on the computer. That was, of course, my fault… “If you’ve damaged the Spectrum I’ll kill you!” Oh, I’m so sorry for bleeding on things after you hit me. Maybe that should teach you something…

It was now warfare.  Screw you, I said, you’ve never shared as agreed, keep your Spectrum, it’s useless without my bits. I banned him from using my equipment. A ban which he now ignored of course. I went to the court of Mum & Dad, but not only was Simon “the genius” but he was, back in reality, a lying & manipulative sod and he made out he was sharing and I was being a spoilt child and I was told I had to share as he was (!!!!). So I took things into my own hands – and I started hiding the cables to my tape recorder and taking the plug off my TV. Yes, I physically removed the plug from the cable and hid it. He tried to work around my sabotage, one day I came home from somewhere to find he had plugged the Spectrum into the family TV and he’d got hold of a spare power cable for my tape recorder and he was using it, despite me banning him from it, playing games with his mates.

I went utterly, lost-the-plot nuts. I demanded my stuff back and an apology or something or let me play too and he was having none of it. So I tried to take my tape recorded back and he tried to stop me, but I was so mad I got hold of it (I think I was finally getting strong enough to fight back a bit) and, shouting something like “and you used it to load that game, so I’m taking THAT as well!” I kicked the power plug out the Spectrum. Game gone, no tape player to load one up, games afternoon with his friends was over and there was nothing he could do about it. He went BERZERK, trying to wrench the tape drive back off me and hitting me but I was so furious I held my own and I think I even kicked his computer again. He was straight off to Mum saying I was trying to break his computer. And this time, the Court of Mum & Dad finally realised Simon was being a little shit. He could not deny he had used my things, even though I had told him he could not, and he could not claim I attacked him first (his usual stance), as his mates backed me up and said Simon had hit me first. Yeah, his mates dobbed him in it!  I think they found it all hilarious.

This led to a full judicial review and this time the voice of the Plaintive was heard. I might have been a little sod but I had never tried to break stuff before and I utterly refused to accept it when The Tyrant lied that he shared at all – why would I be this mad and and even taking the plug off my TV? Simon had not helped himself in other ways as he’d been caught bullying me by Mum recently and been in trouble at school. Timing was on my side. He was told to play fairly or else… have his precious Spectrum removed. Dad would monitor.

Amstrad CPC 464

This was my Amstrad, I bought it, Simon was not using it.

After that, it got a bit more equal. I did get some time on the Spectrum myself (though I did sometimes have to get enforcement from the judiciary) and I did not just play games. I had typed in a lot of programs for Simon and fixed a few of them, so I slowly learnt how to program. I wrote a couple of my own simple games and put in stuff from magazines I wanted to try but Simon had no interest in.

But it never did really completely end. He could no longer stop me using the Spectrum. But if I was using it and Simon decided he wanted it, he would just bully me, or tell dad I was stopping him “learning” (I am not so sure what you learn from playing “Jet Set Willy”). That Spectrum came, for me, to represent what a selfish, lying, bullying, devious shit my older brother was. I swore one day the Spectrum would be mine.

And then it all changed, I got my own computer, an Amstrad CPC464. I bought it with my own money I earnt from months of back-breaking fruit-picking work (Simon was “too good” to do manual labour, so he had no money). It had not been bought by Mum and Dad, it was in no way a shared resource, it was totally mine. And guess what I said to him when he asked (well, demanded) to use it?

Yes, he could Fuck Right Off. He had his Spectrum.

And if he tried his old tricks of hitting me, it would be a more equal fight (he was still taller and older than me but manual labour had made me a hell of a lot stronger), so he decided against that. He could keep his crappy Spectrum.

The irony was that, even though my Amstrad was a much more advanced and capable piece of kit, the Spectrum and it’s vast library of games was still the best option for fun.

Well, the Spectrum is now mine. I picked it up from Mum’s house this week. Simon passed away many years ago, so it’s been sitting in a drawer for almost 2 decades. Being a Friday Philosophy I guess I should now tell you what the Spectrum now means to me, the healing process, what we can learn from this? How family, in the end, is more important than mere possessions? Stuff like that?

Well, I can.

I learnt that Simon was always a bullying, nasty, selfish, self serving sod and he got no better as he got older. So there.

And the Spectrum is now mine I guess.

But I don’t have a TV with the right socket to plug it into, and I know already – that tape drive won’t load games…

Friday Philosophy – Is The Problem The Small Things? August 7, 2020

Posted by mwidlake in ethics, Friday Philosophy, off-topic, rant, User Groups.
Tags: , ,
6 comments

Something has been bothering me for a while. In fact, I’d go as far as to say it’s been depressing me. It’s you. Well, many of you.

Well, it’s not MY problem!

What do I mean? Well I’ll give you an example. A week or so ago I went out in the car to get some shopping. A few minutes into the journey, as I go around a gentle bend, I see there is a car coming towards me – on my side of the road. I had to brake to give it space to get back over and I see it has swerved to avoid a branch in the road. As you can see in the picture, it’s not a huge branch, it covers less than one lane. I’m past it now so I go on to the shops and get my stuff.

30 minutes later I’m coming back. And I’m thinking to myself “I bet that branch is still there.” And it is. I can see it from maybe 300 meters back. The two cars in front of me barely slow down and they swerve past it. An oncoming vehicle that *I* can see coming, let alone the two cars in front of me, has to slow down for the swervers like I did. That slight bend means you get a much better warning of the obstacle from the side of the road it is on and as it is on your side, it’s really your responsibility so slow or even briefly stop, but the people in front of me just went for it. They did not care.

I did not swerve. I slowed down. And I put on my hazard lights, and stopped about 20 meters back from the branch. I double checked that no car has appeared behind me and I got out the car. In 20 seconds (including taking the snap), I’ve moved the branch off the road with no danger at all and I’m back to my car.

I know, you would have done the same.

Only no. No, you would not have.

Some of you would like to think you would have stopped and moved the obstacle.

I suspect most of you would claim, if asked, that you would have stopped and moved the branch.

And of course all of you would have slowed to avoid inconveniencing others.

But reality shows that nearly all of you would not.

As I left the scene, I was wondering how many people would have passed that branch in that 30 minutes I knew for sure this small branch had been an obstacle on the road. I’m going to let people going the other way off, as they would have to do a u-turn to come back to it, so how many people would have had to swerve past it?I know that road well, it would have been hmm, 4 or 5 cars a minute going past in one direction – certainly more than 3 cars, less than 10. So well over a hundred drivers would have seen that branch from a distance, most would have been able to safely slow and stop – and yet not one of them had. I have no idea how long the branch had been there, it was not too beaten up so maybe not long, but it could have been a couple of hours. It was easy to avoid – especially if you swerved with little concern for any on-coming traffic…

It turns out I’m the one in a hundred.

Are you thinking “well, it’s not my job to move branches of a road!”

So who’s job is it? And if you could label it as someone’s job (let’s go for someone in the “highways agency”) how do they get to know it needs doing? I don’t know about you but I see dozens of highways agency maintenance people on every journey I do, just cruising around looking for things that need doing. {sarcasm}.

When was the last time you saw something that needed doing in a public place and took the time to think about who should be told, try to contact them, get told to contact someone else, find out it’s not their job but are asked to ring Dave, who you do ring and he says thanks (before making a note to think about it, whilst probably muttering “this is not my job, I’ve got major roadworks to look after”). Hell, it’s easier to stop and move the branch.

Generally in life, in so many situations, I am constantly wondering why someone has not done X (or has done Y). Why don’t you reach for the jar in the shop the old lady can’t quite reach? Why don’t you hold the door? Why did you drop that litter when the bin is JUST THERE! That person  in front of you buying a parking ticket can’t find 10p in their purse to make the correct change? You have loads of 10p pieces… some in your hand already.

This is what is depressing me. Even though nearly everyone likes to think they are the nice person who will do a little for the common good, the reality is that most people won’t when it comes to it – but most people think we all should, and you tell yourselves you do the little things. You are telling yourself now, aren’t you? You are trying to think of the little things you have done for the common good. If you can think of a half dozen in the last month then you really are one of the good guys/gals. If you can only come up with a few…and actually most of them were ages ago… well, sorry but you are the problem.

The strange thing is that, having just insulted you all, as a group you lot are much more likely to be in the 1% than normal. Even though out of the general public not even 1 in 100 people would put in a little effort to move that branch, out of the people reading this, I’d say 10% would. Because I spend a lot of time in the Oracle user community, packed with people who give up their time, knowledge, even their holidays, to speak at conferences, help organise meetings, answer on forums, write blogs, answer questions on twitter, and all that stuff. Many of you reading this are active members of the User Community doing not just small things but often large things for the community. That’s why the community works.

To the rest of you, instead of liking to think you would move the branch or claiming you would (as everyone wants to be thought of as the nice guy/gal) just occasionally move the branch. Or pick that piece of litter up. Or do something small that cost you so little but it just would be nice if someone did it.

No one will thank you.

But you will know you did it. And you are becoming no longer part of the problem but part of the solution. I’m not asking you to give 10% of your salary to charity or give up an important part of your life, just do a bit of the small stuff.

If more of us do it, we will have a better world. If someone had moved that branch soon after it fell, I would not have had to  avoid some swerving dickhead, and the person I saw later would have not had to avoid people who could not even be bothered to slow down or stop briefly. And, in the worst case, that needless accident need not have happened. It really is as simple as spending 1 minute moving a branch.

Don’t be part of the problem, be part of the solution. It’s really, really, really easy.

 

Friday Philosophy: The Intersecting Worlds Around Oracle April 24, 2020

Posted by mwidlake in conference, Friday Philosophy, humour, User Groups.
Tags: , , ,
5 comments

Some of you may have noticed something about the Oracle Community: How certain other aspects of human nature, factors, and outside activities are unusually common.  An abiding love of the works of Douglas Adams (If you have never read “The Hitch Hikers Guide To The Galaxy” you should question if you are right for this community – and if you have read it/seen the series/watched the film and disliked it, I’m afraid you have to leave now); Lego was probably an important part of your childhood (and quite possibly your adulthood, though some “project” this fixation on to their kids). A lot of the most talented people, especially presenters, are called “Martin” or similar :-}.

Three Different Worlds Meet

There are two other groups of people that are large within the Oracle community and that I fit into.

  1. Oracle people who have a thing about cats. A positive thing, not those weird people who don’t like cats. It seems to me a lot of people in the Oracle community are happy to serve our feline overlords. This can polarise the community though, so introduce the topic of cats carefully. If the other person mentions how evil or unfriendly cats are, put them on The List Of The Damned and move on to something else.
  2. Making bread, especially of the sourdough variety. This is a growing passion I’ve noticed (quite literally, given the careful tendering of starter mixtures and also expanding waistlines). It seems to be especially common with technical Oracle people. More often than not, when I get together with a flange of Oracle Professionals (or is it a whoop or a herd?) the topic of baking bread will come up. Unlike technical topics, such as what is the fastest way to get a count of all the rows in a table, baking topics are rarely contentious and lead to fights. If you want to put spelt wheat in you mix, that’s just fine.

Mrs Widlake and I were talking about this last night (one of the problems with all this social isolation business is that Mrs Widlake is being forced to spend a lot of time with me – after 27 years of marriage idle conversation was already a challenge for us and now with over a month together all the time, we are getting desperate for topics). She asked how many of my Oracle friends liked both cats AND baking bread?

It struck me that it seemed to be very, very few. Unusually few. I think this is something that needs to be investigated.  This pattern would suggest that bread makers are cat haters. But in my non-Oracle world, this is not the case. The best people are, of course,  Ailurophiles and many of my feline-fixated friends are also bakers of bread. Just not in the Oracle world.

What makes Oracle people so weird?

Does anyone have any ideas? And have you noticed any other common areas of interest (excluding computers of course, that’s just obvious)?

A few that spring to mind are:

  • Terry Pratchett and the Discworld
  • Running
  • Weird science
  • XKCD
  • The Far Side
  • Star bloody Wars.

Let me know. Or don’t.

And for all of you who don’t like cats…

Meow

Friday Philosophy – Concentrating and Keeping Calm. April 3, 2020

Posted by mwidlake in biology, COVID-19, Friday Philosophy, Perceptions, Private Life, science.
Tags: , , , ,
add a comment

I was talking with a friend this week (via a webcam of course) about how he had been looking & looking at some misbehaving code for days. His team mates had looked too. It was not working and logically it should work. None of them could work it out. The problem turned out to be a small but obvious mistake.

My guesses for UK cases & deaths. Do Not Trust

This of course happens to us all occasionally, but we both agreed that, at the moment, we have the attention spans of a goldfish and are as easily distracted as a dog in squirrel country. I asked around a few other friends and it seems pretty much universal. All of us are making cups of tea and then taking the milk into the lounge & putting the cup of tea in the fridge. Or walking into the kitchen and asking who got the bread out to make lunch. It was you. The cat is wondering why I open the pouch of cat food and then leave it on the worktop and go do my email for 20 minutes. She’s getting annoyed.

Why are we all failing to function? Because we are all worried. This is one of the things anxiety does to us.

The whole COVID-19 thing is stressful – the feeling of being trapped inside, concern for friends and family, the ever growing numbers of infected & dying. I actually think if you are not at all worried then you are either:

  • Not understanding the situation
  • In denial
  • A total sociopath
  • Someone who should not be allowed out alone
  • Have reached a level of Zen calm usually only attainable by old oriental masters/mistresses

I’m by my nature often in camp 3 above, but even I am worried about this and I know it is making me tetchy and less able to focus. I’m struggling to keep my mind on things. Except on COVID-19. I tend to handle things I find unnerving by studying them and I probably spend about 3 or 4 hours a day looking at the latest information and scientific output on COVID-19. However, I note more things to “look at later” than I actually look at, as I am trying to manage my stress.

After an hour I make myself get up, go trim some roses, play a computer game, read a book. Anything to distract me. I’ve even started talking to the other person in the house and my wife is finding that particularly annoying. Sue seems easily annoyed and quite distracted at the moment. I wonder why?

Another way I cope is I talk with people about topics that are causing me stress. If I can’t talk, I write. Thus I wrote this Friday Philosophy – think of yourself as my counsellor.

I’ve seen a lot of social media “memes” about how long ago the 1st of March feels like, when we first started worrying about this. It seems like months ago, yes? To me it seems like a year. I started worrying about this a good while before the 1st March. I think the worry started about early/mid-February. Why? Because I’m a genius of course. {Note, this is called British self-deprecating sarcasm – I’m not a genius!}. No, the reason I picked up on all of this early was that chance primed me to.

I have a background in biology and some of the job roles I have held over my career have been in healthcare and the biological sciences. One role last year was working with a small biotech company working on immunology. So I take an interest in this sort of thing, it’s “my bag”. I was also pretty ill in December with Influenza (and yes, it WAS influenza, type A – I am not “the first case of COVID-19 in the UK”). So I was convalescing at home and took a specific interest in a new illness spreading through China that was influenza-like… And was worrying the hell out of the Chinese authorities who were coming down on it in a way we have not seen before, even with SARS and MERS.

My play spreadsheet.  I should leave this to the experts really

I have to confess, I initially suspected (wrongly, I hasten to add) that this new disease had escaped from a lab. The way it spread, that it seemed to be ‘flu-like, the rapid response by the authorities. I don’t doubt research into modifying diseases goes on – by the UK, China, USA, the Vatican, by every country with a biotech industry. I know we have the tools to directly mess with genomes, I did it myself, crudely, 30 years ago and I know people now who do it now, with considerable accuracy, for medical and other altruistic reasons. However, genetically engineering an organism leaves traces and when COVID-19 was sequenced there was no sign of this and it could be tracked to similar, previously known samples. I might even know some of the people who sequenced it and checked. But, anyway, that suspicion also made me watch.

The rate of spread in Wuhan was as shocking as the authority’s response and then through February the scientific analyses started appearing. The R(0) number (infection rate) and the high case fatality rate were both high. I’m not an epidemiologist but I had been taught the basics of it and I knew what was coming. No, that’s not right, I suspected what was coming, and I was worried. It was when the number of countries with cases started to increase that I felt I knew what was coming. By the end of February I was sure that unless something huge happened to change it, 2-3% of people, everywhere, would be killed. This was going to be like Spanish ‘flu only quicker (as we all travel so much). I became “The Voice Of Doom”.

On 2nd March I recommended to our CEO that UKOUG cancelled our Ireland event (people & organisations were pulling out so it was making it financially untenable anyway, but my major concern was that this was going to explode in the population). Thankfully the rest of the board agreed. I created my tracking spreadsheet about the 5th March. So far it’s been depressingly good at predicting where we are about a week in advance, and not bad for 10 days. I leave it to the experts for anything beyond that. All so depressing so far.

But Something Huge has happened. Governments did take it seriously. Well, most of them. And those who took it seriously soonest and hardest have fared best. The social lock-downs and preparation work that is going on in the UK is going to reduce the impact down dramatically and, more importantly, give us time to try and find solutions. But it still worries me. And I think they could have done it sooner. But most of the world is taking this very seriously – as it is very serious.

Part of me wants to keep watching how COVID-19 develops, and maybe writing more articles on it. I’ve had some really nice feedback on the first two and I want to do a post on where we might go in the coming months and why. But part of me wants to stop as it is making me very anxious and I’m sick of losing my cups of tea, or being stared at hard by the cat, and the wife asking me what the hell am I doing with the spanner and tin of peas.

I can’t easily listen to the government announcements each day as it is obvious, if you look at the scientific data and what medical professionals are saying, that they are simply not being candid. It’s all “we can beat this in the next few weeks” and “we will get you testing kits this month that are utterly reliable” despite the fact that’s going to need a scientific miracle to do that, let alone develop a reliable vaccine. I understand we need to keep positive but I think bullshitting the population now is only going to make telling them anything they will believe in 2 months even harder. In 6 months time when there is still no reliable vaccine and so many people have been wrongly diagnosed and the first few countries have had this rip through them almost uncontrolled, the lack of candid honesty will come back to roost. I worry about that a lot.

So I’m worried and I’m worried I’m going to be worried for months and months and months.

But for now I’m going to go for my daily (local) walk along a path I know will be almost empty of people and relax.

 

* Note, the graph and the spreadsheet are just “decoration”. They are my wild guesses on what may happen and have no reliability at all. Just saying

 

 

 

Friday Philosophy – Presenting Sex January 24, 2020

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

These slides are from the first ever presentation I did. And yes, the presentation was at work.

The Evolution Of Sex

My first real job after college was as a trainee analyst programmer for the National Health Service and, as part of the “graduate training program”, we attended a short course on presentation skills. As you would expect, we all had to do a presentation at the end. As most of us had never had a job before and we were dull with no interesting hobbies, most of the presentations I could see being put together around me were a little… boring. I decided to try something different.

If you think the photographs with this article are a little poor with odd reflections, that is because the original images are printed on transparent acetate sheets and were displayed by putting them on an overhead projector – a large box-thing with a blindingly bright light that shone through the acetate sheet and cast the image onto a screen or wall via a mirror/lens bit. Laptops had not been invented back then and I’m not even sure a PC (if you could afford a PC 386SX) could drive a projector. This was all manual – you had to change sheets by hand. At least you never had problems with connecting the overhead projector to the acetate sheet, you simply put the sheet on upside down and back-to-front and had to re position it 3 times before you got it right. This is important, I could not quickly flick between images.

When I put up my first sheet, with the cute little couple holding hands, our tutor screeched and said to one of the other delegates “Oh God! I thought you were kidding when you said what he was presenting on!”. Before I could even take this opening image off the projector sh had stepped forward and told me I could not present this.

“Why not?” I asked, “we are all adults!”. She refused to let me swap to my first proper slide, “This is not the sort of topic that is suitable at work.”

Stand off.

“Well, what do you think I am going to talk about?”. Our tutor was now quite flustered. “I think we all know what you are presenting on – and I shudder to think what the next slide is going to be of!” (or something like that, this was a long time ago). I had no choice. I got her to come closer and look at my next couple of slides…

Her relief was visible. She could immediately see the next slides were not based on “The Joy of Sex” or similar publications and after she’d looked at each of my acetate sheets carefully (just to make sure) I was allowed to continue.


Of course, this had somewhat diluted the tension & expectation that had been building up, but I felt I had milked the initial surprise as much as I was going to be able to. I moved onto the next slide and most of the audience was disappointed by the lack of limbs, bodies and appendages to be seen. As you can see to the left, the next slide was an odd set of little diagram of dots & letters and what many of us would now recognise as a sort-of family tree diagram. As some of you know, my degree had been in genetics (and zoology but that is bye-the-bye).

There is a very interesting thing about sex, as in sexual reproduction. What is the point? Well, apart from the immediate pleasure for animals like us that seem to enjoy the initial act, why do we mix the genomes of two organisms to produce new offspring? It is not mandatory, many organisms (especially plants and bacteria) employ asexual reproduction. All the children are effectively clones of the adult. There is no finding a mate or the need for pollen to arrive, the actual process biologically is a lot simpler & more reliable, and you don’t need males running around using up resources for, let’s face it, a pretty small contribution to the effort. Asexual reproduction is a lot quicker, simpler, needs less energy. A species that does away with sex can out-compete sexy competition.

 

My little talk was all about that, about why you have male and female, why mixing the genes from two individuals and, over time, across the gene pool of your species, is beneficial. I won’t bore you with the details here.

That first presentation of mine went down very well and it was remembered by everyone there. A lot of people (who had not even been there for the premier of that talk) mentioned it to me when I left the company. It made an impression on me too – if you can grab people’s attention at the start of a presentation, it really helps make it a success.

And, of course, as anyone in marketing will tell you – Sex Sells.

In this case, even the lack of sex.