Wednesday, November 21, 2007

Windows 2003 Server for the home

Microsoft's Windows Home Server supports their excellent remote access software and provides an integrated backup and media server solution. Note it runs on a variant of the rock solid Windows 2003 Server OS, not Vista. So it's the only variant of XP Microsoft actively sells, though they aren't marketing WHS very hard - yet.

In the meantime Apple's Time Machine can't backup up to a (slow) USB drive hanging off an Airport.

I don't like it when Microsoft makes things I want. Windows Live Writer and Windows Home Server are annoying me.

Tuesday, November 20, 2007

Reverting from Office 2007 to Office 2003: MAPI32.DLL vs. MSMAPI32.dll

When my XP boxen go to heck, they do it all at once.

One one front I'm a defeated geek. I had to abandon hope for my "possessed" (really, it is) corporate Dell Latitude (XP SP2 +) -- I'm now wiping the drive and starting over. This is the first time in years of fighting with Microsoft's OSs that I've actually capitulated up and wiped a drive. There was something eating away at the process that authenticated me as an administrative user, with lots of curious side-effects.

The other problem seemed simpler. Access 2007 is a dud, and the rest of Office 2007 is nothing to write home about. It was time to revert a Windows 2003 server to Office 2003.

Easy, I thought. Just uninstall, restart to be safe, install Office 2003 Pro and then apply Office SP 3.

Wrong. I was getting "MAPI32.DLL is corrupt or the wrong version" error messages.

I hate those. They bring back bad memories of running Outlook and Eudora in the old days. MAPI32.DLL was one of Microsoft's tools to kill the competition.

I followed the old trick of locating and renaming MAPI32.DLL. No joy.

Turns out the error message is a fraud. The real problem is another file (emphases mine)
2. Locate and then open the following folder on your computer:
C:\Program Files\Common Files\System\Msmapi\1033
3. Right-click the MSMapi32.dll file, and then click Rename.
Note The file (Msmapi32.dll) that you are renaming differs from the file (Mapi32.dll) that is mentioned in the error message.
4. Type Msmapi32.old, and then press ENTER to rename the file.
5. Start Outlook 2003.
I want to cry. Really, the wrong file name in the error message? Oh, and the kb article is wrong. The bug isn't with the beta version of Office 2007, it's with any version.

That worked, but on Outlook startup I got two messages something like this:
ordinal 7867 cannot be found in mso.dll
Try googling on that one! Nothing I could find.

Outlook then said some app was messing it up and offered to repair the problem. That worked.

Now to go back to spend the rest of my day trying to restore my primary XP workstation. So much for my planned vacation day tomorrow.

People used to wonder why I didn't like Microsoft products. I don't get those questions any more. I read recently that some preposterous number of IT execs are actually considering replacing some of their XP machines with OS X or Linux. I assume they're venting and bluffing, that seem a true mission impossible.

On the other hand, if I were doing a small business startup, I'd be building around OS X workstations running XP in a VM. Use OS X whenever possible, but have XP around to run Office 2003 and any vertical apps that are essential. Whenever XP misbehaves, just delete the VM and stick in a new one.

PS. I checked what happened to the original MAPI32.DLL I'd pointlessly renamed. It was dated 3/25/2003. A new one was created of a slightly different size dated 2/17/2007. I also found yet another MAPI32.DLL dated 12/10/2002. It's not too early for a drink is it?

Update 1/4/07: Despite the above, I still couldn't SEND email. I use Outlook primarily from my laptop, so I let this problem fester for a while. Today I removed my Exchange configuration from that instance of Outlook and deleted an old pst file I was using. I then restored the Exchange connection. Now I can send, but I notice that 'cached exchange mode' is no longer available.

Monday, November 19, 2007

Kindle: DRM only - no PDFs

The obvious knock on Amazon's Kindle is the DRM. If Amazon goes away, so do your books.

This isn't that big a deal for me. We long ago ran out of room for books, most books I buy I give away. I only keep a few, and those I could continue to buy as paper books.

Most of my books are ephemera. I'd need a house for books alone if I kept them all.

The bigger objection, for me, is that the Kindle can't read PDFs or any other eBook format:
Daring Fireball: DUM

...With iPods, while the iTunes Store is the only source for DRM-protected content that iPods support, you can easily fill your iPod with any popular non-DRM audio format other than WMA. Kindle supports a few other formats than its proprietary .azw, but the only way to use it for its main purpose — as a digital reader for popular mainstream books — is via its own proprietary DRM-protected format. I.e., Kindle actually is what ignorant critics have claimed regarding the iPod: a device designed to lock you in to a single provider of both hardware and digital content. You can easily and happily use an iPod without ever buying anything from the iTunes Store; without Amazon’s DRM-protected content, a Kindle is the world’s worst handheld computer...
I agree with DF. More than the DRM, it's the closure to any other format that marks this as a gift horse in need of dental inspection.

