This eastern I went camping with my family, just like every year. However apparently this is the earliest Eastern in my entire life, unless I live for another 140years. So the powers that be decided to celebrate this occasion by bringing us all possible winter-weather. We started with rain, as in one continuous pour which started on Thursday and ended on Friday afternoon. Next we got freezing temperatures which managed to knock out our water supply, toilets and showers. To finish with snow blizzards and somehow in between lovely sunny, albeit cold, weather where we could sit and read.

I love Eastern!
For my parents 40th wedding anniversary my brother, my sister and me prepared dinner. We made, amongst others, ravioli filled with red beet and goat cheese. When we had enough ravioli we still had some pasta dough and beet filling left so we experimented a bit further.
In the end we created Pink Pasta, there must be a giant market for this, just look at it:

Sunday evening after cooking a dinner for friends my beloved lady friend, bastet, had disappeared. She is the master of hide and seek so at first I assumed she was hidden somewhere in my spacious loft. After searching all known and possible hiding places I figured she somehow had gotten out. I have a secluded courtyard which has multiple exits, but they all have doors. So I hoped she somehow escaped when my guests left and was hiding out in the courtyard.
Alas! I searched the courtyard two times that night and once the next morning but no sign of her. On Monday evening I planned a search and rescue mission together with the owner of the cat. While I was delayed she discovered Bastet outside the building hiding under the bushes. When we brought her up and let her loose again in my house she limped heavily and did not want to eat. So we brought her to the Vet the next morning and apparently she tried to fly and failed. Our guess is that she jumped out of the kitchen window at 20m above ground.
She has spliced her palate and broke her hip in a way that separated her hip from her spine. But according to the vet these are common injuries for non-flying cats and she should recover fine, although they’re going to operate here hip/spine problem. I just got word that she started eating again so the palate injury is healing very quickly. Tomorrow she’ll be operated and I hope to see her tomorrow evening.
I just received an email from Google inviting me to take part in The Google Summer of Code(tm) 2008:

Earlier this year the Mapbuilder community came up with some GSoC ideas and by kind permission of the Openlayer community did a joined ideas list with OL. I volunteered to Mentor a few of those. The Openlayers/Mapbuilder/Mapfish ideas list is part of the umbrella entry of OSGeo.
This message means that we made it to the GSoC, apparently over 500 organisations/projects applied and only 175 made it. I’m happy we are one of those and I hope we get some enthusiast students who will extend OL/MB/MF in ways beyond our dreams, or at least more or less as the ideas describe.
As I explained earlier, there are some interesting challenges when designing multi-touch multi-user applications. Take for instance the use of the table in a command and control center during a disaster. In this scenario there is a map which displays the area where the disaster has occurred. Additionally you can view the real-time location of different emergency vehicles. It could be that the chief fireman is interested in tracking a particular vehicle moving outside the current view, where as the rest of the staff around the table want to keep the current view. Right now the processes inside those command and control centers do not resemble the described scenario. For a starter because they don’t have a table.
There is an area though where you have similar scenarios: Gaming, especially RTS and certain simulation games. You need to keep track of different units and at the same time require a detailed zoom level which will exclude certain units. Although these games are rarely, if at all, multi-user in the sense of multiple users behind 1 computer at the same time, it does provide some interesting ideas. This is a screenshot of Transport Tycoon (from here):

It has the main mapview and two smaller mapviews. One with an overview of the entire area and one that tracks a train. Using mini-maps you could track particular vehicles are keep an eye on a specific location. Also you can use it to look something up on a different part of the map, while the main stays in view for the others. So the tug-of-war action, as described earlier, suddenly is possible without the tugging or warring bit.

One user is still zooming in, where as the other user has his own mini-map where he can drag the map at the same time. If anything interesting occurs in one of the mini-maps it can become the main view, where as the former main view becomes a mini-map itself.
At work we decided that it would be nice to have a blog which would inform the world of what we’re up to. However we quickly realized that having yet another blog wouldn’t work, especially if people already have their own blog. Still a central page which shows our blogs would be nice. Luckily there are planets which aggregate multiple blogs. A quick search gave me venus, which takes a bit of work to get it going under windows but once it runs it’s easy to configure.
I’ve added the current 4 blogs of colleagues and I’m waiting for a company server to put the planet on.
For Planet Essener I needed planet-software. Venus seemed to be easy to setup so I downloaded it. Somehow firefox produced a 0 byte zip file and also the tgz contained a 0 byte file inside. Wget-to-the-rescue solved it however.
Venus is written in Python and for windows you need to install the python-windows extensions. There is a very useful test script included in the Venus release that will tell you what you need to get extra filters and theme-engines running. This produced a series of errors and the more software I installed for the extensions the more errors occurred.
They looked like this:
======================================================================
ERROR: test_apply_filter (tests.test_apply.ApplyTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Documents and
Settings\steveno\workspace\venus\tests\test_apply.py",
line 100, in test_apply_filter
splice.apply(self.feeddata)
File "C:\Documents and
Settings\steveno\workspace\venus\planet\splice.py", lin
e 122, in apply
output = open(output_file).read()
TypeError: coercing to Unicode: need string or buffer, NoneType found
They all had a reference to a file in them. Since I had installed it in My Documents I figured that there was a problem with spaces in the path. (I realized this only after I sent a mail to the list). Installing it in c:\venus solved it. Later I got this mail from James Holderness who gave me a solution for the spaces:
I’ve had Venus running on Windows in a path with spaces. What I did was use
the 8.3 compatibility filenames everywhere in config.ini. For example, if
you need to refer to a path at \program files\venus you’d use path
/progra~1/venus. Also before running planet.py, I’d do “cd \progra~1\venus”
which ensured that my current directory was also space free. I think that
was all there was to it.
Once it is installed it is very easy to configure. I even managed to create a tag-filter so we can filter out personal posts from the various blogs 
Working with multi-user tabletop computing produces some interesting problems. On our mapping application we discovered that every now and then multiple people want to control the map. Resulting in a tug-of-war for control over the map. On multi-user environments like the DiamondTouch it could be solved by a simple first come first serve principle, where all input of other users is ignored. However this cannot be used by single user environments like the FTIR-based tables and the Surface.
On a typical multi-touch application zooming is done by putting two fingers on the surface and increase/decrease the space between those fingers (pinching for the iPhone adepts). What happens is that the two fingers form the corners of a rectangle. If you move you fingers the box changes size, this can be used to calculate the zoom-factor. The result for the user will be that he zooms in or out on the image he is seeing. In theory he could select the corners of the object he wants to magnify and drag those corners to the corners of the table, enlarging the object to the size of the table.

However if there is another user who wants to drag the image a bit to see a different part this will give a conflict. The single-user environments cannot distinguish between the various users and will only see 3 pressure points on the table. The chances are that the software still assumes that a zooming operation is going on and it will incorporate the extra input in the rectangle. So if the new user starts dragging the map, he might accidentally decrease the size of the rectangle the first user is using to zoom in. So instead of zooming in or panning, the application will zoom out, confusing both users.

Obviously this is not the desired behavior. Since there is no way to distinguish the different users, the people around the table will need to take turns controlling the table. However it could be that for some reason you really want to take an eye on a specific area. So you want to keep that area visible all the time. The easiest solution would be to make sure that area never leaves the viewing window and as such limit the movement of the map image by other users. There is a much nice solution which is inspired by classic games as Transport Tycoon. More to follow …