More Artwork

Some more artwork here – did you know there is a layer in the clouds of Venus, around 50km up where the temperature and pressure are similar to Earth? What’s more, a human breathable atmosphere would actually be a lifting gas at that height. Sounds like an ideal place for a floating city, so here’s my take on what it might look like.

I created this in Affinity Designer, a program I am coming to be more impressed with every time I use it. Everything that you see here is a vector object with a gradient fill – no brushwork here!

You can find more about the floating cities of Venus on Universe Today.

The Right Problem

Are You Solving the Right Problem?

That may seem like a dumb question but consider this recent chain of events:

  • I needed to test some WordPress plug-in updates on my staging server before putting them live
  • That’s odd – the remote desktop connection to my VirtualBox host wasn’t working…
  • I could connect by SSH and plugging in a monitor showed that X was working…
  • (Looked into log files) Ah, the vino-server wouldn’t start becuase it thinks it is already running…
  • Must be a lock file problem, wonder if there’s anything on the Ubuntu forums…
  • (30 minutes passed…)

Can you see the issue here? The actual problem that I wanted to solve was described in the first line, everything after that point was actually irrelevant. At that time the problem with the remote desktop didn’t matter – I could have used either the SSH command line or the VirtualBox GUI on the monitor to start my staging server and test the plug-ins, something that should have taken 10 minutes or less.

And that kind of thing happens to me a lot.

So, I start a task to address a particular problem, and after some arbitrary time I find that I am one of the following states:

  1. The problem is solved and I have moved on to something else.
  2. I am still working on that task, and making progress on the problem.
  3. I am still working on that task, but struggling and probably frustrated, the problem is not really being solved.
  4. I have wandered so far off course that I can’t even see what the original problem is…

Hence, here is my personal task management proposal (which ties into my earlier post about journalling everything I do). I will write in my journal a brief sentence explaining what problem I’m intending to tackle, with maybe a second sentence on the approach I proposing to take. Then I start a timer – somewhere between 15 and 60 minutes depending on the task. My IDE of choice, NetBeans has a timer function (see the screenshot above), or if I’m working on something else I have a timer App that lives on my menu bar, or could just use my watch.

And when that timer interrupts I just answer the question “Are you working on the right problem?” (The one that you wrote down earlier). This may seem like an annoyance but in my life those four outcomes are equally likely, so consider what could happen in each case:

  1. Problem solved, moved on – but have I moved on to the right next problem to address?
  2. Still working – possibly annoying but hey, restart that timer.
  3. Struggling – should I take a break, or move on to something else? It is amazing how often the solution appears when you stop thinking about it!
  4. It is time to stop and restart the real task.

In three out of four cases the timer interrupt and the question are helpful and highly likely to keep me on track; and in the fourth just restart the timer with a longer period.

Will this work for everyone? Obviously not, but I’m going to try to adopt this as a discipline and see how effective it is for me.

I can also see ways to build on this, especially if the problem involves coding. If using git for version control some suggest branching and merging often, even several times a day. That sounds like a perfect fit for this discipline – define the problem, create a git branch, do the task, merge the branch.

My timer has just gone off – I’ve completed the task “write blog post”. Now what is right, next problem that I need to address…

GCHQ Puzzle Book Word Search Now On-line

In an earlier post I mentioned that I had written a Bash script that carried out various searches through a list of words that might help solve some parts of the GCHQ Puzzle Book. Well I’ve now made that script available on line using the form below. Give it a try!

Show all words
Real words only Single column No proper nouns No possessives

Now Why Did I Do That?

I have not taken a psychological personality type test for many years but I am quite sure that I would be categorised as a Well-intentioned Slacker. I have lots of ideas but lack discipline and will power, and can find it hard to finish things if something new and more interesting comes along.

As well as different work roles, I maintain several websites and enjoy creating 3D and 2D artwork. To gain some semblance of control I try to organise all my activities into “projects” but frequently have to switch between them, often coming back to something weeks or months since I last worked on it. At those times my most common thoughts are “why did I do that?”, and “how do I do that thing again?”.

Understanding my shortcomings, but trying to get a better grip on recording project activities I have looked to some apps to help me out, eventually settling on a “Journalling” tool. I chose Day One but there are many similar. Here’s an example of how I’ve used it:

I keep a separate journal for large projects, or a combined journal for related smaller projects with “tags” to distinguish between them.

My workflow is that whenever I sit down to work on a project I open the appropriate journal and create a new entry. The entry title is a summary of what I am about to do, so “Fix problem X”, “Add feature Y”, “Evaluate technology Z” or whatever.

Then, as I do things, consult web sites, fix problems or create new ones I jot down a line or comment on the journal. Sometimes I copy over screenshots, often I’ll copy a website address. And finally figured out that tricky command string? Copy that there too.

Do I remember to do this every time? No. Does it matter? Not really, I’ll often do a “catch up” when I do start notes again. And when I have found the discipline to do it then I have found it enormously useful!

