CloudBit Libraries for Windows Apps

LittleBits are tiny electronic components that can be fitted together to create working circuits. They are great fun and you can find out all about them here:

http://littlebits.cc/

They make a device called CloudBit:

http://littlebits.cc/kits/cloudbit-starter-kit

This puts LittleBits signals into the cloud, where you can connect to them from browsers and services such as If This Then That (ITTT). I used my CloudBit in the Microsoft Band Hackathon earlier this week, where I was using values sensed by the cloudbit to trigger alerts in the Band. I also used the Band accelerometer to control the output of the cloudbit as well.

I thought I'd put the LittleBits library that I used to control the device up on GitHub. So I have. You can find it here:

https://github.com/CrazyRobMiles/CloudBitControl

You might want to control your LittleBits devices from your Windows PC or Phone, and that's what this library does. You can send a percentage power value to your CloudBit device and receive a percentage value back. What the signals mean is entirely up to you. They might control a servo, light a lamp, open a cat flap or any number of other actions. You can use the inputs from the CloudBit in any way you like too.

There's a sample universal application that uses the library. This is a good basis for getting started. You just need the device ID and access token for your CloudBit and you are good to go.

Go to the Folly Lake Cafe

Serendipity is one of my favourite words. And I only found out about it by accident. Just like I found out about the Folly Lake Café. Now that I'm back on Windows Phone I get Cortana telling me about places to eat nearby, and this place I've never heard of just popped up last week. So on Sunday we thought we'd check it out.

It's lovely.

My favourite special would definitely be  "Bacon, Egg, Burger chips - and salad" Yay!

My favourite special would definitely be  "Bacon, Egg, Burger chips - and salad" Yay!

We arrived a bit early to eat, although the food was tempting. The café is located in a dip in the ground that might have been a quarry a while back. Now it is just a haunt for anglers, walkers and cyclists. We didn't walk there, although we might next time.

If you are looking for somewhere in the countryside you should go and take a look.

Microsoft Band Hackathon

Rob wriitng

Rob wriitng

Yesterday Robert Munnoch and myself headed down to London to take part in a Microsoft Band Hackathon. The event was based at the Central Working resource in Whitechapel, where the Microsoft Accelerator programme stuff is also based.

