Categories
Computers Gadgets Linux Photography

Moblogging with WordPress and Nokia N82

OK, so despite its flaws, Nokia N82 does have its bright sides. The camera is actually quite good when there is sufficient ambient light around as can be seen in the picture of downtown Dallas below. My point of reference is my normal camera which is a Canon EOS 20D so I have been utterly disappointed by earlier phones with camera function. In low light, however, the supposedly fantastic Xenon flash on the N82 is no match to a proper flash. Ahhh, all these compromises…

Downtown Dallas

The phone also comes with Nokia’s Lifeblog feature and the camera is preconfigured to use the Flickr or Vox online services. That may be very well for most people out there but I am the kind of guy that wants to set up the system myself. So I just had to find a blogging platform that could be interfaced by the Lifeblog application in the phone.

One of the blogging platforms I tried to make work was of course WordPress and I quickly found the lifeblog4wp project and tried it out on various releases of the software but just couldn’t get it to work. Then, early January an update to lifeblog4wp was uploaded to the project’s web page on SourceForge and I tried it out on a clean installation of the latest version of WordPress. Lo and behold – it worked!

So for anyone out there who has, like me, been frustrated about the problems of moblogging from Nokia N82 using lifeblog4wp – use WordPress 2.3.2 and the version of the script uploaded on 2008-01-05. Then just follow the instructions within the lifeblog.php file.

Categories
Computers Linux

Blocking spam to postfix postmaster

RFC822 from way back in 1982 stipulates that any SMTP mail server system must accept mail for postmaster@<domain> so that someone may send email to the administrator of the email system without knowing any personal email addresses.

When setting up my postfix server I set up DNS Blacklists (DNSBL) to block email being sent from known open relays to minimise the number of spam. This was a great success and I now very rarely receive any spam to my personal address. However, a year or so back I noticed that email were coming in to the postmaster address, past any spam checks. I quickly learned that postfix by default disables any blocks for the postmaster address and when I searched the Internet it looked as if a recompilation of postfix was necessary.

Then, eventually, I found that if the value address_verify_sender is set to something else than postmaster@<domain> DNSBL could again be enabled for the postmaster alias. The value address_verify_sender is used when the mail server verifies the sender. It can be set to null but that will probably lead to problems since many mailservers will not accept it. The solution is simple – I created another alias in /etc/aliases and set the same alias to address_verify_sender in /etc/postfix/main.cf.

Now DNSBL is in place for postmaster@<domain> but it is disabled for the address used for verification. However, that address is not as easily guessed and doesn’t get any spam. Legitimate email to postmaster@<domain> still gets through so I don’t feel that this is in violation to RFC822.

Categories
Computers Linux

Migrating from Drupal 4.7.3 to WordPress 2.3.2

I used to run this blog on Drupal 4.7.3 and really hadn’t upgraded the software in more than a year. For some reason, the whole blog felt very slow and it took ages to get into the administration pages. It was clearly time for change. The question was whether I should upgrade to Drupal 5 or switch platform altogether. To be honest, I really didn’t actually use any of the more CMS-ish features of Drupal and I have a couple of other sites on WordPress so I thought long and hard about switching to WordPress.

But what about all the previous content? Sure, I hadn’t written that much but there was a little and it is always nice not having to start from scratch. Unfortunately there didn’t seem to be any recommended solution for migrating the content. Some other bloggers had posted MySQL scripts that could take the data from one format to another but it was supposedly very uncertain if it was going to work with my combination of versions. Now, I have no problem whatsoever in writing SQL scripts and do so ever so often in my job – I just felt that there had to be a simpler way. And there was.

It turns out that WordPress has a very nice RSS import feature and I had set up Drupal to provide an RSS feed. I just switched on the setting in Drupal that makes the RSS feed include all the text and not just the teaser but then I had one small issue – Drupal doesn’t let you show more than 30 posts in the RSS feed.

It was time to get dirty and jump into the PHP code. 43% down in the file /modules/system.module there is an array with the number of posts to show. Just stick “, 9999” (or some other large number) at the end of the list and go back to the setting page in Drupal and pick it. Then just save the RSS feed and import it into WordPress. Ta da!

 

