Evil Stig

August 29, 2004

Apparently there’s a band called Evil Stig. It has Joan Jett (of “I love rock and roll” fame) in it too, so it’s not completely void of known artists.

Oh well, there goes that franchise…

Bloglines

August 29, 2004

I pretty much ignored RSS for a long time. That is, until someone pointed out Bloglines to me. I did not want to maintain a blogroll and use a different program depending on where I was. With Bloglines I don’t have to. Nifty.

Can you determine the output of the following Perl program without running it?

#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

my $a = {foo => 1, bar => 3, quux => 5}; my $b = eval Dumper $a;

print Dumper $a; print Dumper $b; 

If you expected something like this:

$VAR1 = {
        'bar' => 3,
        'quux' => 5,
        'foo' => 1
      };
$VAR1 = {
        'bar' => 3,
        'quux' => 5,
        'foo' => 1
      };

then I’m afraid I’m going to dissapoint you. The actual output is:

$VAR1 = {
        'bar' => 3,
        'quux' => 5,
        'foo' => 1
      };
$VAR1 = undef;

I spent the entire evening yesterday trying to figure out why this did not work as I expected. The Data::Dumper manpage says you can do this by eval-ing the string returned by Dumper().

If you remove the “use strict;” line from the program above you’ll get the behaviour you most likely expected. I’ll leave the “how?” as an excersise for the reader.

I’ve been looking at these again lately. Being very generic modules supporting a wide range of games they obviously cannot know how to manipulate positions and moves in every one of these games, since board-representation and how to perform a move, not to forget evaluating the “fitness” of a position differ wildly between games. Users of the modules therefore have to provide some domain-specific functionality.

Despite claiming to use an OO interface these modules’ first incarnations required subroutine references to be passed in and stored in a hash. This has now been changed so that users are instead required to inherit from the modules and implement the missing methods.

There’s still some way to go though.

It occured to me that all the methods work directly on positions, so the methods should really be provided by a position class for which a reference is passed in. I hope to have this, including a simple base position class users can inherit, implemented over the weekend.

I’ve been looking at these again lately. Being very generic modules supporting a wide range of games they obviously cannot know how to manipulate positions and moves in every one of these games, since board-representation and how to perform a move, not to forget evaluating the “fitness” of a position differ wildly between games. Users of the modules therefore have to provide some domain-specific functionality.

Despite claiming to use an OO interface these modules’ first incarnations required subroutine references to be passed in and stored in a hash. This has now been changed so that users are instead required to inherit from the modules and implement the missing methods.

There’s still some way to go though.

It occured to me that all the methods work directly on positions, so the methods should really be provided by a position class for which a reference is passed in. I hope to have this, including a simple base position class users can inherit, implemented over the weekend.

I’ve been looking at these again lately. Being very generic modules supporting a wide range of games they obviously cannot know how to manipulate positions and moves in every one of these games, since board-representation and how to perform a move, not to forget evaluating the “fitness” of a position differ wildly between games. Users of the modules therefore have to provide some domain-specific functionality.

Despite claiming to use an OO interface these modules’ first incarnations required subroutine references to be passed in and stored in a hash. This has now been changed so that users are instead required to inherit from the modules and implement the missing methods.

There’s still some way to go though.

It occured to me that all the methods work directly on positions, so the methods should really be provided by a position class for which a reference is passed in. I hope to have this, including a simple base position class users can inherit, implemented over the weekend.

I’ve been looking at these again lately. Being very generic modules supporting a wide range of games they obviously cannot know how to manipulate positions and moves in every one of these games, since board-representation and how to perform a move, not to forget evaluating the “fitness” of a position differ wildly between games. Users of the modules therefore have to provide some domain-specific functionality.

Despite claiming to use an OO interface these modules’ first incarnations required subroutine references to be passed in and stored in a hash. This has now been changed so that users are instead required to inherit from the modules and implement the missing methods.

There’s still some way to go though.

It occured to me that all the methods work directly on positions, so the methods should really be provided by a position class for which a reference is passed in. I hope to have this, including a simple base position class users can inherit, implemented over the weekend.

Siemens’ deafening phone

August 28, 2004

I just found out about this. Apparently my phone (a Siemens C65, I think) may damage my hearing.

Great. Just great.

Chip & pin

August 28, 2004

I’m getting sick of the British banks’ self-gratification. They’re saying that Britain is one of the first countries to make use of this “new” chip-and-pin system, where you identify yourself by a pin-code instead of by signature when you’re buying goods at shops.

What they fail to mention is that they are more than 10 years (at least) behind other countries. Flashback to Norway 10 years ago, long before I even thought about moving to Britain. I had a bank account with a VISA debit card, and I never had to sign when purchasing stuff. I always tapped in my pin-code.

I don’t know how much longer they’ve had that arrangement over there because I was too young to have a debit card much before that. It was pretty common to use plastic payment options though, so I imagine it’d been in place for a while.

Ok, I should shut up now. I’ve ranted enough for one day.

What were they thinking?

August 28, 2004

I live in a stupid flat.

Don’t get me wrong; the flat is nice and all that: wooden floors all over, apart from the kitchen and bathrooms which are tiled, two large bedrooms and a large-ish livingroom with a (fake) fireplace and access to the balcony. The kitchen has built-in hidden dishwasher, washing-machine, fridge and freezer and a double-decker built-in oven (a smaller oven/grill on top of the main one). To finish it off, there’s a built-in microwave on top of this arrangement.

For all its splendour, I don’t think anybody actually meant for people to actually live in it. It’s those little things that are annoying; I’ll explain what I mean. Here’s a few of my pet hates, in no particular order:

  • the microwave is placed too high up on the wall. I’m not particularly short, but I have to stretch to place anything into or take it out of the micro.
  • only the ensuite bathroom has a usable shower. To take a shower in the morning I have to go through the other bedroom! What’s up with that?
  • no storage space in any of the bathrooms, apart from a tiny ledge just by the sink. Where did they intend for people to store toiletries etc?
  • apart from the livingroom the flat has practicly no windows. There’s nothing more than a peephole in the kitchen and each of the bedrooms.
  • the fake fireplace together with the placement of the very dominating radiators in the livingroom makes it hard to place furniture in any decent configuration.
  • the mailbox is so clumsily constructed that the postman almost has to fold over postcards in order to get them through the opening.
  • oh, and this is my favourite: the paint used on the walls (even in the kitchen and the bathrooms!) is not water-resistant. This means I have to put a piece of cardboard opposite the sink to avoid the paint being washed off the walls should I spill some water on it when I’m washing up.

So, what were they thinking?