Always Check the Cover

The C# Yellow Book is now very nearly on sale in printed form. I got a proper copy back from Amazon and, as soon I as held it in my hand and flipped through the pages I realised two things:

  • The cover does not have a duck on it.

  • There are two massive typos in the cover text.

The first one I can sort out, what with having a camera and a huge rubber duck. I’ve no idea what possessed me to go with the Amazon cover clip-art and the rather anonymous circuit motif. The Yellow Book (particularly the Kindle edition) is known as “The Book with a Duck on the Cover” and so I should probably have gone with the branding on this….

As for the typos in the cover text. Unforgivable. But it did remind me of something. I spent ages on the text inside the book, making sure that it was formatted correctly and had a minimum number of spelling mistakes. The cover I dashed out in five minutes inside the Amazon cover creator, not even using a spell checker. And which do you think is more important? The cover is going to be the first part of the book that people see. They’ll read the cover and then have a look inside to see if they fancy buying it. And if the cover has spelling mistakes on it, this is really, really, not going to help sales. So the cover should have be paid least as much attention as the text inside the book.

There’s an important point here. If you make video games or software, make sure that the instructions that come with the product, and the cover art, are really, really good. Think what is the first surface of your product that a user will touch, and then make sure it is a really good experience. Make sure that the box looks nice and is easy to open and it is easy to see how to use what is inside. Apple are very good at this, and you should try to be too.

As for me, the final version of the printed C# Yellow Book is now going through Amazons approvals process with all the typos fixed. And a duck on the cover.

Fantastic Bugs and Where To Find Them

On Thursday, as we were building robots I came across one of the most amazing bugs I’d ever seen. We’d reached the point where the robots had been built and they were connected to the computer. My HullOS Editor program lets you write programs and send them into the robot for it to run them. But something weird was happening.

The editor was displaying things that it should not. It seemed to be duplicating program code that had been typed in. And nothing was working. It was very confusing. I thought back to the time I spent the day before testing the code and had to confess that I’d never seen anything like it before. In fact, if I’d set out to write a program that was doing what the editor seemed to be doing, I was not sure how I would do it.

After a bit of head scratching I found the fault. And it wasn’t software. The robot has a speaker - more of a buzzer actually - which makes all kinds of irritating buzzing noises. Normally you’d connect a speaker across an output pin and a ground connection so that when the voltage on the pin goes up and down the speaker is driven in and out.

However, the Arduino doesn’t have many ground connections, and the ones it does have are all in use by the pixel and the distance sensor. So I use this rather clever (for me) trick of putting the loudspeaker across pins A0 and A1. If I make sure that A1 is always at the low logic level I can produce a potential difference between the pins by setting A0 high. This drives the speaker and sound comes out. I’m happy to trade a signal pin I don’t need for a ground connection.

This is probably deeply dodgy in electrical design terms. But since it works I think I have the last laugh on this one. Actually, if I had the time I’d experiment with swapping the ground level from one pin to the other while I play the waveform and seeing if this means I can make louder sounds by driving the speaker in and out, not just out.

Anyhoo, enough about my dodgy cleverness. Turns out that the fellow making the robot had wired his speaker incorrectly. Rather than wire the speaker between pins A0 and A1 he had wired the speaker between pins D0 and D1. These are two data pins on the Arduino which are also used for the serial port that is connected to the host PC. One of the pins is the data going into the Arduino and the other is the data coming out of the Arduino. Linking these pins together has the effect of sending every character that the PC sends to the robot right back to the PC again. Hence the terminal madness.

We put the speaker on the right pins and it worked a treat.

This illustrates one of things I said at the start of the robot building. Making robots is both fun and tricky because the combination of hardware and software makes for very “Interesting” misbehaviour.

LipService Theatre - Withering Looks

I don’t know what you were doing last night. But we were in a hall in Howden laughing at someone pulling faces.

Well, they were very funny faces.

