Goodbye, IBM / Lenovo!

After flickering in-and-out for a few weeks and then getting a misterious red tint, the IBM Thinkpad R50’s display got well for a couple of months before getting all flickery again and dying for good. It was the nicest display you could find in any laptop of its class, even tough it is rather opaque and has its share of glare. I called IBM Tech Support and they told me that I could send it to Guadalajara for service after paying USD$70 for shipping and diagnostics (the backlight’s out, what else is there to diagnose?). I called IBM Guadalajara and was told that I had to pay over USD$100 instead, which I paid up anyway. Then they promptly proceeded to lose my service order for a month, time in which apparently IBM finally managed to kick out Lenovo employees from their Guadalajara offices. After calling their new number repeatedly, I got in touch with them and they finally managed to ship me a prepaid box to send the laptop out.
Well, as it turns out they have to replace the display. Big surprise! Wanna know how much that’s going to cost? Over US$900, thank you very much. You may be aware that the price of the display is more than enough to buy an entirely new laptop of almost any other brand.
Well, let me tell you about brand loyalty: My first brand-new PC was a IBM PS/2 55SX in the early 90’s. I worked like crazy for an entire summer and the next semester to get my hands on a luggable P70. I even sided on microchannel against EISA during the bus wars. Overall, for over 15 years the IBM Thinkpads had been my favorite notebooks. And I advocated them everywere, because even tough they were *very* expensive, their quality was outstanding.
And up to the 600 line they were excellent. But the L series was terrible, the power brick and the laptop itself overheated a lot and overall had awful power subsystem glitches. Anyway -and against my wife’s warnings- I went and bought this R50 anyway just because bdelgado got me a good deal, but it came with a bad hard disk right out of the factory, has a battery that degraded incredibly fast (half the original lifetime in six months of moderate usage, and nowhere near the advertised lifetime to start with), had to have its motherboard replaced barely a month before the warranty expired and it still overheats and has glitches in the power subsystem.
And to think that I was already looking into getting a Thinkpad X41 right before the R50 crapped out.
So decided that I am not going to spend that much money to replace the display in an outdated laptop. Moreover, I’m not willing to keep pumping money into a company whose QA processes seem to have disappeared, and whose service has got so bad that they lose a service order for an entire month.
So, goodbye IBM. Or Lenovo. Or whatever manufacturer they sell out to next. And hello Dell. I just bought a Latitude D620 and I’ve started to document my adventures with it. I will keep all of you posted on that.
In the meantime it’s goodbye forever to IBM/Lenovo computers. Thanks for the memories, but I’m not looking back, and it feels really good.
[tags]IBM, Lenovo, Thinkpad R50, Laptop[/tags]

WPG2 Sidebar Widgets 1.0

Gallery2After playing around with the WordPress Widgets plugin I wrote a couple of widgets for WPG2 borrowing heavily from the sample widgets in the widget plugin distribution and also from Otto’s Google AdSense widget.
WPG2 Random Image and WPG2 Grid Block are released into the public domain, and you can download version 1.0 right here.
Oh! BTW, I just set up a page for these widgets.

[tags]WordPress, WPG2, widgets[/tags]

WordPress 2.0.3 inside

WordPressLast Sunday I upgraded WordPress to 2.0.3, and I have to confess that I am very impressed. After a couple of disastrous dry runs in a spare server, I backed up everything and decided to go for it on the production system — half expecting it to crash somehow. However the upgrade went smoothly, and almost every plugin just kept working exactly as before, with the sole exception of WPG2. Since the website recommends to upgrade to Gallery2 2.1.x and to the new WPG2 2.0 plugin, I did just that and got the embedded gallery working again in no time.
Kudos to both WordPress and Gallery2 teams. You have created nice pieces of software, and are setting a high standard for commercial and Open Source blogging and photo gallery software.

Kudos, and thanks.

[tags]WordPress, blog, Gallery, Gallery2[/tags]

Add swap space to Linux

