I’m noting that a few people are actually reading this blog, so I might as well post a little update. Why haven’t I written something for several days now? Am I sick? Am I taking a short vacation? Have I run out of topics? Yes and no to all of the above, sort of.
I was going to have three weeks of vacation, but that ended up becoming three days instead. Hey, a rolling stone gathers no rest, right? Thursday I was sent off to London to sort out some network issues and be of service to our customers over here. However, said customers aren’t really prepared for us; we’re pretty much examining different locations and having a stop at pubs in between those. So, in a strange way I am having a vacation even though I’m working. And the aforementioned pubs is where sickness comes into the picture. Also, since we’re walking around London all the time, I don’t feel that I have the time nor the inclination for writing anything. Thus, I have temporarily run out of topics as well.
But to write something, here are a few things I’ve learned about London:
- Taxi is bloody expensive
- The underground is bloody expensive
- Food and drink is bloody expensive
- London is bloody expensive
- The extra cold Guinness is pretty good
- Trafalgar Square is not a nice place for those who worry about bird flu
- Regent Street and Oxford Street are quite long
- Neo-Classisistic architecture is everywhere
- Virgin Megastore has a nice price for the Nightmare on Elm Street DVD box
- I like wireless Internet access
Oh well, back to work!
What does one do a Saturday when the sun is shining and summer’s finally arrived in Sweden? Drink beer on the lawn? Party away at a festival? Start an Irish cover band? Stay indoors watching movies and slaving away at hobby applications or game projects? Well, those are all viable options but not true this particular Saturday. Instead, I tagged along with some friends to the KolmÃ¥rden Zoo!
I get childishly giddy at zoos. I love watching animals, and prior to this I hadn’t been to KolmÃ¥rden since I was a wee kiddo. Imagine my surprise when all animals were either
a) sleeping, or
b) hiding someplace, sleeping.
Click the images for larger versions. Sorry, but I don’t have zoom on my camera; you’ll have to do with barely decent pics.

Does this look like a pack of wolves to you? Okay, at least the waterfall’s rather gorgeous.

Can you see any snow leopards? In hindsight I can tell you that the lazy buggers are sleeping in the little shed at the back.

Have you ever seen such a stoned ram? Or whatever it is…
Bloody slackers! Sleeping on the job! To illustrate my point further, I put together a little collage.

I call this piece See What I Can Do with Cut ‘n Paste and Emboss. Here you can notice a slacky vulture, a bunch of slacky prairie dogs, a donkey that stood like that for 15 minutes without moving an inch - and other animals too lazy to even move about.
But okay. It wasn’t all dull and motionless animals. The dolphins rocked, and after a brief shower we did see some of the cool animals:

For the city-dwellers: what we see above is a pair of playful kitties, a large kitty, some teddies and…um. A comic book character with adamantium claws. Damn, I wish I hadn’t skipped my biology classes.
And we saw a very friendly antelope thingie as well.

“Hey, what’s that over there?”

“Maybe they have food?”

You ought to be happy that I didn’t go for a bad ant-elope joke…