We went to see a performance of “Withering Looks” by LipService Theatre. We’ve seen them before, in a production of “Mr. Darcy Loses the plot” at Hull Truck Theatre. That turned us into instant fans.

LipService Theatre are Maggie Fox and Sue Ryding and have been producing their blend of literary comedy and face pulling since the 1980’s. Everything is very clever, beautifully produced and, deeply, deeply silly. Get to see them if you can.

c4di partnership with Barclay's Eagle Labs

David Keel of c4di talking Tesla

Yesterday, after a happy day building robots I went along to a big, posh, event in Hull Minster. The occasion was the announcement of big things for c4di, the place where I go and they let me play with robots.

I love c4di because it provides a place in Hull where people can take their ideas and make them real. It’s turned into a proper community of like-minded souls working to do great things. It means that you don’t have to leave Hull to make something world-beating. You can do it and still be able to find a local shop selling chip spice.

Barclays Bank have spotted what we are up to, and have now entered into a partnership with c4di which provides us with real financial muscle and expertise. You can find a lovely report on the evening, and what it means for Hull, here. I took some pictures….

Shoutout to Yasmin Coe, who provided some lovely music at the event

They had some c4di hardware on show, including Hull Pixelbots

They even lit up Hull Minster in c4di blue

Making Hull Pixelbots

We were in Hull University Robots Lab

Had a lovely day making robots today. I was working with Tristan and Mac, who were visiting the university from Scarborough, taking part in a work experience program. I had to robot kits all ready and a set of nicely printed instructions for them to follow.

They spent the morning building the robots and the afternoon programming them. It was great fun, and by the end they had left the suggested exercises well behind and were heading off in all kinds of interesting directions, which was wonderful.

It’s a couple of years since I stopped working at the university and it was lovely to see the campus looking so nice. There seem to be a lot more buildings than I remember and the Computer Science and Engineering Department have acquired some lovely new toys.

HP T6B82A Color LaserJet Pro MFP M281fdw

I bought a colour laser printer many years ago. The plan was to avoid problems with ink jet cartridges where the ink evaporates and when you want to print something you find that the printer is dry. However, it was not a great success because it seemed to prefer chewing up paper to printing on it. So it ended up on the tip. I’ve still got a cyan cartridge refill for it lying around somewhere though, which serves as a memento of sorts I suppose.

Since then I’ve gone back to ink-jets. But they are a bit slow and since I’m finding more need to print things (Arduino notes for the c4di Hardware Group and HullPixelbot notes for robot builders) I thought it was time to take another look at lasers.

My needs were fairly simple. I wanted a colour printer that could print on both sides of the paper It had to work with all the devices around the house and it must not chew paper. The HP T6B82A Color LaserJet Pro MFP M281fdw (what a name) seemed to fit the bill, and it was available at a good price with the added bonus of 80 pounds cashback from HP. Which should just about pay for the first replacement toner cartridge.

Anyhoo, the printer arrived a week or so ago and so far it has been completely wonderful (he wrote - thereby damming himself and the printer for all eternity….). The print quality is great and the printer worked straight out of the box. No setup as such, just turn it on, enter the WiFi credentials on the tiny touch screen and then browse for it from Windows 10. Printing has come a long way since those days of driver disks and USB cables that weren’t in the box…

The printer will be expensive to feed in terms of toner, but I’m not going to print a huge amount. And the quality of picture printing is really impressive (at least to me). Much better than inkjets on standard paper. The printer has a scanner with a document feeder (single sided only though) and it can even be used to send faxes. Whatever they are.

If you’re after something with a bit more about it than inkjets I think it makes a really good buy.

Watch this TV Program from Martin Lewis

If you’ve got kids (or are a kid at heart) or just want to watch something inspiring I strongly suggest that you watch this program from Martin Lewis.

It’s billed as “Ten Things Your Kids Need to Know”. It makes some very good points about modern life and how the world of work is changing. It also makes a very strong case for university. Apparently there is concern that potential students are being put off by the debt that they think they will incur by taking a degree. The way Martin explained it was awesome.

