Nokia E90 communicator

Got a new device, the 2007 Nokia communicator edition, E90:


It is smaller than the previous 9500 communicator (in fact every new Nokia communicator model was smaller than the predecessor).

It has, in addition to what you’d expect from any such device, a built-in GPS receiver.

It is nice for touch. It has very sharp screen – both screens, in fact. 3.2Mp camera, FM radio, 512Mb micro-SD card. All data transfer technologies you can imagine: EGPRS, 3G WCDMA and HSDPA for cellular, Bluetooth and WLAN for short-range. See full specs here.

So, the first-minute impression is very positive. Let’s see what it comes to when I start actually using it.

Compiling ipsec-tools-0.7 in RedHat EL 4

Stock ipsec-tools v0.7 does not build in RedHat EL 4:

Making all in racoon
make[3]: Entering directory `/home/octeon/src/ipsec-tools-0.7/src/racoon’
if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I./../libipsec -D_GNU_SOURCE -include ./src/include-glibc/glibc-bugs.h -I./src/include-glibc -I./src/include-glibc -I./../../src/racoon/missing -D_GNU_SOURCE -include ../../src/include-glibc/glibc-bugs.h -I../../src/include-glibc -I../../src/include-glibc -DSYSCONFDIR=\”/usr/local/etc\” -DADMINPORTDIR=\”/usr/local/var/racoon\” -g -O2 -Wall -Werror -Wno-unused -MT isakmp.o -MD -MP -MF “.deps/isakmp.Tpo” -c -o isakmp.o isakmp.c; \
then mv -f “.deps/isakmp.Tpo” “.deps/isakmp.Po”; else rm -f “.deps/isakmp.Tpo”; exit 1; fi
In file included from ../../src/include-glibc/linux/ip.h:26,
from isakmp.c:115:
/usr/include/asm/byteorder.h:6:2: #warning using private kernel header; include <endian.h> instead!
In file included from /usr/include/asm/byteorder.h:35,
from ../../src/include-glibc/linux/ip.h:26,
from isakmp.c:115:
../../src/include-glibc/linux/byteorder/little_endian.h:43: error: syntax error before “__cpu_to_le64p”
../../src/include-glibc/linux/byteorder/little_endian.h: In function `__cpu_to_le64p’:
../../src/include-glibc/linux/byteorder/little_endian.h:45: error: `__le64′ undeclared (first use in this function)

…and so on.
/usr/include/asm/byteorder.h really is a private kernel header in this distro. Does not look like a feature – at least it is fixed in RHEL 5!. But what if I can’t upgrade right now. Here is a really dirty fix to src/include-glibc/linux/ip.h in the ipsec-tools source tree (and it is a symlink to real kernel header, so make a backup), assuming that you are on little-endian machine. Replace the line #include <asm/byteorder.h> with #define __LITTLE_ENDIAN_BITFIELD.
Or, not to forget about the change when you stump into problems with this pernicious hack:

/* Uncomment the next line to compile ipsec-tools-0.7 */

#include <asm/byteorder.h>

I wish I knew if there is a better way to fix this – short of upgrading to RHEL 5.

Backpacking trip to Polar Ural!

I’m leaving to St. Petersburg today with the intention to take the train to Polar Ural in three days.

I have been there in 2001, six years ago, and longing to get there again.

Polar Ural, 2001

This region is a known touring place. Nowadays there are not so many places on the Earth where you can wonder for several weeks and meet not a single human being. Backpacking there is nothing like “hiking trip from a hotel to a restaurant” along marked route. There is no services – you just go wherever you can. No cellular network (and we don’t take a satellite phone, as it weighs over kilo). All food has to be carried – we plan to fit in 700g/day, which makes 15kg of “consumable” start weight.

More facts:

  • The region is extremely wet. Expect your feet to be wet all the time. There is positively no reason to dry down the boots, as they fill up with the water during first 15 minutes of walk-time.
  • The temperature can be anything between 0°C and 25°C. At 0, the rain with heavy wind makes for a rich experience. Snow is possible starting from beginning of August.
  • If the weather is warm, there can be really much mosquitos and gnats. Normal situation is when you must wear mosquito mesh and gloves to protect. It is impossible to eat with the mesh; so eating becomes challenging and people eat either inside the tent or walking/running around.
  • Mosquitos in the sunset

We’ll have 3 weeks of full autonomy. My heart is already in the mountains.

Saunalahti, the Finnish ISP

I was a customer of saunalahti internet provider. Happily connected to their machines via SSH and maintained my rudimentary web pages.

Suddenly, the machine disappeared. Soon it disappeared even from the nameserver. I discovered it after maybe a couple of months not accessing it.

Calling customer support. After usual 15 min. waiting in the queue:

(I) The Unix shell does not work.
(Saunalahti) I take a look at it… (waiting) Oh sorry, the Unix usernames were all removed.
(I) ??? I need Unix shell.
(S) We can restore it. (waiting) It is ready now.
(I) So what machine should I connect to?
(S) The same machine you connected earlier.
(I) But it is not even known to the nameserver! And it is your nameserver I’m using.
(S) I’ll look at it. (waiting) The other machine is
(I, feeling suspicious about such hostname and trying to connect) It does not let me in. Says “Connection closed by remote host”.
(S) OK, one moment… (waiting) the SSH access is closed now. (points me to their web page, saying that my contract does not include SSH access.)

I have nothing more to ask. The SSH access was an important feature for me and one of reasons why I’ve chosen this provider among others. Now they silently removed this reason without even a notice. The only way to maintain the web pages now is by FTP (sending password in clear text). I complained about the issue also on Saunalahti own webboard, other users confirmed the issue. I’m in search for another provider.

PHPUnit stumps…

PHPUnit 3.0.6 (with PHP 5.2.2) can’t even load a file!

$ phpunit UnitTest
X-Powered-By: PHP/5.2.2
Content-type: text/html

PHPUnit 3.0.6 by Sebastian Bergmann.

File “UnitTest.php” could not be found or is not readable.

Let’s see where it looks for my (definitely existing and readable) UnitTest.php. Add a quick debug printout starting with KS: into /usr/local/lib/php/PHPUnit/Util/Fileloader.php:

$ phpunit UnitTest
X-Powered-By: PHP/5.2.2
Content-type: text/html

KS: wd=/usr/local/bin, filename=UnitTest.php
PHPUnit 3.0.6 by Sebastian Bergmann.

File “UnitTest.php” could not be found or is not readable.

What’s that?… I don’t believe my eyes. Does it really look for input ini /usr/local/bin?

$ sudo touch /usr/local/bin/UnitTest
$ phpunit UnitTest
X-Powered-By: PHP/5.2.2
Content-type: text/html

KS: wd=/usr/local/bin, filename=UnitTest.php
PHPUnit 3.0.6 by Sebastian Bergmann.

Class UnitTest could not be found in UnitTest.php.

I’m not absolutely alone with this, there is a recent post (18.6.2007) complaining about the same issue. Maybe this is a new bug in PHPUnit? Let’s try the latest beta release of phpunit from, installing manually as said in phpunit manual section:

$ phpunit UnitTest
X-Powered-By: PHP/5.2.2
Content-type: text/html

PHPUnit 3.1.0beta4 by Sebastian Bergmann.

File &quot;UnitTest.php&quot; could not be found or is not readable.

OK, quotes are replaced with &quot;, but the file is still not found. What else could be done? Rollback to a previous version, phpinit 3.0.5. Alas – result is the same!

Update: This misfortune is experienced on RedHat Enterprise Linux 5. On Ubuntu Feisty, PHPUnit works out of the box. So this is likely an installation problem, not a problem of PHPUnit. Aha! I had some old PHP on RHEL machine, and installed newer version in /usr/local. Let’s revert back to the stock PHP:

$ phpunit UnitTest
PHP Warning: require_once(PHPUnit/Util/Filter.php): failed to open stream: No such file or directory in /usr/local/bin/phpunit on line 40
PHP Fatal error: require_once(): Failed opening required ‘PHPUnit/Util/Filter.php’ (include_path=’.:/usr/share/pear’) in /usr/local/bin/phpunit on line 40

Now even PHPUnit is not found; let’s see with strace where the PHP is looking for it:

$ strace -f phpunit UnitTest | grep Filter.php
4471 open(“/my/current/work/dir/PHPUnit/Util/Filter.php”, O_RDONLY) = -1 ENOENT (No such file or directory)
4471 open(“/usr/share/pear/PHPUnit/Util/Filter.php”, O_RDONLY) = -1 ENOENT (No such file or directory)
4471 open(“/usr/local/bin/PHPUnit/Util/Filter.php”, O_RDONLY) = -1 ENOENT (No such file or directory)

But my PHPUnit was installed by pear in /usr/local/lib/php. This directory is not searched by default. We have to add include_path = /usr/local/lib/php statement into the php.ini, used by the PHP installation. After that, the script subject to test is not any longer searched in /usr/local/bin, and my long-awaited test finally works.

HP Photosmart C6180 with Linux

We desperately needed a scanner. Also the old printer got almost unusable, leaving black strips on the paper after an ink cartridge leaked and smeared the ink on all the plastic foam inside it. The decision seems obvious: multifunction device.

Of mainstream printer manufacturers, only Epson and HP are friendly to the Open Source and thus are supported under Linux. We had a price tag and wanted to get the box from a local shop, as the need was really urgent. This made the choice very easy: HP Photosmart C6180. It is a printer, scanner, copier and fax.

HP photosmart C6180

Under Windows, scanner “just works”. Printer works, but the driver is poor. I could not do lots of things with it such as:

  • print borderless A4 image (datasheet says the printer can do it)
  • print an image in a particular size in a particular place of the page

Driver presents strange options, such as setting all four margins for an image. How can you have all the four of them, I do not know.

Now the interesting part: support under Linux.

HP printers are supported with hplip. My Ubuntu Edge had a version, which did not contain support for this printer model. I downloaded sources and built the newest hplip; compilation went OK, except that it required net-snmp, which also was not in the distribution and had to be installed manually. Fortunately the chain ended at this point.

USB connection worked “out of the box”. Cups web interface saw the printer in the “add printer” dialog. After its addition, the new printer was present in all print dialogs.

WLAN connection worked practically out of the box, with instructions from Ubuntu forums.

But that did not make me completely happy. From what I see this late evening:

  • GIMP must use generic Postscript driver. So, there is no any fine control over the printout. Guys, I’d not call this “perfect support” without selection of:
    • Paper type
    • Resolution
    • Print quality (draft/standard/high)
    • Option to print borderless
  • Other applications, which use the hplip driver present the same interface as Windows. So they are missing the features of gimp-print drivers – especially scaling and positioning of the image. Borderless printing does not work neither: about 5mm borders are still left, and the image is simply cut HPLIP site gives instructions, but they do not work at all.

The scanner is not recognized. Xsane does not see any device, although it has hplip configured.

Continued: After upgrade to Ubuntu 7.04, scanner is recognized! Thank you Ubuntu team.

Rant on Nokia E61 smartphone UI

Disclamer: I *was* affilated with Nokia.

Nokia E61 smartphone

1. With no SIM, you can’t turn off the sound. I do not have an extra SIM at the moment, and I can’t stop disturbing my neighbours with beeping keys. I know that the “profile” is stored in the SIM, but that does not make me happier.

2. It comes with some pre-installed SW, which I can’t remove. I’ll never need these “business catalogs”, but the icon takes the screen space in the most frequently used menu, and there’s no option to remove it.

3. I had some SW installed in the memory card. After phone re-flashing, that SW seems to be missing… no, just taking the memory. But not available for re-installation. The only way to make things consistent seems to be the reformatting of the memory card – the provided file manager (which is hidden in the “office” menu, by some reason) does not show these apps on the card.

4. Help system is fantastically idiotic. I tried to read help 3 times; all the three times it said “in order to save your settings, select save settings from the menu”. There are things which are not obvious to me, for example, meaning of tiny icons. Colleagues told me the lock on top of bold X means “connected to encrypted WLAN”, key inserted in a hanging lock stays for “registered with SIP server” – so intuitive. It is not said anywhere in the help.

5. I’d like to have at least the following applications: usable file manager, screen capture, plain text editor. None is preinstalled. There is a menu “Download applications”, which opens the browser at That useful page provides two applications: “Handy Expense” and “Quickoffice”.

6. Menus have option to be displayed either as icon grid (12 icons fit on the screen), or as “list” (5 list items fit). I’d like them to be more tight, at least smaller icons or just text; OK, maybe I’m expecting too much for 400€ device. But some menus – such as “Tools -> Settings” – are shown only as “list”; probably to practice scrolling.

7. Web browser. It has some nice features and it renders pages pretty well. But:

  • While the page is being downloaded (which can take long for a mobile device), half of the menu is disabled. You can’t zoom/unzoom, toggle images on/off – have to watch the unreadable page until it downloads completely.
  • Menu items “(in/de)crease image size” also (in/de)crease the font size. Good that with several more keypresses fonts can be returned back into the discernable state.
  • No option “open link in new window”.
  • No option to save the page!
  • When loading a very long (1MB) text-only page, I got message “Not enough memory”. (The phone has 64MB of internal memory.)

8. WLAN connectivity is very poor. I have a number of WLAN devices at home, all work fine, but this one says “No WLAN network found” two times out of three when I try.

Other people’s rants:

Of course this does not mean that the phone is “bad”. First, it has many nice features (I’d point out nice rendering of web pages; not a surprise as it is based on KHTML) – look for them elsewhere. Second, no matter how many problems it has, other smartphones may have even more.

Update 10.7.2007:

  • I’m receiving a file via Bluetooth. The “messaging” application can’t open it unless it is one of “known types”, and there is no option to save it anywhere into the filesystem! You can “save to folder”, but the choice is only folders in the “messaging”, which is a filesystem on its own.
  • I’m writing a note. I can not save it anywhere neither. It stays in some place called “Notes”.
  • The stock file manager is simply a shame. The working alternative I found is Y-Browser by Jukka Silvennoinen.

Feelings on Microsoft Windows after we have not been together for a long time

I did not have to spend more than 30 seconds at MS Windows screen for several years. Now I’ve spent several hours.

1. In IE, you can’t stop flicking animated images.

2. In IE, you can’t force all fonts to be at least 12 point size. IE thinks you can not be trusted to select the font with which you browse.

3. In IE, you can’t say that you want resize and navigation controls in *all* new windows. Designers of kewl web sites write “toolbar=no” in their kewl java script. I did not even know about such stupidity before.

4. Here and there you get “modal windows”, from which you can not switch to any other window. If you need to look in another window for the input – no way.

5. Here and there you get windows, which you can’t resize. Selection list of >200 items is crammed in 1 inch vertical space. Was it difficult to allow resizing?

None of these issues apply to the operating system itself, it is all about applications (as anything a user can see on the screen). But the operating system somehow influences the culture of these applications.

There was one thing which I found better though. Default fonts are nicer than what I’m used to in Gnome and KDE.

Locking mobile phones in the USA

The practice of locking mobile phones to a single mobile provider has become quite annoying in the United States. While the rest of the world can freely change providers by simply swapping out a SIM card, US customers are usually stuck with multi-year contracts and locked phones. Apple is continuing this tradition by locking all iPhones sold in the US to the Cingular network.

Source: 10 Ways The Nokia N800 Is Better Than Apple’s iPhone