IBM Thinkpad T40

I got my hands on one of those new T40 model Thinkpads from IBM and I thought, I should post a little review here.

I was working on a T23 for a very long time, so I quite used to that machine. This review will focus on the changes between the models, but will provide a good overview for you users without knowledge of the T23.

Outside
The new Thinkpad comes with a new flatter but bigger TrackPoint which I don’t really like, but this may be a matter of getting used to (if not: IBM provides you with the old cap, but I’m really trying to use the new one as it is built from plastic which does not get so dirty during common usage). Additionally, the T40 has a standard TrackPad for those users that do not like the TrakPoint (I am definitely not one of them. Although nothing feels as good as a trackball, the trackpoint is a real cool thing and I was a bit disappointed to see IBM putting an additional trackpad there).

As usual, the keyboard is just great. This time, it’s even a bit better, but I am not sure whether this is just because it’s new or because IBM really changed something. What I really, really, really hate about the new keyboard are those Back- an Forward keys above the left- and right cursor keys. I used the empty space around “up” to orientate myself (down was where there was no free space around). So I am constantly hitting “up” when I meant “down” and – even worse: those senseless keys instead left or right. I really hope, I will get used to this or I will have to plug an external keyboard (programming is a quite cursor-intensive task).

The Volume- and the “Thinkpad” (now renamed to “Access IBM”)-Buttons got smaller and have more spacing between them, making it easyier to hit them in the dark.

The status LED’s went from above the keyboard to below the display and are much more visible now. Good thing. Additionally, the Scroll Lock indicator was removed. In Windows it does not make sense anyway (while a missing indicator may be very disturbing in Linux as Scroll Lock quite locks down the console if it’s on). They added another LED indicating that the Notebook is powered. Not so important.

When the display is closed, only three leds are visible: Battery, Sleep and Bluetooth (why bluetooth and not WLAN or both?).

The whole device got a little flatter than the previous model. Extremely flat would be a good term to describe the T40. This unfortunatly breaks compatibility with older UltraBay Extensions (Batteries and Drives) as the new one is slightly flatter.

The T40 is the first Thinkpad where the ThinkLight (a small white LED at the top of the display to enlighten the keyboard when working in dark places) is really useful. It got bright.

Where the connectors where on the back at my T23, they went to the side of the device at the T40 – just the paralell port and the AC plug are at the back (and the big extended battery providing the computer with enough power for about 5 to 6 hours). The COM-Port went away. I liked it for the developement of our barcode solution, but the scanner we uase has an USB cable and USB-to-serial adaptors do exist.

The PCMCIA slots went to the front – the audio plugs (now color-coded) to the back. I don’t really like this as I am plugging audio equipement much more often than PCMCIA cards).

Speaking of Audio: It’s really not that bad for a notebook, but not noticably better than in my T23.

Running the thing

When you turn it on, the first thing you notice is that it is calm. But the Thinkpads have a tendency to grew louder as you use them, so the T40 will probably go louder in a few months too…

The BIOS cannot be accessed directly any more. Instead something called “Predesktop Area” can be reached by pressing the “Access IBM” button during bootup sequence. The PA is something that can be controlled by the mouse and allows access to the recovery system, to the BIOS (a standard textmode one), to a partition imager (without suport for external storage) and quite extensive support material. The whole thing eats up quite a lot of harddrive space in a hidden partition (which I have not removed so far but I will not like the outcome as I certainly have read the Service Manual and all those scary error messages about an inaccessible service-partition. Maybe sometime later ;-)

The first thing I did was to reinstall a clean retail Windows XP Professional – I do not like all those customizations the vendors do to the OS these days. This went flawlessly besides the fact that the setup routine did not recognize most of the hardware: No Newtork, standard VGA, no Power Management, no nothing.

The IBM Support Area on their website provided me with all the drivers I needed (and only those I needed – not a lot of useless tools).

The bluetooth-support must be turned on by pressing Fn-F5 which is documented nowhere. It’s a (integrated) USB-Device, by the way: When turining on Bluetooth for the first time (after installing the driver, of course), Windows reports to have found a new USB device.

The bluetooth software is provided by WIDCOM (as nearly always) and comes in the really current version 1.3.something.

The driver for the trackpad is a really great piece of software as it allows quite a lot of tuining to your habits. I really like this scrolling-feature where a scrolling event in the windows the mouse cursor is currently over is triggered just by moving your finger around the right border of the pad. Nice.

The WLAN Support of the T40 is the first I came across that worked without any tweaking in more than one wireless network. Cool. Maybe the time is ready for endusers to use WLAN?

The expirience with the notebook is a very pleasing one: It’s fast, stable and looks great.

If you can spare the money (IBM notebooks certainly are more expensive than others but they work better and have three years of warranty), you should go and buy yourself a T40 – it’s a great piece of hardware.

Just another debian install

Today I was going to install Debian Linux on another of those IBM xSeries 345 servers.

I really like those products as they are quite powerful and use only two units in your rack anyway. And they are rack-mountable without screws which makes the whole process quite a pleasure.

