Archive for the ‘Personal’ Category
February 26th, 2008
THE QUARTERLY GRAND tour of company introduction for new Bang & Olufsen employees was up today. Having started at Bang & Olufsen just this January, I attended this all day event.
The introduction day included various speakers from the executives hall, a tour, and visiting various technical experts that did a “show and tell” on their respective area of expertise. All in all It was a really great and informative day.
Three things stand out from the day as having made huge impressions on me.
- The level of production quality control.
- Trying a BeoLab 3 “blind” sound test.
- A BeoLab 5 sound demonstration.
The production facilities were quite impressing, but especially the resources put into quality control was staggering! The company motto is “perfection, no less” (although in more words in the official slogan ;-)) and I begin to understand that they really mean it.
We attended a blind test where a curtain hid the speakers being used to play different types of music. I seriously would have bet my car on, that it could not be that same speakers playing both the classic piece and the rock music. The sound image portrayed by the speakers was so different, that I (as well as the other attendees in the group) was absolutely chocked to see two tiny BeoLab 3 being unveiled behind the curtain. Impressive and great fun.
The tour also included a stop in the Bang & Olufsen show room. The room featured a fully equipped home theater with a BeoVision 4, four Beolab 5 speakers, DVD player and CD player and then a Beo4 remote-control for controlling everything (including the lights, window shades, the door and the elevating projector screen). And whau! The sound coming out of those BeoLab 5 speakers was just amazing. Not matter what kind of music was played, or at what volume, they just played perfectly! As others have discovered before me no distortions are audible even when the volume is cranked to “eardrum popping levels”.
I was perfectly happy with my NAD T743 amplifier and my old Dali 104 speakers before today – sigh…
February 18th, 2008
THE HEXDUMP MAN page, I find, is not the best written example of an applications manual. I recently had a task of finding the addresses of filename encounters generated when a bunch of files were written to an uncompressed jffs2 partition. Normally I’ve been sticking to the simple hexdump -C <device> use, but grepping filenames from the output is not applyible because of the line breakings.
$ hexdump -C /dev/mtd0 | grep count
00092df0 63 6f 75 6e 74 31 32 2e 64 61 74 ff 19 85 e0 02 |count12.dat.....|
000bfe80 00 00 0e 0b 08 63 6f 75 6e 74 31 33 2e 64 61 74 |.....count13.dat|
000c7f10 63 6f 75 6e 74 30 39 2e 64 61 74 ff 19 85 e0 02 |count09.dat.....|
000f9a80 ff 40 62 1d f9 72 7e e3 63 6f 75 6e 74 31 31 2e |.@b..r~.count11.|
000ffb90 63 6f 75 6e 74 30 39 2e 64 61 74 e0 02 00 00 00 |count09.dat.....|
000ffd80 0a 00 00 00 0b 0b 08 63 6f 75 6e 74 31 30 2e 64 |.......count10.d|
00115e20 bd 6e 58 e6 63 6f 75 6e 74 30 37 2e 64 61 74 ff |.nX.count07.dat.|
0012ebe0 63 6f 75 6e 74 30 38 2e 64 61 74 ff 19 85 e0 02 |count08.dat.....|
0013fcc0 00 08 0b 08 63 6f 75 6e 74 30 37 2e 64 61 74 e0 |....count07.dat.|
0013feb0 01 00 00 00 08 00 00 00 09 0b 08 63 6f 75 6e 74 |...........count|
0014af40 fa ce 22 36 63 6f 75 6e 74 30 34 2e 64 61 74 ff |.."6count04.dat.|
00163d00 63 6f 75 6e 74 30 35 2e 64 61 74 ff 19 85 e0 02 |count05.dat.....|
0017fbc0 00 00 00 05 0b 08 63 6f 75 6e 74 30 34 2e 64 61 |......count04.da|
0017ffb0 00 07 0b 08 63 6f 75 6e 74 30 36 2e 64 61 74 e0 |....count06.dat.|
00180070 16 b6 2c e3 32 2e ad 46 63 6f 75 6e 74 30 31 2e |..,.2..Fcount01.|
00198e30 75 8e d7 96 63 6f 75 6e 74 30 32 2e 64 61 74 ff |u...count02.dat.|
001b1bf0 63 6f 75 6e 74 30 33 2e 64 61 74 ff 19 85 e0 02 |count03.dat.....|
001bfb00 0b 08 63 6f 75 6e 74 30 31 2e 64 61 74 e0 02 00 |..count01.dat...|
001bfcf0 00 00 02 00 00 00 03 0b 08 63 6f 75 6e 74 30 32 |.........count02|
001bfef0 63 6f 75 6e 74 30 33 2e 64 61 74 e0 02 00 00 00 |count03.dat.....|
Wanting to hexdump to produce an output more suitable for searching, I read the hexdump man page where it is evident that hexdump provides flexible output formatting.
-e format_string
Specify a format string to be used for displaying data.
The short description is elaborated in a later section
Formats
A format string contains any number of format units, separated by white-
space. A format unit contains up to three items: an iteration count, a
byte count, and a format.
Okay, three parameters of which two of them are optional. Regarding the non-optional format specifier, it must be double quoted.
The format is required and must be surrounded by double quote (" ")
marks. It is interpreted as a fprintf-style format string (see
fprintf(3)) ...
Okay. Not so hard. I know fprintf syntax. So what configuration am I optionally skipping? The first parameter is iteration count.
The iteration count is an optional positive integer, which defaults to
one. Each format is applied iteration count times.
So, what does the iteration count actually do? Repeat the same printout x number of times? That of course would be a daft thing to do. Not being a native English speaker, I reassured that iteration did not have any dualistic meaning unknown to me. Dictionary.com defines
it·er·a·tion
- 1. the act of repeating; a repetition.
- 2. Mathematics.
a. Also called successive approximation. a problem-solving or computational method in which a succession of approximations, each building on the one preceding, is used to achieve a desired degree of accuracy.
b. an instance of the use of this method.
- 3. Computers. a repetition of a statement or statements in a program.
Hmm, still not exactly clear on what iteration does. I’d better experiment to figure it out. Next optional parameter defines a byte count.
The byte count is an optional positive integer. If specified it defines
the number of bytes to be interpreted by each iteration of the format.
Huh? Byte count of what again? Does this relate to the amount of "%c"‘s and what-not I put in the mandatory part?. Experimentations will tell. The final details on the optional parameters are how to apply them.
If an iteration count and/or a byte count is specified, a single slash
must be placed after the iteration count and/or before the byte count to
disambiguate them.
That would be iterations or iterations/byte_count told in many words forming an obscure sentence?
Well, feeling armed for some basic hexdump formatting, I proceeded to do some experimentations.
$ hexdump -e "0x%08x" /dev/mtd0
hexdump: bad format {0x%08x}
What?! I took another look at the examples provided by the man page.
Display the input in perusal format:
"%06.6_ao " 12/1 "%3_u "
"\\t\\t" "%_p "
"\\n"
Hmm, and I write all three lines how? Or is it three examples? Tried the top line from the example. It worked, although of course not giving me the output format desired. Cos of the nature of the input data, the generated output actually didn’t make much sense, but now a little wiser I continued experimenting.
$ hexdump -e 8/1 "0x%08x" /dev/mtd0
hexdump: bad format {8/1}
Hmm, perhaps a double qouting is required before the “optional” parameters?.
-sh-2.05b# hexdump -e "" 8/1 "0x%08x" /dev/mtd0
Segmentation fault
WTF!? Near having a fury induced head explosion I resolved to Google. Seems that I’m not the only one having a hard time decoding the ‘-e’ description (even though the kind poster states that reading the man page is understanding hexdump). The apparent proper syntax is:
$ hexdump -e ' [iterations]/[byte_count] "[format string]" '
This was not the exact syntax mentioned in the man page, but I tried.
$ hexdump -e '6/1 "0x%08x, "' -e '"\\n"' /dev/mtd0
Hurraa, it worked. Having this figured out, the only thing left was to find out what the exact functionality of the iteration and byte_count parameters were? I wasn’t fully enlightened by the output, so a few more tests should reveal the purpose of them both.
$ hexdump -e '6/1 "0x%08x, "' -e '"\\n"' /dev/mtd0
0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
Hmm, six columns…
$ hexdump -e '4/1 "0x%08x, "' -e '"\\n"' /dev/mtd0
0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
Aha, so… iterations equals columns. Still not figured out the byte_count parameter though.
$ hexdump -e '6/2 "0x%08x, "' -e '"\\n"' /dev/mtd0
0x0000ffff, 0x0000ffff, 0x0000ffff, 0x0000ffff, 0x0000ffff, 0x0000ffff,
0x0000ffff, 0x0000ffff, 0x0000ffff, 0x0000ffff, 0x0000ffff, 0x0000ffff,
Perhaps the partial empty (erased) flash section was not the best example to learn from, so I created a file repeating the numbers 00 to 09.
$ hexdump -e '6/1 "0x%08x, "' -e '"\\n"' count.hex
0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005,
0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x00000000, 0x00000001,
0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007,
0x00000008, 0x00000009, 0x00000000, 0x00000001, 0x00000002, 0x00000003,
$ hexdump -e '6/2 "0x%08x, "' -e '"\\n"' count.hex
0x00000100, 0x00000302, 0x00000504, 0x00000706, 0x00000908, 0x00000100,
0x00000302, 0x00000504, 0x00000706, 0x00000908, 0x00000100, 0x00000302,
0x00000504, 0x00000706, 0x00000908, 0x00000100, 0x00000302, 0x00000504,
0x00000706, 0x00000908, 0x00000100, 0x00000302, 0x00000504, 0x00000706,
Aha, guess that(?) would fit the byte count description…
Having finally decoded the man page I set on to find a proper output. After some unsuccessful attempts, I googled for a hint to a solution. Eventually I found some indications that, to get the desired formatting, I should utilize some of the non-fprintf formatting options provided by hexdump. More man page decoding? No fucking way! Enough of this shit!
Having wasted precious work time, I abandoned hexdump and put together a little Lua script that would do the hex dumping and format the output to fit my requirements.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
| #!lua
--[[ Hex dump utility
usage: lua xdex.lua pattern file
example: lua xdex.lua "count%d%d.dat" file.dat
--]]
local debug = false
-- http://lua-users.org/wiki/LuaPrintf
printf = function(s,...)
return io.write( s:format(...) )
end -- function
local f = assert(io.open(arg[2], "rb"))
local data = f:read("*all")
--
-- Locate offsets of all pattern matching items
--
local offset_begin, offset_end = 0, 0
local items = {}
local index = 1
repeat
offset_begin, offset_end = string.find( data, arg[1], offset_begin+1 )
if offset_begin == nil then
break
end
items[index] = { offset_begin, offset_end }
index = index+1
if debug then printf("%08xh - %08xh\n", offset_begin, offset_end) end
until ( offset_begin == nil )
items[index] = { nil, nil } -- Terminate
--
-- Hexdump alike printing of results
-- (Inspired from test/xd.lua in lua5.1 distribution)
index = 1
local offset = 0
while true do
local s = string.sub( data, offset+1, offset+16 )
if s == nil or items[index][1] == nil then
return
end
if (offset+16) >= items[index][1] then
io.write( string.format("%08x ", offset) )
string.gsub( s,"(.)",
function (c) io.write( string.format("%02x ",string.byte(c)) ) end )
io.write( string.rep(" ", 3*(16-string.len(s))) )
io.write( " ", string.gsub(s,"%c","."), "\n" )
if (offset+16) >= items[index][2] then
index = index+1
end
end
offset=offset+16
end |
The output from the above script correctly finds 26 encounters of the input pattern, where the original grepping on the hexdump output would only discover 20 encounters.
$ xdex.lua "count%d%d*[.]dat" /dev/mtd0
00092df0 63 6f 75 6e 74 31 32 2e 64 61 74 ff 19 85 e0 02 count12.datÿ.à.
000abba0 0b 08 00 00 03 f0 42 2c 83 b2 2d 83 63 6f 75 6e .....ðB,²-coun
000abbb0 74 31 33 2e 64 61 74 ff 19 85 e0 02 00 00 10 44 t13.datÿ.à....D
000bfc80 00 00 00 01 00 00 00 0c 00 00 00 0d 0b 08 63 6f ..............co
000bfc90 75 6e 74 31 32 2e 64 61 74 e0 02 00 00 00 0d 00 unt12.datà......
000bfe80 00 00 0e 0b 08 63 6f 75 6e 74 31 33 2e 64 61 74 .....count13.dat
000c7f10 63 6f 75 6e 74 30 39 2e 64 61 74 ff 19 85 e0 02 count09.datÿ.à.
000e0cc0 0b 08 00 00 61 f7 3b 03 c4 12 57 53 63 6f 75 6e ....a÷;.Ä.WScoun
000e0cd0 74 31 30 2e 64 61 74 ff 19 85 e0 02 00 00 10 44 t10.datÿ.à....D
000f9a80 ff 40 62 1d f9 72 7e e3 63 6f 75 6e 74 31 31 2e ÿ@b.ùr~ãcount11.
000f9a90 64 61 74 ff 19 85 e0 02 00 00 10 44 ee 2d 30 6f datÿ.à....Dî-0o
000ffb90 63 6f 75 6e 74 30 39 2e 64 61 74 e0 02 00 00 00 count09.datà....
000ffd80 0a 00 00 00 0b 0b 08 63 6f 75 6e 74 31 30 2e 64 .......count10.d
000ffd90 61 74 e0 02 00 00 00 0b 00 00 00 02 00 02 0c d8 atà............Ø
000fff70 00 00 00 01 00 00 00 0b 00 00 00 0c 0b 08 63 6f ..............co
000fff80 75 6e 74 31 31 2e 64 61 74 e0 02 00 00 00 0c 00 unt11.datà......
00115e20 bd 6e 58 e6 63 6f 75 6e 74 30 37 2e 64 61 74 ff ½nXæcount07.datÿ
0012ebe0 63 6f 75 6e 74 30 38 2e 64 61 74 ff 19 85 e0 02 count08.datÿ.à.
0013fcc0 00 08 0b 08 63 6f 75 6e 74 30 37 2e 64 61 74 e0 ....count07.datà
0013feb0 01 00 00 00 08 00 00 00 09 0b 08 63 6f 75 6e 74 ...........count
0013fec0 30 38 2e 64 61 74 e0 02 00 00 00 09 00 00 00 02 08.datà.........
0014af40 fa ce 22 36 63 6f 75 6e 74 30 34 2e 64 61 74 ff úÎ"6count04.datÿ
00163d00 63 6f 75 6e 74 30 35 2e 64 61 74 ff 19 85 e0 02 count05.datÿ.à.
0017cab0 0b 08 00 00 b7 fd 21 e2 80 0e 71 56 63 6f 75 6e ....·ý!â.qVcoun
0017cac0 74 30 36 2e 64 61 74 ff 19 85 e0 02 00 00 10 44 t06.datÿ.à....D
0017fbc0 00 00 00 05 0b 08 63 6f 75 6e 74 30 34 2e 64 61 ......count04.da
0017fbd0 74 e0 02 00 00 00 05 00 00 00 02 00 00 af 50 00 tà...........¯P.
0017fdb0 00 00 01 00 00 00 05 00 00 00 06 0b 08 63 6f 75 .............cou
0017fdc0 6e 74 30 35 2e 64 61 74 e0 02 00 00 00 06 00 00 nt05.datà.......
0017ffb0 00 07 0b 08 63 6f 75 6e 74 30 36 2e 64 61 74 e0 ....count06.datà
00180070 16 b6 2c e3 32 2e ad 46 63 6f 75 6e 74 30 31 2e .¶,ã2.Fcount01.
00180080 64 61 74 ff 19 85 e0 02 00 00 10 44 ee 2d 30 6f datÿ.à....Dî-0o
00198e30 75 8e d7 96 63 6f 75 6e 74 30 32 2e 64 61 74 ff u×count02.datÿ
001b1bf0 63 6f 75 6e 74 30 33 2e 64 61 74 ff 19 85 e0 02 count03.datÿ.à.
001bfb00 0b 08 63 6f 75 6e 74 30 31 2e 64 61 74 e0 02 00 ..count01.datà..
001bfcf0 00 00 02 00 00 00 03 0b 08 63 6f 75 6e 74 30 32 .........count02
001bfd00 2e 64 61 74 e0 02 00 00 00 03 00 00 00 02 00 01 .datà...........
001bfef0 63 6f 75 6e 74 30 33 2e 64 61 74 e0 02 00 00 00 count03.datà....
Thank you Lua, thou truly are a light in the darkness.
January 2nd, 2008
TODAY WAS THE first day of my new job as a software developer at Bang & Olufsen.