He said that you will only start paying back your student debt when your income exceeds 25K (which is a nice problem to have). The amount of your payments will be 10% of the amount your income exceeds the 25K threshold. So, if you earn 30K, you will be paying back a tenth of 5000 a year, which is around 500 pounds.

Then, after 30 years your student debt is written off completely. So when you retire you won’t have the debt hanging over you.

From a planning perspective, you know the absolute maximum that going to university will cost you, based on your income. If you don’t bring in enough to cross the payment threshold then you don’t pay anything back. Your student loan will not lead you into debt, because you only start paying it back when you have money coming in.

It’s complicated, but worth getting your head round because, as Martin pointed out, going to university is a great way to realise your potential had have your horizons properly broadened.

I’m by no means at the beginning of my career, and yet I still found the content of the program inspiring and illuminating. Watch it. With your kids if possible.

Pyinstaller is Wonderful

Writing programs for your own use is nice, but often you want to send them to other people. This usually means creating some kind of installer. Pyinstaller is a neat little utility that takes a Python program and wraps it up with the appropriate Python runtime and any libraries that are required. This makes it dead easy to send a Python program to someone else.

There are two ways you can use it. The program will make a folder containing all the required resources and an executable which you can zip up and send to people, or you can make a single executable that unzips itself into a temporary folder and then runs from that.

I’ve been using it to make distributable versions of the HullOS code editor and it works very well. The only snags are the size of the executable (in the case of the HullOS editor my fairly small program swells to 8Mbytes) and the slight delay when opening the app as it gets all the libraries ready.

Pyinstaller doesn’t make a “universal” application that runs on anything. Instead it needs to run on each target platform to make a program for that platform. And I’m in the rather ironic situation of having the Pyinstaller program refuse to install on my Apple Mac, so at the moment I can’t make a Mac version of the HullOS editor.

But, bearing in mind that it is free and that when you get it going it just works, I reckon it is a very good solution to the problem of getting your code out there.

Making a Martian Wrist Watch - Badly

The watch in use showing the all-important dust levels…

Sometimes great ideas come to you at 3:00am in the morning. Sometimes you have ideas that turn out to be….. not so great.

After spending most of yesterday refining my air quality sensor I went to bed with no real plan of what to build for the Nasa Space Apps Challenge. Then, at 3:00am I woke up with an idea.

One of the “Can you build a….” challenges was to build a device to “Make sense of Mars”. The device could contain one or more senors and be used by those exploring the planet. So, all I have to do is take my Air Quality Sensor, add a wrist strap and presto, I have a Martian wrist watch. The idea is to make the kind of thing that a Martian might want to have on his or her person to track local environmental conditions and check for deadly dust storms.

Actually, at this point I must inform the reader that I’ve no idea whether or not dust storms would be a hazard to a martian, or whether or not any of the sensors I’m using (temperature, pressure, humidity and 10 and 25 micron dust particles) would generate any useful readings on Mars. But I’ve seen “The Martian” movie, and I reckon the hero would have found something useful to do with my device. He was a very resourceful chap.

Anyhoo, I reasoned that since there were things on the Martian surface that might be bad and I needed to make sure the wearer of the watch should be in no doubt when these happened. So I added a ring of pixels to my watch to give a strong and powerful warning. And it was at this point that my problems really started. Finding power for the pixel ring was easy, but I also needed a digital signal to select pixel colour.

This was tricky, since the Heltec device I’m using has pretty much all of the signals committed already. However eventually I managed to get the pixel ring to work without breaking any of the existing functionality. Or so I hoped.

The process involved three hours of tweaking drivers and moving devices around pins. During all this I was reminded of the old home truth: “Theory is when you know everything, but nothing works. Practice is when it works, but you really don’t know why.”

Testing the warning pixel with tissue paper…

When the final judging time came we we were a judge short, and so I ended up doing judgely things, although I also insisted on presenting as well. After all, there is always the “People’s Choice” award to go for. I was on last, after some really superb presentations by the other teams.

