Three Year Anniversary!

Stéphanie and I had our three year anniversary today! On January 16th 2004 we went out together for the first time. We went to see Mystic River (the first time out of many that we went to the movies) and so that date has become our anniversary date.

I had told Stéphanie that I would take the day off and that we should go downtown to do some shopping… but I hadn’t told her that I wanted to shop for rings with her, engagement rings! :-) Yes, this is it — I’ve asked Stéphanie to marry me and she said yes!!

Our favorite design looked very similar to this one... We visited five shops and got somewhat disappointing service in all but the first: the shop assistant in Hingelberg really knew what she was doing and spend a lot of time educating us about the sizes, heights, widths, and shapes of the rings. I had never been wearing rings, so I more or less thought that a ring was a ring… But no, there were a lot of little things that the shop assistant could tell us that we never would have seen ourselves, such that we both need rings with a bit of rising on the side since none of us have particular wide knuckles compared to the width of the fingers… How would we have known that? :-)

We spend quite some time discussing the color of the gold — we both want a golden ring. There’s the “normal” yellow color, but we could also get a pink or rose color. To better see the color difference she urged us to take two rings and go outside to judge them in the natural light… we could easily have run away :-)

In the shop I felt like what I would expect to feel if I went to a tailor: the assistant seemed competent and knew what looked good and what didn’t. It was a bit strange but also very encouraging to hear the shop assistant and her manager quickly decide that this or that ring was correct and that this or that was wrong for me. And more importantly, it made sense when they explained to me why this or that ring was good or bad :-)

After having figured out the dimensions for our rings she wrote it all down on a card and said that we could now think a bit about it and see what kind of collections we would find in other shops around town. Somewhat strange idea I thought, but very customer friendly. But maybe she knew what the other shops had to offer…

These are apparently very popular at the moment... Because, after the first shop it went downhill: the other shops had an ugly two-color design and some plain rings from loveDsign. The shop assistants simply pulled out a box with rings, ordered by kind of profile and width. I guess there were 6 rows and 10 columns, making for some 60 sets of rings. The assistant apparently expected us to pick a set just like that. That might seem simple, but after coming from a shop where we got a throughout guidance it seemed like very poor customer service to simply present the rings and then say nothing further.

After having been to four shops and been disappointed every time we got rather tired of those mass-produced rings and the presentation of them. Sure, they are cheaper than the hand-made rings from Hingelberg, but it was like looking at a Fiat after looking at a Ferrari… The Hingelberg set with 18 carat was twice as expensive as the other rings with 14 carat. Both sets were expensive, but I think it is acceptable considering that we plan to use the engagement rings as our wedding rings too, and thus use them the rest of our lives.

Finally we went shopping for shoes — Stéphanie’s favorite shopping item :-) and had dinner at Raadhuus Kaféen which is a very cozy restaurant with good traditional Danish food. This was a super day!

Meeting the Enemy

Everybody must pay the media fee! Yesterday Stéphanie and I had an unpleasant visitor: the License Fee Guy — or whatever you want to call what we call “licensmanden” in Danish…

Since January 1st you have to pay media license fee if you have a computer that can access whatever strange stuff DR decides to put online… and yesterday one of the controllers came by and asked us if we had a TV or a computer. Well, what kind of a stupid question is that to ask people in a building with only young people?! Of course we have a computer — we have two, not counting the two laptops we’ve ended up with!

Luckily the fee is per household, so we “only” have to pay the 2,150 DKK one time and not four… :-/

For 2,000 DKK (about 350 US$) we could have made a small vacation or something similar. Now we have to pay for a service which we don’t really use. I’ve never seen anything of interest on the DR homepage (except their radio shows and I would gladly pay the 320 DKK they cost in annual fees). We also hardly ever watch the two programs broadcast by DR: DR1 or DR2.

