baby steps in microsoft robotics studio...

i've always been itching to tinker with microsoft robotics studio -- but i put it on my list of "things NOT to do" a long time ago. There's not enough time to play with every good thing in life.

But last Christmas i spent a bit of time on making fractals in logo, and learning F#, and drawing awesome robot pictures... so it's only fair that this christmas i'd crack out microsoft robotics studio and give it a tinker.

As a bonus, my nephews are around and I was hoping to help get them hooked on a life of computer programming.

first impression:

stupid roadblocks. I know this is an awesome base operating system to unify and enable all the robotics systems of the world... but my god, nothing is obvious. The "pit of success" idea seems to have overlooked these guys.

I like to jump in anywhere and hope that it makes sense. That didn't seem to be appropriate here. Jumping in anywhere lead to confusion.

So I swallowed my pride and headed to the first tutorial. That was utterly lame. So I moved to tutorial 2. Lame. There is no tutorial 3... no sure why, but the next in line is tutorial 4. I loaded that in visual studio, compiled and ran... okay... some potential here... something to sink my teeth into... but oh god, how about that confusing user interface from the team that UX forgot.

Quick reminder about User-Interfaces By Developers

Dear developers (and this includes me) -- please don't open up the windows forms designer, blow chunks wildly, and then publish it to the world.

Either get a usability expert to provide some nice feedback or, at the very least, see if your little sister can understand how to use it. Pure developer UI can be a terrible thing.

Now back to the task at hand.

the order in which things are pressed in the dashboardthe dashboard, common to microsoft robotics tutorials

Explain this to me... someone... please...

Variations on this 'dashboard' form are common in the tutorials. And it's very 'developer UI'. This form is fail.

Generally if you click anywhere on this form you get two responses: nothing, or an exception.

