Early Sunrise University Pictures

One of the few nice things about getting up in the dark is that if all is well you get to see the sunrise when you get to work. Today it was quite a nice one, and so I nipped into the library and took some pictures.

I was up at the top floor which was refurbished last year and turned into an open workspace called "The Observatory". It looks awesome, so I took some pictures of the furniture as well.

This looks to me as rooms from the future are supposed to look....

Printing in the Air

I've been doing a bit of 3D printing recently and I've had a need for some lens caps for, er, lenses that I seem to have bought recently. I found a design on Thingiverse that looked promising, downloaded it, sliced it and Una, my lovely if rather tempestuous 3D printer, refused to print it properly. 

To be honest, I've been expecting problems. I made the mistake of saying to Peter last week that I've reached the point where the printer "just prints" these days. At the time I said this I worried that I may have spoken too soon. And it looked like I was right. 

The print just refused to stick to the printing bed. The filament just went out into the air and all over the place. This is usually a symptom of poor alignment of the print head and so I spent a non-happy half an hour today getting the bed height precisely positioned. And it still didn't work. Very annoying. 

And then I noticed something odd about the print design. It seemed to be hovering in the air a millimetre or so above where it should be. Turns out that the printer was set up perfectly all along and the fault was with the design itself. I've found a different, less levitated, one and it prints out pretty much perfectly. Oh well, another good lesson hard learned....

What is Assessment For?

At this time of year we do a lot of assessment of our students. This week I'm going to be spending the best part of four days in the lab with a bunch of my colleagues, pointing at bits of code written by students and asking "What does this do?". Great fun.

You might think that we do the assessment so that we can give the students grades. True enough, but to me the assessment is more important than that. We also want to have a framework in which we can talk to each student about the programs they have written, and how to make them better. The marking scheme provides lots of hooks we can use to hang discussions about good program design, documentation and testing. 

By the end of each marking session the student will have a number and hopefully they'll have learnt a bit more about software development. Which is kind of the plan. 

Much Travelled Dev Day

If you've ever wondered if it is possible to travel to from Hull to Mons in Belgium, do a session at Dev Day 15 and then fly back on the same day I'm able to tell you that it can be done. Even if the day starts with a 90 minute delay before you take off and you arrive too late to make your ongoing rail connection.

Fortunately, because the people at Thalys are completely awesome, this was simply a matter of rebooking on a later train (at no extra cost) and then heading off. I got to the venue around 20 minutes before my session. You can't beat just in time delivery. I did my session, and then headed straight back for my train home, getting back just in time for bed.

Talk about a full day....

Thanks to Christophe for the picture. 

Thanks to Christophe for the picture. 

Anyhoo, the session was great. The audience was lovely, if a little bemused at the start, when I started handing out small cheese and big cheese prizes. But they soon got into the swing of things and much fun was had. Apparently it was captured on video, which will be interesting.....

Thanks to Olivier and the crew for organising the whole thing. It's actually a rather inspiring story. A bunch of developers wanted a conference in their part of the world and they just built one. They've got lots of delegates, sponsorship, a great venue in a cinema multiplex and splendid Microsofties like Andy Wigley coming along to give them sessions on the latest tech. Great stuff. A pleasure to be involved with. I'll be there next year if you want me. 

Although I might travel down the night before.....

In Praise of Older Lenses

22749924443_8f653416de_z.jpg

I've got myself another camera. Surprise. And I'm definitely going to sell all my old ones to pay for it (now that would be surprise). The bad news is that the lenses for my latest acquisition look to be rather expensive. The good news is that very old lenses for it are a lot cheaper. 

For around ten quid you can get an adapter that lets you fit lenses from yesteryear.  And it turns out that way back in the past they weren't just better at making music. They could make some amazing optics too. I picked up 55 mm Canon prime lens from Ebay that is a fraction of the cost of a modern lens, with image quality which is top notch. The picture above has been heavily tweaked in a way that tends to hide the sharpness of the lens, but take it from me this thing is pin sharp. 

My new/old lens doesn't have any of the new fangled features such as auto-focus or automatic aperture adjustment. But it turns out that I really like that. The camera viewfinder does a thing called "focus peaking" where it outlines the sharp parts of the picture in yellow. And adjusting the aperture manually means that I get to preview the depth of field in the picture and see how well the subject has been isolated from the background. 

It seems that you can get lots of adapters for lenses from way, way, back - even for old Leica lenses from the thirties. If you fancy testing your understanding of photography a bit and you have a camera that supports interchangeable lenses I'd say it was worth having a go with some old glass. 

Printing Tiny Robots

I've not done any 3D printing for a while. Then, earlier this week Peter showed me some things he'd been printing and they looked rather nice. And today on Twitter I saw a link to a tiny articulated bot that looked interesting. I like designs which print all as one. The legs, arms and head are intended to be separate items which stay fitted together because they are made that way. The original model had a print time of four hours, so I scaled it right down to speed things up and get a print time of an hour or so.

I was a bit worried that this would mean that the different pieces would fuse together into a single block but with a bit of careful twisting I managed to free of all the elements and I now have a tiny figure to help me with my breakfast cuppa. 

What makes a Bad Programmer?

I've been spending quite a bit of time with the First Year students this week. They're presently grappling with the "Space Cheese Mining" coursework which is a silly board game loosely based on Snakes and Ladders but with a few twists. And some cheese. 

Anyhoo, I was telling one student that I didn't allow First Years to tell me they were bad programmers. "That's my job" I said. The point I was going for is that one of the problems people have when learning to program is that they lack confidence in the code that they write. Sometimes they worry that they might not have found the "best" solution.

It turns out that some things are just hard to deal with, and require fiddly bits of code no matter how you approach them. So your code ends up looking a mess, and that's just the way it is. Snag is, when you are learning to program you don't necessarily get this, and you might worry that your program looks messy because you can't actually write code. So I always say that I'll be the judge of bad and good code, 'cos I've been writing programs for some time. 

We talked it through a while and then the student asked a really tough question "So, what makes a bad programmer then?" Ugh. Wasn't expecting that one. I didn't really have a ready answer. I muttered about bad coding style, not testing code, etc etc and that was that. 

Having thought about it some more though, I reckon I was wrong. I now think  a bad programmer is someone you don't want to work with.  They might write code that nobody can understand. They might refuse to test their solutions. They might refuse to believe that there is a problem with something they have written. They might not buy their round in the pub. They might get into fights with the customer. And they might enjoy telling you about bugs in your code rather too much.

Technical ability will get you so far in this business, but if you aren't good to work with this is going to hold you back in the long run.

Windows 10 on Raspberry Pi Rather Useful Seminar

We had a Rather Useful Seminar today. I talked about Windows 10 on Raspberry Pi 2. Great fun and all the demos worked. It is rather impressive to be able to flip a switch and swap from PC to Pi deployment, and still have all the Visual Studio loveliness including  breakpoints and full debugging support.You can find the slides here.

 

Testing Software vs Playing with it

I was giving a Software Engineering lecture this afternoon and the conversation turned to testing. As it frequently does. So I asked everyone what they thought I meant by the word "test". One answer came back "it's what you do to see if it works". 

I don't think that's what I'd call testing. I was casting around for a phrase that fitted the occasion. Finally I came up with "Playing with the code". I wanted to get people thinking that actual testing is a lot more than just running with the program to see if it seems to do what we want. .

Proper testing is planned, repeatable and part of the creation process. And, if possible, automated. Don't make the mistake that the thing you do once it compiles is testing.  It isn't.