The whole idea of having a public service station is okay, but could they please start taking the money from the taxes we pay already? A regular student has about 4,000 DKK a month after taxes. Paying 180 DKK a month for having a computer connected to the Internet comes out to 4.5%(!) of extra taxes. I think that having a media tax of, say, 1% for everybody would be much more fair. Then they could fire the people who spend their days knocking on peoples’ doors…

DreamHost Fun (Madness)!

The hosting company behind Stéphanie’s blog is DreamHost and they’re a crazy bunch of people! :-)

Today they announced on their company blog that they would begin lowering the amount of available disk space and bandwidth for new customers!? This is absurd and never heard of before… they claim to be doing this to regain the reputation they lost during 2006 where people started saying that they were overselling their services.

DreamHost provides 200 GiB of space so I don’t think it should matter the least if they lower it by 0.5 GiB a day… I think it’s super hilarious! :-) Besides, the disk quota increase weekly by 1 GiB, so unless you plan on expanding your site very quickly, then you should never have to worry about disk space at DreamHost.

If you want, then feel free to sign up with DreamHost using this link (which will earn me $97 for referring you) or enter the promo-code MG97 to get the $97 off yourself(!) when signing up. You decide, but $97 off is the maximum saving available.

(If you insist, then use one of MG90, MG80, MG70, MG60, MG50 to save progressively less, from $90 to $50.)


What a nice start of the year! I’ve just received news from SourceForge and Paypal that a happy user of PHP Shell has donated $50 to me. Very cool!

A simple GNU I’ve already used the money… for another donation: I’m now a member of the Free Software Foundation, better known as FSF. I registered to pay $60 a year since I’m still a student, and in return I get a book from RMS and a good conscience :-) If you use this button: [FSF Associate Member] to register, then I will get credit. When three people have registered through me, then I get to choose a personal greeting which RMS himself will record for me to use on an answering machine! How weird is that?! :-)

PEL Version 0.9.1

Finally, a new version of PEL — get it before your neighbor! Pick your favorite:

The release notes follow:

Added setExif(), getExif(), and clearExif() methods as a convenient and recommended way of manipulating the Exif data in a PelJpeg object. Improved PelEntryTime to deal with timestamps in the full range from year 0 to year 9999. Removed PelTag::getDescription() because the descriptions were out of context. A new example demonstrates how to resize images while keeping the Exif data intact. Added a Japanese and updated the French and Danish translations.

That was the executive summary, there’s a bit more detail about the changes below:

  • The constructors of PelJpeg and PelTiff can now take an argument which is used for initialization. This can be a filename (equivalent to calling loadFromFile()), a PelDataWindow (equivalent to load()). The PelJpeg constructor will also accept an image resource.

  • Added PelJpeg::setExif(). This method should always be used in preference to PelJpeg::insertSection() and PelJpeg::appendSection(). One should actually not be using appendSection() unless one is very sure that the image has not been ended by a EOI marker.

  • Added PelJpeg::getExif(). This method is the new preferred way of obtaining the PelExif object from a PelJpeg object. Updated the examples and code to make use of it.

  • An example of how to resize images while keeping the Exif data intact is given in resize.php.

  • The PelTag::getDescription() method is no more. The descriptions were taken directly from the Exif specification and they were often impossible to translate in a meaningful out of context because they had references to figures and tables from said specification.

  • Fixed bug in edit-description.php which still called the constructor of PelIfd in the old pre-0.9 way.

  • Updated documentation of PelIfd to make it clearer that it can be used as an array because it implements the ArrayAccess SPL (Standard PHP Library) interface.

  • Added Japanese translation by Tadashi Jokagi.

  • Update by David Lesieur of the French translation.

  • Rewrote entry for version 0.9 in NEWS to highlight the API incompatible changes made from version 0.8.

  • Renamed test.php to run-tests.php and implemented a simple search functionality for finding the SimpleTest installation.

  • Rewrote script to work with Subversion.

Finally, if you insist, then go read the full ChangeLog, there’s lots of good stuff in this release :-)