Are there other tools? Yes, obviously, there are many could be used. I did for a while try a similar approach with Microsoft OneNote but that was too flexible, there was no existing structure to hang my notes on and that involved just too much thought for me. I like the linear sequence of concise notes that a journal based approach provides.

Where next? Well, it turns out that Day One has a command line interface, so I’m looking at automating some entries, for example whenever my software is compiled an entry could be added to the timeline of the appropriate journal. The aim here is mimimal effort for maximum return.

I hope you found this look at project recording useful, next time I’ll cover how I’m looking ahead and discuss the slacker’s approach to planning.

Some New Artwork

Like many others I have been impressed by the cover art on Lavie Tidhar’s multi-award winning Science Fiction novel “Central Station”, created by Sarah Anne Langton and been inspired to break out my drawing programs again! The current version is here:

It was created in Clip Studio EX (which was called Manga Studio 5 when I bought it), with figure silhouettes from Some of the objects (such as the cable cars) were initially created in Wings 3D, imported as 3D objects into Clip Studio and over-painted.

While in no way up to the original artist’s standard I enjoyed creating it a lot, and hope to do more in this vein soon.

The GCHQ Puzzle Book – Rules

On a whim, I bought myself “The GCHQ Puzzle Book”. This has a variety of puzzles, none of them trivial. I’m going to tackle as many as I can and have set myself the following rules:

  1. The answer pages are to be taped shut!
  2. I must use my own brain before applying any of the following rules
  3. I can read and refer to any other part of the book (including the sample answers, hints, tips and reference section)
  4. I can look up specific facts in Wikipedia (but not go “trawling” for information)
  5. I can use the various text processing commands available on Linux
  6. In particular, I can use the word list to be found in /usr/share/dict/british-english
  7. I can write programs but only using the bash command shell

To help with some of the word based puzzles I have built a script to search the word list in various useful ways. Below is the help text, and the full program can be found at

To date I have completed all but two of the 68 introductory puzzles, and fewer than ten of the main ones, although I’ve made some progress with 20 or 30 others… I will report back on progress in a few months time.

Usage: word [flags] command string…

Commands are:

starts – show all words starting with string

ends – show all words ending with string

contains – show all words that have string embedded

anagram – show all (partial) anagrams of string

surround – show all words that start with string1 and end with string2 (*)

prefix – show the remaining part of all words starting with string (*)

suffix – show the remaining part of all words ending with string (*)

search – treat string as an arbitrary regular expression

(all commands may be abbreviated to their shortest unique length)

Flags are:

-w – ensure that output of the commands marked (*) are actually words

-1 – output results in a single column

-p – don’t include proper nouns in the results

A Loss Shared

It was my son’s graduation ceremony today, and I cried. Not for him, he was great, it was a proud moment but not an occasion for manly tears – the event had been planned for months, he has already moved on to a Master’s degree, with (hopefully) another ceremony in the not too distant future.

No, I, and everyone around me cried because of something completely unexpected. We had already been there over an hour, dutifully applauding each fresh graduate as they walked across the stage, shaking hands with the Vice Chancellor and Head of the School. A relentless list of degree titles and alphabetically ordered names from all parts of the world. To be honest, I don’t think any of us were paying close attention until our own offspring appeared.

But then there was an interruption to the normal order. Instead of a dark robed, crimson hooded student at the foot of the stairs up to the stage there were three people in ordinary clothes, holding hands.

The Public Orator paused for breath, then continued “And the next award is given posthumously. The award is being accepted today by his mother, father, and sister”.

As well as our tears, the whole hall applauded our hands raw, for this family and their lost son. I know nothing of the circumstances, I can’t even remember his name but the shock of that totally unexpected event brought home everything that was precious about children.

Here, on this day when they should be celebrating their achievement and looking forward to the rest and the best of their child’s life to come, this family walked with quiet dignity across the stage. Accepting a certificate and a few words from the Vice Chancellor they reminded the rest of us what we truly had, and should be truly thankful for.

So, if there is a next time, and my son walks across the stage in a differently tinted gown maybe I will just cry, knowing what I have, and what others have lost.

My First Arduino Project

So I received an unexpected tax rebate and decided to treat myself to an Arduino Starter Kit and a pack of assorted sensors. And boy, is it fun!

I’m reading schematics! I’m downloading datasheets! I’m scribbling circuit diagrams in margins! It takes me right back to my first job working on a Z80 based embedded system, interfacing with lots of TTL logic in 1985 (although in those days you couldn’t just “download” a datasheet, you had to phone up Farnell Components and ask them to send you one).

Anyway, in the picture you can stage one of my first custom project – an ultra-sonic radar! The idea is that the stepper motor will rotate the ultra-sonic distance measuring sensor thorugh a 180º arc, averaging the distance to obstacles over about 10º and using some block characters on the LCD display to show a crude graphical “map” of what is ahead.

