Monday, October 16, 2006

Huston

David stretched out his hands and grabbed at the sharpened edge of the art-deco coffee table. His vision slightly blurred by a casual glance at one of the multiple sources of light that matched the coffee table in style and color. He commanded his leg muscles to propel him upwards. “Height is good,” a thought flashed through his synapses. Reaching the desired level his muscles stopped automatically. “Now hold steady! Let’s have a look…” Suddenly there was a flash of color at his peripheral vision. It was coming from a TV set at his right. With a slight movement of hips he adjusted his posture now heading towards the plasma screen. “Walk!” he commanded and his legs followed with his hands now only slightly caressing the wooden surface varnished to perfection. “3,” a number flashed in his mind while he approached the far edge of the table. “2,” his fingers flowed along the surface without friction. “1,” a step separated him from the void that lay between the table and the TV.

With no further thought, David took his first step.

Sunday, October 15, 2006

Consultants of swing

David developed some bugs last week so I had to hire some consultants to help me fix the problems. As always outsourcing turned out to be an fascinating experience. Apparently The Consultants work through a strict checklist before they actually begin debugging.


  • Refer the project to another consultant.

  • Do nothing.

  • Express amazement at progress.


So David spent two days in a hospital to make us feel better I guess. He displayed an remarkable ability to self debug! I know what you are thinking: “how could I do it in my current project? I’m way behind schedule and I haven’t yet begun writing those pesky test suites…” Well, the truth is, don’t really remember putting that in, but I can’t have mom take the credit now can I?

Who cares, I’m just happy David is all better now!

Wednesday, October 04, 2006

Handling

One of the most important aspects of interacting with the environment is shape recognition and object handling. Not surprisingly many of the so-called didactic toys supposedly teach your baby how to distinguish, grab and hold various shapes.
But simple cubes and pyramids are easy. The most difficult shapes are food items. You see it’s easy to recognize, grab and bite a sphere (provided it fits in your mouth!) but food items are more interesting.
I was watching David eat a cookie. This particular cookie is square shaped and as such is easy to recognize and hold. With each successive bite though – it changes shape. It becomes a square with a bite taken out, then it’s a kind of a triangle with a jagged edge, next it becomes almost a trapezoid… The wonderful thing is – it’s still a cookie and David has no problem understanding this. I know it’s common sense to us but that’s because you’ve learned that food items rarely change into non-food items just because you’ve taken a bite (interestingly, David does not recognize a banana without the peel).
An item that changes shape presents a difficult handling problem. You can teach a robot to hold an apple but that won’t help it hold a cherry. David must continually modify his gripping technique and be attuned to dangerous cookie fault lines. One false nip, one careless pinch and the cookie crumbles and escapes to the floor! Still, utilizing the Failure Driven Approach™ David more or less successfully eats a cookie by himself. A breathtaking testament to the triumphant progress our project is making. Go David go!

Friday, September 29, 2006

Interfacing the environment

I’ve been reading Joel Spolskys User Interface Design for Programmers which is a useful paradigm shift for most programmers and it got me thinking…

I have quite a far amount of trouble keeping David from pressing the reset (and off!) button on my computer. Why is that? Why is he so interested in pressing that particular piece of plastic? He certainly has no idea of what it does or that it does anything.

It’s because the button invites pressing. It’s designed by professionals to look like something that can or rather should be pressed. That’s why David feels the need to turn knobs on the oven, handle the remote control, open closed drawers and rarely plays with his toys.

Toys designers got it all wrong. It’s not about the vivacious colors or the high pitched sounds. It’s about usability. So I’m off to buy some toys with interfaces!

Tuesday, September 26, 2006

A random thing you will want to, but probably shouldn’t do as a newfangled dad #8

Let your baby get a hold of rattle.

Monday, September 25, 2006

Home alone

