The Advisory Boar

By Abhijit Menon-Sen <>

Using fvwm2 as GNOME window manager (on Ubuntu 12.04)

Here's how I set up to use fvwm2 with GNOME, because I'm a dinosaur who has been using the same window manager configuration since 1996.

Read more…

Consumer court: come back later

I had a hearing today. Nothing happened, as usual. The bench were all on vacation, so they gave everyone a date in October for the next hearing.

Disabling touchpad buttons on the Thinkpad X120E

One of the two most annoying things about my Thinkpad X120E is that the touchpad buttons are flush with the outer edge of the chassis, and very easy to press inadvertently. I like the touchpad, so the option of disabling it in the BIOS or with "synclient TouchpadOff=1" did not appeal to me.

Read more…

Mojolicious: getting rid of waypoints

I have been less active than usual for several weeks due to poor health, and it came as a surprise to discover that Mojolicious 2.82 deprecated waypoints, a feature that I used in more than one app. I couldn't find any explanation of the reasons for the change (the commit message says only "deprecated waypoint support in Mojolicious"), hence this note.

Waypoints were earlier considered for removal because they were poorly understood, but were retained because sensible uses of them were found in the wild at the time. This time, they were deprecated because their special-case handling was in conflict with providing more control over format detection, and because their lack could be worked around easily.

Unfortunately, subsequent changes (after the deprecation) seem to have broken waypoints, which I discovered when going from 2.6x to 2.9x in a single step. I chose to get rid of my waypoints rather than investigate the problem more closely (because I suspected that the "fix" would break other things).

It's easy to rewrite code that uses waypoints. Here's an example from one of my apps:

$internal->waypoint('/logs')->to('misc#logs')
    ->get('/tail')->to('misc#tail');

The above code can be written as:

my $logs = $internal->route('/logs');
$logs->get('/')->to('misc#logs');
$logs->get('/tail')->to('misc#log_tail');

Depending on the situation, other alternatives may be available. For example, you could just as easily declare one route for /logs, and another for /logs/tail.

It's an easy workaround, with only minor disadvantages. If you use the nested routes, you need a new temporary variable ($logs). If you declare separate routes, you have to repeat the prefix unnecessarily. But that's a small price to pay.

I was worried about the breakage at first, but Sebastian points out that nobody else has complained in the month since the change. Given that few people ever understood or used waypoints, perhaps nobody was affected.

Brother HL-2250DN and Linux

An inexpensive but featureful network printer that works well with Linux.

Read more…

Lenovo Thinkpad X120E (and Linux)

I've been on the lookout for a Lenovo Thinkpad X120E ever since I read Engadget's glowing review in early 2011. It was not available in Nehru Place for several months, and I'd almost forgotten about it when I happened to find it on Flipkart some weeks ago. I ordered one, and have been reasonably happy with it. Here are a few observations.

Read more…

Consumer court: WTF?

After the court's stern admonishment to Exide at the last hearing, I really thought today was the day when my arguments were finally going to be heard (since Exide has made no attempt to settle in the meantime).

But I didn't expect today's strategy. The lawyer sent his minion to say that he was "on his way", so my case was passed over. Then I was called again at the end, when he had still not arrived. I requested the bench to hear my arguments, but they said it wasn't possible today (apparently because only two judges were there, and the panel's composition would be changing again). So they gave me a date one month later, and I left… and two minutes later, the Exide lawyer walked in. But even though I saw him and turned back, the two judges were already getting ready to leave, and weren't inclined to tarry.

Oh well.

Buying a textbook

I walked down to the market this evening to buy some textbooks for my daughter's new school year. I bought three out of the six needed at the first shop, and another one at the next. The third shop I went to had an old man slowly adding up the prices of a stack of items, while a crowd of customers gathered around.

In the shop was also the man's young daughter, who was doing much of the fetching and carrying. She darted out to ask for some change from a shop nearby, then returned and started dealing with the waiting customers. I asked for the two remaining textbooks, and she checked and said they had only one. Another customer asked for a certain kind of pen, and she went to see if they had any. A third customer gave up on the man and stepped around to her side of the counter.

Throughout all this, the father was (while still adding up numbers) grumbling about her. When she left to find change, he complained that she had not braced the flip-top counter correctly. When she asked him where something was, he would reply as if greatly put upon (paying no heed to the customers). He ignored some of her questions, and snapped at her when she repeated herself to double-check if they had the other textbook.

She brought the textbook from a shelf to the counter. Then she took a sheet of plastic and a roll of sellotape, and covered the book with a few swift, well-practiced movements. She took my hundred-rupee note, and politely asked another customer what they wanted while looking for change in the till. When she couldn't find change, I offered to come back for it later; but she asked if I was sure I didn't need anything else (pen? notebook? file?), and I realised that I could use a new pen.

By this time, her father had finished with the stack, and moved on to the next customer. Then he scolded her for being in his way.

I've always been bad at judging ages, but the girl looked only a couple of years older than my fifteen-year-old daughter. Or perhaps it was her spectacles that made her look older. I smiled and thanked her when she handed me the neatly-wrapped textbook and pen, but she was already turning away to attend to another order.

I never did get that last textbook.

Samsung SCX-3201G MFP and Linux

This inexpensive device is suitable for low-volume printing and scanning, despite some initial setup woes under CUPS on Linux.

Read more…

Exide is too busy to settle

Exide's lawyer, who had asked for an extra two weeks at the last hearing, today asked for another three weeks because the Exide head office in Kolkata has not yet approved my offer for settlement.

The forum members took a dim view of this delay, and grilled him a bit, upon which he promptly changed his story and claimed that my offer was unreasonable, so he didn't know yet if it was possible to settle or not. They finally agreed to give him a last chance at reaching a settlement.

Really final hearing in April.