“Give me food, or I’ll come up there and bite your legs off!” Well, frankly my deer, I don’t give a damn. (I bet you wish I had gone for the ant-elope joke instead, huh?)
All in all, that was a great visit to the zoo, even if I just got the briefest glimpse of a wolf.
Recently, there has been some discussion about The Wisdom of Crowds and Wikipedia. There’s this article which is commented by a blog, which in turn is commented by another blog, and so on. People have interesting opinions on this phenomenon, but instead of jumping into the fire, I thought I’d offer a slightly amusing anecdote.
I’ll take the easy way out and copy a brief description of the WoC idea: “The Wisdom of Crowds is a book written by James Surowiecki about the aggregation of information in groups, resulting in decisions that, he argues, are often better than could have been made by any single member of the group.” Short and to the point. Ironically, the quote is from a Wikipedia article about WoC; feel free to go there to read more about the book.
So what we have is the idea that a group of people, given certain criteria, can give better estimations than any single expert in a field. Some people have found anecdotal evidence to support this…but of course I have to be a cynic and offer counter-evidence.
A few months ago at work we started up version 1.2.6 of our product, and this time we were going to go about it in a strict professional manner. No ad hoc management like with 1.2.5, and proper time/risk/budget estimations were to be made. “Oh well, how hard can it be,” everyone thought. “We have our Way of Working guidelines that we have to follow, so everyone should be happy as long as we do just that.” One of the things specified is how to perform a proper time estimation. It seems that the people in charge of our guidelines have read The Wisdom of Crowds, but apparently not close enough.
Imagine this situation: there’s this room full of people. Everyone from test, development, management, documentation and administration is there. For every module and component of 1.2.6, everyone in the room gives an estimation of how long it would take to implement and test it in best case and worst case, as well as an estimation of the probable time it will take.
I have seldom seen so many clever people waste their time on something as retarded as this.
First of all: no one outside the development team has any idea how long something will take to implement. That’s the first problem. Considering that the developers were probably less than 25% of the assembled people, it’s completely ridiculous to even think about estimating the project like this.
Secondly: I assume that crowd wisdom is what was intended to be the effect of this exercise, but the ones writing the guidelines seem to have forgotten something. There are a few key criteria that separate wise crowds from irrational ones:
- Diversity of opinion
- Independence
- Decentralization
- Aggregation
Sure, I agree that the aggregation point (a mechanism for turning private judgments into a collective one) is present, as well as decentralization (people can use their local knowledge in making the decision). However, what about independence and diversity of opinion? How can anyone honestly believe that everyone will have an opinion about details that don’t directly concern their line of work - and, even more improbably, base that decision on personal opinion instead of just following the others? It’s ludicrous to even think that anything other than herd behaviour can be the result of an estimation like this!
The most interesting aspect of it all must have been that we had the product owner present as well. What’s his main wish? That everything costs as little as possible, of course. So what does he do? He sometimes deliberately mentions low time estimations in order to drag down the average. Sigh.
…What was the result of all this, you ask?
Out of five planned increments, two were wholly completed. Let’s just say that we probably won’t see as many people present at the table for the 1.3 estimation.
I just recalled that Windows 98 and Me are no longer supported by Microsoft. This reminded me of my media PC troubles I had recently. What I wanted was a small and good-looking PC that should be able to stream movie files and music to the TV. I guess the easy way would have been to buy a fully-fledged media PC somewhere. That would probably have been the smart choice as well - just buy the machine and get everything pre-installed. Too bad that I’ve never been smart.
Instead, I searched long and hard for nice components; I looked at chassis for weeks, and internal components for twice as long. “Should it be big enough to support PCI cards? Should I go for a Pentium M?” And on and on. I finally decided on this particular configuration:
- VIA EPIA MII Mini-ITX motherboard. This is a damn sexy piece of equipment: it has a 1 GHz CPU, built-in graphic card with MPEG2 decoding and TV-out, built-in audio, a PCI slot, and a PCMCIA slot.
- Silverstone LC-06. Another sexy thing; I love the sleek look of this case. It’s an ITX case that has room for a 3.5″ hard drive and a full-size DVD-ROM. Yay! No need to go for expensive ones.
- Logitech LX7 Cordless Optical Mouse. I don’t want more remotes, and a mouse is much better, in my opinion. This mouse looks damn nice as well, so I don’t mind having it on my living room table.
- In addition to this, I was planning to have a 3,5″ HD, PCMCIA WLAN card and a DVD-ROM.
Things didn’t really proceed as planned. First of all, I had an old Netgear WG111 WLAN USB dongle, so I used that one instead; it’s supported by almost every operating system known to man. Secondly, after assembing everything, I noticed that the EPIA’s CPU fan wasn’t as quiet as I’d hoped. No bother, but still not quiet. This made me reconsider the HD, and I started looking for alternatives.
Booting everything off a Compact Flash card seemed like a better idea! I got myself a 1 GB Compact Flash chip and a cheap CF -> IDE converter that supported boot, and I thought I was cooking. Turns out that this adapter is designed to plug straight into the IDE slot. Do you think that there was room for that in the LC-06 case? Hell no. And have you ever tried to find an extension IDE cable? I know that there are places in the US that sell these, but they are completely unavailable in Sweden! Seriously. Impossible to get. I ended up having to make one myself with some help from the hardware-oriented people at work.
Now comes the troublesome part. In my tests with the HD I had used Windows XP SP2 together with the Media Portal media portal and Media Player Classic. I loved the GUI and it worked like a charm. But lo and behold! Since I only had 1 GB of flash, I couldn’t install Windows XP on it. I read about a way to do it anyway: first installing it to a HD, shrinking the installation to ~800 MB, making the HD partition 1 GB large, and then cloning it to the Compact Flash. I’m sure that this is possible in theory, but if you feel like trying this yourself: don’t bother. You might get it to work, but I failed after many long hours of trying to get the cloned flash installation to boot up properly. It seems to depend way too much on what kind of IDE adapter you have, and similar things. Make sure you buy at least 2 GB of flash, and install the OS directly to the flash instead.
So, I couldn’t use Windows XP. And guess what? Media Portal demands Windows XP. For fun, I installed Windows 98 and got it up and running. (This is where this blog entry’s first line starts to get relevant!) It worked like it should; but what I had forgotten was that “like it should” is a relative term, and Windows 98 is very aged today! It may have been my Netgear dongle, but the OS crashed and lost the connection and everything sucked worse than a Thai hooker! Totally unacceptable; after this I have complete understanding for Microsoft’s dropping Windows 98 support.
I started looking around for alternatives to Media Portal and Windows XP, and GeeXBoX looked extremely promising. A minimal Linux distribution with a complete media player, a great interface and whatnot. It looked marvellous, and worked well - except for the fact that there is no mouse support. I really don’t want a remote, so this was right out. I tried a couple of other distributions using MythTV, but not a single one of these could be installed on just 1 GB. Huh? I thought Linux was supposed to be small and compact and all that. This just gives more fuel to my opinion that Linux stuff all too often is bloated due to all the dependencies.
Well, of course the same is true for Windows programs. Media Portal requires .NET and all kinds of stuff.
Anyway, I ended up installing Windows 2000 on the Compact Flash; it’s a nice middle road, and it’s stable enough. I do miss Media Portal, but I’m sure that I’ll find another good media portal project sooner or later - or maybe I’ll get a 2 or 4 GB Compact Flash card. In the mean time I’ll probably write my own lightweight interface - at heart I am a DIY guy after all!
Lately I’ve been pondering whether or not to go to Wacken in August, and due to very recent changes in my life I’ve suddenly received an urge to go there after all. Granted, that might just be a case of my trying to escape a bleak existence, diving into the wonders and joys of festival life once more. Either way, there are some arguments for and against it.
Wacken Pros
- I could possibly get the trip and the ticket relatively cheaply
- I’ve never been to a German festival
- I could see Lake of Tears; granted, I’m not familiar with much more than Raistlin and the Rose, but I adore that song
- I could see Scorpions. No, you’re not getting a link to them - if you don’t know of ‘em, you should be ashamed of yourself
- I could see Opeth, In Extremo, Nocturnal Rites, Soulfly, Morbid Angel and Finntroll.
- I could also see Victory, Celtic Frost, Nevermore, Arch Enemy, Fear Factory, Gamma Ray, Whitesnake, Motörhead and other bands.
- They have Disco & Metal Karaoke - please, my heart, be still!
Wacken Cons
- I’m not very excited about Opeth, In Extremo, Nocturnal Rites, Soulfly, Morbid Angel, Finntroll or Lake of Tears
- I have seen most of the other bands I mentioned elsewhere
- What if I find a nice last minute trip to some awesome country, and it happens to be in the beginning of August?
The main negative side to Wacken is that despite a good lineup, there are no bands that I’m particularly interested in there. Decisions, decisions. I wonder of others feel this indecisive when it comes to simple things like planning their vacation!
At times I wish that I had an expert system with a specialization in vacation planning. That would definitely be a help right now. Parameters could be mood, money, time, interests, marital status, age and so on. It could scan the Internet for possible recreational options, and aid with this god-awful decision making.
I started up this blog in order to have some place to rant about my pet project, Sheeplings; instead I seem to be using it for everything from nudity to nerdy programming stuff. It’s quite about time to talk about the sheep game for once!
So, I found this excellent artist who’s done marvellous things with sheep. Get your mind out of the gutter - I’m talking about this:

