Linux Information

I use Debian GNU/Linux unstable (sid) distribution.

This is information I wish I could have found on Google. Perhaps it will be of use to you.

  • CUPS Client-Error-Forbidden
    I kept getting the “client-error-forbidden” error when attempting to cancel print jobs through the CUPS web interface when the job had been submitted by someone else; in /var/log/cups/error_log I would see error messages like ‘cancel_job: “” not authorized to delete job id 659 owned by “anonymous”!’. The solution was simple; I had to add AuthClass System and AuthType Basic to /etc/cupsd.conf under . That is, you should have at least the following in your cupsd.conf:


    AuthClass System
    AuthType Basic
    Allow from 127.0.0.1

    Previously I had no AuthClass line and thus could only cancel print jobs originating from the system running the server. I consider this to be a bug, and filed a report on it, although the cups maintainer insists it is necessary for security (check out my bug report for more detail).
    I wrote a tiny little patch (download for cupsys 1.1.14, or download for cupsys 1.1.20) that allows you to specify AuthType None for jobs. You cannot set AuthType None without this patch. Note that this will make your system insecure inasmuch as anyone can see anyone else’s jobs if you provide this option. You can also download Debian packages (for woody, sarge, and sid) and RPM (Red Hat) Packages (untested) of cupsys recompiled with the option to turn off job authentication. If you prefer, add the following line to your /etc/apt/sources.list to use apt-get to upgrade to my cups packages (unstable, testing, or stable):

     deb http://adam.rosi-kessel.org/debian unstable main 

    Note that you will need to modify your cupsd.conf if you also want unauthenticated users to be able to cancel, hold, and release jobs. Here is an example.
    (I am currently getting about 25-35 unique visits a day from people searching on this problem; let me know if my fix worked for you or if I should be giving additional information!)
    Update 8/10/04: This patch has finally been applied to the Debian package and the default cupsd.conf file fixed to not give the “client-error-forbidden” error by default. I’m not sure if this update will make it into the next version of Debian stable (Sarge), but it is currently in unstable.
    Update 12/31/04: A SuSE 9.0 user suggests the following solution under SuSE. First, set up a CUPS admin account and password using:

    sudo lppasswd -g sys -a root

    Then, modify /etc/cups/cupsd.conf to read:

     AuthType BasicDigest AuthClass Group AuthGroupName sys Order Deny,Allow Deny From All Allow From 127.0.0.1 
  • SMC 2632W V3 under Linux
    There are details scattered all over the web about how to get this card to work. Part of the confusion is that each version of the card uses a different chipset (SMC 2632 V1, V2, and V3). If you have the V2 or the V3 you need to use the atmelwlan driver. The proper module is pcmf502rd (pcmf502r is for the V2 card). Also, the key factor for me was building a kernel with i82365 compatible bridge support enabled (CONFIG_I82365=y) as well as, obviously, PCMCIA and CardBus support (both in kernel—not the separate PCMCIA kernel modules). First, you build the kernel, install and boot into it, then run the configuration and install scripts for the atmel drivers (make config; make all; make install). Finally, you need to create the file /etc/pcmcia/smc.conf with the following contents:
     device "pcmf502r" class "network" module "pcmf502rd" card "SMC 2632W V2 11 Mbps Wireless PCMCIA Card" manfid 0x01bf, 0xb301 bind "pcmf502rd" 

    Hopefully this will work for you. It did for me kernel 2.4.22 and Debian Unstable. Once I had this setup, it “just works.”

  • Gaim with Encryption
    Would you like to have encrypted instant messenger conversations? Gaim-Encryption use OpenSSL to provide transparent RSA encryption as a Gaim plugin. You have to recompile the program, though. For your convenience, here is a Debian package of the latest Gaim with the encryption plugin built in. Alternatively, add this line to your /etc/apt/sources.list file and you can upgrade to Gaim with encryption:

    deb http://adam.rosi-kessel.org/adam/debian unstable main

  • glabels and Avery 5376 labels
    Having trouble printing with glabels 0.4.6 and Avery 5376 labels? After dozens of attempts, I’ve decided that the definitions file is wrong. You need to edit /usr/share/glabels/predefined-labels.template (as root) and change the layout line to:

    I’ve reported this suggestion to glabels, we’ll see if it gets incorporated.

  • Gdk-WARNING: Missing charsets in FontSet
    Do you ever get the Gdk-WARNING **: Missing charsets in FontSet creation ISO8859-1 error? Several postings to e-mail lists got me no help on this. It turns out, for me, it was simple: a theme had installed itself in ~/.gtkrc that was looking for a font that wasn’t there. Rename your ~/.gtkrc and see if you still get the error.
    Incidentally, I get an awful lot of hits from people searching for this error. If this fixed your problem, let me know, and if it didn’t, let me know what did and I will post it here!
  • GNU/Linux on an OmniBook
    • If you run GNU/Linux on an HP OmniBook 500, you can probably find all the information you’re looking for on the GNU/Linux on HP Omnibook Laptops site. Although the site isn’t terribly up to date, the mailing list and archive are invaluable resources.
    • I also recently installed Debian Woody GNU/Linux on an HP Omnibook XE4100. As far as I know, there are no webpages devoted exclusively to GNU/Linux on the XE4100, but there are some about the XE4500, a similar model (one for Red Hat and one for Debian). The proper driver for XF86Config-4 is “savage”, and sound requires the “via86cxxx_audio” module (under kernel 4.2). CD-ROM and network worked right out of the box. I haven’t gotten a chance to try the modem.
    • XF86Config-4 file for HP OmniBook 500 with External Gateway 2000 1572 DG Monitor.
      I use this file when my laptop is docked. I’m not sure that the timings are perfect, but it works, and there seems to be a great dearth of information about there about this monitor.
  • MaxBlast/BIOS Issues
    Having trouble with a MaxBlast hard drive on an old system with an obsolete BIOS that needs its own bootloader? I found switching to grub from LILO did the trick for me. I’ll post more details about this, which also involved the Windows NT (Windows 2000) boot loader as well.
  • Destroyed Partition Table
    Did you just destroy your partition table, perhaps because you ran dd over /dev/hda rather than /dev/fd0? And your system is still up and running, in fact you’re reading this web-page, but know when you reboot, you’ll be toast? Well, good! I have a cautionary tale for you about how to avoid this situation, but also an easy way to recover if you follow the enclosed directions.
  • Emusic, Zinf, and Segfaults
    Are you an emusic subscriber unable to use the recommended player, zinf (“Zinf Is Not FreeA*p”) for batch downloading? Emusic recommends zinf for Linux users, but unfortunately zinf segfaults when loaded with an “emp” file. I wrote a shell script hack to fix this (the segfault can be avoided by renaming the .emp to .rmp, but then discovered fetchrmp by Doran Barton. So I’ve modified that script to give some additional options: place downloaded files in a hierarchy by genre, album, and artist, and also play music when downloaded. The modified script is called fetchemusic and you can download it here. Note that you’ll need the the Perl XML-EasyOBJ module for this to work, which is not included in Debian (you’ll also need modules LWP::Simple, Getopt::Long, File::Path, and File::Copy, which are all in Debian. The emp segmentation fault has been around for a while, it was reported to Debian in October 2002. Let me know if you’ve had this problem, if you have any other solutions, or if my script is useful to you!
    (Update 6/3/03: Unfortunately, Emusic has switched to an encrypted file format, so this script will no longer work! I’m leaving it here in case it ever becomes useful again.)
    (Update 10/1/03: Someone has written a very nice perl script that works with the new encrypted EMP file format, called decrypt-emp. Get it now!)
  • French vs. North American Wireless Channels (or, why can’t I connect to my Access Point with my Xircom CWE-1120-FR?)
    I’ve written a few times about my wireless woes. I couldn’t for the life of me figure out why my Xircom CWE-1120 card couldn’t connect to my Access Point. As it turns out, the card was set to the French Channel Set, which is different from the North American Channel Set, except on Channels 10 and 11. So I set my Access Point to Channel 10, and now I can finally access my network. There is, allegedly, a DOS command line tool that allows you to reprogram the EEPROM on Cisco cards to switch the channel set to North American, but I was unable to locate it. In fact, Intel (who purchased Xircom, which produced the card) was very wary of the whole topic. I suspect it might be illegal to have/use this tool, since it might permit you to set your card to a mode that violates FCC regulations. Intel was actually pretty spooked that I even had the cards (which I purchased legitimately in the United States, thinking they were North American cards). Thanks to Dan Lanciani on the airo-linux-gen80211 list for finally pointing this out to me.
  • Volume Problems on a Toshiba P25-S477 Laptop
    I’ve been trying to set up GNU/Linux (remotely) on my brother’s Toshiba p25-s477 (one of a seemingly endless number of obscurely named Toshiba laptops). Almost everything worked fine, except the sound was almost inaudible, and substantially distorted with external amplified speakers. It turns out I needed to go into the alsamixer (ncurses GUI) program and set “External Amp Power Down” to “Mute.” This is far from intuitive: first, that “external amp power down” would be “on” by default, and second, that you need to “mute” this setting to have “power down” turned “off.” But that’s how it works. (solution posted by someone in the aesthetically weird tlinux-users mailing list.)
  • Functional Java Packages for Debian Sid Mozilla
    I’ve been looking for functional Debian Java packages that work with latest Mozilla in sid. I tried downloading several Java binaries from sun and elsewhere and either it didn’t register in Mozilla or crashed immediately. I finally discovered José Fonseca’s excellent Java packages that actually work. Add the following to your /etc/apt/sources.list to get these packages:

    deb http://jrfonseca.dyndns.org/debian ./

  • Procmail Detritus Filters
    Here’s a good procmail recipe that should catch a lot of viral email—both actual viruses, and bogus “we caught a virus coming from your account” messages. Note that you need to increase from the default line buffer length to have this all packed into one expression:

    LINEBUF=3000
    :0
    * ((^Subject: (Virus infection notice|New Network Security Upgrade|Newest Net Update|Newest Internet Upgrade|Newest Internet Security Patch|Internet Security Pack|New Internet Security Patch|Latest Critical Pack|Latest Net Upgrade|Latest Network Critical Update|(Latest|Current|Newest|New) (Microsoft|Net(work)?|Internet) (Security|Critical) (Update|Patch|Pack)|Current Microsoft Critical Pack|Newest Critical Pack|Latest Net Security Pack|Current Net Critical (Pack|Patch)|Latest Network Critical Pack|Abort Report|A virus has been detected in a document you authored.|RAV Antivirus:|BitDefender found an infected object|Virus Detected by Network Associates, Inc. Webshield|—— Virus Detected ——|Virus detected|Virus Alert|InterScan NT Alert|Virus found in the message|Message quarantined|VIRUS ALERT!|MDaemon Warning – Virus Found|Warning: E-mail viruses detected|ScanMail Message: To Sender virus found|VIRUS IN YOUR MAIL|Norton AntiVirus detected|VIRUS .* IN YOUR MAIL|Antigen found VIRUS|Filter incident|V.rus figyelmeztetés! Virus warning!|Symantec AVF detected|Returned due to virus;|Anti-Virus Notification|BANNED FILENAME|File blocked – ScanMail for Lotus|NAV detected a virus|RAV AntiVirus scan|VIRUS .+ IN MAIL FROM YOU|Virus Notification:|Virus found in a message you sent|Virus found in sent message|VIRUS EN SU CORREO|Warning: antivirus system report|M..Daemon Notification — Attachment Removed|Information – Antivirus|Symantec AntiVirus detected a violation|WARNING: YOU WERE SENT A VIRUS|SAV detected a violation in a document|MailMarshal has detected a suspect attachment|A virus was detected in your mail|Recipient Virus-alert|Virus Found in message|E-?mail viruses detected|Undelivered mail: VIRUS FOUND|Quarantined Mail: virus from|Failed to clean virus|Virusveszely! Virus warning!|Virus in mail from you.|Possible virus found in mess..age you sent|AntiVir ALERT|Centrale Anti-Virus melding|Vexira ALERT|You sent potentially unsafe content|ID.*thanks ScanMail has detected a virus!|\{Virus\?\}))|(^X-BLTSYMAVREINSERT|^X-Virus-Scan-Result: Repaired|^X-AtHome-MailScanner: Found to be infected|^X-Scanned: Symantec Antivirus Scan – Virus found|^X-Sender: NetMail AntiVirus Agent|^X-yoursite-MailScanner: Found to be infected|^X-ELTE-VirusStatus: was_infected)|(^To:.*MS Network Security))
    virus

    And here’s a simple way to filter spamassassin mail into two folders, one which is “very certainly” spam and one which is “probably” spam:

    :0
    * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*
    verycertainspam

    :0
    * ^Subject:.*\*\*\*\*SPAM\*\*\*\*
    probablyspam

  • Firefox 0.9 remote newtab syntax
    When I open a link from another application (gnome-terminal or evolution, for example), I would like it to open in a new tab in Firefox, so I had a script which I called newmoz:

    firefox -remote “openURL($1,new-tab)”

    This is my default web browser. With Firefox 0.9, the syntax has changed. You now need:

    firefox -a firefox -remote “openurl($1,new-tab)”

    I believe this has something to do with the confusion of the possibility of several related Mozilla applications running all at once, although I’m not entirely convinced. To make it really snazzy, try:

    firefox -a firefox -remote “openurl($1,new-tab)” || firefox $1

    This way, if firefox isn’t already running, it will still work.

  • Email yourself after a long task
    This is a really obvious one, but I only recently thought of it. Due to several recent failed hard drives, I’ve been moving a lot of data around from one drive to another, some through NFS, and some over my cable modem. Moving 200 gigabytes, even within a LAN, takes a long time—even longer if you throttle it so as not to congest the network too much. I would find myself checking back on the process every few hours, even though I knew it probably wasn’t done. So why not append a mail command after a long process? E.g.:

    rsync -Pa / storage.system.somewhere:backup ; echo done | mail adam

    Since I’m always checking email, I’ll find out as soon as it’s done, and waste less time continually checking back on the process, especially when the transfer might take three or four days.

  • ssh timeout error/connection reset by peer with rdiff-backup and D-Link DI-604 router
    Backing up bostoncoop.net over a cable modem takes a long time. If something goes wrong, rdiff-backup has to roll back the previous backup and start over. As best I can tell, rdiff-backup first makes the connection, then starts the roll back, but doesn’t send or receive any data during the roll back. On my system, the roll back can take longer than the timeout period for my DI-604 router—the consequence being that the connection is reset before the backup can start and rdiff-backup fails out.

    There’s an easy fix, which should come in useful to anyone with a router that is too vigilant about timing out ssh connections (for example, if you ssh to get your email and often leave the window alone for an hour at a time). Add the following to your .ssh/config:

    serveraliveinterval 300
    serveralivecountmax 10

    This will insure that ssh will occasional send an ACK type request every 300 seconds so that the connection doesn’t die.

  • Fixed font in gnome-terminal
    I’ve wanted to use gnome-terminal for a long time, primarily because of the tabbed terminal feature (many terminals in one window) and because of the URL recognition (open a URL by right clicking on it). I also like being able to paste into the window with the keyboard.

    There was always one problem, though. The font. I know some people like the new fixed-width GNOME fonts, but I don’t. I just wanted plain old fixed, which I use with xterm (10×20). But that font never showed up in the list of available fonts.

    I finally found the solution in /etc/fonts/local.conf—namely, the following lines:

       

    Just uncomment the path, run fc-cache as root, and you should see fixed in the output of fc-list.
    I’m not sure how a naive user would ever figure this out, but then again, maybe a naive user wouldn’t care that much about having fixed font in gnome-terminal. I also don’t understand why we wouldn’t users to have access to bitmapped fonts by default—why not just set the default font to something the GNOME people like, but have the other choice in there to start?

  • Reading Annoying HTML Mail in Mutt
    I’ve tried several solutions for reading broken HTML mail in mutt, including my own custom Python hack, addMIMETextToHTMLEmail (this was actually the first Python program I ever wrote). Reasonably nice mail clients will send a plaintext part in addition to the HTML mail for us textophilic email users, but the dominant Microsoft Hotmail and Microsoft Exchange send HTML-only mail with no plaintext part. I wonder if they do this because they expect anybody worth writing to these days is using Microsoft Outlook or Microsoft Hotmail.

    I think I’ve recently discovered the best solution, since my addMIMETextToHTMLEmail script doesn’t always work properly and is probably unnecessarily complex:

    • Download and install demoroniser. You may need to tweak it slightly, since it expects perl to be in /bin/perl.
    • Install html2text (Debian package, separate source available from Martin Bayer).
    • Add to ~/.mailcap:
       text/html; /home/adam/bin/demoroniser.pl -q -w0 '%s' | /usr/bin/html2text -width 90 -style pretty; copiousoutput; description=HTML Text 

      You may prefer a wider output; the person who suggested this to me uses 158.

    • Edit ~/.muttrc and add:
       set implicit_autoview=yes 
    • You should now be able to view HTML-only emails in mutt without having any extra steps.

WebLoyalty.com aka WLI*ReservationRewards Is A Scam

Update August 9, 2009: Absurdly high number of comments and hits on this page. The latest is reported in this CNET article.

Update March 8, 2009: 2,653 comments. Plus, there has been a settlement of the class action lawsuit: Webloyalty Settlement.

Update September 13, 2006: Webloyalty… sued.

Update May 7, 2006: I get a lot of email asking me “how do I get them to stop charging me?” My entry below, and about 1,000 of the comments, tell you how, but here’s the short version: call 800-732-7031 and tell them you want all your money back. Do not give up until they refund all of it.

Update July 25, 2006: Nearly 1,300 comments and counting…


I recently noticed a charge on my credit card bill for “WLI*RESERVATIONREWARDS 800-7327031” CT for $9. I had no idea what the charge was, so I called 1-800-732-7031 and finally figured it out. Below is a slightly edited letter I’ve sent to the Massachusetts Attorney General Consumer Protection office. If nothing else, I hope this weblog entry shows up on a search for this company, the phone number, or Vincent D’Agostino (the President of the company) and Mary O’Reilly (the customer service director). (My apologies to any Vincent D’Agostinos or Mary O’Reillys out there who aren’t related to this scam).

On November 2, 2004, I purchased airline tickets from the website onetravel.com.

On my most recent credit card bill, I noticed a charge for $9 for a transaction on 12/2 posted on 12/5 for WLI*RESERVATIONREWARDS 800-7327031 CT. I had no idea what the charge was, and was certain I hadn’t signed up for any “reservation rewards” program, so I did a web search for the phone number for the item. Apparently, many other people have had the same exact charge for the same item without ever having ordered it.

I called the company to dispute the charge, and they insisted that I had signed up for some kind of rewards service when I purchased airline tickets. I insisted that I had never signed up for any such service, but they claimed they had sent me three emails confirming the service, which apparently is a monthly subscription for $9 per month which gives you discounts on some products or services online.

When I complained that I was sure I had never signed up for any such service, they said that they had “millions of satisfied customers” and that the complaints were just a few.

Since I maintain my own mail server, I was able to search back over the last 60 days of mail logs, and there was no record of any email originating from this company. Even if such an email had been caught by a spam filter, it would still show up in the mail log. I am thus certain that they never sent any confirmation emails.

Finally, I threatened to contact my state attorney general, and at that point they agreed to refund the $9 and cancel my subscription.

I checked the Connecticut Better Business Bureau website for this company, which goes under a dozen aliases, and saw that there have been many complaints along similar lines.

I am a computer programmer and intellectual property attorney specializing in Internet law, and thus I am not a naive Internet consumer—while I realize that some people may accidentally sign up for services they didn’t intend to purchase, I am certain that I never did this. I believe this company is operating fraudulently, and their “millions of satisfied customers” are people who do not scrutinize their credit card bills carefully, since a $9 charge is easy to miss.

I would like the Consumer Protection division of the Attorney General’s Office to look into this problem as I am sure it affects many Massachusetts Citizens.

Please don’t hesitate to contact me for more information. The Connecticut Better Business Bureau also lists the following address for the company in question:

Webloyalty.com, Inc.
101 Merritt Seven, 7th Floor (Corporate Offices)
Norwalk, CT 06851

This doesn’t speak very well of onetravel.com, although I hear expedia.com and other providers have similar dealings with webloyalty.com.

I’d like to think the web could ultimately prevent more fraud than it enables, but at this point I think the prognosis is bleak. Leave a comment below if you’ve had a similar experience with this company.

Update: This site includes dozens—maybe hundreds—of reports of the same problem with this company.

SciFinder Scholar v. Google Scholar

The American Chemical Society· has filed a trademark infringement lawsuit· against Google for its new Google Scholar· service. ACS uses SCIFINDER SCHOLAR for its desktop scientific research tool; Google uses GOOGLE SCHOLAR for its web-based research journal search engine.

I haven’t reviewed the papers, which at this point I expect consist just of a complaint, but at first blush this appears to be a weak suit.

ACS’ mark SCIFINDER SCHOLAR was only registered on May 6, 2003. Registration gives the mark a presumption of validity. After five years of registration, a trademark holder can file for “incontestable” status which makes it more difficult for a defendant to challenge the mark’s status, but a newly registered mark does not have that benefit.

Trademark strength is evaluated on a spectrum ranging from arbitrary and fanciful (think Volkswagen’s “farfegnugen”) to suggestive (7-ELEVEN for a store open from 7 to 11) to descriptive (PHOTO CENTER) to generic (DINER). SCIFINDER SCHOLAR is, at best, suggestive, and arguably descriptive.

Another problem for ACS is that SCIFINDER SCHOLAR is only registered in its stylized form (see right). If the registration were in block letter form, it would cover all forms of the mark—stylized and plain. Here, there is no argument that Google infringes the stylized design of ACS’ mark; and not even the whole mark, just the “scholar” part. While it is true that in trademark law, similarities between marks are generally weighed more heavily than differences, in this case, SCIFINDER SCHOLAR (stylized) is pretty dissimilar from GOOGLE SCHOLAR as used by Google (below).

There is a long line of trademark cases that hold that the use of a trade name or house mark in connection with another mark reduces the likelihood of confusion. In other words, GOOGLE SCHOLAR is less likely to be confused with SCIFINDER SCHOLAR than if the mark Google were using was just SCHOLAR. Furthermore, the GOOGLE part of the mark is much larger than the SCHOLAR part. Consumers are not likely to be confused about who is providing the service: Google is a household name, and it should be clear that it is providing the service, not ACS.

Finally, the class of prospective consumers for each service is likely dissimilar. SciFinder Scholar is a “desktop research tool for students and faculty·”, while Google Scholar is likely to have a much broader and less specialized audience. This is often a problem with Internet trademark lawsuits: the prospective audience is possibly the whole world, and a trademark that might be well known within a small niche (academic research scientists) might be entirely unknown to the Internet population. I’m sure Google has already collected statistics on its Google Scholar service based on the IP addresses of users doing searches.

This lawsuit seems like a dumb move on the part of ACS. People always get upset about trademark lawsuits brought on shaky grounds, especially when the defendant seems to be involved in the dissemination of useful information rather than just pawning off substandard goods. I’m sure some people will characterize this lawsuit as a claim by ACS that they own the word SCHOLAR, which isn’t quite what they’re arguing, but it can’t possibly be good publicity for ACS. I can’t imagine its academic membership is too happy about this.

As an interesting side note, observe that the ACS website· uses “ACS Google” to do a site search.

(As an example of the effectiveness of Google Scholar, here are some references to a chemistry paper for which I did the initial experimental research, which, ironically enough, was published in the Journal of the American Chemical Society. You would have to pay to read the article online; unfortunately I don’t have an electronic copy myself.)

Update: I found a copy of the complaint in ACS v. Google, which basically confirms my analysis. ACS claims that it, and its users, often refers to its service as “SCHOLAR” and that Google’s research tool operates under the name and trademark “SCHOLAR.” This is apparently how they’re going to try to get around the “house mark” issue—but I haven’t found any instance of SCHOLAR alone on Google’s site—it always appears as GOOGLE SCHOLAR. They’ll likely lose on the facts on this one.

Second update: Thanks to Joseph Lorenzo Hall who got my a copy of my paper, Peroxidase Activity in Heme Proteins Derived from a Designed Combinatorial Library. The experiment in a nutshell was to see if proteins designed de novo based on a combinatorial pattern of amino acids designed to form four-helix bundles would have catalytic properties. The answer is that they did. This is not a very surprising finding today but a few years ago it was significant.

Living With The Beast

I have to concur with John Faughnan, who writes the following about Microsoft Word:

Microsoft Word is a beast. Word is an evolved creation, the bastard offspring of marketing, some original thoughts on how to create a word processor, and generations of Ziff-Davis (PC Magazine) induced rapid mutation to fit someone’s distorted checklist. It is to software as the Irish Elk was to mammals. It is an inherently incurable mass of contradictory impulses, which are fully evident in Word’s formatting model. It is the single most miserable piece of software that I absolutely must use.

I just spent a couple of hours trying to figure out how to remove a phantom footnote. The footnote had no content. Moreover, it had no “anchor”—nowhere in the body of my document was there any footnote reference. This empty footnote just sat at the bottom of page 3, and refused to be deleted.

Finally, I figured out what the problem was. “Track changes” was on, and an old version of the document had a footnote. (I actually had cleared the document, so there was nothing left from the ‘original’ version). Apparently Word can’t let go of an old footnote even if the reference to the footnote has been deleted so long as it is trying to remember what text you deleted so it can show you the changes you made. The only way, apparently, to actually delete the footnote is to “accept all changes” so the document history goes away. Of course, if you aren’t in a redlined view (to see the original with changes) you’ll have no idea why that footnote is just hanging out on the bottom of the page.

I can’t believe this is anything but a bug, but I’m open to constructive comments as to why this behavior might be desirable.

(Please don’t leave me a comment telling me to use OpenOffice. If I had any choice about it at all I would certainly be using that. It’s not that there are features I need in Word that aren’t in OpenOffice—it’s just that, in the current circumstances, I have no choice about my software.)

Nailing David Brooks on the Head

James Grimmelmann· nails David Brooks right on the head·:

David Brooks is an intellectual money-launderer; he repackages the elitist misanthropy that is conservatism into vaguely humorous but reassuringly bland “observations.”

What bothers me so much about David Brooks is his insidiousness. Conservative clowns like Jeff Jacoby· preach only to their own choir; everyone else tends to write their drivel off as.. well, drivel (“the demonizing of John Ashcroft during the past four years has been just about the ugliest spectacle in US politics·”). I actually suspect that the Boston Globe carries Jacoby’s column despite it’s liberal leanings because Jacoby makes conservatives look stupid.

David Brooks, on the other hand, is an undercover agent, and he appeals to a lot of my fairminded left- or liberal-leaning friends. His message is: “Hey, I’m one of you. When I lambast liberals in a pleasant friendly way, I’m really just making fun of myself and my “bobo” values.” He attempts to reduce the opposition to a set of social quirks; a preference for organic goods grown under fair conditions is equated with blue hair and piercings.

Of course, Brooks is to some extent correct that people’s politics are driven as much by socialization as reason and passion (my own characterization). But his superficial attempts to inject some humour and self-deprecation into the debate belie a deeper anti-democratic agenda that only reveals itself when Brooks is writing for his own conservative audience.

See also David Plotz·’s article in slate·, Why liberals are turning on their favorite conservative, for a more in-depth critique.

U-Haul Sucks

Given the great success of my Hotmail sucks blog entry (number four in google at the time of this writing), I thought I’d take a stab at U-Haul. My writing doesn’t appear to have had a huge impact on Microsoft, but maybe I can start a movement with U-Haul. (Query whether blogs can help fix market dysfunction).

My experience with U-Haul has been bad. I don’t quite understand how they can continue to exist as a company.

I needed to rent a small truck for a day to move a couch a couple of months ago. I only needed it for a Saturday, and U-Haul was the only option that would let me do a one-day rental on the weekend and return the truck in a fairly convenient location. (For a rental starting on a weekday, I recommend Penske, which has never caused me any problems.)

The first thing I discovered is that you can’t actually “reserve” a truck with U-Haul. Instead, you “request” a truck. Although the email confirmation comes from “reservations@uhaul.com” it includes the following disclaimer:

Your pickup location is a PREFERENCE ONLY. The U-Haul regional office for LYNN, MA is now in charge of your reservation. They will call you by 5PM on the day prior to your pickup date to schedule your exact pickup location and time. To change or cancel your reservation, please contact us no later than the day prior to your pickup date. Our phone number is (800)344-2212. Reservations cancelled on the day of pickup are subject to a $50 cancellation fee.

So they won’t guarantee you any pickup location, but they will charge you a $50 day fee if you decide the location they pick for you doesn’t work. What if airlines worked this way? “We’re sorry, your ticket to leave from Boston was only a request; your flight is actually going to take off from Providence.”

It strikes me as terrifically poor logistics that they can’t figure out which trucks will be at which locations until the end of the day prior to the rental. I’ve heard stories of people thinking they had a secure reservation on U-Haul and in fact ending up with nothing at all the day they needed to move. I suggest that if U-Haul (1) shouldn’t allow people to reserve trucks it doesn’t have and (2) should be willing to drive trucks where they need to go the night before if they figure out they don’t have the trucks at the correct location. Others have complained similary about U-Haul’s lack of dependability in this area.

As a side note, their price scheme is screwy: it’s cheaper to do a one day one-way rental across a 20 mile area rather than a one day round-trip “in city” rental. Someone at the pickup location told me that this was because they had recently raised their round-trip prices but the one-way prices hadn’t caught up. I suppose this wasn’t a big problem for me, but it does encourage irrational behavior (choosing different pick up and drop off locations) and reflects poorly on U-Haul’s corporate intelligence.

The day before the rental, I got a call telling me I could pick the truck up, and they gave me an address. A while later, I checked the address on Mapquest, and it was nowhere to be found. So I used the caller ID memory on my cell phone and called the place back to ask them exactly where they were. It turns out they were not in Lynn, but in Lowell, which would have been about an hour out of my way (for a 15 mile rental!).

I called back the national office and they were a little confused about the difference between Lynn and Lowell, but ended up switching me to a pickup location in Lynn. (The pickup location I had originally requested in Lynn apparently doesn’t exist at all).

In any case, we got the truck, which was in shoddy condition—poor shocks, dirty cab area, and a non-adjustable radio (no cassette or CD, of course). In fact, after I tried changing the channel on the radio too much, it turned off entirely and refused to turn back on.

At the end of the day, I went to return the truck at the destination location, which was supposed to be a Texaco in Roslindale. As it turns out, there was no Texaco in Roslindale. I called the national phone number, and they were rude and unhelpful. They kept insisting that the truck needed to be returned to the Texaco in Roslindale. They also told me that there would be a fee for dropping off the truck after 5pm, so instead I should wait until the next morning so I wouldn’t have to pay the fee. (So, I return the truck later, and pay less?)

The next day I discovered the gas station, which was no longer a Texaco, where the truck was supposed to be returned. I didn’t bring my contract with me, as I assumed these days everything is computerized. When do you actually need physical pieces of paper anymore?

The drop-off location would not, in fact, accept the truck without the contract, and said I would have to go to a location about 5 miles away if I didn’t have the contract, because they had no computer at their location. Huh?

So I went home and got the contract, returned the truck, and thought that was the end of the sad sad story.

Skip forward a couple of months. I just notice an additional $150 charge from U-Haul on my most recent credit card bill, charged from a U-Haul store in Somerville exactly a week ago. I haven’t set foot (or car) in Somerville for months, so I was sure it was a mistake, maybe someone gave the wrong credit card number to the Somerville U-Haul or they made a typo.

So I called the Somerville U-Haul. They told me they couldn’t help me; I would have to call an 800 number. I called the 800 number, and they told me that number was for emergencies only and gave me another 800 number to call. I called that number and they told me “they only deal with trucks” and I would have to call my regional 800 number. So I called my regional 800 number and they asked me what my reservation number was. I told them I didn’t have a reservation number, I had a billing complaint. So they told me to call the national something number. I called that number and they told me I had to call the Somerville U-Haul.

At this point, I told them I had just called five numbers, and they were trying to send me back where I started.

Finally, they agreed to hear my issue. I explained that I had a charge on my credit card from one week ago from the Somerville U-Haul, where I had never set foot in my life. They brought up some records on their computer system, and insisted that what had happened was that I had rented the truck two months ago and kept it until last week, at which time I had returned it to the Somerville U-Haul.

I explained to them that I had actually returned the truck less than 24 hours after I rented it, to the Roslindale “Texaco.” The person on the other insisted (1) that my one way rental was from Lynn to Somerville, not Roslindale, and (2) that I had kept the truck for two months. She also insisted that the only way to resolve this was to call the Somerville U-Haul, where I had started. She was absolutely convinced that there was no way the computer could be wrong. (Wouldn’t you think they might have asked for their truck back if I had kept it an extra two months without asking?)

After a few more rounds of the same conversation, she finally put me on hold to talk with her supervisor. A few minutes later, she returned and said that “the computer had crashed” in Roslindale and they had lost all the information. There was a note that someone was supposed to call me about this more recent charge, but apparently no one had. She told me she would fix it, and within a week the credit card would be refunded.

It’s hard for me to believe that this operation survives at all. There must be other people who were also in the “computer that crashed” who were charged for returning vehicles two months late that they had actually returned on time. It didn’t sound like U-Haul was going to do anything to try to locate those people; instead it was just going to wait and see if they would complain.

If anybody reading this has any connections with management at U-Haul, I’d suggest you pass this blog entry on to them. Although some of the problems I experienced may have been anomalies, many of these issues are clearly systemic. If U-Haul ever stops sucking, I will at that point correct this entry.

(finally, I am perhaps not the first person to think of this. We have out there uhaul-sucks.com, “UHaul Sucks”, dontuseuhaul.com, etc..). In fact, I think U-Haul maybe even knows it sucks, since it owns uhaulsucks.com—I was going to link to the whois information for uhaulsucks.com, but all of the whois servers now apparently require you to type in the numbers in a graphic image first).

(update: #6 in google at this time)

Updates 1/22/05: whois information for uhaulsucks.com without captcha, thanks to Benjamin Carrell; #7 in google for ‘uhaul sucks’—and, amazingly, #8 in google for ‘u-haul’, #7 in yahoo for ‘u-haul’. See also this more recent discussion.