Speedway On A Cold, Windy And Rainy day

2008-10-07 by monzool

COLD, WINDY AND rainy would describe the weather this past Saturday evening. Not that that kind of weather uncommon in Denmark, but this particular day I was at the outdoor Speedway event “Denmark vs. The World” at Vojens Speedway Arena. Speedway is one of the most exiting motor sport types, and its a fantastic experience to watch it live. This event was a special event where two teams, with Danes on one team and non Danes on the other, would race each other for the price.

Here’s a movie that I recorded with my IXUS 50 Canon camera: Speedway - Denmark vs. The World. Not the best quality, but captures the excitement pretty well.

It was a fantastic evening apart from the fact that the event was canceled after heat 11 out of 18 heats due to bad weather. As this picture will show, we all got a bit surprised on the weather. Here sits my brother, my sisters husband and my father with his Easton cap, all hoping it would stop raining.


I’m somewhat glad that I’m not on the picture - we ain’t looking to stylish I guess. lol.

Posted in Travel, Personal | No Comments »

TheCamp 2008

2008-07-27 by monzool

THE-CAMP 2008 WAS a repeat of the success from last year. Again this year 40 people, in all ages, from all over Denmark (plus an North America from Norway, plus a Dane from Holland) rallied for 7 days of of open source. TheCamp is the perfect opportunity for doing some serious nerding and spending time with others of same interest.

Again this year I had a lot planned for this year, but as expected I didn’t get though it all. Firstly I downloaded the latest Subversion revision of Boost 1.35.1 and did some Asio socket and thread programming. I’ve been using Mercurial for a while but planned a switch to Bazaar, so I got that install and moved my projects to a new (local) repository. I’ve bought a new Lenovo 3000 N200 laptop and planned for getting wireless lan up and running on it. That however, was surprisingly easy as everything was supported right out of the box on a Debian Unstable installation. I finally managed to check off a long time waiting TODO item of learning how to use CScope from Vim. I installed Aros on my spare laptop, an old Asus A1000, but Aros kept crashing on me, so I gave that up. Wednesday was more a chill-out day with drinking a few cold beers, taking to people generally enjoying that the sun had finally appeared ;-). I did get some Python programming done with libnotify though. Otherwise I played around with some programming with the Clutter-project toolkit along with it’s Python bindings Pyclutter. Additionally I also tried a bit of Docbook, but decided that LaTeX was better.

As per tradition at TheCamp there was plenty of guest speakers. There was three presentations a day, but of course attending was voluntary.

Sunday, the highlight was when Vim guru Preben Guldberg reran his Vim/regular-expressions presentation from last year. Preben is an expert user in Vim and is also seriously proficient in regular expressions (I think he’s got the black ninja belt in both categories). This year I grasped somewhat more that I did last year, so a great rerun ;-).

Monday Poul-Henning Kamp of FreeBSD/phkmalloc/Varnish fame gave a presentation on developer habits and tools. In essence his was tired of things like having to write linked lists or decide what hash-trees to use. He wished that the software industry would do for them selves, what they have done for all other industries - make the computer do the work. As always an interesting PHK speech, but I think the audience didn’t fully agree; as one argued: “There are being made progress with tools like Eclipse and frameworks like Ruby On Rails, but if you insist on using Vi and writing low level C, then your not really making it easier on your self”. In the evening, Linux multimedia enthusiast and game graphics designer, Rene Jensen held a Blender workshop where he gave a live introduction to Blender.

Tuesday Jørgen Olsen from Sun Microsystems Denmark presented OpenSolaris 2008.5 (sprinkled with Solaris comparisons as a few of the audience run Solaris at work). Jørgen may be an old guy that looks like a hippie with his headband and log grey hair - but he definitely know his Solaris/OpenSolaris stuff. We got a demonstration of the SMF (Service Management Facility) that is an attempt to replace the old system initialization scripts. Other topics was ZFS, Containers, virtualization and DTrace. Later that day Bjarke Walling gave a demonstration of Lego Mindstorm. It was a great run though of Lego Mindstorms hardware, software and historic. He had built a couple of robots and created a program upon feature request from the audience.

An interesting speech Wednesday was Flemming H. Sørensen’s presentation on the Syllable operating system. Flemming had been in the Syllable core group for a couple of years, having responsibility of the locale system. He, and a group of fellow Syllable friends, just forked Syllable to do development that they’d felt had been neglected far too long.

Thursday Preben Guldborg held another session of Vim tricks where one could ask questions or get help with.

All in all this voluntary driven TheCamp was just perfect again this year, and I will surely return next year.

Posted in Travel, Personal | No Comments »

Blade Runner - Final Cut

2008-05-21 by monzool

BLADE RUNNER HAS been one of my favorite movies since the first time I saw it.


I’ve always hoped that I would get chance to see Blade Runner on the big cinematic screen, but hadn’t really believed that an old 1982 movie would get big screen time. But suddenly the chance came up, as BioCity in Århus arranged a special marathon, dedicating one show room for continuously playing Blade Runner - Final Cut at all time slots for almost an entire week. The sensation was enhanced by the fact that the movie was projected from a digital copy with a high resolution projector. What a fantastic picture quality! This was the first time I’ve seen a digital movie projected at the cinema - and what a debut experience with such a picture-beautiful movie as Blade Runner. This is how movies should be seen.