The problem when installing those machines is that Debian 3.0 does not support the built in ServeRAID controller. There is an extended boot-floppy on http://people.debian.org/~blade/install/preload/, but unfortuantly, today people.debian.org is down.

My solution was to apt-get install kernel-headers-2.4.18-bf2.4 (on another debian machine), to download vanilla 2.4.18 kernel sources, to copy over /usr/src/kernel-headers-2.4.18-bf2.4/.config to the directory where I unpacked the vanilla sources, to make oldconfig, to make menuconfig, to select Support for IBM ServeRAID in the configuration tool and finally to make modules.

I then copied the compiled ips.o to a blank disk in a directory called /boot. I could later on use this disk in the debian installation process (booted from CDROM with bf42 on the bootprompt) when I can “Load essential modules from disk”.

I did the about same thing for the e1000 driver, the built in ethernet chipset requires:

  • Download it here and uncompress it.
  • Hack src/Makefile to use the kernel-sources above.
  • make
  • ignore the warning that a module not matching the current kernel will be built (because that’s what I want)
  • Copy e1000.o to the disk

    Now it installs flawlessly and I’m quite happy…

by the way

i’ve fixed the search-engine and the comments feature yesterday. apt-get upgrade can be disasterous when you have manually installed perl-modules and perl is automatically updated vom 5.6.1 to 5.8.0. I had to comment the mod_perl-stuff from the httpd.conf just to get the server up again. And then in the rush for fixing everything else, I completly forgot to re-enable the mod_perl directives for this weblog. Sorry.

iPod 1.3 for windows

Yesterday, Apple has released a windows installer for the 1.3 firmware. This really is no interesting news as there are so many ways for getting the 1.3 Mac-Firmware to a Windows iPod:

  • Using a Mac (requires double-reformating)
  • Using XPlay
  • Using PodTronics Updater

    And about this hassle with the not supported 2.0 firmware on old devices: I am quite sure that the new firmware can be installed on old iPods using the last two methods above. Unfortuantly, I don’t have the old iPod any more (my father is having much fun with it), so I cannot try this out [and you should not try it either – at least not try it and have the slightest idea I am going to be responsible for what you are doing – I may very well be mistaken]

Progress is relative


I was installing Microsoft Encarta today when I noted an interesting note during the installation. I took the liberty of making a screenshot and highlighting the phrase for you…

The good thing about this: It’s honest!

I’m really asking myself why they created those prograss bars in the first place. They never work.

How to get a Lamp

Last sunday, the lamp of my IBM iL2220 video projector (no link as it is neither available nor would I recommend it any more) exploded. This was especially stupid as I just bought Wario World and Metroid Prime (which I had to have after finishing Metroid Fusion on my GBA and getting to know this wonderful series) and I really wanted to play them.

On Monday, I called IBM’s support line and asked for the part number of the replacement lamp to be able to buy it at the IBM distributor our company has an account at. The supporter told me that he would need the serial- and partnumber of my projector which I did not know.

Today I finally wrote down those numbers before I went to the office and gave IBM another call.

This time the supporter told me (without needing the neither partnumber nor serial number this time) to call another number, which I did thereafter.

This time I was in one hell of a callcenter menu requiring me to press buttons, giving my name and finally my phonenumber for an automated callback. When I finally had a human on the other end of the line (of course I had to make the phonecall with my cellphone – our PBX does not support DTFM sequences), he laughed at me and told me he was from software support and whether he should “flash” my defunct lamp. Funny, but not after having to wait 30 minutes for it ;-)

Anyway: I got another number where I called later on.

This time the supporter knew what I was speaking about (after having explain to her for about three times that I knew the warranty has expired and that I just want the part number to place an order for another lamp). She told me that she was not allowed to give out any part numbers but that she would try to help me anyway.

20 minutes stupid music

“hmmh… please hold the line. This is complicated”

another 10 minutes

Finally she told me that she will connect me to someone else that knows what to do.

2 Minutes

Now I had another supporter at the phone. I told my story again and she finally gave me this stupid part number (33L3426) which the previous supporter was not allowed to give me.

In the webshop of our IBM retailer, I learned that the lamp would cost ~CHF 700.- and that I would have to wait at least 20 days for the new lamp to arrive. Not good as I really want to play Metroid Prime.

Using google I learned that the IBM iL2220 is nothing more than an inFocus LP350 with an IBM label on top of it. Something worth to give a try with.

The supporter at inFocus gave me the number of a retailer of theirs, I called them and learned that they have a lamp on stock and that it would cost at most CHF 485.- more than CHF 200 less than the IBM lamp. Needless to say that I’ve placed my order. The lamp will arrive on friday – about 10 times sooner than the IBM lamp would have arrived.

So much to the great IBM support. So much for buying an IBM product to have a good supply in replacements.

SOAP needs soap

For our Web-Portal superspeed, I am working on a webservice to give some clients access to our provider/offer database.

As the whole portal is written in PHP, I deceided to write the Webservice (fully fledged using the SOAP-Protocol) in PHP too. After some searching, found NuSOAP and the SOAP-Package in PEAR.

