Moosaic Takes Shape

One of "Robert's Rules" is:

Any software development takes longer than you think, even if you allow for this.

Of course, having a day job as well has kind of hampered development...

So I've not finished the Moosaic program just yet. But it is looking quite tidy:

249244108
Coming to a setup program near you....

I've got the image download and the grid selection just about sorted, Now I just need to get the tile output done and we will be in business.

Prepare for Icon Attack!

231272342

I've been playing with the new XNA Express stuff which lets you write games using XNA. Great fun. I'm presently creating a little 2D shooting game which is provisionally titled "Icon Attack", where you fly "My Computer" into battle against massed hordes of Windows Icons, running in fear from the "Recycle Bin of Doom".

I've just got the first bit working, which is the moving icon starfield that will provide the backdrop. I'll keep you posted (quite literally) about how the development goes. Eventually I'll put the source up for you to marvel at.....

Live Writer Flickr Inkifier now available

I've finished writing the code for the latest Live Writer plugin. It lets you grab images from Flickr, annotate them with ink and then post them back. It also has a few image processing feature, including a "wild" thing which is quite fun. You can find out more here.

It's always the social issues that get you...

I've been playing more with my Flickr inkifier and it is now nearly ready for release into the wild. By that I mean that I've solved all the technical problems, but now I have to deal with the "social" ones.

These are the ones which give you the most grief as a developer because there are no hard and fast answers. When I wanted to add my plugin to Live Writer this was easy. Copy the example, read the documentation and away you go. But now I have to deal with users.

To post a picture to Flickr you have to login to the service. Fair enough. There is a lovely mechanism for this in Flickr which means that once a user has authorised my plugin with them they never have to do it again. But the plugin also has to remember some stuff about the login. So questions start to arise; "Where to I store the information?", "What do I store?", "How will the user interact with it?", "Do I store the data on a per user basis?". Ugh.  

 So, wrestling with all these issues has slowed me down a bit. That and marking all the programming resit exams and coursework. Double ugh.

Imagine that Live Writer Plugin

I've just made a plugin for Windows Live Writer which lets me easily post my Flickr pictures. There is a proper plugin available as well as mine, but mine does exactly what I want, which is quickly find the images and then add them to the post in the correct size. And anyway, I wanted to write my own to see how easy it is. So there.

One thing that I have learnt from the exercise is just how darned easy it is to string things together these days. Figuring out how to write the plugin wasn't too hard, and writing a .NET program to pull pictures off Flickr turned out to be much easier than I expected. So, without further ado, lets import some snaps:

 222860553
This is one of the dancers at the Imagine Cup party in Agra

222860621
This is outside the hotel lobby. I just love those white cars

222860583
And this is your room, after the room tidying faries have been round..

My First Post from Live Writer

This is my first post using Windows Live Writer Beta. It is a program which lets you prepare blog entries off line and then submit them from your computer. I might use it a bit because it is somewhat easier to use than the interface on my usual provider, and it lets me write stuff when I'm not connected to the internet. It found the settings of my slightly non-standard blogging service straight off the bat, and so far I'm impressed. Although I've not actually pressed the publish button yet.

There is also an API which lets you develop blogging applications

Of course, what I really want is a version of this program which runs on my Pocket PC. Perhaps later...

I suppose I'd better tell everyone

Every now and then you get a juicy bit of news which is of great advantage to those hearing of it. I've just got one of these and the urge to be a nice person and share it has got the better of me. If you are into teaching and computer science and stuff (and therefore in kind of competition with us at Hull I guess) you really should go and have a look here.

I reckon that it is a wonderful development that any computer science department should grab with both hands and run with.  We are soooo going to try and do just that...

Unhappiness is Green Cubes

greenBoxes
Not what I want to see at all...

I've been working on my webcast for next week. (if you want a way to speed up your life try doing a series of weekly webcasts - you'd be amazed how fast each one comes round).

Anyhoo, we are reaching the end, where I want to show my style and put some 3D objects on the screen in front of a funky background. The idea is to make a 3D version of the Snake game where the snake moves around with a constant value of Z in each vertex. I'm calling it "Snake on a Plane" in homage to the upcoming movie staring Samuel Jackson. The "snake" is going to be made of little coloured spinning cubes.  Why? I don't know why. I don't make the rules...