Categories
Computers Linux

Making Postfix listen to a secondary port

Some ISPs that I use block outgoing SMTP traffic on port 25. As an example, my mobile operator  Telenor blocks outgoing traffic from my phone on TCP port 25 which means that I couldn’t connect my laptop through their network to send email using SSL-encrypted SMTP via my company’s SMTP server. I can understand their intention but they make it very difficult for people like myself to use external mail servers for outgoing mail. The standard solution to this is to use the submission port (TCP 587) and if there is a fully configurable firewall in front of the mail server it is normally straightforward to make the firewall send traffic on two external ports (25 & 587) to the same internal port.

However, in my case it wasn’t so easy. The firewall could route traffic to internal IP addresses but it couldn’t change the destination port.

After briefly consulting Google, many people talked about having Postfix listen to multiple ports but others warned about the risk of ending up with an open relay. Naturally I didn’t want that so I looked for an easier solution. And there is. Just use iptables to rewrite the port on incoming packets:

iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 25

To make this stick when the server is rebooted, use iptables-save or similar and apply the rules when the network is activated. The nice thing with this setup is that Postfix is not touched and still only listens to port 25.

Categories
Computers Linux Music

Transcoding FLAC to MP3

Having my entire record collection in a fully lossless format with properly scanned cover art has taken some time. Now that it is done I sometimes want to use the music in players that do not support FLAC or where I want to keep down the size of the files.

I have tried a number of existing solutions but none of them worked the way I wanted. Since I keep my music on a headless server I wanted a non-GUI solution. Also, since my main playing environment is based on Slimserver there are a number of features that give other players some headache – one such thing is that many of my genre tags contain multiple genres, separated by semicolon. I also wanted the tagged file to include the cover art and to work on both Windows Media Player and iTunes.

My current solution is based on a Bash script (attached) and includes the following features:

  • Incremental transcoding so it doesn’t have to run through the entire library (which may well take weeks)
  • Ability to skip a certain folder – in my case I have skipped the compilations for now since iTunes makes it messy otherwise
  • Fixes filenames so that they don’t include any non-ASCII characters

To run the script a rather updated Linux version is needed. I first started writing the script on Ubuntu 6.06 (Dapper) but realised after a while that the reason that I just couldn’t get the Unicode characters in the tags to work was not due to me but some bug in the id3lib. Currently I am running this on Ubuntu 7.10 (Gutsy).

Attachments

Categories
Computers Music Windows

CD ripping workflow

Since some time back I have moved my entire music library online in a fully lossless format. The idea of ripping the entire library of CDs did not exactly thrill me – especially since I had ripped most of the records already, but in a non-optimal format.

After having carefully studied all alternatives I settled on using the FLAC format to store the music, the main reasons for this was the open source nature of FLAC. Your mileage may vary and for many a fully managed process using Windows Media Player or iTunes may be a better option – if you can live with your music being locked into the respective format.

My music environment includes multiple Slim devices (one Transporter and one Squeezebox) both driven by SlimServer on a Linux server running 24/7. To use this workflow the following applications are required: Exact Audio Copy, FLAC encoder, MP3Tag. In addition an graphics program is benecifical in order to process the cover art.

The step-by-step process I employ to rip a new CD is:

  1. Use Exact Audio Copy (EAC) to rip the CD (my configuration file can be found below). I don’t like the anglo-saxon way of capitalising every word in the song titles so I change them all manually. I also add multiple genres separated by semicolon which works fine with SlimServer but freaks out iTunes and Windows Media Player.
  2. I make sure to save a copy of the log file from EAC to the same folder as the FLAC files.
  3. For multi-record album (and other complex albums) I use MP3Tag to add DISCNUMBER and other information and rename the files so that each file has a three digit number where the first digit indicates the record within the album set.
  4. I then scan the cover of the record and create a 1080×1080 pixel JPG image which is save in the same folder as the files.
  5. Finally, the files are moved to my Linux server where the attached Perl script is used to generate thumb nails. The script requires the presence of ImageMagick on the system which must be installed separately.