Its been three great, but busy, years at Ericsson Diax in Struer, Denmark as a software developer where I’ve been involved in development of both POTS systems as well as cutting edge IP-DSLAM technology.
I changed job because Bang & Olufsen had some very interesting development tasks to offer. So now I an naturally very exited by this new job and on my upcoming tasks. However I’m sure that the future will bring many challenging tasks that will stretch my abilities to the max, but that will be part of the fun :-)
December 17th, 2007
I LEFT WORK early today to do some Christmas present shopping, but following Murphy’s law, starting the car was a no go. Engine cranked, but didn’t start and just left an oder of unburned fuel. Its no big surprise though. I’ve almost always driven old cars, and its been a reoccurring theme that, when a rainy fall becomes frosty winter, car trouble begins.
Currently I drive a 1976 Mercedes-Benz 280 (W123.030) Automatic. 
Generally its a very reliable car and apart from some regular engine tuneups, it otherwise never breaks down.
Its not the frost it self that give the problem, its more the preceding endless amounts of rain thats giving trouble. When its raining the electrics eventually starts to behave faulty, and when wet electric components begins to freeze, the electric problems just becomes worse.
The tendency I see from my history of car troubles is, that it seems that the fall has become more and more rainy during the last years, and the frost season begins later and later – makes me think, that I probably should replace that old polluter of a car, with a more environmental friendly one.
By the way, getting the car started was simple (tried it may times before ;-). I used a hairdryer to dry up the sparkplug cables, and bingo, the engine started perfectly.
October 2nd, 2007
IT IS EASY to see why people really love their MacBooks. These computers are sleek and run a cool operating system. I also really love my MacBook that I bought at TheCamp 2007, just from the fact that its killing me!
Where feasible I prefer to use keyboard shortcuts instead of mouse navigation, but on Mac OS X there are annoying hurdles.
On a Danish PC keyboard some the often used programming characters are accessed via the AltGr key, e.g. ‘{‘ = AltGr+7, ‘[' = AltGr+8, ']‘ = AltGr+9, ‘}’ = AltGr+0. This is fine as they can all be accessible one handed.
On my MacBook I am running an English Mac OS X with a Danish keyboard and keyboard layout. The PC keyboard and MacBook keyboard differs, so it was no surprise when I could not find those characters. Tried a few combinations, then referred to the manual – no help. The Apple support forum wasn’t really that helpful either (seems that every other link is a sales or marketing page), but did find a poor swede that had some of the same problems that I had. The comments luckily mentioned that the Mac OS X shortcut for ‘[‘ is Command+shift+8.
Going from a one hand operated shortcut to a two handed is not a change for the better, but at least I could now do some programming :-)
Having found the ‘[‘ I was a happy camper as Command+[ is the shortcut for Safari 3 and Finder to do history back actions. No more grapping the mouse for doing trivial back actions I thought… but nooo. It seems that neither Safari nor Finder recognizes the key combination – aaarrgh! I speculate that this is because the true shortcut is Command+[ and what I am pressing is actually Command+shift+[. One could suspect that those programs switch on the actual keys pressed, instead of receiving characters thats been outputted from a localizing filter?
Btw. how do I enter a directory in Finder? Pressing Enter just enables me to rename the directory! WTF! This is surely a sane default action; I’ll much rather rename a directory than look whats inside – NOOOT.
Well, I’ve finally “solved” my Safari and Finder problems. A long time Mac owning friend of mine, told me that back history in Safari could also be done with Command+left-arrow. ZOMG! A secret solution?! Argh, kiss my ass Safari, I’ve installed Firefox. This new shourtcut didn’t work in Finder of course, so I installed Xfolders and then Finder could go fuck it self.
Btw. every time a dialog pops up for an action (e.g. Accept/Cancel) – how the hell do I select the desired action using the keyboard? And why do I even have to ask this question in the first place?
I would characterize the Mac OS X shortcuts as being either, very long, very non-English unfriendly or both. Wouldn’t be surprised if Mac OS X were written in Emacs by non-non-Englishmen ;-)
All this is making just me really Charles Bronson angry of how stupid Mac OS X is. Not just different, but stupid! Arrrrgh. So the lesson is short: “Apple and others – Don’t use special characters for keyboard shortcuts! It’s fubar.”
September 29th, 2007
I STUMBLED UPON an excellent Top 50 Dystopian Movies of All Time ranking list. Even though my personal views of technology and the future are definitely more utopian, I’ve always found these dystopian movies to be the most fascinating. Interestingly this list does in fact list include most of my favorite movies, even though I do not agree with the ranking order in which they are listed.
My personal top 10 dystopian movie hit list would go like this:
September 27th, 2007
FOR A COUPLE of years now I’ve wanted to learn to play the game of Go, but I just haven’t managed to find the time. Go is a strategic game for which the saying is “easy to learn, hard [impossible] to master”.
There exists a brilliant live-cd called Hikarunix. The Hikarunix CD contains a huge set of the quality information on Go found on the internet. A great asset is also the collection of tutorials, trainers and databases over played Go games. In theory Hikarunix bundles all that is required to study, learn and play Go.
Hikarunix is definitely recommendable, but experience tells me, that if you really wanna learn a subject to depth, get a book written by experts in the field and benefit from their hard earned knowledge. Hence I have bought the book Lessons in the Fundamentals of Go.
The book comes highly recommended (e.g. from www.godiscussions.com) so I’m looking forward to reading it.
I am also very exited about playing on my Go board.

This beautiful board is actually handmade by my mother. When wooden Go boards are generally price tagged in range of a Ariane space rocket, its nice to have a family that got talent :-)
The wood is a 48.3[cm] x 55,5[cm] leftover from a kitchen table and then drawing of the grid and cutting grooves for all the lines as well as coloring the lines and applying the sealer is handmade.
September 17th, 2007
CIRCUIT DE SPA-FRANCORCHAMPS is a famous Formula 1 track in Belgium, and this year I, along with two of my Formula 1 enthusiast friends, spend three days watching the race from the the Silver tribune.
One spectacular section on the Circuit de Spa-Francorchamps is the Eau Rouge and Raidillon combination. This is a quit left turn in to an unbelievable steep hill that arcs to the right. Preceding this section is a long downhill stretch, making an excellent overview of a great part of the track. This viewable piece of track made it all worth the money for the Silver tribune seat. The F1 racers will blaze past you so close that its almost frightening, and then they continues up the steep hill so fast you just wouldn’t believe it wasn’t a cheap sped-up driving movie, if you didn’t see it with your own eyes.
Here I have the Eau Rouge / Raidillon combination in the background. 
With my Canon IXUS 50 digital camera I recorded a video of a Toro Rosso in the second practice round. This might give some idea of the speed involved (the digital camera is not really suitable for this kind of video recording, so the video quality is not so great).
Wikipedia has extensive information on the technical details of Circuit de Spa-Francorchamps track.
It was lots of great racing watching in three sunny days in 20-something degrees Celsius and low wind with lots of waffles of all sorts and plenty of cold Jupiler beer – sweet :-)
However, everything is not perfect at the old Circuit de Spa-Francorchamps stadium, at least at the Silver tribune. A Silver ticket cost around 350€ and include a numbered seat. Sadly the seats are only a plastic platform with no back support. This makes it pretty tough on your back to sit watching racing from 9:00 to 17:00. Further more the track owners made some stupid decisions that limits the view from most of the Silver tribune. The lowest seats sits so low that one almost cannot see above the crash fence. Also the lower seats sits to close to the cross-wired safety fence running in parallel between the tribune and the track, that only a narrow viewpoint straight ahead is available. If looking to the left or right you will see nothing but fence. The middle seats has an important part of their view blocked by a (Vodafone) bill-board, making it impossible to see the cars come out of the La Source corner. Last but not least, the tribune for the Gold tickets is placed after the Silver tribune and blocks the view of Eau Rouge for most Silver seats placed in the section closest to Eau Rouge – all some hard forgivable stupidities. In comparison I was at Hockenheim in 2006 and there the stadium offers perfect view and back supported seats for all spectators; actually the surrounding facilities like toilets, shops and exhibitions were better at Hockenheim too :-/
To be fair then its not all bad. In fact most of the middle and top Silver seats have a great view of the track section. I maneuvered my self to a position behind the top row of seats, and had probably the best view imaginable.
All in all it was a great trip and I will probably return there one day for more racing and beer and perhaps some waffles :-).
August 9th, 2007
DON’T HAVE A cow man. Well I got one. I was given a Stribed Cow of the CowParade brand.

