Breaking Bad Escape Room

Today we went to an escape room. This is becoming something of a Christmas Tradition (tm). Well, we’ve done it twice. Last year were were breaking into a bank. This year we were in the lab. It was great. I think it was even better than the last one.

We managed to complete the tasks and get out in 59 minutes and 59 seconds (which may be as much a comment on the generosity of our hosts as much as anything else).

If you are in Hull you really should check out this. It’s a great experience.

Sega Mini Christmas

I hope you had a great Christmas. I did. My big present was a tiny replica of a game console I never got around to owning. It’s a Sega Mini. It’s tiny, but comes with a couple of full size wired controllers. And it works a treat. It produces a nice solid HDMI output which you can scale to fit your widescreen telly and there are forty games built in. The ones I’ve played have been great fun. I really like Streets of Rage, particularly in two player mode. For the price you get a lot of entertainment.

Paid my Office 365 Subscription

I paid my annual Office 365 subscription today. And I don’t mind doing it. It’s around the price of a proper video game and it gives me a whole bunch of online storage along with all of Microsoft Office to work with.

I ‘m a great believer in paying for things that I use. Two reasons:

  • the business model is nice and clear. I’m giving them money and they are giving me a service. I don’t want to waste brain power trying to work out how my suppliers are making a living. I also don’t want to have to worry what will happen when the venture capital runs out and the service is withdrawn.

  • I like my suppliers to have some “skin in the game”. If something breaks I want them working to fix it otherwise they won’t get paid.

Paying the Untidiness Tax

While I was assembling devices earlier this week I discovered that I was finding it hard to work because my desk was a bit of a mess. Having thought about it, I now regard an untidy desk as a kind of “tax on effort”. If it takes ages to find the solder after you’ve put it down then you will take longer to build things. And losing the thing you’ve just made can really slow down development.

This new way of looking at the situation, along with half price storage boxes at Hobbycraft, has had me spend the last couple of days putting my stuff in order and clearing the desks. The idea is that when I want to work on one project I get out the bits for that project, work on it, and then put them away afterwards.

Let’s see how long it lasts….

Potato Clock

First thing yesterday morning number one wife told me that she was going to get a potato clock. This threw me completely. I remembered from years ago a demonstration which showed you can power a clock from a potato (you can buy kits) but I didn’t think that science experiments were on the agenda in any particular way.

Then the fog cleared. What I should have heard was “get up at eight o’clock”. Fair enough.

In search of a backslash

A few years ago, at an MVP Summit, I bought a keyboard from the Microsoft Store. The discount was very pleasing and the keyboard was very comfortable. I thought this made me a winner.

However, it did come with a bit of a sting in the tail, in that had the american layout, what with being sold in America. I set the Windows 10 language to match, but then I found that my pesky muscle memory was causing me to type the wrong keys every now and then. So I found a halfway house solution, using the american keyboard with the PC set to the UK layout. As long as I rely on my muscles and not my eyes to decide which key to press, it works very well. Except for the backslash key. That doesn’t seem to exist anywhere that I can find. I have workarounds, I’ve been known to search for the word “backslash” and then copy the required character from the resulting display. I can also open PowerShell and copy the character from there (you can see that I’ve given this some thought)

Anyhoo, I’m doing some C development at the moment where I seem to need the backslash key quite a lot, and so I’ve decided to ditch my american keyboard and go back to my slightly less comfy one which has the UK layout. It occurs to me that the twenty quid or so that I saved by buying a non UK keyboard has been well and truly earned. Perhaps there’s a lesson here about false economy, but I’m far to old to learn something like that…..

Password management is a thing

When I was younger, more innocent and the internet was a friendly place (remember netiquette?) I thought that picking an out of the way phrase and using it for my passwords was a good idea. Then, a few years later, I realised that this was in fact a silly idea and started using different passwords for all my accounts. Which is just as well.

Earlier this week I received an email with my venerable old password phrase as the message subject and containing a link to a pdf document. I haven’t opened the pdf document (if that is what it is) or replied to the email. I can only assume that someone has come across my old password on a dead account, found that it doesn’t work anywhere else and is trying to use their knowledge of that one password to bounce me into revealing a few more secrets. Good luck with that.

So, I’ve checked all my passwords to make sure that none of them are harking back to the past, I’ve also signed up to a password manager and changed my important passwords into new ones, just in case.

Comic Con in Birmingham

I’m never quite sure why I go to Comic Con in Birmingham. It’s quite a drive, there and back from Hull in a day. And the most expensive thing I ended up buying was the ticket for the car park. But we had a wonderful time. It’s rather like being at a great fancy dress party, where they also sell lots of interesting things.

Each time I think about making a costume, and each year I don’t do much - although last year I did buy what was the basis of the “Air Quality Top Hat”.

I’m not sure if I’ll be going in a costume next year, but I am sure I’ll be going..

The Ikea test

I was assembling an Ikea bed today. I rather like assembling their furniture. Their instructions are very good, once you take the time to understand them. I failed on one bit and had to undo some parts I’d put in the wrong place. It wasn’t hard, but you had to focus a bit. And it gave me an idea.

You may have noticed that in the UK we are having an election. This will probably decide nothing and do little to arrest the spiral of once Great Britain into irrelevance. In the old days this country was a great place to be. Nowadays it is just a great place to be rich. Anyhoo, I think I’ve hit upon the perfect test for any would-be political leaders. I’d ask them to do what I just did. Take the instructions, work out what they mean and then build something. If you can’t you’re not allowed near the levers of power. Better yet, make them work in teams to do it.

From what I’ve seen of the present crop that should get rid of a pretty large number of them.

Adventures in Data Entry

“Just type in the EID number of your device” said chap at the other end of the support chat. “It’s the 32 digit number that you can get from the About page” he added helpfully.