Alas things did not go well. The network connection to the access point the watch was using was disconnected during the presentations so my watch had fallen off the network. And the pixel ring on the watch seemed to have failed. So I did a bit of arm waving, told a few bad jokes and then headed for the door….

Anyhoo, you can find my team page on Nasa here. And you can find a fantastic description of the event at c4di here, including overviews of all the teams and the winners.

Thanks to c4di for the use of the venue, Dileepa for sorting out the awesome pizza and Nasa for coming up with a set of thought provoking challenges.

Nasa Space Apps Challenge

We started the Nasa Space Apps challenge in Hull today. There are around 25 of us and we’re going to spend the weekend attacking some of the challenges set by Nasa. We did this last year and it was great fun, so we’re doing it again. I’m flying solo today, as well as giving Dileepa and the crew some help here and there.

As last time I’m impressed with the breadth of the challenges that Nasa has put together and enthusiasm of the teams.

And there will be pizza. It just so happens that since the last challenge we’ve had a pizza place open right next door. Wonderful.

Printed C# Yellow Book is coming

Proof copy - Not For Resale

It’s finally going to happen. The C# Yellow Book is going to become….. a book.

I wrote the book for my C# programming course at Hull University and we used to give it to all new students (and anyone who came to see us).

And soon you’ll be able to buy your own copy thanks to the miracle that is Amazon printing on demand. I received a proof copy this afternoon and I’m surprised how good it looks. It now sports a snazzy cover and I’m having it printed in letter size (8 inches by 11 inches) to make the 220 pages easy to read.

It will be going on sale just as soon as I’ve fixed a few formatting foibles and run it through the Amazon approvals process.

In the UK it will cost nine pounds a copy. I was thinking of making signed copies available for fifty pence less but I’m not sure how to do this.

Looong Day

Being up town at 7:00 am does have it’s compensations….

Today was a looong day. Headed out of the house at 6:30 am to review some newspapers for the BBC Radio Humberside Breakfast show and got back home at 8:45 pm after a Hardware Meetup at c4di. In between I did some software development on the Air Quality sensor which can now talk LoRa, MQTT and seems to work. I make that that a 14 hour working day, and it was wonderful. And to think I don’t have a “proper job”.

We had a splendid turnout at the hardware meetup, we’ve got people getting started with Arduino devices and learning how to code for them .Tonight we made an “accidental reaction timer game” and discovered how to store music in a C++ program. Who knows what we’ll come up with next time. We’ve got others entering into earnest discussions about sensors, Stephenson’s Screens and software services. And that’s just the things that begin with s.

If you want to come along and see what we’re up to next time, we’ll be at c4di at 6:00 pm on Thursday 1st of November. Find out more here.

Visual Studio Code is growing on me

You learn something new every day. Today I learned that if you don’t enable the C++ extension in Visual Studio Code you can’t use any of the Arduino extension commands.

Visual Studio Code is really growing on me. It’s like a software Swiss Army knife. It wraps around your code development and there are some awesome plugins. Including an amazing one for working with MarkDown (Markdown All in One). And the GitHub integration is lovely useful.

First Man

First Man is a movie about triumph over grief. And going to the moon. It shows how Neil Armstrong dealt with every parent’s very worst nightmare by bringing a laser focus to his efforts in the space programme. I was expecting amazing visuals and great acting. What I wasn’t expecting was so much emotion. Ryan Gosling is brilliant as the unknowable astronaut and Clare Foy is even better as his wife.

The realism is amazing. One thing that struck me was the way that the insides of the spacecraft all seemed rather dirty and worn. I was expecting everything to be shiny new, but if you think about they would have spent a lot of time testing and practising in their spacecraft.After all, you wouldn’t want to set out in something that was fresh out of the factory. And if the hardware can’t stand a bit of dirt and wear then it’s not going to much use on the long journey to the moon and back.