After the extremely cute sheep and the lovely background I was a bit disappointed at the map art I received: (Ignore the mad flag placement - those are just levels I use for testing.)

I guess I really shouldn’t complain as long as people do stuff better than I can myself *, but the map didn’t look as good as I’d hoped. It got a bit better when flowing clouds and GUI items and particles were added, but I was still not a happy cynic.
That’s when something funny happened: the map above was an example 600×480 image that I stretched to fit 800×600. After discussing the art a bit, the artist suddenly noticed that - gasp - there is no 800×600 version! The map was made in a low resolution, and a stretched image isn’t really an option for the game’s map screen. So, it’s back to the drawing board (literally), and I’ll get another version of the map.
Okay, that’s not really funny at all. I meant funny as in “it’s funny how things turn out sometimes.”
——–
* Footnote: Of course I believe that I have the right to complain even if I can’t do better myself. It was one of my first rants here, after all.
Here I’m sitting, sipping tea and compiling firmware in the background, when I come across a blog entry called Reading Blogs is Useless. The argument is basically that you need to choose wisely where to spend your time, and blogs are useless unless you read them with a clear goal in mind. Opinions are like arseholes (” - everyone’s got one,” in case you’re not familiar with crude proverbs), and of course I have one of my own in this matter.
Individual productivity is something I rarely discuss with others; I know how I work, and so far I really haven’t been required to take note of other people’s methods. Myself, I basically have two different work modes:
- Focus. I can get extremely focused on some project. When I receive an interesting task at work I’m happy to work long hours, and I’m eager to get working again the next day. This happens more often with my personal projects; I have fond memories of spending a whole week writing and recording a set of songs, for example. (The Leper would have been such an awesome collection of songs if I’d ever finished them all! Alas, I’m only happy with three and a half of them.) Or working for whole days in a row on programming projects.
It’s tempting to call this mode flow, but that’s not really how it feels. It’s just an intense will to produce something; working on the project takes precedence over resting, talking to people, eating, and so on. The problem with this is of course that it’s demanding, and there’s no way to stay in this mode for too long.
- More often I’m in my normal mode, where I get bored with my tasks unless I get variation. I like to have a long list of things to do, sort them in order of priority, and then choose a combination of prioritized tasks and other simple ones depending on my mood at the moment. I may be fooling myself, but I think that I’ve noticed how my productivity increases incredibly if I can choose semi-haphazardly.
Adding to this, I am a firm believer that reading blogs or engaging in other technically useless pastimes also increases my productivity. It clears my mind, takes my mind off things, and forces me to return to the important things with a new mindset afterwards.
After all, all work and no play makes Jack very gay.
- Oh, right. The third of the two modes: when my head feels like a sponge and I can’t wake up. I’ll just ignore that one.
The blog link at the top does mention that reading a blog for fun can be a valid reason, but it still claims that “if you never use the information you receive from the blogs you read, then they are useless.” While I understand the need for an independent game developer to spend his time wisely, I just can’t agree that the best practice is to make every action a deliberately planned choice - one needs to relax as well. And besides, it’s impossible to tell when a new idea will pop up from reading something random.
But of course I have to play the independent developer’s advocate as well: given the harsh demands placed on a professional in that area, time and relaxation might be a luxury that they can’t afford. If that’s the price to pay for becoming independent, I’m not sure if I could ever do it myself.
Everyone and his grandma has heard of people playing live Nintendo music - from the occasional clip of individuals performing a tune, to entire live concerts. Not to mention the awesome metal covers by Minibosses! While all of this is extremely cool, I just saw something to put ‘em all to shame:
[Apparently I can't get the embedding to work correctly, so here's a link to the video clip instead. I'm really ashamed of myself.]
I admit it: I’m a pathetic little fanboy. I can’t stop grinning at the sight of the illustrious Mr. Hubbard himself chatting away about composing on the C-64. That’s something I never got into, myself - I never had any good software for it, so I never did more than the occasional sound effect. The idea of using a minimalistic piece of SID music and expanding it into full-blown orchestra composition is quite interesting. It reminds me of my own thoughts about achievement through restriction…but instead of remaining at that level, it is extrapolated into something much more.
Anyway, for those interested in the background to that clip above, check out the c64 orchestra page. Or check out the Edge article where I found the link originally. You’ll find other cool links there: for example, a mention of the Swedish book Otaku Sweden! Go! Go! and a link to some comments about this book that deals with famous Swedish chip musicians.
I know what I want for my birthday.
The title of this blog entry is also the title of an excellent article found at Dr Dobb’s. If you’re interested in low-level programming, I recommend that you take a look at it. An Alexander Dokumentov (seriously, that has to be a pseudonym… “I am Alexander Dokumentov - guru of manuals and specifications! Bow before me!”) presents an intriguing way of passing information between processes or threads, without the need for a single lock at all.
The basic idea is so simple that it hurts; and at the same time it goes against everything I learned in my real-time systems programming courses (yes, this is a perfect opportunity to retort with a comment about how little I must have learned):
“I propose a communication type that requires only atomic writing of processor word from processor cache into main memory and atomic processor word reading from main memory into the processor register or processor cache. To the best of my knowledge, all platforms satisfy these requirements if the address in memory is properly aligned.”
And he continues to explain this a bit further:
“In our case, it is important that shared memory which is used to transmit data between processes is aligned by the size of the processor word. Aligning guarantees that read/write operations to the main memory will be atomic. Atomic in this case is assumed to mean that if a value of a word initially was V1, and a process writes another value V2, then any other process or thread even without any synchronisation will read either the old value V1 or the new value V2.”
The rest of the article brings up excellent examples of how to send data in various ways using this technique, but the quotes above appears to be the article’s main idea. (According to the references, it seems that an Andrei Alexandrescu might have already presented this idea in his article Lock-free data structures from 2004, but I haven’t checked the article in question.)
What are the practical benefits, then? Well, single-processor systems won’t really see much of an improvement - if any at all - as long as the lock-based method is implemented in a decent way. It’s a whole different ball game for multi-processor systems, though: a test from the article shows a performance boost by a factor of 30! Given the explosion of multi-processor systems nowadays, this definitely seems like a great benefit.
On the downside, this method of communication demands that the CPU alignment is known in advance. I don’t know, but I get a feeling that this method can’t be used on both 32 bit and 64 bit CPUs, for example. No backward compatibility? Me no likey. But then again, I’m sure that the CPU capabilities can be ascertained during run-time, so a dynamic atomic size ought to be able to implement.
I got a bit inspired when I encountered this blog entry about game tattoos, and went for a search for more of that. Not too much luck there: most references to geek tattoos point to BMEzine’s geek section. Although I did find a link to an alternative gallery there; it seems to be the old geek gallery, but I couldn’t find a link to it from the main tattoo page, and I also couldn’t be arsed to investigate further. Oh, and BMEzine have an article called Revenge of the Tattooed Nerds, as well as one called “Nerdy” Tattoos and Why People Get Them.
I also found this cute thing - love/hate markup on the wrists! (Although I do prefer the “cut here” tattoo I’ve seen here and there; but of course I couldn’t find a link to one now.) A search for “game tattoos” didn’t give me much good at all. Some bad leads like this one, but the search seemed to mostly give links to messageboards.
Instead I decided to write something about another nerdy tattoo I know of:

Yeah, mine of course. You get a view of my hairy shoulders as an added bonus. For those unfamiliar with the symbol, it’s a simplified version of Lucifer’s sign (here’s a pic) from Neon Genesis Evangelion - the best anime series ever to have spawned from the deranged minds of the Japanese. I know that people disagree with me on this; still, I can’t help it. If Evangelion was a woman, she’d ge something like a mix between Asia Carrera (smart, sexy, takes it up the[okay, time for some decency]) and my first love (although there may be better ones later, she’ll always be the first big thing).
Technically, I know that I’ve screwed up the image: it doesn’t have 12 wings like it’s supposed to, the eyes on the wings are removed, and so on. I felt that it looked better this way, though, and the tattooist I went to agreed that I had done a decent job sketching it like this. Something I’ve gotten a lot of comments on is the choice to only do the lines instead of filling it; what can I say - I prefer it this way. If I ever change my mind, I can have it shaded later.
Now, back to something I’m sure at least someone frowned at: why do I have a tattoo associated with Lucifer? Am I one of those weird metal fans who sacrifice virgins? Well, I won’t deny or admit anything. Was I temporarily confused, since I got the tattoo when I was drunk in Amsterdam’s Red Light District? I can’t really deny that. But the reason is a much more harmless one: Lucifer, foremost of the angels, the lightbringer, the morning star, he who stood first among (non-)equals fell. I feel that my tattoo is a good symbol for the fact that the even the brightest shall fall. Yeah, I guess I have a bit of teen goth drama in me. Don’t tell anyone.
For some more information about Evangelion and Lucifer’s part in it, feel free to read a FAQ or two, or search for Lucifer here for some tidbits.