This is an old sysadmin trick, but a good one all the same.
Suppose that you finished installing a brand-new Debian GNU/Linux server, and for whatever reason you forgot to set aside some space for a swap partition. Or you correctly got some swap space at installation time but now you desperately need some more. Well, despair not. It’s a little known fact that you can have swap space in a file on top of the filesystem instead of using a dedicated block device.
This simple recipe will give you 2Gb of swap space. Here we go:

# mkdir /var/swap
# chown root.root /var/swap
# chmod 700 /var/swap
# dd if=/dev/zero of=/var/swap/01.swp bs=1024 count=2M
# chown root.root /var/swap/01.swp
# chmod 600 /var/swap
# mkswap /var/swap/01.swp

Now add this newly created swap space to your /etc/fstab:

/var/swap/01.swp       none    swap    sw              0 0

Teoretically, you won’t get the same performance as using a dedicated block device, and if the file actually gets fragmented it might drop rigt to the floor, so if you try this at all do it as soon as possible after installation. So if what you’re trying to do is to *increase* your available swap space instead, you may add a priority option to give preference to the block-device swap space:

/dev/hda1              none    swap    sw,pri=1              0 0
/var/swap/01.swp       none    swap    sw,pri=2              0 0

And just this time activate the swapspace with addswap (The initscripts will do it on every boot thereafter):

# swapon -av

That’s all there is to it. I particularily like how newer BOFH generations look at this with some skepticism at first, and with endless amazement later.

[tags]Debian, GNU, Linux, swap, sysadmin[/tags]

reiserfs and dd_rescue for data recovery

Last thursday the hard disk drive on a development machine died big time. First it started to behave erratically and dmesg showed that it has having trouble with some bad blocks. It did not survive a reboot: ReiserFS woud not mount it on boot, and reiserfsck running from an Accelerated Knoppix CD refused to bring it back to life. At first glance, the disk was beyond repair.
Of course, upon closer inspection, it turned out that the warranty expired exactly two months ago. Normally -after swearing my heart off- I would just replace the disk and make myself a nice paperweight or some other modern art piece -I’ve been looking forward to make one of those nice HDD clocks– but in the guts of that particular HDD were some uncomitted changes that I just wasn’t on the mood of rewriting. Besides, even though most of the data was expendable, the configuration hadn’t been backed up in quite a while (Yes, there is a pattern here).
So here’s the recipe I usually apply in these situations using Kurt Garloff’s dd_rescue. First get a brand-new HDD of approximately the same capacity and place both disks in a working Linux box (Depending on your necessities, booting from Knoppix might do). Let’s call the old, dying HDD /dev/hdg, and the spankin’ new disk will be /dev/hde. For the sake of simplicity, let’s assume that /dev/hdg was partitioned in /dev/hdg1 for swap and /dev/hdg2 for data.
First we’ll copy the entire data partition from /dev/hdg2 to /dev/hde2:

# dd_rescue /dev/hdg2 /dev/hde2

This will take a long, long time. dd_rescue starts with a reasonable block size, but whenever it encounters and error it retries a few times with a smaller block size before skipping the defective blocks and moving along. This is useful because it will copy all data in every readable block, instead of giving up at the first error like dd does. In my case, this took more than a day for a 248GB partition.
Once the data is in a new disk you can try to mount it directly, although it is a good idea to run reiserfsck first to make sure that the files you’ll copy are usable.

# reiserfsck /dev/hde2

Now here you might run into a small obstacle. Ideally I would buy the exact same model as the old drive for recovery purposes, because that guarantees that an exact bit-for-bit copy will work in most cases, partition maps and all. However in this case I bought a different brand, which resulted in a slightly smaller drive and a completely different geometry. When this happens, reiserfsck will complain about the different partition size, and suggests that you rebuild the superblock:

# reiserfsck --rebuild-sb /dev/hde2

Now you can do a normal reiserfsck.
When you’re done just mount the new partition and copy your data to a safe place:

# mount /dev/hde2 /mnt/tmp
# rsync -a --progress /mnt/tmp/etc /backup/dir/
# rsync -a --progress /mnt/tmp/home/arturo /another/backup/dir/

