ZYB closing

June 24th, 2010

For a couple of years I’ve been using ZYB to backup my mobile phone book online. They got bought by Vodafone and now they’re closing:

On 31 July, ZYB will be closing. Please go to www.360.com to register and backup your phone there. We thank all of our customers for their support!

Spotify 0.4 in WINE: “File is an unsupported format”

May 7th, 2010

I bought Serengeti’s album Standing Steady on MP3 from Bengans and wanted to play it in Spotify as “Local Files”. It worked perfectly in MS Windows, but on Ubuntu I got “File is an unsupported format”. WTF?

Spotify acknowledges this:

Spotify uses the system-supplied MP3 decoder on all platforms, and during our limited testing we found the Wine decoder to be excessively unstable on quite a few MP3 files, including some from our purchase partners. We are therefore blocking codecs with the identifier “WINE-MPEG3″ until the Wine system works satisfactorily.

One workaround I found involved recompiling or binary-patching WINE. Not so fun.

The official support forum contained a solution based around installing Windows Media Player 10. I have downloaded and installed it now according to the instructions, but already the playback froze once. Well, Spotify isn’t perfectly reliable in WINE anyway, so this is probably Good Enough.

ThinkPad X40 with Ubuntu 10.04 (Lucid Lynx)

April 30th, 2010

I’m writing this from Ubuntu 10.04 (Lucid Lynx) on my “travel” laptop, a venerable ThinkPad X40. There were two things I needed to fix to make it work:

The Intel Corporation 82852/855GM Integrated Graphics Device [PCI 8086:3582] needed Workaround A: Re-enable KMS found on Lucidi8xxFreezes to start X.

My Huawei E620 USB Modem [USB 12d1:1446/12d1:1001] for mobile broadband worked after removing the /etc/udev/rules.d/15-huawei-e1551.rules file I used to get the same device working in Ubuntu 9.10 (Karmic Koala).

The Book Of JOSH is back online!

April 22nd, 2010

A little more than a year ago I wrote Recommended reading: “The Book Of JOSH: Scala In The Enterprise”. Since then, the original article was removed from the author’s blog and I didn’t know of any copies.

The other day I was browsing already read articles in Google Reader, and found the article in Google Reader!

As I like the article very much and still would like to recommend it to others, I have decided to host it myself: The Book Of JOSH. Enjoy!

Øresund Agile 2010 has been cancelled

April 21st, 2010

It seems like too few people registered for Øresund Agile 2010:

As painful as it is, we have deemed it necessary to cancel this years conference.

Øresund Agile 2010 takes place on May 17-20 in Malmö

March 10th, 2010

Øresund Agile is short for…

the meeting point for Agile Software Development in Scandinavia

I expect great talks and workshops. For example, Johanna Rothman will be speaking!

By the way, Lean Magazine #5 is available for download!

Now on IPv6

February 14th, 2010

I configured a bunch of IPv6 addresses on my GleSYS VPS and got it working after setting the proper route.

After that I added AAAA records for the .se domains I buy through Loopia, including this one. Some of my domains are on easyDNS and they do not appear to support AAAA records until the new member interface launches. According to 1,5 years old information it should add AAAA support.

For testing I added an IPv6-only record for this server: ipv6.divideandconquer.se

Remote control of XBMC, but not too much

January 23rd, 2010

Yesterday and today I have scripted a small web interface for remote control of XBMC using its HTTP API. (BTW, That API could really use a redesign!)

It’s actually just a page showing a screen shot and the name of the file that is currently playing, together with some commands to remote control XBMC.

Available commands are pause/resume, stop, play another file, and shutdown.

I also implemented support for showing notifications on the XBMC screen, which gave me an idea:

The Google Calendar can e-mail reminders for appointments. If XBMC is running, the reminder could be shown as a notification on the XBMC monitor.

I was just about to start implementing this calendar-reminder-in-XBMC when I reminded myself that there are many other small and big projects that would be more valuable for me. But instead of throwing this idea right down the trashcan I decided to blog about it first. Done!

Now I’ll spend some valuable time with my son!

Mark as junk in Evolution, train SpamAssassin on server

December 28th, 2009

Evolution has a feature for marking e-mail as junk. This will set an IMAP keyword “Junk” on those messages. On my mail server I run Dovecot as IMAP server and Spamassassin through Amavis to filter spam. How could I get Spamassassin to learn that all e-mails marked as junk in Evolution are spam? With a shell script, of course. I currently run it as root but maybe it is possible to give the amavis user permissions to read my Maildir…

#!/bin/sh

if [ `whoami` != 'root' ]; then
  exec sudo $0 $@
fi

find ~david/Maildir -name dovecot-keywords | (
while read keywords; do

  DIR=`dirname $keywords`
  #echo $DIR >&2
  # XXX only supports 10 keywords
  CHAR=`awk '$2 == "Junk" { print $1; quit;  }' $keywords |
    tr '0-9' 'a-j'`

  if [ "$CHAR" ]; then
    find $DIR/cur $DIR/new -regex "[^,]*,[^,]*$CHAR.*" |
      xargs sa-learn --dbpath /var/lib/amavis/.spamassassin/ --spam
  fi

done
)
/etc/init.d/spamassassin reload

Helpful pages: Maildir format used by Dovecot, Spamassassin with amavis: Tips and tricks.

Policy notification from Google

December 15th, 2009

My Swedish site Folkmun allows anyone to add words and their definitions. It’s a simple Swedish version of Urban Dictionary. Some people add very explicit words and I had totally forgotten that such words may clash with Google AdSense policies. Today I received a friendly warning:

While reviewing your account, we noticed that you are currently displaying Google ads in a manner that is not compliant with our policies. For instance, we found violations of AdSense policies on pages such as
http://www.folkmun.se/definition/Apaj%C3%A4vel. Please note that this URL is an example and that the same violations may exist on other pages of your website.

Needless to say, I have made a couple of modifications to the site, including hiding ads when displaying explicit words or definitions. If this wasn’t good enough, I’ll know in a couple of days…