Update 11/19/07: DF might have been unfair. It's true they don't do PDF (a big negative), but Kindle can accept .DOC, txt and a few other formats.

On the other hand, you can't use it during takeoff and landing, or when you're stranded on the runway. It's electronic, remember? This alone would rule out the Kindle as a travel companion. Back to the paperback.

Costco: where Apple's discontinued iPods go

TUAW also reports they have pretty good warranty service:
5 reasons to love Costco during the gift-giving season - The Unofficial Apple Weblog (TUAW):

...Their slightly out-of-date iPods. Costco provides a reliable resource for anyone looking to buy older-generation iPods. They clearance them out with excellent prices and good availability. Costco currently carries iPod Nanos and Videos (which still work with free video out!), as well as the newer Classics, and Touches...

Microsoft's free memory test utility

I had no idea Microsoft provided this free memory test utility. I guess I'm too much in the OS X world these days. Many thanks to "enthusiast" for the pointer to this a set of similar test utilities.

Microsoft Online Crash Analysis - windiag

The Windows Memory Diagnostic tests the Random Access Memory (RAM) on your computer for errors. The diagnostic includes a comprehensive set of memory tests. If you are experiencing problems while running Windows, you can use the diagnostic to determine whether the problems are caused by failing hardware, such as RAM or the memory system of your motherboard. Windows Memory Diagnostic is designed to be easy and fast. On most configurations, you can download the diagnostic, read the documentation, run the test and complete the first test pass in less than 30 minutes.

To run Windows Memory Diagnostic, you must reboot your computer with the disk or CD-ROM on which you installed Windows Memory Diagnostic in the drive. After the reboot, Windows Memory Diagnostic will load and its interface will appear. After loading, the first test pass will begin, using the default standard test suite, and continue until complete, unless Windows Memory Diagnostic is either paused or exited. Once the first test pass is complete, Windows Memory Diagnostic will begin a second test pass using the same settings as before. Windows Memory Diagnostic will continue to run test passes until you exit...

I'm looking at this because my "possessed" (really, it is) corporate Dell Latitude (XP SP2 +) just gave me an error message on a huge file copy that was supposed have been fixed in Windows 2000:
You May Not Be Able to Copy Large Files on Computers That Are Running Windows NT 4.0 or Windows 2000

...Cannot copy [filename]: Insufficient system resources exist to complete the requested service...

Yes, this could be due some mysterious corporate monitoring software; many corporations are layering loads of cr*p atop an already unstable XP/antivirus environment, thereby taking XP into new realms of emergent behavior.

My money though is on flaky hardware. I'll try that Windiag and the Dell test suite that comes with their restore DVD.


Sunday, November 18, 2007

Converting OS X Mail.app from ISP IMAP to Google Apps IMAP

A few weeks ago I wrote about Google Gmail gets IMAP services. I'd already been using Gmail POP services on my accounts, but IMAP was a better choice for my wife. [1] I figured I'd migrate her from our no longer competent local ISP email service once things settled down a bit.

Today I migrated my wife's email from our newly annoying local ISP (visi.com) to our family private domain Google App domain.

It worked, but it's a bit tricky. I'll outline the process and some key things I learned, but I won't replicate the directions available elsewhere.

But first ...

A cautionary tale about IMAP hell - IMAP and local spam filters