At the start of the event each team was given a Microsoft Band each and turned loose to make something interesting.  We downloaded the SDK (it's very easy to use) and got cracking.

There were a whole bunch of teams taking part. Robert and I had some plans involving image processing, accelerometer data acquisition and LittleBits cloud connected devices.

Proper Pizza

Proper Pizza

The event was great fun, and the catering gave me Three Thing Game flashbacks, which was nice.

We had the LittleBits cloud bit talking to the band. We could get readings from the LittleBits circuit to cause notifications, and we were also using the accelerometer in the Band to control the servo output. Which was fun.

Experience has taught me that I can't do all night development any more and so at around midnight on Monday we set off to find the hotel. This took a lot longer than I'd planned. Note to self: Hotels are often remarkably unaware of their actual location and so you should always double check their directions. Otherwise you end up traipsing through the night to the wrong location. Like we did.

Anyhoo,, we found the place in the end and I settled down for what sleep I could get, while Robert gamely carried on writing code. In the end everything worked at the last minute and we had enough stuff to talk about during the final show and tell presentations.

It's very interesting to see what folks are doing with the device and as the capabilities of the Microsoft Band SDK grow in the future things are going to get even more interesting.

Thanks to Dave Baker and Paul Foster of Microsoft for setting up the event. I'm going to post some of the things that I've learned in the next few days.

Oh, and sorry to the Python Wrestlers this evening. In my sleep deprived state I completely forgot a to create slide deck that I was supposed to have written for the event tonight. The good news is that thanks to sterling support from Warren we managed to have quite a good night in the end, reading the weather from RSS feeds.

Rob on "The Conversation"

Last week I went to a lunchtime meeting all about "The Conversation". It's a news and comment website which is written by academics from all over the world. It's a great idea, and there's some very interesting stuff on the site. All the content is published under the Creative Commons licence and so it can find it self republished in all kinds of interesting places.

I left with a strong desire publish something and they were asking for something about biometric passwords, so I wrote up a little piece. One of the best things about the site is that the articles are generally short - around 600-800 words or so. This means that they aren't too intimidating, and don't take too long to put together.

Another really lovely thing that I discovered was the great quality of the editing. I've had this experience before when I've written books. A good editor can take words and make them read really well. In the age of the internet and self publishing I worry that this skill is being lost. Not at all. What emerged from the process was so nice to read that I felt a bit guilty about my name being at the top.

I'm looking forward to writing more in the future. If you are an academic who wants to brush up your writing skills and tell the world a bit about yourself and what you are about, I strongly recommend that you get involved.

One of the most useful skills you can have is the ability to write well, it will serve you in any number of different situations. The Conversation gives you a chance to do just that, and get the benefit of the involvement in a proper editing process.

You can find my article here.

Rob at TechDays NL

I've been doing sessions at TechDays for as long as I can remember. Including the one I'd rather forget, when Every Demo Failed

And I'm very pleased to be able to report that I've been invited back again. This time I'm giving a couple of talks, one about the use of asynchronous operations and the other about the creation of Universal applications for the Windows Platform.

I love speaking in front of audiences from the Netherlands. They are always great fun. And so I'm looking forward to the end of May, when I'm going to get to do it all over again.

Last Open Day for a While

We had our last Saturday Admissions Open Day for a while today. Thanks to everyone who came along, particularly those who had travelled a long way to get to us. Don't forget that you can get an electronic copy of the C# Yellow Book here. You can also find a complete set of our first year programming content on the same link.

We had a question about masters level Computer Systems Engineering during the Q&A session. If you want to know exactly which courses we teach (including MEng Computer Systems Engineering) you can go here.

If you want to keep up with news from the department you can keep up to date with what we are doing here. http://www.wherewouldyouthink.com/

Solar Eclipse

The last time I went to see a solar eclipse it didn't end that well to be honest. Having carefully placed ourselves bang on the "line of totality" and enjoyed viewing a fantastic meteor shower through clear skies the night before, we woke up to two layers of cloud and a whole heap of nothing much.

So today my expectations were a bit low this morning. I viewed the gathering crowd on the campus as a being bit optimistic, to be honest. But when the time came it was great. I even suspended a tutorial so that we could go outside and get a look. There were telescopes and kids and a carnival atmosphere as it got gradually darker. There was a bit of cloud, but nothing that got too much in the way.

I was somewhat unprepared, I did have a camera but that was about it. However, by fiddling with the exposure I managed to get the picture above. Then someone suggested that floppy disks made a good light filter, so it was off up to my office to crack open a 3.5 inch disk.

I've no idea what the disk had on it, but I'm quite happy with the resulting photograph.

Rather Useful Seminar : Joe Stead Talks Cross Platform C#

We really like it when past students come back and tell us what they are up to. Yesterday Joe Stead came in to give a Rather Useful Seminar all about portable C# development. Turns out that you can use C# on pretty much any platform these days and Joe gave an excellent talk on the best ways to do this, how to get started, and any issues you might encounter.

As you might expect, Xamarin featured quite prominently in the talk and it was very interesting to get Joe's perspective on the platform. Joe showed how you can use a variant of XAML to design the screen and showed how to take a single application and deploy it on IOS, Android and Windows Phone.

Keep an eye on Joe's blog for a copy of the slide deck and the example application he built.

Printing a Microsoft Band Stand

One of the nice things about having a 3D printer is that you can, er, print things with it. And so when I wanted a stand for my Microsoft Band I was able to find a design on Thingiverse and then make one.

This is actually the second attempt. The first printed fine but unfortunately because of "squeezage" (something that happens that makes holes smaller because of the way the printing takes place) the slot for the cable was far too tight. I scaled up the design by 1.15 and this has given me a lot more slack. Perhaps 1.12 or so would be perfect.

Anyhoo, I'm very pleased with the result, which means I can just drop the Band on the stand at night and have it freshly charged in the morning. The Band actually has a sleep tracking function, but I've not tried that yet.

Microsoft Band First Impressions

So last week, after a lot of pondering, I decided to take the plunge and get myself a Microsoft Band. I paid an excruciatingly large amount to get one specially imported and it arrived on Thursday. Then, today Microsoft go and announce that the bands are going on sale in the UK next month, at considerably less than I paid to get mine. Wah. Order yours here.

The good news is that I really like the Band. It just works. All day. In fact I reckon I could easily get a second day out of the device if I forget to charge it. I paired it with my Lovely Lumia 1520 and, apart from a hiccup that meant I had to set the region of the phone to US to get the app, I had the program working in no time.

It does pretty much everything that the Android wear devices I've been using do. I get notifications to my wrist, I can do voice searches using Cortana and it tracks my heart rate and activity quite handily. It's very light and pretty comfortable. It exerts a slight grip on my wrist, as if it is taking my pulse all the time, which is actually what it is doing I suppose.  I've not tried any of the scripted workouts that are available, but the companion app does a good job of presenting the data that is captured and I can also view it via the web.

I can preview incoming emails and texts and there is a "quick read" view that shows each word of a message in sequence on the screen. I can also create and send canned responses to calls and texts and even enter messages using a tiny keyboard (although this is bit fiddly).

Last night I took a quick look at the SDK and it looks easy to use. A program can get all the information from the band sensors into the phone including accelerometer, gyro, heart rate, skin temperature, UV levels and even skin resistance. And the app can push back tile designs and bind these to actions.

The Microsoft Band is not really a direct competitor to the Apple watch, but then again it is less than half the price. However, I think it does enough to make it worth considering. And it really does last all day.

Bye Bye Android - Hello Again Windows Phone

Yesterday I waved bye bye to my Android phone and officially ended my experiment with the platform. One of the Android wear watches went with it (I've still got a Moto 360 if anyone is interested). The good news is that it went to a very happy recipient who I know will get a lot out of it. The better news is that I'm back on Windows Phone. I've learned quite a lot in the few months I've been using an Android phone and an Android Wear watch.

  1. It doesn't really matter that much which kind of phone you have. They all work well and they all do the fundamentals. When I moved to Android I had this vision of all the new and exciting apps that I could run now I had the most popular mobile platform. True, I did download a few of these and play with them a while. But then I went back to doing the same things I've always done, which my Lovely Lumia supported very well indeed.
  2. Android has some great bits (the way that you can bind actions to events is really, really nice) and some really clunky bits. For me the most irritating aspect of the design was the way that huge chunks of the screen were given over to things that didn't add any value and just took up space. And the mail and calendar applications seemed much more confusing and harder to use than their Windows Phone counterparts. The address book and phone user interface I found fiddly too. These comments only mean that I had these issues, they don't mean that you will of course.
  3. Having notifications on your wrist is very, very nice. You might get a bit tired of the email ones, but knowing that you aren't going to miss a phone call or a text is rather pleasing and occasionally really useful.
  4. The battery life of the current crop of Android wear devices is nowhere near good enough. Much as I loved the user experience and screen of the Moto 360 watch the fact that it conked out at around 5:00 pm made it pretty much useless. You can blame me for having the "ambient" mode turned on to force the screen to hang around longer, but I like using a watch as a watch I can look at and get the time instantly. When I'm giving lectures I like to glance at my watch to see how much time I've got left, with the Moto I couldn't do this (even in ambient mode it struggled), and with the Sony watch the screen was a bit hard to use in this situation. I should have had a look at the LG watch which has a lower power screen I suppose, but I really didn't like the styling of that one.

So, I'm now back on my Lovely Lumia 1520, running the Denim update and coupled to a Microsoft Band. The Band tells the time all the time and at the end of 18 hours of heavy use has around 60% of the battery left. Splendid.

Red Nose Day MonoGame Video Now Online - with Tutu Action

"Because the world definitely needs a man dressed in a tutu explaining how to create video games....."

After a bit of time learning how to use Adobe Premiere again (I learn to use it every time I have to make a video - at six month intervals) I have now got the recording of the Red Nose Day lecture ready for the waiting world.

You can choose to regard it as either a "Poetic masterpiece combining rhyme and technical achievement in a single, flawless whole" or "Twenty minutes of my life I won't get back". Whatever.

But if you do get anything out of it, please throw some money my way by visiting here:

http://my.rednoseday.com/sponsor/robmiles

Three Thing Game Finals

Hardy survivors...

Hardy survivors...

We had our Three Thing Game competition over this weekend. Just in case I wasn't busy enough writing poetry and whatnot. Anyhoo, great fun was had. A team of stalwart judges, including developers from Smashed Crab Studios, went through the final 17 teams and found us 6 finalists. As is the way of the competition, we had each team present their game at the aptly named finalist presentations. And here they are in no particular order.

Team: "I hope my friends don't bail on me"

Team: "I hope my friends don't bail on me"

Team "I hope my Friends don't bail on me", AKA Jason Powney, showed off the mayhem he had created from "chainsaw", "penguin" and "water". "Penguin Chainsaw Massacre" had tons of bloodthirsty action, with underwater mine hazards and even a sunken wreck. A very polished production.

Team: //TODO

Team: //TODO

Team //TODO, aka Daniel Masterson, had started of with "ASCII art", "sanctuary" and "error" and built, to our amazement, a 3D rendered graphical game displayed in a console window using text graphics. Something of an awesome technical achievement we reckoned. And the game looked fun to play too.

TEAM: aNOTHER BAD IDEA

TEAM: aNOTHER BAD IDEA

Team "Another Bad Idea", aka Robert Chisholm and Adam Thornes had crafted a very neat top down fighting game from "Toilet Plunger", "Small Mammals" and, not surprisingly, "fighting". The game had frantic one on one action as the players acted out the eternal struggle between fox and rabbit using toilet plunger weapons.

Team: You Will Lose

Team: You Will Lose

Team "You will Lose", aka Joseph Edwards and Tomasz Kope,c had turned up the particle generators to the max and produced an atmospheric game based on "square", "random" and "shooter". Some nice coloured effects and randomly generated play areas made for good looking gameplay.

Team: One Musketeer

Team: One Musketeer

 Team "Four Musketeers" was down to one musketeer by Saturday lunchtime, but that didn't stop them producing a very neat four player shooter game from "Scrapper", "Wombat" and "Hull". The action was fast and smooth, with multiple weapons and you could even use the gun to jump. Can you spot how the thing "Hull" was used?

Team: Bad Computer Pun

Team: Bad Computer Pun

Another technical tour-de-force from team "Bad Computer Pun, aka Nick Ross. We advise our students to use Three Thing Game as a place to test out hew game engines and Nick had certainly done that. Matlab is a serious mathematical package designed for serious mathematical stuff. Not for writing games. But the power of Three Thing Game compelled Nick to go against this and craft what is probably the first ever computer game written in Matlab. It is definitely the first ever Matlab game that involves "ostrich", "oasis" and "escape". And it looked pretty good too.

I didn't envy the judges their job as they went out to pick the winners. Thanks go to Warren Viant, Derek Wills, Lindsay West, Jon Purdy, David Parker and the Smashed Crab crew for giving up a Saturday afternoon to help out. Anyhoo, after much detailed discussion they come up with a first and second places, plus a technical achievement award.

Pic1 (17 of 25).jpg

First place went to "I hope my friends don't bail on me". The game was commended for the high quality of gameplay, completeness and the way it had stuck very well to the three things.

In second place we had"Another Bad Idea". Their game was singled out for the fun multi-player action and great looking graphics.

Pic1 (25 of 25).jpg

The award for Technical Achievement goes to //TODO. You just don't expect people to use shaders in ASCII art games. Awesome stuff.

I'm going to be chasing the teams for videos of their games and I'll update this post with more details when I get them.

Thanks to all the judges, to Lee Stott from Microsoft and Simon Jackson from MonoGame for dropping by and taking a look. And thanks to David Glover for making the Fenner Lab work so well and allowing us all in.

The next step for the teams is to get their game published. I'm going to be running some sessions about game publishing, keep an eye out for them.

Red Nose Day Lecture, with Tutu pictures

Well, there goes any level of credibility that I might once have had. The lecture in Rhyme went well, but at the start I was overcome with guilt about reneging on my Tutu promise for two years in a row. I hadn't met my, admittedly very ambitious target, but over 800 quid is not to be sniffed at. Thanks for your generosity folks.

Anyhoo, I took pity on the audience (is that the right way to put it) and tutuified myself as you can see on the right.

After that it was pretty much an anti-climax I guess. The audience were great and laughed at nearly all the jokes.

Eventually.

A video was taken and I'll have it onto the Internets as soon as I can. Because the world definitely needs a man in a tutu explaining how to create video games.

My favourite bit though was when I was doing a tutorial session this afternoon and someone said they were a bit upset to find that I'd changed back into my normal outfit. So I said, "You mean you want a tutu-tutorial?". I live for moments like those.....

Trains, Taxis and Open Days

Today we travelled back to Hull. Things were a bit time critical as it turned out. The train arrived in Hull around 50 minutes before I was due to give an open day talk. But thanks to the magic of taxis I got up to the university in time and it all went swimmingly. Sorry if I bored you with tales of who I'd been mixing with the night before.

The talk went great, thanks for being a lovely audience.

Rob at 10 Downing Street

Well, that was fun. Some time back I had some correspondence with the Red Nose Day folks about my efforts with the charity over the years. Turns out I've been doing lectures in rhyme for nigh on thirty years. Which is scary. (actually my plan is to keep on doing them until I get one right...)

Anyhoo, the result of this was an invite from Samantha Cameron, wife of the Prime Minister, to a reception at Number 10 Downing street. Along with a stern injunction not to make a fuss until after the event was over, for security reasons.

The good news is that now I can tell folks about it. The great news is that the event was amazing. We turned up with a mix of fund raisers and Red Nose Day partners and spent a while in this posh reception room drinking free drinks and eating free food.

Samantha Cameron gave a lovely speech about the work of the Red Nose Day folks and then David Walliams, of Little Britain and Channel Swimming fame, turned up and read his Comic Relief book "The Queens Orang-utan" . Finally there was a speech from the Comic Relief head honcho, who's name I've sadly forgotten. Apparently they expect the charity to break the one billion pounds raised barrier on Friday, which would be completely amazing.

Another  David, David Tennant, turned up to mingle. Sadly he moved on before I managed to have a chat or grab an autograph, but I did manage to get an autographed copy of David Walliam's book, which was wonderful. After that we had more mingling, drinks and nibbles. Turns out all the folk involved with Comic Relief are all splendid people. Who'd have thought?

Then, on the way out we all queued patiently to take our pictures on the hallowed threshold of the home of the Prime Minister. There was a strict embargo on the use of phones and cameras during the event, but it was nice to get one "I was there" image.

I do the lectures because they are an interesting challenge to write and great fun to deliver. Plus they bring in a bit of cash. It was really nice to be recognised for the work. The next lecture is on Friday 13th of March at 12:15 in the Robert Blackburn Building on the University of Hull campus.

You are welcome to come along. Free to get in, but expensive to get out....

If I hit my target, I'm wearing a tutu to deliver the lecture. You can sponsor me, and bring me one step closer to total embarrassment, here.

Red Nose Day Tags Now Available

If you have discovered that what is missing from your life is a small, 3D printed piece of plastic with a unique arrangement of disks and squares on it, in a variety of colours, then I have just the thing for you. A Red Nose Day tag.

They are on sale in aid of Red Nose Day from our Departmental Office in Computer Science. They look great on a key-ring or as novelty ear-rings. Every one is unique and we will be using them in the lecture on Friday for some fun and games. They only cost a pound each. Bargain.

And don't forget that you can sponsor me, and maybe get me into that tutu, here.

Three Thing Game Auction List

If you are looking for the things we are going to auction tomorrow, you can find them here. Enjoy.

Chainsaws, Bottle, Kitchen, sphere, Leonard Nimoy, Hot dates, Bouncing, random, Crew, Chasing, Circuit Diagrams, Small Mammal, Turret, Friendly Fire, Hack, Zombie, Water, The End, Cornflower Blue, Road, Penguins, Dancing, custard, Rail Grinding, Shifty, A sweater that once had sleeves but now does not., Toilet Plunger, Sanctuary, Chess, Parody, Ferrero Rocher, Ninja, Soaring, Skeletor, Base, The King, Castle, Collision, Spooky Skeletons, BiPolarBear, Why-Wolves, Giant Spiders, Errors, Soldier, Chivas, Three Things, fighting, Yeast, Crippling debt, cloak, Rollercoaster, Captain, evolution, growing, Touch, Laser, Fruit, chicken, Something, Euphoria, Scout Salute, Penguin, Fire, Screenshake, , Cardgame, Railway, 2D, Doge, Oasis, Scratch, Badgers, Triangles, Tycoon, Communism, A man standing on a chair yelling wildly about marsupials., Joke, War, snakes, Beards, Platform, Disembodied Beards that Kill People, Alchemical Horrors and Fun, monkey, Bubble, Space, Sea, Baddie, Flying, The Fanta Gang, Colour, Pinball, Cat girls, A Bitcoin-Based Serial Killer, Queue, Spanking, The One Ring, ManBearPig, LegendFace, Uncommented Code, Balls, Ostrich, Beer, cooking, Escape, boomerang, Gore, Nerd, lasers n stuff, Mechanical Gears, shooter, 404 Error, dragon, Skeletons, spacehopper, Road, Solar Eclipse, Bandit, Obama, cactus, pixel, Fox, Shark, Cars, Ice, Arcade, Sword, Cool, N/A, Dragons, Horror, Jam, square, Grey, Wildcard, Burger King, Power-ups, 400 Tiny Bears, ASCII art graphics, Chairs, Fish, nothing, Dog the Bounty Hunter, Pirate, Robot, Cue, log stove, pies, Magic, Black hole, Defense, copious amounts of food, XNA, Death, Hull, Scrapper, Wombat, Bees, Badminton, Clouds

Making a Three Thing Game Auction Timer Unversal App

We are having the Three Thing Game thing auction next Monday. This is always a giggle. Teams bid "Bank of Thingland" money for things that they want to add to their games. This year all the things are student suggestions. What could possibly go wrong?

Anyhoo, one problem with the auction is that we need to get through over 120 lots in around half an hour, so the auction rate has to be frenetic. Last year I thought I'd solved the problem by fixing the auction length at 15 seconds and creating a countdown timer. Unfortunately, human nature being what it is, the result of this was that everyone sat waiting until the timer counted down and then tried to snipe with bids at the last minute.

So this time I'm trying something new. A random countdown timer that runs for between five and 15 seconds. Teams won't know when the auction is going to end, so they'd better get their bids in as soon as they can.

Of course this means I'll need a timer. I wrote one this evening and it took around half an hour. And for that I've got Windows Phone and Windows desktop versions.

These are the variables in the program. I use a DispatcherTimer to generate interrupts. I keep a flag to say whether or not the timer is ticking and I have a counter and a limit value which are used to manage the time outs.

This code sets up the timer. It ticks every second. The timer_Tick method is called each time the timer ticks. I also make a copy of the Foreground colour of the text so that I can put the timer digits back to the original colour when the timer is restarted.

This code sets the timer ticking. If the timer is already ticking the method returns straight away. Otherwise the timer is set up, the screen colour put back to normal, a random timeout between 5 and 15 seconds selected and the timer starts.

This is the third method. It runs each time the timer goes tick. If the timer is active we increment the counter and then display it. Next we check to see if we have hit our limit. If we have a sound effect is played and the counter text block is turned red. Then we stop the timer.

All this code is shared between the Windows Phone and Windows Desktop versions and it works a treat. Great stuff.