Attachments

Categories
Computers Mac

Text encoding for Mac OS X mail application

This is not really an issue with Mac OS X but rather with the inability of Microsoft Outlook to treat text encodings properly. You are affected by this if you write emails in the mail application on Mac OS X and notice that replies to emails you have sent comes back with the replied text being all garbled. Apparently this stems from a couple of bugs in Microsoft Outlook that prevents it to treat the text encoding properly.

A simple fix to this issue is to set the mail applications to use Unicode encoding for outgoing emails. While this can be done manually for each and every email you send (Message -> Text Encoding -> Unicode (UTF-8)) it is better to change the mail application of Mac OS X to use Unicode as default encoding. To do this, open a Terminal window and type:

defaults write com.apple.mail NSPreferredMailCharset "UTF-8"
Categories
Computers Mac

Ruby on Rails doesn't quite work on Mac OS X

Ruby on Rails is gaining in popularity when it comes to creating web sites. And no wonder, the features within the framework seems ideal for an agile development process. So naturally, I wanted to try it out on my new Macbook Pro.

Since I wanted control on the installation process, I followed the guide on www.rubyonrails.com for OS X. Everything went fine until I got the following error:

dyld: NSLinkModule() error
dyld: Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib
Referenced from: /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
Reason: image not found

To fix this problem, issue the following command:

sudo install_name_tool -change \
  /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib \
  /usr/local/mysql/lib/libmysqlclient.15.dylib \
  /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle

With this change I seem to be having a fully working Rails environment.

Categories
Computers Linux

Upgrade Thinkpad BIOS from Ubuntu

OK, so you have installed Ubuntu or another version of GNU/Linux on your Thinkpad and realise that you need to upgrade your BIOS. The files are available on Lenovo’s web site to create a bootable diskette. The problem is that the application is for Windows.

Not to worry. Just download the BIOS update application, extract the diskette image and use it to create an ISO file that you can then burn to a bootable CD.

> wget ftp://ftp.software.ibm.com/pc/pccbbs/mobiles/spsuiv69.exe
> cabextract spsuiv69.exe
> mkisofs -b IVUJ11US.IMG  -o biosboot.iso IVUJ11US.IMG

Then just burn the file biosboot.iso using your favourite ISO burner. Boot from the CD and follow the on-screen instructions.

Please note that, while this worked for me, I take no responsibility for what happens. There is always the risk of BIOS upgrades going wrong, turning the computer into an expensive paper weight.

Categories
Computers Linux

Install Ubuntu 7.04 on Thinkpad A20p

When installing Ubuntu 7.04 Feisty Fawn on a Thinkpad A20p the display is a mess. In addition power management does not work which means that it is not possible to make the computer go into standby when the lid is closed. This article explains how to fix both issues.

To fix the display, you will need to break out of the desktop (Alt+Ctrl+F1) so that you can see what you are doing. Log on and get root privileges (sudo su) to be able to write the changes below.

Edit xorg.conf (nano -w /etc/X11/xorg.conf) and add the following (the existing Monitor section can be kept):

Section "Monitor"
Identifier      "Monitor0"
VendorName      "IBM"
ModelName       "ITSX93"
HorizSync       30-100
VertRefresh     50-100
ModeLine        "1400x1050" 122.00 1400 1464 1784 1912 \ 
                1050 1052 1064 1090 -HSync -VSync
EndSection

N.B. There should be no line breaks in text after ModeLine.

Then change the reference to “Default Monitor” under the Screen section to Monitor0. Save the file with Ctrl+X Ctrl+Y. The setting will take effect when the system (or X-windows) is restarted.

The next issue was with the power management. The BIOS in the A20p is from before 2000 which is the cut-off year for ACPI support in Ubuntu 7.04. The computer has ACPI support but the kernel needs to be forced to load it. This is done by changing the boot options. To make the change persistent, edit the file /boot/grub/menu.lst.

nano -w /boot/grub/menu.lst
kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=\ 12345678-1234-1234-1234-000000000000 \ ro quiet splash acpi=force

Reboot to make all changes take effect.

css.php