Emily has been using IMAP on 3 OS X machines at our home for years. This seemed to work, but in retrospect there were severe problems I didn't recognize.
  1. Each client was doing spam filtering. She never tuned the local spam filters and was used to checking her ISP's spam filter, not the OS X Mail.app spam filter. The result was a lot of email was being captured in the local junk folder of each machine -- then being deleted after 30 days. She never knew about these. She lost quite a few messages this way, including some from family and business.

  2. It gets worse. She could easily have 2 Mail.app clients running simultaneously. Each polled the server every few minutes. Depending on which one got there first, email that was flagged by Mail.app as spam would get pulled off the IMAP server and saved in one or the other of the local Junk folders. This hit me when I was testing her new email. A message I expected to appear never showed up -- because the downstairs machine had pulled it from the IMAP server and stored it in the local Junk folder!

  3. Sent mail, of course, piled up locally. (She cc'd herself on key sent messages, so this was more annoying that anything else)
Now on to the conversion ...

Converting Mail.app from VISI IMAP to our family domain Google IMAP.
  1. Print out Google's Mail.app directions and their recommended client settings [1, see below!]
  2. Scan the Google Gmail IMAP Access document. Especially read known issues.
  3. Read the ThirtyOne discussion for the key advice on "Properly sort Drafts, Deleted, and Sent mail in Apple Mail"
I did the conversion on 10.3.9 and 10.4.11 Mail.app. It worked similarly on both versions. A few tips from the experience:
  1. If you have a huge number of emails on an IMAP server this may take a very long time or your client may crash. This wasn't an issue for us as we'd been archiving emails locally (limited capacity on the old service).
  2. If you're changing from a previous IMAP service, just edit your old IMAP entry. Don't create a new one. You need to edit to the new settings. Then exit. Then start again. I had to do that on 10.4 and 10.3 on 3 different machines. It only worked when I would exit and restart. Actually, most IMAP configuration changes required a Mail.app restart to complete properly.
  3. Turn off spam filtering in Mail.app. Remember our email Hell? Don't let that happen to you. Let Google do the spam filtering.
  4. The process created some empty local machine folders with names like "Junk" and "Draft". This was in addition to the IMAP folders. I confirmed they were empty and deleted them. They did not reappear on restart or with IMAP sync, they really were accidental junk.
  5. Follow the "ThirtyOne" directions about "Use This Mailbox For" so the Google Apps Sent folder vanishes and you see only the one "Sent" folder. Much nicer.
There's still one more thing. Google says Mail.app "Move deleted messages to the Trash mailbox" should be unchecked. This is fine when you're strictly doing IMAP. There's one Trash that appears and that's Google's. But, what if you're using storing email locally in an archival store? If you delete from that store, you may want a Trash.

On the family iMac, which is backed up, Emily does have archival email stores (see image above). On that machine only, I did check Mail.app "Move deleted messages to the Trash mailbox" and I set "use this mailbox for" so that Gmail Trash and Local Trash appear as "children" of the Mail.app iconic Trash mailbox. (See ThirtyOne folder link, above.)

The screenshot to the top left of this post shows you the 10.4 Mail.app view with both a set of local folders (we archive locally, drag and drop from the server to the local folders such as Save and "flylady") and the IMAP folders. [Gmail]/Sent has been mapped to the standard Mail.app Sent folder, but "Starred" and "In" remain as folders under [Gmail].

It seems to be working very well. The process is strictly for geeks however.

PS. When Blogger says they only accept JPEG and GIF uploads, they lie. They accept PNG too.

[1] Google maps tags to IMAP folders. Since I've used tags with my email this is a bit annoying, so I'm staying with POP for now. My wife has never used Gmail or Google Apps Mail, so this isn't an issue for her.

[2] Google is not joking about the best way to set up Mail.app. Follow this advice:
Drafts:
Store draft messages on the server > checked

Sent:
Store sent messages on the server > do NOT check

Junk:
Store junk messages on the server > checked
Delete junk messages when > Never

Trash:
Move deleted messages to the Trash mailbox > do NOT check [jf: see "one more thing, above"]
Store deleted messages on the server > do NOT check
Update 11/19/07: I've posted on Gmail Groups: we're seeing multiple versions of messages saved to the Trash.

Update 12/21/07: Either Google changed something or a new router might have broken connectivity from one of my IMAP OS X Mail.app clients. I tried following Google's OS X Mail.app configuration settings and got nowhere. The fix is to disregard all their lovely client-specific instructions and use the bare bones geek-friendly directions provided for "other clients". The settings there differ from the OS X Mail settings.

Needless to say, Google is in its usual confused state.

Saturday, November 17, 2007

Google's link search behavior and a Firefox request

It's annoying to have so many text entry fields at the top of a browser. There's one for a URL (which may act as a search field), one for search (which may allow specification of the search engine) and one embedded in the Google or WL toolbar (the latter can be set to search Google.

It's no wonder users get confused:
Google Tries to Fix Broken Links

....So people type URLs in the search box. Google changed the way it treats those queries last year: instead of showing information about a URL, it returns standard search results and the top result should be the page that corresponds to your query. This is a great way to avoid typosquatting sites, like flicker.com or twiter.com.

But what happens when Google doesn't find a page from a site included in the index? Until recently, it returned the standard 'Your search did not match any documents.' Now it returns more helpful information: results from websites with similar addresses, suggestions for queries and a way to identify the page by restricting the search to the domain/subdomain from my initial query.
This is a great improvement that should be emulated. It's one more step in the "brute force" approach to broken links. We're stuck with "brute force" because the web never evolved a true directory service.

Now I'd like Google (or Firefox) to add an option such that when the URL matches a well ranked site then we just go to the site. We'd only see search results when the URL was off, that would be the current behavior.

This might have to be an advanced option since the variant behavior would be confusing, but it would let me live with a single top text field. One that also needs to mapped to command-L (OS X) or Ctrl-L (Win).