You should go and see this film. The rocketry looks great but the emotion on display is very what you will remember. It really brings home is the huge cost of the enterprise, in terms of money and people. The astronauts are under no illusions that their lives are at least as precarious as those of racing drivers of the day and you start to lose count of all the people who fall along the way. But the moonwalk, with the phrase at has entered history, leaves you thinking that perhaps it was all worth it.

Hornsea Radio Rally

When I was a lot (and I mean a lot younger) Radio Rallies were a big thing. Lots of fascinating components and bits and pieces for sale. You could watch the progress of half-finished projects as they moved from one person’s “Bring and Buy” stall to another over the years. This was in the days when talking to someone a long way a way (perhaps even abroad) was not a thing that anyone did because it was either too expensive or impossible.

Nowadays, with the internet and Skype making the planet a tiny, tiny, thing, the lure of long distance ham radio has diminished a bit. But there are still people doing it, and I bumped into a bunch of them at the Hornsea Amateur Radio Rally today. The event was held at the lovely Hornsea Floral Hall and things were pretty much as I remembered. There was stuff that people had brought out of their sheds to see if anyone was interested, along with a few component suppliers. And even a lot of valves.

It was great. I vowed only to spend cash and keep all my bank cards safely tucked away in number one wife’s handbag. So I only spent fifteen quid. I got a programmable led badge that I think I can connect to a Raspberry Pi, some tools, a UV torch for playing with fluorescent printed objects and a few other bits and bobs. Great fun.

Creating 3D Printed Text Masks

I’ve been refining my light printing technology, based on the “Do it for Josh” light (which is still available by the way). The first version used a printed mask and transparent letter inserts that were stuck inside it. It worked OK but it was a pain to assemble and the letter inserts kept falling out.

So I’ve designed a new version in which the letters and the masks are all printed in one. The clever (I think) bit is that I print the first few layers using transparent filament and then switch to solid during the print. I quite like the effect, and it means that I don’t have to assemble anything.

If you’ve got a 3D printer you might like to experiment with changing filament during the printing process, most printer firmwares have an option to do this and you can get some quite nice effects.

This blog post is not about cucumbers

I keep getting these emails from people expressing their admiration of some of my blog posts. Which is rather nice. However, these uplifting messages are invariably accompanied by a request to put a paid piece on my blog about some service that they are offering.

Today things just got silly. A while back I did a blog post about a visit from Phil and Stuart who worked for the BBC and did a lovely session about how they transcode all the video content for the iPlayer video on demand service. In the post I described how they used a language called “Cucumber” to manage requirements and testing.

And this week I got an email from “Emily Bean” who apparently really enjoyed my post and would like to suggest that I include a link to her resource on growing cucumbers from seeds… It’s a nice enough resource, but I’ve not added the link because I’m not totally sure that Emily did really read my post. It’s almost as if someone (or some robot) is just trawling the interwebs looking for particular words (in this case cucumber) and then sending unsolicited emails to people hosting the sites.

Ugh. And to make matters worse, I’ll probably get another email from “Emily” in a week or so saying how much she liked this post….

Four hours of sheep rustling

A while ago I write a review of the Wallace and Gromit Fleeced game. In it I mentioned that some people were complaining that the game could go on forever with no winners because everyone just spent all their time rustling sheep from each rather than trying to win.

Well, that’s what we did last night. For four and a half hours.

Great fun though, and we did get a winner in the end….

Hull Fair

Hull Fair is huge. They say it’s the biggest fair travelling fair in Europe. It’s when all the travelling fairs from all over the country get together to have one last bash before winter. People come from all over to see it and go on the massive rides that they have.

Me, I just go on the Ferris wheel and try to take some pictures. In the olden days the wheel used to tower over the fairground. Nowadays it looks a bit lost in the corner, surrounded by a whole bunch of huge machines.

We went on Tuesday and arrived just as the sun was setting. It was a beautiful evening and I’m not sure that my pictures do it justice, but it was fun taking them.

If you’re in Hull you would be crackers not to go along and take a look.