So mom finally left for work and we’re home alone. This is a part of a cunning strategy to prepare for the inevitable. It’s been almost a year into the development of David and the time has come for a first candidate release. RC1 will be deployed in the local kindergarten in two weeks, which makes this the final push to locate and resolve any outstanding bugs or issues. I need time and concentration and that means we had to get rid of mom.

With mom out of the way I can finally start working on a few minor adjustments I’ve been hacking at for weeks.


  • Self maintenance, enabling self drinking

  • Self maintenance, enabling self feeding (a toughie)

  • Self awareness, preventing head bumps

Thursday, September 21, 2006

Sokoban

This week David started to walk around with a help of a cardboard box. He neither wants nor need any help from his parents and all the trolleys and walkers we bought are resting idly in the corner. So we’re having fun playing sokoban all day long.

Only there’s only one box…

And there’s no single area you need to place the box…

And you have no control over the sokoban…

Tuesday, September 12, 2006

The Ministry of Failure

It’s interesting to observe emerging behavior in David, seeing his ideas and solutions not provided by me or mom. You begin to see how much your life is constrained by common sense, how your vision narrows with the accumulation of knowledge. It’s inspiring!
David’s learning path is not so much of following guidance – something we are taught throughout our lives. He trusts no authority and tests even the unlikeliest theories. He might like the taste of a squashed banana – but he will try to see if it tastes better if he squashes it himself, with my Logitech (cordless) mouse, while leaning against the TV and singing...
David’s an avid believer in The Ministry of Failure. To become better, you need to fail. To quote Niels Bohr: »An expert is a man who has made all the mistakes, which can be made, in a very narrow field.« Perhaps this is the next development paradigm that will surpass TDD (and if so – I claim copyright!). I call it the Failure Driven Development.

Monday, September 04, 2006

Legacy code

It’s next to impossible to modify baby code. Once you program something, it’s there forever. Not unlike any legacy code you’re stuck with in your firm.
David was programmed to call me and mom “tada”. I’m not quite sure how or when it happened, but now it stuck. And no amount of role-playing and signaling “mama” changes anything.
So until David upgrades to 2.0 “tada” it is. You see with upgrades you get to shadow certain base methods, but the original programming will stay. So be very careful around your baby. Don’t say things you don’t mean. Don’t say things you don’t want repeated at the most inappropriate circumstances. Don’t say anything because you’re frustrated. Don’t say things you might regret later. Your baby understands more than you imagine!

You could be stuck with “tada” for a year or two…

Thursday, August 31, 2006

OT: Daydream in blue

Recently net’s crackpots were stirred by news about a little company called Steorn. Apparently Steorn invented a device that produces free energy.
That’s right, free energy – and I quote:

  1. The technology has a coefficient of performance greater than 100%.
  2. The operation of the technology (i.e. the creation of energy) is not derived from the degradation of its component parts.
  3. There is no identifiable environmental source of the energy (as might be witnessed by a cooling of ambient air temperature).

While 1. is meaningless and 2. is debatable - 3. is just too vague to approach. Is there an outside source of energy or isn’t there? Or to put it more simply – where’s the little hamster at?
I guess insolitology needs an update.

Wednesday, August 30, 2006

Who's driving this project?


I’ve been noticing subtle shifts in project David’s scope and direction. While I’ve been trying to steer things in a more intellectual direction, a tranquil state, making things cool, something was pulling the project the other way. The activities were getting physical, more kinetic. We stopped looking at stuff – stuff was being thrown now. We stopped pointing at stuff and twaddle – we crawled, walked, climbed and grabbed.
Somehow David took over. I guess this is how all things come to pass – you turn around and it’s there. Yesterday you were in control, today you’re just along for the ride.
Still I am the current project manager. I am responsible for delivering deliverables on time, meeting project goals and staying within the budget. I ain’t giving up just yet! Not while you’re under my roof…

… and that’s how you turn into “dad”.

Tuesday, August 29, 2006

Teeth counter #1

Teeth count is now at six!

Sunday, August 27, 2006