After this you can reformat the new drive for normal usage. Mine is being debbootstrapped as I write this.
This little recipe has saved quite some data and a few disks, including most of mcleod’s late Xbox hard disk. As usual your mileage may vary, but with a litle luck you just might get some of your files back.
Now about that crappy Maxtor HDD… I might just go for the wind chimes instead.
[tags]Linux, sysadmin, reiserfs, dd_rescue, data recovery[/tags]

Amplifying ignorance through technological empowerment

There are numerous reports around the Internet about a supposed fraud. People that has never heard about the Drunkard’s Walk is firing up Excel or SPSS to plot variables and doing correlations, and while some of them actually ask for interpretation from someone else (an expert, preferrably), all of them are quick to state that the election is rigged, even when they lack either the knowledge or the experience to realize that they are wrong. Most arguments are critically flawed, the methodology is just wrong or anything resembling actual math is completely absent.
Some people are amazed when they apply a curve-fitting algorithm to some data and then -OMG!- it actually fits (What the fuck where they expecting?). Some other people find linear correlations in time series that represent percentages. A lot of people -a whole lot- are amazed that the lines in the PREP never crossed and believe that it is impossible. A couple of so-called experts were on the radio today discussing “mathematical irregularities” without providing real -scientific- arguments. AMLO himself has spoken about “mathematical impossibilities”. His cynicism -and the irony of the phrase- is mindboggling.
I have seen this same problem before in another context, and you might be familiar with it too: Someone learns to program using Visual Basic by drawing buttons and filling up code. He’s a programmer, right? Now he fires up VB.NET, learns to draw “web forms” and fills out some more code. Now he’s also a web programmer!
The same thing happens in other circles. For instance, we all know that anyone that can fill up a form in Blogger or LiveJournal is a journalist. Now we can prove that this very same phenomena -technological empowerment amplifying ignorance instead of supressing it- seems to work out with statistical programs -even with spreadsheets .
Hypothesis: If you give them SPSS, everyone is a statistician.
[tags]Mexico, IFE, PAN, PRD, PRI, Mexican Elections 2006, Math, Statistics, Ignorance, Education[/tags]

Mexican elections 20060704 @ 1600hrs

The PREP does not determine the actual winner, but a preliminary result within a certain error magin. The “Preliminar” part in “Preliminar Electoral Results Program” is conveniently ignored by many. Since the election numbers are too close to call, and given the error margin (that may account for human error, among other things), the IFE decided to go for a full vote before pronouncing a winner.
The data that the PREP reports is NOT random. The time series does not reflect the measurement of a social variable (e.g. number of births) but a sucessive approximation to a final state (the number of votes for each candidate).
There may be validations in place to detect typing errors (e.g. 129 instead of 124, 272 instead of 212) using the sums in the voting documents but the IFE may not be willing to discard the results of internally inconsistent voting documents (e.g. a bad sum).
The rules are clear, signed by every political party and written somewhere, but the great majority of the people does not know what they are.
As usual, the problem is either education, simple ignorance or disinformation.
[tags]Mexico, IFE, PAN, PRD, PRI, Mexican Elections 2006, Math, Education[/tags]

Mexican elections 20060703 @ 01:00hrs

Yesterday at 11pm IFE asked for prudence and -mostly- for silence. Once again, *both* PAN and PRD ignored the authority and jumped the gun to declare themselves the winner. The PAN cited hard -if somewhat uncertain- numbers. The PRD called to defend the vote, and that they will respect the results if the are real and the process was clean, which to me sounds like a poorly veiled threat. PRI -irrelevant as it may seem- is still in sweet denial and define themselves as “Mexico’s most important force for stability”, setting the table to negotiate with whomever comes out on top.
Myself, I will go to bed without the certainity of either a bright or a bleak future for me, my family, my business and my country, even if these elections demonstrate beyond doubt that those discrete black-or-white realities don’t apply to Mexico anymore. Uncertainity is definitely a lot worse.
I guess Paco Calderón says it best.
Now I just hope the rest of the world behaves with more responsibility than the candidates and that the market doesn’t punish us too much.
Please?
[tags]Mexico, IFE, PAN, PRD, PRI, Mexican Elections 2006[/tags]