I’ve taken a lot of the wires away so you can get a clearer view. The stepper motor is top center, screwed to a convenient ‘U’ shaped lego piece. This is attached to a set of Technics gears that give a 12:1 reduction and the ultrasonic sensor is mounted on the last gear. The blue thing hanging down is a magnet, which will trigger a micro-switch that will be placed on the green brick behind it (once it arrives from Amazon). This will allow the device to calibrate its initial position on start-up, by just rotating once until the switch is triggered.

I’ll post updates as the project moves further along.

A Comp-Sci Bookshelf

I was browsing an Academic Bookstore the other day looking for the Computer Science section but this turned out to be in a different store on another campus (duh!). No problem, I thought, I can create my own private bookstore and stock it with the very best of Computer Science textbooks! One new Amazon wishlist later, here are my picks for the classic, essential Comp-Sci texts.

You will find the list here –

In no particular order, the titles are:

  • “Structured Computer Organisation”, Tanenbaum & Austin
  • “Modern Operating Systems”, Tanenbaum & Bos
  • “Software Engineering”, Sommerville
  • “Computer Networks: A Systems Approach”, Petersen & Davie
  • “Compilers: Principles, Techniques and Tools”, Aho, Lam & Sethi
  • “Computer Architecture: A Qauntative Approach”, Patterson
  • “Computer Organization and Design”, Patterson and Hennessey

I have used most of these books “in anger”, either as a student, or inflicted on my own students so can vouch for the quality and usefulness. Anyone investing some considerable time to work through all 5,000+ pages here can certainly consider themselves a well-read Computer Scientist, and hopefully a better person!

If I had to pick a single favourite it would undoubtedly be “Computer Organisation and Design”. Not only is it informative but it tells a really good story and is a genuinly enjoyable read. It is was written by people who had a clear task and shows the thought processes around the compromises inherent in any kind of true engineering endeavour. Well worth reading even if you not a comp-sci student but just want to get a feel for how real-world digital engineering actually works.

Leadership and Decision Making

I’ve been reading about Technology Leadership and thinking about my own experience in this area.

Some years ago I started a new job with my first “big” company – 50,000 employees, a household name in the aviation industry.

One of first tasks was to prepare a report on the Crew Management System. Should we develop the existing system further or was it better to start afresh? Our analysis suggested that the costs for both were very similar, somewhere between £1.5 and £2 million. Both approaches were perfectly feasible but that the risks and impacts on the various departments involved were different in each case.

Our deliverable was a report and presentation to a meeting of the heads of all the departments involved. I was, perhaps naïvely, looking forward to the event. We knew our stuff, we had confidence in our estimates and plans and I expected a reasoned debate, weighing the various options to gain the maximum benefit for the organisation overall. (I did say I was naïve…)

Well, the meeting was awful. Each department head’s position could be summed in a single sentence – “Obviously my department is critical to the operation and so we cannot accept any risk whatsoever”. The final outcome was that we were sent away to “provide more detail on the costs”.

Afterwards, fuming I regretted not jumping up and screaming, “Look! Both options work, if I said that each one would cost £1,712,340 precisely, which one one would you want us to do?”

Later, I calmed down and came to realise that actually the request for more precise costs was simply a cover for NOT making a decision. After all, if you don’t make a decision then no one can accuse you of making a wrong one. And what’s more, you can blame the insufficiently precise cost estimates as the reason for your inability to come to a decision. What I felt was particularly unfortunate was that both options were viable, and something needed to be done, the existing system was increasingly under strain as the demands on it grew. Probably the riskiest decision was not to make a decision at all. Quite possibly, the course of events would drive us all down one particular path, one that was not so well mapped or understand. Although of course, since that wouldn’t need anyone to actually come to a decision it may have suited some people quite well!

Perhaps I should have made the need more forcibly, but then I was simply an Analyst and thought my role was just to present the information as it was known and let my elders and betters decide the best course of action!


A couple of months later we were back, to present essentially the same information, with more figures after the decimal points. This time however the Director of Crewing (a member of the executive team was present).

We presented our information, stressing now the urgency. The department heads reiterated their earlier statements, ignoring the extra detail we had provided.

At this point the Crewing Director made his first, and only contribution. He said, “Clearly we are all in agreement that the development of a new system is the better option, so we’ll go for that one. Thank you ladies and gentlemen.” Then he left.

What particularly impressed me was the brazen use of “clearly” and “all in agreement” when the actual substance of the discussion contained nothing of the sort!

Subsequent experience has shown me again and again that often any decision is better than no decision. Especially in such a malleable medium as software development. Very rarely are we ever proved wholly “wrong” or wholly “right”, most projects are a mix of outcomes. Everyone, developers, customers, management learns more from doing from doing than analysing and perhaps one of the many requirements for a true leader is the courage to take a decision, any decision!