Definitely worth the almost 150 kilometer drive.

Rating: ★★★★★



Posted in Movies, Entertainment, Personal | 1 Comment »

Wolf Tattoo Restoration

2008-04-24 by monzool

MY WOLF TATTOO had been in need of major restoration job for several years now. Today I finally went to “Doc Pain”, the local tattoo shop, and had it redrawn.

This is a photo taken during the recoloring of the tattoo. It is really stunning to see how much it had degraded since it was originally made in 1995.


At first the tattooist wasn’t quite confident that it could be salvaged. In some places the contours had almost vanished and other places the skin had some tissue scarring. I wasn’t that worried though - it couldn’t get much worse I reckoned.

Now its good as new, and I hope it stays good this time around. If it does, I need to find another drawing to be tattooed.

Posted in Personal | No Comments »

What GUI Toolkit To Use?

2008-02-29 by monzool

GUI PROGRAMMING IS not something I’ve done in quite a while. At work I do embedded programming and that’s mainly also what I’ve been doing for my own personal projects. Except for some small utility applications I really haven’t done large GUI projects since MFC 6.0 was cool (if such a time ever was) ]:->.

An absolute requirement is that the end result must be multi platform capable (Linux, BSD, Mac OS X and Windows). Plenty of frameworks and toolkits exists that fulfill that requirement, but I find that the Kde/Qt constallation is the most exiting and complete toolkit(s) around - especially given the multi platform perspective introduced by Kde 4. Although Kde 4 is not quite stable yet, I think the choice is wise in a longterm perspective.

I primarily do C/C++ programming (and a bit of Lua scripting), but I really would like to extend my horizon (or more precise raise above n00b level) in other programming languages like C# and Python. Given that I have much to learn about Kde, GUI’s and what else is hot in the desktop programming world, the option of C# is not a mandatory requirement. I could settle on a C++ and Python solution.

Mixing two complete different kinds of languages (static and dynamic) requires either good binding layers or Mono. The Kde Project provides a large suite of binders in the KdeBindings package. The README contains a concise description of the project contents:

This package contains:
* working:
  * korundum: KDE bindings for ruby
  * qtruby: Qt bindings for Ruby
  * smoke: Language independent library for Qt and KDE bindings. Used by QtRuby
    and PerlQt.
  * kalyptus: a header parser and bindings generator for Qt/KDE. Used for
    Smoke, Java, C# and KSVG bindings generation at present.
  * ruby/krossruby and python/krosspython which are plugins for the kdelibs/kross
    scripting framework to provide scripting with python+ruby to applications.
  * PyKDE: KDE bindings for python, requires PyQt from riverbankcomputing.co.uk
  * Qyoto: Qt bindings for C#
  * Kimono: KDE bindings for C#

The Mono project seems to be somewhat controversial. A lot of writing has being going on lately on Mono vs. Novell/Microsoft vs. freedom. Anders Hejlsberg and his team have created both clever and interesting stuff in the .NET architecture like C#, DTS (Common Type System) and CLR (Common Language Specification), but I can’t appreciate embracing other closed proprietary technologies from the .NET portfolio, when other alternatives exist in the FOSS community. I think Robert Devi summed it up nice in the Osnews.com comments (the personal rantings of Robert on Mono speed/memory, Amarok etc. I don’t agree on).

As far as I can tell, the above observations give me the following constructs:

  1. C++ + Kross + PyQt + PyKde(*1).
  2. Mono + C# + limited managed C++ + Qyoto/Kimono + IronPython.

*1: PyKde is not released for Kde 4 at present time.

Its a difficult decision whether to choose the one or the other construct. Because I have already done much C++ coding (and shot a foot off more that once) and not much C# coding, I lean mostly towards the Mono solution. Unfortunately this could potentially force me to use MonoDevelop. Tried it eight months ago and tried it again yesterday; it’s still the single most unstable piece of software I ever used :-(. Hope its not the case that it only works on OpenSuse or Suse. That would not be freedom. Anyways, selecting C# would mean that the money I spent on the book Professional C#, 3rd Edition won’t go to waste.

Posted in Software, Programming, Personal | No Comments »

B&O Speakers Rocks - Other Music Too

2008-02-26 by monzool

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.

  1. The level of production quality control.
  2. Trying a BeoLab 3 “blind” sound test.
  3. 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

Posted in Personal | 2 Comments »

Incomprehensive Hexdump Man Page

2008-02-18 by monzool

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. 1. the act of repeating; a repetition.
  2. 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. 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.

Posted in Software, Rant, Lua, Programming | 2 Comments »

First Day At Bang & Olufsen

2008-01-02 by monzool

TODAY WAS THE first day of my new job as a software developer at Bang & Olufsen.

B&O

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 :-)

Posted in Personal | No Comments »

Bad Wether Makes Old Cars Troublesome

2007-12-17 by monzool

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. 1976 Mercedes-Benz 280
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.

Posted in Personal | No Comments »

Mac OS X Keyboard Shortcuts

2007-10-02 by monzool

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.”

Posted in Rant | No Comments »

« Previous Entries