So I get my coloured cubes, put a green grass texture behind them and fire up the program. And all my cubes turn green. Wah. Don't want green cubes. Although they do look rather cool.  Tried lots of things to get rid of them. Everything except the right thing, which is to remember to turn the texture off. Ooops. Thanks to number one son for spotting this. Now I'm going to have to find a way of wiping that smug grin off his face.

If you want to take part in the last webcast and maybe win an imp, then register here.

Managed Code Archos

My portable media player thingy is misbehaving. It won't let me synchronise with Napster. This is a potentially serious problem, in that if it doesn't get to say Hi to mom every now and then all the protected content on the disk will stop working.  This is where the idea of renting access to music rather than actually buying it once and for all starts to come to bits.  I've surfed the internet and quite a few people have the same problem as me, but nobody knows how to fix it. I've been in contact with Archos technical support and they asked if the cable was plugged in correctly. Which was rather irritating.

Seems to me that every now and then a progam in the device goes loopy and tromps all over memory, corrupting things. Sometimes the machine will stop for no reason, or the screen will change colour without being asked. I can live with these problems, but if it won't play my music that is another matter. What they need is managed code. This is a layer between the vulnerable system and the program which is running. One of the jobs of a managed code environment is to stop a program from going bananas and writing into random areas of memory.  If this happens the managed bit just stops the program from doing any damage, like mum would stop you from putting your hand into the gas fire. 

It looks as if I will have to wipe the entire machine and start over. And then live in fear of it happening again with no guarantee that it won't. Or start buying records that I really like and stop renting.

Sumo Loser

Clean Pair of Heels

My robot doing what it does best: running away.

For the last couple of days I've been working away on my Sumo robot. I got the kit on Monday and tonight we had the finals. The robots are really neat. You can program them using C# and they are powered by the rinky dink .NET Micro Framework. I wasn't sure about winning on the performance front, so I thought I'd go for style. A moving graphical display looked like it might hit the spot and so I got one and strapped it on the top of my competitor.

Turned out that style was the only point on which I had any chance of scoring. In the competition my robot did something that it had never done in the many seconds of intensive testing that I did before the event. It developed a taste for just piling out of the circle as quickly as possible. Perhaps it was obeying some higher "survival" programming which I was unaware of. At any rate it meant that for me, the game was over very quickly. It is perhaps just as well, some of the competitors looked to be deeply scary, pouncing on their prey and forcing them out of the ring.

The good news is that I got together with a bunch of fellow "second placers" and we set up a kind of "off piste" fighting arena where we just turned them loose. This was great fun to watch, even though my robot never actually won anything, it did manage to lose with a certain style…..

Mass Brawl

Robot Brawling

MEDC 2006 Gets Going

Went to the keynote of MEDC 2006 today. The first thing that caught my eye was the way that Platform Builder has now been tied very neatly into Visual Studio 2005. Platform Builder is the tool that you use to buld platforms (well - duh). More specifically, it lets you create a custom version of Windows CE for the particular target device. You use it to select which features (Media Player, Compact Framework etc etc) and it then builds the stuff that you put into your device to make it work. Previously this has been a slightly mysterious affair, with strange incantations and tools being required. But now it is looking a lot simpler with a new project option for studio (is there nothing this tool can't do) that does most of the grunt work and some very nice editing tools to help you with the rest of the job.

01banner

Startup Slide

Then it was on to a demonstration of how easy it is to build embedded systems these days, with a Point of Sale cash till being created on the fly out of various components. The next thing they mentioned was pure music to my ears. The .NET Micro Framework was announced. This is not going to be micro. Quite the reverse. It is a continuation of a development which started a couple of years ago, when a small company took the technology that makes the Spot watch work and then deployed it as a general purpose controller that you could program in C#. At the time I got very excited about this technology, but they unfortunately it all went quiet. But now it is back with a whack and Microsoft properly behind it. They were even giving away robots powered by .NET micro (I managed to get one and it will be taking part in the robot sumo competition on Wed. I've said it before, and I'll say it again, this technology is going to be very big indeed and will be super for teaching.

02camerakeynote

Camera's eye view of the keynote

After that, the stuff about the new Mobile Patterns and Practices was a little less exciting, but it is none the less very useful. One of the things that it provides is a set of libraries which allow you to create completely different layouts for different screen sizes and orientations. These are selected automatically as required, and should mean the end of things on the screen getting into a mess when you change the orienation of your device from landscape to portait.

02sumobot

My robot, ready for action.