Both packages have virtually no documentation, but the PEAR-package has some nicely documented samples (disco_server.php, example_server.php just to name the most interesting two).

While nuSOAP is very easy to handle, it doesn’t have a way to autogenerate WSDL-output which would have forced me to learn writing WSDL. Unfortunatly I did not have time for this, so I went with the PEAR-Package which is able to create the WSDL for you.

The first tests using PHP as SOAP client worked very well.

tip: to increase “debugability” to an actually useful level, use something like the code here for debugging your server:

// include the actual server class
require_once 'modules/ss3_Provider/xml_access.php';

if ($_SERVER['argv'][1] != 'direct'){
    // use the SOAP-Interface to our class
    include("SOAP/Client.php");
    $wsdl = new SOAP_WSDL("http://your.server.com/server.php?wsdl");
    $object = $wsdl->getProxy();
}else{
   // Use the class directly
    $object = new CProvServiceInfo_Class();
}
// do something with $object

If the script is called with the “direct” parameter, the class will be used directly thus giving you back all the debug information you need without an XML-parser trying and failing to unserstand them.

As the customer for this service is going to use ASP.NET to access the webservice, the next step was to try accessing the service via Visual Studio.NET. This was not fun (pasting the complete error here in the hope that google will catch this and will help future users having my problem):

Custom tool warning: At least one import Binding for the ServiceDescription is an unsupported type and has been ignored.

The hairy thing: I have no expirience at all with VS.NET, so I first thought this was a minor problem and I was just too stupid to actually use the imported class. But sooner or later (after trying out importing the Google Webservice), I came to the conclusion that this warning actually is a grave error: Nothing got imported. Nothing at all.

Searching google did not yield any results.

The next step for me was to learn WSDL (which I did not want to in the first place ;-). Unfortunatly, the PHP generated WSDL-File seemed quite ok (besides the missing <documentation>-Tags).

I could not get VS to report a mor detailed/useful error message.

Just when I wanted to give up, i thought of this tool, wsdl.exe that gets installed with the .NET Framework SDK. Running wsdl <filename.wsdl> gave me the same error message, but with a note to look into the generated .cs-File.

This finally gave an usable error-message:

// CODEGEN: The binding 'SuperspeedProvidersBinding' from namespace 'urn:SuperspeedProviders' was ignored. There is no SoapTransportImporter that understands the transport 'http://schemas.xmlsoap.org/soap/http/'.

A quick comparison of the <soap:binding&gt-Tags showed:

Googles Version: http://schemas.xmlsoap.org/soap/http
PHP’s Version: http://schemas.xmlsoap.org/soap/http/

Note the slash at the end.

I hate problems with simple solutions that are so awfully difficult to find because of un-usable error messages!

Just for reference: The following patch fixes the wrong Transport-URL in PEAR::SOAP (0.7.3 – I will report this to the author, so maybe it’s fixed in later versions):

--- Base.php    Thu Jun  5 13:16:03 2003
+++ -   Fri Jun  6 22:51:08 2003
@@ -91,7 +91,7 @@
 define('SCHEMA_DISCO_SCL',          'http://schemas.xmlsoap.org/disco/scl/');

 define('SCHEMA_SOAP',               'http://schemas.xmlsoap.org/wsdl/soap/');
-define('SCHEMA_SOAP_HTTP',          'http://schemas.xmlsoap.org/soap/http/');
+define('SCHEMA_SOAP_HTTP',          'http://schemas.xmlsoap.org/soap/http');
 define('SCHEMA_WSDL_HTTP',          'http://schemas.xmlsoap.org/wsdl/http/');
 define('SCHEMA_MIME',               'http://schemas.xmlsoap.org/wsdl/mime/');
 define('SCHEMA_WSDL',               'http://schemas.xmlsoap.org/wsdl/');

As you can see, there are more URLs having a slash at the end – possibly more candidates? We’ll see. At least I know now, how to debug such problems…

iSync 1.1 but I will not need it

Apple finally has released iSync 1.1 with P800 support, although it remains to be seen whether this support is just for iSync or also for the adressbook which, in my oppinion, is the killer-feature of apples bluetooth initiative.

I will definitely try that out sometime in the future, but not now: I was weak and could not resist from buying myself a SonyEricsson T610 which is – besides the known problem with heavy noise while making calls – the best cellphone I’ve seen so far:

  • It’s very small. It’s very comfortable to finally not have to remove the phone from my pocket when I sit down
  • The UI looks great. OK. That should not be important, but it’s a point anyway.
  • It has a *real* AT-Interface which even resembles the one of the T68 very much. This makes tools like MobileAgent (an excellent freeware for Windows) possible.
  • It has a T9-dictionary: Although I thought that the handwriting would be fast, T9 is much faster for text-entry.
  • It has a really good keypad: Like the T68, the T610 has a really great keypad – the best I’ve seen so far.
  • It has no blinking LEDs – uncommon for Ericsson phones, maybe a tribute to Nokia?

    The only drawback are the limited PIM functionality and much lesser (and less sophisticated) software, but I can more then live with those problems.

    I just hope, they will fix the problem with the noise – and I hope they will do the repair for free.