After a lot of experimentation I worked out that you have to click in the boxes in a particular order (that the UI doesn't give any clues about).

Your average programmer would be able to work this out quite easily if they were motivated. Fine. But don't even think about handing this to your little nephews.

After working out the right order, we went in to the code (we being me plus my brother in law Rick) and re-ordered the controls to make it more appropriate, and gave better feedback on errors. A two minute refactoring, seriously.

yay! arm defeats blocks.

Now we found that, with meticulous clicking and typing, we could convince the articulated robot arm to move in whatever way we wanted. (Yay! We knocked the dominoes over!)

It was cool in a way that only your most-geeky segment of the audience could begin to comprehend. For example, I loved it. But the nephews: not so much.

I'm pretty sure it gave little more than a whiff of the real power of this platform. I've listened to podcasts where people rave about the concurrency and coordination runtime, and the way real industrial houses use this software to simulate, build and control their real-world robots. From where I am right now, it takes quite a bit of imagination to see those distant capabilities.

Some things I'd love to be able to do:

  • click on an object in the simulation environment and thus have it 'selected' in the remote control. (or even less -- float over an object in the simulation and have its name as a tooltip)
  • record a series of movements and replay them.
  • use a logo-like language for talking to these little robots. The powershell team could give great guidance on this.
  • move the cameras around. (I know I can work this out programmatically -- but it's a pretty basic thing I shouldn't need to be a programmer to achieve)
  • Hit reset -- to get the scene back to how it was at the start.

Computer games are full of lessons. They give you clear goals that get progressively harder. What each 'simulation' needs is an obvious goal. The final goal for tutorial 50 might be: write an autonomous robot that can drive 100 kilometres through rough terrain, unassisted. Some goals from intermediate levels: tell a robot to move; teach a robot-mouse to solve a puzzle; use a vision sensor to shoot down a robot duck.

In the meantime, anyone know what would be a good robot to purchase? I'd like to get a real world robot, provided I can also tinker with it in robotics studio. Some of the things i'd like it to be able to do for me:

  • Mowing the lawn, including trimming the edges.
  • The shopping (everything from keeping track of supplies, to collecting the goods)
  • Organising breakfast (and cleaning up afterward.)
  • Noticing when the batteries are low on my phone (or ipod, or camera, etc.) and re-charging the items as needed.
  • Hunting down and killing anyone who has ever annoyed me.
  • Giving gifts to children once per year.

I imagine he'll look something like this -->

 

Hang in there, little buddy

I've had a long off-line sojourn, but have been feverishly writing and programming throughout.

There are many updates to follow. Including journeys with Microsoft Robotics Studio, Oslo, Hudson, Spock and that notorious programming-fiend: JFK.

Happy new year,
lb.

p.s. here's a picture of Joe Cooney dressed as Hunter S. Thompson. Note that Joe is not ordinarily bald, and nor is he wearing a bald wig. I only include this artefact because a) it is a sad indictment on the state of mind of young joe, and b) HST is a particular hero of mine from years long past.

Hunter S Thompson (actual photograph i believe)Hunter S Thompson (Joe Cooney)

 

 

Worst. Bug. Ever.

I had an email today entitled "Worst Bug Ever" -- it seems that the "Donate now" link at World's Simplest Code Generator (javascript edition) was not actually functional.

This was caused by a very tricky technical problem that we in the bit-shuffling industry like to refer to as "Copy Paste error." I'd copied the code for that button from the earlier 'Classic ASP' version of WSCG. And i guess i never once actually clicked on it, to test the damn thing.

It's sad to think that maybe, had that link been correct, the "World's Simplest Code Generator" fortune would be massive by now.

Not to worry -- I fixed the link, at the same time as said person used the donate now button on the old WSCG page, to peel off some dosh and send it my way.

However, once my awesome supporter had made his donation, he immediately 'complained' that the web site was broken, because the message 'Donations to date: $10' didn't update automatically.

I think it's fixed now. But some decent load testing is in order, and that's where you come in. It'd be swell if a few thousand people could organise to simultaneously donate amounts between $1 and $1000. We also need to do some boundary checking, so it would be appreciated if one of you could try donating increasing amounts starting at $1000 dollars, and doubling each time, until an exception occurs. Then back track and perform a binary search until the exact threshhold is determined.

Kthxbye.

 

IT Industry Revolutionised By Labour Saving Device

the new button that is putting system administrators out of work

Information Technology departments face global staffing cuts thanks to a staggering new invention that is taking the hard work out of IT.

The 'self-clicking' "next" button is set to revolutionize how computer users 'Get Things Done' -- but a wave of fear is sweeping an industry facing wide spread redundancy.

System Administrators are expected to be the hardest hit, with over 90% of their duties now offloaded to the clever button.

the new button that is putting system administrators out of work

"This is a direct strike at the very heart of our profession," said James Curl, president of the commitee for SysAdmin Advancement. "Our members are deeply concerned. Many of them feel that this is undermining a skill that, in many cases, took years to develop."

The button, available in forthcoming hot fixes to Vista and XP, has recruitment firms recommending that now is the time for many IT 'professionals' to start broadening their skill base. "If you're a System Administrator," said Michael Jones of RecruitingPlusForce, "or if you're a Network Administrator, a Database Administrator, a Security Administrator, a Web Administator... basically if you work in IT and have the word 'Administrator' in your title, then this device is the wake up call you've been waiting for."

A developer we interviewed said that he was not personally worried about the invention. "There's two types of people in IT," said Eric McCall, "There's people who tell the computer what to do. And there's people who do what the computer tell them to do. It's only the second group who have anything to worry about. Well, I'd better get back to it. This coffee isn't going to drink itself... yet"


(Sorry sysAdmins... that one was dedicated to experienced Next-Clicker Ben Parker (C; )

 

An Open, Federated Award Ceremony

web2.0 has its share of badges

I had this wacky idea... a useless idea, but maybe an interesting one to think about, just as a casual thought game, if you really apply the old grey matter.A kind of distributed badge service -- like twitter, but for awards.

You are familiar (I damn well hope) with Stack Overflow, the site where programmers ask questions, give answers, and vote on questions and answers.

works on my machine

Two important parts of the way users interact with the system are 'reputation' points and 'badges'. What I'm interested in today are the badges.

The badges on stack overflow are largely inspired by xbox live gamer cards. But all of this is really a product of Pavlovian psychology/Skinnerism -- Not to mention the pre-psychiatric system of 'war medals' (Napoleon tells us: "A soldier will fight long and hard for a bit of colored ribbon" -- only he says it in french, so he kind of mumbles it.)

Now -- think about twitter for a moment: it's a kind of distributed conversation, where you talk to anyone who'll listen (whether you listen to them or not) and you listen to anyone you're interested in (whether they listen to you or not).

works on my machine

Combining the two ideas together, i've been thinking (for no good reason) about a kind of distributed awards program, where people give and receive (maybe by nominating and voting on) awards to others, to encourage behaviour that fits an individuals view of what behaviour is best.

In this idea, you can only accept an award if you're subscribed to the person/institution who gives that award.

So, if you love greenpeace, you'd happily accept a 'rainbow warrior' award from them. If you're a republican, you probably wouldn't accept a 'biggoted halfwit' award from the democratic party.

If you're a fan of... say... (what's some modern band? ah yes) Mungo Jerry then you'd probably be thrilled to accept an award for 'biggest fan of mungo jerry'.

Awards only have meaning if you trust the person who gives them. (A given award would de-value quickly if given out too quickly, such as the awesome works on my machine badge' or the all-too-common 5 star awards' from a download site, that dowwnload sites caught handing out too freely a few years back (link missing, sorry... anyone?).

flair

And maybe -- just maybe (it's only a thought game) -- other people's badges only appear at half-size, unless you subscribe/accept the giver of the badge.

So if you are viewing the Barack Obama's profile, then his 'president elect of the united states' badge is only half-sized to you, since you're not a subscriber to the united states democracy. But fidel castro's Cigar Chompin Legend badge appears full size because you subscribe to the institution for 'Cigar Chomping'.

Flair. Bling.

And the point of all these crazy awards would be to display them on your blog, or your mysite, your facebook, or perhaps even your resume.

Resumes are an interesting point -- this could be one part of the way that qualifications and certifications are actually dealt out. I'd be awarded a bachelor of engineering from an institution I care about. If I pass the right exams with microsoft I'd be issued the relevant badges.

All badges are of course 'click to certify' -- patent that, my son.

I'm thinking the 'openbadge' protocol, for federating the brokerage of such awards would be excellent. In web 3.0 it would be built on minimalist rest+json+microformats, and within 'enterprise' it would use the WS-(death)* plus federated-certificate-chain-hierarchy-taxonomies-for-authorative-something-etc.

My initial idea for this, by the way, was as an idea entirely within a large enterprise. In a big company I know they have sharepoint and they also have certification systems (for health and safety, and for other more rigorous disciplines). I thought to myself it would be nice if departments within the corporation could grant specific certifications to individuals, that were then displayed on that user's 'mysite' in sharepoint. Naturally, i want the whole world to get involved, not just a few lousy employees.

The internet has had 'badges' since the very early days -- so why not share them around somehow... any thoughts?

 

3 differences between 'Small Business' and 'Enterprise'

Part A:

  1. Under the covers, a "Small Business" is usually run by a random collection of access databases and excel spreadsheets that are poorly implemented, terribly managed, and provide meaningless results.
  2. An "Enterprise" is the same thing, but includes a batch file which checks if the other systems have crashed, and then restarts them.

Part B:

  1. In a "Small Business" the random collection of access databases and excel spreadsheets are kept around because They Get The Job Done.
  2. In an "Enterprise" the random collection of access databases and excel spreadsheets are kept around because they are jealously guarded by cranky middle managers who treat them as the precious jewels of their tiny land-locked fiefdoms, deep within their meaningless cubicle kingdom.

Part C:

  1. In a "Small Business" the random collection of access databases and excel spreadsheets were written by the business owner, as he or she grew the business.
  2. In an "Enterprise" the random collection of access databases and excel spreadsheets were written by idiot-nephews of dysunctional middle managers and are maintained by spineless, highly-paid consultants who should know better and will be first against the wall when the next round of redundancies arrive.

What did I miss?

 

How important is the problem of whether or not P=NP?

'The question of whether P=NP has been occupying researchers since these two sets were first defined, having become the greatest unsolved problem in computer science...'
from Alan Turing: Life and Legacy of a Great Thinker

How important is the problem of whether or not P=NP?
'Does P = NP? This is undoubtedly the most profound question in computer science...'
from: Tutorial: Does P = NP?

How important is the problem of whether or not P=NP?

'The relationship between the complexity classes P and NP is an unsolved question in theoretical computer science. It is considered to be the most important problem in the field...'
from Wikipedia Article on 'P=NP' problem

How important is the problem of whether or not P=NP?

[If you can show that P=NP, then] 'most cryptographic algorithms are basically useless'
from comment by Charles on November 15, 2008 06:13 PM

How important is the problem of whether or not P=NP?

'The Clay Mathematics Institute has offered a $1 million US prize for the first correct proof.'
from Wikipedia Article on 'P=NP' problem

OMFG! They offered what!?

'The Clay Mathematics Institute has offered a $1 million US prize for the first correct proof.'
from Wikipedia Article on 'P=NP' problem

I thought that was what you said.

One MILLION dollars!

Problems sure can't get any more profound than that!

one MILLION dollars!

 

TimeSnapper hits the local press... and more on Iceland

Business Software Idea is a snap in the (brisbane paper) City News

Thanks to an eagle-eyed journalist, there was a great write up about TimeSnapper published this week in Brisbane's main inner-city newspaper "City News".

It was really exciting to be involved in this. The photo shoot was good fun, and luckily for me we were playing a "wear your suit to work" prank that day so I look flasher than I normally do.

The laptop in the photo belongs to Joseph Cooney -- he is probably writing a blog article just now, boasting "My laptop was in the paper this week." Damn show pony.

Whether or not this will lead to a massive influx of new TimeSnapper customers, I can only wait and see. It ought to hit the right demographic, with its inner-city distribution: these desk bound labourers are the perfect target for 'the consultant's best friend'. Fingers crossed, of course.

More on Iceland...

I get most of my news about Iceland from a site called Iceland Review. The site used to be all about the latest upcoming art or fashion shows in Iceland -- but is increasingly about the economic disaster. For example, the following statement:

"32.5 percent of participants, ages 18-75, have considered moving away from Iceland because of the current economic crisis"

This week they raised the local interest rate from 12% to 18%. Ouch!

Atli and his family are holding up very well, I think. With his awesome programming skills I think he's already got a few interesting options on the table.

 

MVC Zen Garden

I'm tinkering with Asp.net MVC in my un-spare time now. (top work Phil and team!)

And I have a recurring, whacky marketing/design/envangelisation idea:

The MVC Zen Garden

If you've installed Asp.net MVC, then you'll know that when you open Visual Studio and select:

"Create Project > MVC Web Appication"

...you get a rudimentary sample application.

It's blue. Simple. Nice enough.

I'd love if there was a website, modelled after CSS Zen Garden, where designers could offer alternative CSS files (with images) for your default Asp.net MVC application.

So the starting look of the MVC Zen Garden page is the default asp.net mvc sample app, something like this:

It is exactly like the default MVC app, but it offers a range of styles to select.

Once a style is selected you can download the stylesheet and images for that 'skin'.

Hence, the user can select way out options like 'default red':

And I imagine that there may be some other slightly more powerful creations.

Perhaps, given infinite time and unlimited budget, some team of powerful 'creatives' may be capable of unleashing what I think of as the ultimate expression of mankind's ability to wield superiority over the electronic pixels, and achieve a vision of artistic perfection not unlike my own dream theme, a skin I like to call, 'Slave Leia':

And in time, other great thinkers of our age may be capable of imagining more extreme CSS-based modications.

What do you think? MVC Zen Garden... thumbs up or down?

There could also be a visual studio plugin that lets you update your own sample app in one click, to any of those available at MVC Zen Garden.

There's the idea.

I think it's solid. And simple. And has a growing market.

I'd implement it but I am swamped in crazy ideas of my own.

I think that you ought to implement it -- or failing that, petition your local Hanselmember

 

Is Corporate IT a form of emotional abuse?

There's a government ad posted all over the insides of many brisbane buses at the moment, that describes some tell-tale signs of an abusive relationship.

I took a dodgy photo of it with my camera-phone, in order to try and get this idea across...

Can you see signs of abusive behaviour in your relationship?

In case you can't read it, here's what it says:


Can you see signs of abusive behaviour in your relationship?

Restricting where she goes...Monitoring her calls...Telling her what to wear...Controlling what she spends...

I think it's very easy to draw a parallel between each of these signs, and the behaviour of a typical Corporate (or Government) IT department.


Can you see signs of abusive behaviour in your relationship to the IT Department?

Abusive PartnerAbusive Corporation
Restricting where she goes...Internet site filtering
Monitoring her calls...Email monitoring and phone logging
Telling her what to wear...Standard Operating Environment, corporate desktop-background, corporate uniform.
Controlling what she spends...Tiny size limits on mailboxes, highly bureaucratic purchasing process,
draconian requisition restrictions and, worst of all, lousy pay.