At first one might get put off by this odd looking cow which is obviously contrary to the ways of nature (or you might just be repulsed by the pricetag on this thingy) – but I like it! There’s just something about it that makes me smile every time I look at it :-)
August 8th, 2007
SO DID YOU get any hacking done this summer? I certainly did! I spent a hole week of my summer vacation attending the geek camp TheCamp (Danish). Along with roughly twenty of the forty participants, this was the first time of TheCamp’s six years of existence that I attended. The purpose of the TheCamp is to provide an opportunity for (whitehat) hackers to unite and do what they like the most: spend time at the computer. For people not to fuse entirely with their computers, the TheCamp had scheduled three daily informative speeches or educational lectures from various guest speakers and TheCamp attendees. Topics included beginner Linux training, advanced Vim usage, computer security, audio on Linux, network understanding and much more. Most sessions were informal (kind of BoF-session manor), allowing for everybody to fill in with additional information or personal views and experiences. This often led to very exiting discussions.
It was indeed a mixed group of people at the TheCamp. Ages ranged from a thirteen year old, accompanying his father, incrementing to a couple of people, of undisclosed age, who have had enjoyed their retirement for some years. The knowledgebase was very versatile too. Some were experts in Linux, others in networking, MAC OS X, Vim, security, audio, programming or even 3D graphics design (no Windows people it seemed). Others were at TheCamp to learn and benefit from the vast collective knowledgebase.
I started the week playing a bit with Elsa and Antlr, to investigate the possibilities of incorporating some C++ awareness to the old IDE we use at work. In both parsers I hit major problems when trying to parse STL code, so I ended up abandoned the idea (for now).
I then installed a InspIRCd IRC server on my headless Linux box. This was actually surprisingly easy to install and configure (although more tweaking can be done I’m sure), so with that success story I ventured on to learn some new programming skills.
At work I mainly program in C++ but I have decided to learn C# on the Mono framework. Additionally I want to learn some Lua for scripting and possibly some QT 4. I’ve bought a C# book (Professional C#) and a couple of Lua books (Beginning Lua Programming, Programming in Lua) to aid the learning process. I was somewhat disappointed by MonoDevelop. Apart from the instability problems, it was just to heavy an IDE for my laptop and the GUI is utter useless in a 1024×768 pixels resolution, so I settled on my usual editor of choice: Scribes. In a days work I managed to create a little C# program that had a QT 4 frontend (via Qyoto) and a small Lua script engine (via Tao.Lua) – it were lots of fun and a really exiting process, so definitely not my last programming with that constellation.
On the last day at TheCamp I was fortunate to be offered a used MacBook. My trusty old Asus A1000 laptop (600 MHz Celeron, 320 MB RAM) really really qualified for retirement and coincidentally I had long thought about acquiring a MAC. It didn’t require much consideration and now I am the happy owner of a cool black MacBook.
In conclusion the week at TheCamp was awesome, and I’ll definitely be ready next year when the ticket sale open.