A random thing you will want to, but probably shouldn’t do as a newfangled dad #7

Teach your baby how to climb stuff.

Saturday, August 26, 2006

Remoting

As of today David can be operated by remote control. I don’t mean he listens to voice commands or anything. You operate David by placing the TV remote control at the desired location and just hang around.
Special sensors (ESP) enable David to immediately recognize an available remote control is within his domain. He then proceeds to locating the device (usually takes about 12 seconds) and then closes in for the grab. Once the device is acquired it is promptly put in the mouth and chewed. Unless of-course the batteries fall out – then those are put in the mouth and chewed.
In any case, remoting is a quite useful feature as it enables us to “program” David to do various tasks, such as climbing onto a chair, couch or a bed. Yey!

Thursday, August 24, 2006

Upgrade

In a few short months we will upgrade David to version 2.0. This will be the first mayor release since the beginning of the project. In light of this paramount event I've equiped myself with the new operations manual for babies v2.0.
If you thought managing baby was hard, you’ll never make it in phase two. Everything you think you know is useless, anything you actually do know has no bearing. It’s Alice through the looking glass all over again. And you better take the Red Queen seriously – you need to run just to stand still.

Saturday, August 12, 2006

David's coming back!

Although we talked each day, although i could see him via video-calls, although I was almost there – it was not enough. It’s like using remote connection, the resolution is all wrong, the colors are missing and everything is slow.
That got me thinking. Will all this technology that we’re trying to reinvent – really help us communicate faster, cheaper, longer? Or will it finally enable us to travel remotely and stay home?

Monday, August 07, 2006

Void

David went on a trip with mom. So this week all his methods return void...

Friday, August 04, 2006

OT: My friend needs the internet

This is both funny and sad. In the 21st century, the future of all my childhood SF movies, with most people talking about broadband, net neutrality and web2.0, my friend lost his internet connection.
He was trying to switch his ISP (i did the same last year) and ended up in a no man's land between the bullying former ISP's parent company (i know!) and the incompetent current ISP (who now claim to be able to connect him by the end of next month).
I hope my netless friend gets back to the future soon as I miss having him around. But then again, internet is a big place. Perhaps there's a 2.0 version of him floating around...

Sunday, July 30, 2006

Implementing interfaces (IThrow)

The most important aspect of baby development is the correct and timely implementation of various interfaces in the Human.Babies namespace.

David has just implemented the IThrow interface today.

namespace Human.Babies
{
public interface IThrow
{
void Throw();
}
}


Note that the method accepts no parameters. There is no way to specify the direction, force or the object of the operation.

Friday, July 14, 2006

Aibo vs. David

I won’t even pretend I have time to blog anymore. David finaly implemented the ICrawl interface! This means a sharp decrease in time I have available to blog (or do anything!)...

...and increases the chances of »someone« pressing the wrong button. I found that MSWord auto-recovery functionality doesn’t always get you what you wanted.

David has been developed to the point of being compared to other top products in the field of AI. Here’s the technical specification part of the Aibo vs David comparison table:

Aibo Ers-7 (mind service pack 2) vs. David (Comparison table)

AiboDavid
Development time6 years8 months
CPU64bit RISCBrain
Main Memory64MB SDRAMNeural net (unknown capacity)
Additional MemoryFlash, PSMNone
IOCCD camera, stereo microphones (2), speaker, heat sensor, infra-red range finder, acceleration detector, touch sensors, electric static sensor, pressure sensor, vibration sensor…Eyes (2), ears (2), mouth, heat sensors, pressure sensors, taste sensors, acceleration sensors, balance sensors…
Power sourceDC7.2V (Lithium ion battery)Food – any
Power consumption1.5 hours – fully charged3.5 hours – fully fed
Dimensions (l, w, h)319 x 180 x 278 mm (not including tail)120 x 170 x 750 mm (not including hair)
Weight0.3 kg10 kg
Operation temperature5-35 ºC37 ºC