Saturday, April 28, 2012

Child-In-Front Tandem

I started drawing up a new tandem. The tandem takes a captain at the rear and a child stoker at the front. It is meant as a replacement for the stokid python, and should solve one mayor problem: with Vincent in the front we'll be able to watch over him.

Thursday, April 12, 2012

Awaitable Queues Part 2: Unbounded Awaitable Queue

As a first attempt to write an awaitable queue, the queue is unbounded. The producer side of the queue is then synchronous and we can concentrate on making consumer side awaitable. The code for the can be found at the end of this post.

Wednesday, April 11, 2012

Awaitable Queues Part 1: API

This is an experiment to see how an efficient asynchronous queue could be implemented. The natural way to implement an asynchronous queue would be using Tasks. But using Task objects can be wasteful as this would mean one or two Task & TaskCompletionSource objects allocations per queued element. Allocations are fast, but that is only because payment for allocations is done down the line when the garbage collector needs to collect the objects.

The await keyword of c# can be applied to any object (not only Tasks), and because these objects can be reused it should be possible to build a less wasteful version of an asynchronous queue.

Saturday, April 7, 2012

Accident on the Stokid Python

Missing spokes....

We are having a pause riding the stokid as we got into an accident (20/3/2012): Vincent was racing his "motorcycle" on the rear of the bike by lying low over his steer. To be even more "aerodynamic" he lifted his feet up to rest on the seat stay tubes.

Unfortunately his right foot got taken by the turning wheel and he got painfully stuck between frame and spokes. His leg was so pressed in, that I had to cut the spokes away from the wheel to get him loose - luckily a gardener passed by and the man had the right tools on him. He kindly transported us to the hospital.

Stokid Python painted