No worries then.

Maybe it’s my advanced age, but I really hate typing in great big numbers like this. Particularly where the consequences of getting it wrong are that nothing will work. So, I came up with a solution:

  1. Take picture of the About page on your phone and crop out just the digits in the image.

  2. Transfer it to your PC.

  3. Drop into an empty Word document as an image.

  4. Set the image to be behind the text.

  5. Then type the digits on top of the numbers in the image until it looks right (see above).

  6. Then cut the completed text out of the document and paste it into the chat window.

Worked for me.

An apology

I feel that I must apologise for the blog post yesterday. Readers with long memories will no doubt be feeling short changed by the way that I failed to meet their appetite for new, relevant articles and recycled an old one from 16 years ago.

I’m not the kind of person who fill his blog with old posts from way back. But I am the kind of person who fills his blog with apologies for posting old posts from way back.

Maybe tomorrow I’ll apologise for this post…..

Magic from the Wayback Machine

If you think that the current internet is a bit of a time sink, try taking a look at the past one.

I’ve been playing with the wayback machine, which has been carefully salting away copies of my deathless prose for around twenty years or so. I’ve just lost a big chunk time reading stuff I wrote ages ago. But some if it I rather like. Take this one, about debugging and magic that I wrote on 25th September 2003.

The Power of Magic

Been thinking about debugging (as one does). Debugging is what you do when the program doesn't work. Or works but does the wrong thing (nearly the same problem). The thoughts were prompted by a magic show on telly a few days ago. They showed the 50 best magic tricks (for which the number one was David Copperfield being chopped in half). Debugging a program is a bit like figuring out how a magic trick works. When I watch a magician setting up a trick I always want to jump up and go "No! That padlock is fake. There's an open link in the chain, you're hanging from a wire and that solid case you're going on about has got a trap door at the bottom. Oh, and what's that up your sleeve? And how come your assistant is twins?"

You get the picture... If everything the magician tells you is true, the trick must be impossible. This means that at some point he is telling you whoppers.

Broken programs are just the same. Something somewhere is not how it should be. Some part of the system is lying to you. This means that you debug the same way that you find out from a magician how a trick works; asking "Is the chain real?" etc etc.

Saying "It should work, I dunno why it doesn't" is tantamount to saying that you believe in magic. What you must do therefore is test all the things that you are assuming are true. "I know that this contains the customer number..." Really? How do you know? Did it start off with that number and change? Did the system that delivered the number send something else? Is the range of the numbers what you are expecting? And so on.

The worst thing that can happen is that you can end up convincing yourself that everything is OK. In that case you have what I call a "reality fault". And you start to believe in magic. At this point you have to resort to desperate measures:

  • First thing you do is walk away from the problem for a couple of hours. Often you will think of the answer; how the trick was performed. If that doesn't work, explain the trick to someone else. Two times out of ten you'll think of the answer during the explanation. One other time out of ten the someone else will tell you how the trick is done, or ask a question which changes how you view the problem: "Do you think he might have a fork lift truck in there somewhere?" or "What if the guy from the audience is in on it?".

  • Next thing you do is fiddle with the system in stupid ways. This is like asking the magician to perform the same trick, but using an elephant rather than his assistant. You might spot something this time. Send in completely invalid data. Send in lots of it. Send in lots of the same thing. This quite often gets you some behaviour which lets you track down the problem.

  • Then get the magician to do the trick in slow motion and freeze frame. Step through the code. Put in print statements. At some point you may well spot where your program does something it is not supposed to - and there you are at the solution.

  • Finally, run the trick backwards. The great advantage that a magician has is he knows how the trick will end. The audience doesn't. You can often figure out how it was done if you start from the result and try to figure out how to end up there. It is the same with debugging. Try to think how it could have ended up with that result.

  • OK. If you've done all that and it still fails you are in the one time out of a thousand where magic might actually exist. In this case you change the documentation and abracadabra! Your bug is now a feature! Failing that it is probably time to re-write the code.....

Making a Useful SatNav

I’ve been moaning about SatNav software for years. It is getting better though. My latest car displays a map that contains 3D renderings of the car parks I’m failing to find a way into. Very useful. Of course it also has a habit of getting the lane guidance wrong, which makes for amusing antics at roundabouts every now and then, but I guess nothing is perfect.

One thing that struck me as I was threading my way through the rain-soaked streets in Reading tonight was how the navigation software proudly displays the names of the streets I’m supposed to turn into. I think this is a bit of a waste of time. Only a local would actually know the street names, and they probably wouldn’t need to use a SatNav. And as for using the street names to confirm your navigation, that’s a bit of a non starter bearing in mind how hard these things are to find and read. What I really wanted was useful directions like “Turn left in front of the pub” or better yet “Follow that blue Prius”.

Actually, having thought about it, “Follow that blue Prius” is just about doable. I sat in a Tesla that could discern the vehicles in the traffic around me and finding their make and colour wouldn’t be too tricky. Link that up to the SatNav and off you go. Hmmm. Perhaps I should patent this.

Then again, once we have cars which are that clever I guess we might just get them to do all the driving and navigation themselves.

Super secure wallet

A while back I went into a clothes shop and bought something that fitted me perfectly. It was a wallet. It was half price, but since my old wallet had reached the point where my money might start escaping of its own accord, I thought it was a bargain.

It was sold as super secure because it uses special material to stop radio signals getting at the cards inside it. The idea is to stop sneaky people tapping into your bank balance by the use of portable contact-less card readers.

It works too. Last week I was trying to open en electronic lock and it didn’t work. I usually just wave my wallet at the door and it opens, but with the card in my super secure new wallet this failed to work.

I’m now pondering on whether super security is worth a loss of convenience….