Tag Archives: windows

Digsby: useful, once you turn off the ads

Adium is the alpha and omega of chat clients. It does everything right. Unfortunately, it only runs on Macs. I just can’t seem to find a good multiprotocol IM client for Windows.

Way back in the dark ages, when Pidgin was GAIM 1.5 and the UI team hadn’t adopted their “our way or the highway” policy, I used that. But the Gtk+ interface always bugged me and GAIM 2.0 disabled a bunch of UI tweaks that I liked. There was a fork called Carrier or FunPidgin that re-enabled them, but like most annoyance-related forks, there wasn’t a lot of backing and it’s now long dead. So I kicked it to the curb and used Miranda for a while. Unfortunately, maintaining a Miranda install means dealing with at least a dozen plugins to provide features that should have been built in, like grouping a person’s multiple chat handles together (“metacontacts”), the ability to change smileys, a decent chat-history viewer, or a UI that doesn’t look like a throwback to Windows 95. Too much hassle.

Then I heard about Digsby somewhere. It’s not open source. It’s actually kind of unclear what their business model is. However, in terms of feature set, it’s the closest thing to Adium you can get on Windows, with the notable exceptions of OTR encryption and IRC support. It supports metacontacts, it works with Facebook messaging (always surprised by how many people use that), it has a decent message display, and it can be configured to be quite unobtrusive, a major selling point for me. Part of that configuration is turning off all the crap they ship with it. Honestly, I hate ad-supported free stuff, and I hate installers that carry a crapware payload even more. If it’s good, just make it payware. I’ll buy it. If it’s not good, I’m not going to put up with ads because it’s free – there are plenty of other freeware and OSS products out there that are usable.

To the credit of Digsby’s developers, you can turn off the various user-exploitation features! Here’s how.

There’s a constantly varying crapware payload in the Digsby installer: last time I installed Digsby, it was the Ask.com toolbar (link goes to uninstall directions). Real useful. Ask.com’s installer screen has the checkboxes for “Yes, please install this useless piece of data-harvesting crap” pre-checked, so don’t blindly click through.

Once you’ve got Digsby installed, open Digsby’s Preferences window from the systray icon or the Tools menu (shown):

Location of Digsby's Preferences window

The newest publicly available version of Digsby added ads under every conversation window; that’s what pissed me off enough to go looking for some way to kill them. In the Conversations pane, uncheck the box next to “Support Digsby development by showing an ad in the IM window“.

Location of checkbox to disable Digsby's conversation window ads

I want to smack anyone who sends emails ending with “sent from my iPhone” (or BlackBerry, or Hotmail account, or whatever). I prefer my messages unbranded, thanks. Digsby does some similar self-promotion in your AIM profile. In the General & Profile pane, uncheck the box next to “Promote Digsby in my AIM profile“.

And then there’s the most insidious piece: Digsby uses Plura’s platform to appropriate your CPU cycles for commercial purposes. This is one step away from botnet membership, and it uses the same verbiage as legitimate volunteer grid computing like BOINC (the platform that powers SETI@home). In the Research Module pane, uncheck the box next to “Allow Digsby to use CPU time to conduct research“. Maybe some day, commercial grid computing will advance to the point where I can make more money by running it than it costs to power the machines it’s running on, but on that day, the money better be going to me, not whoever landed a parasite program on my computer first.

With this junk disabled, Digsby is a nice little multiprotocol messenger program.

Tagged ,

hello world, meet gpt-surgeon

gpt-surgeon has a new home on Launchpad! Look for it at https://launchpad.net/gpt-surgeon. Downloads compliant with the Launchpad release scheme (GPG-signed tarball) available here: https://launchpad.net/gpt-surgeon/+download

I’ve decided to go with GPLv2 as the licensing scheme, no copyright assignment required, to keep this simple utility open and available to the public with a minimum of hassle and a maximum of fresh code.

gpt-surgeon will still be available here on Bat Country for a time, but fresh development and new versions will be on the Launchpad site. This version will be frozen as soon as the Launchpad version is available.

Tagged , , , , , , ,

more on: invalid BS_jmpBoot in boot block: 000000

I’ve been getting a lot of comments that say “invalid BS_jmpBoot in boot block: 000000” happens with  Apple’s Boot Camp HFS drivers from Snow Leopard as well as MacDrive. The act of assigning a drive letter to the partition seems to cause the GPT corruption. This would seem to make it a Windows issue. I do not speak for my employer in any official capacity, but when my current high-priority tasks are done, I’ll ask around at work and see if anybody knows anything about this issue.

Meanwhile, keep sending in your experience reports! The more data, the better.


update: Comments have been turned off for this post; all questions, comments, suggestions, and support requests about gpt-surgeon must be submitted through the gpt-surgeon LaunchPad site and should be accompanied with disktype reports.

Tagged , , , ,

WMP12: Don’t Bother

I like Windows 7. It’s got all the things I liked about Vista (Aero Glass, cleaner-looking user directory structure, better support for multiple network interfaces, more text labels and fewer incomprehensible icons, to start) and it’s got the Dock from Mac OS X. ;) So it stood to reason that the Media Player that comes with Windows 7, namely, Windows Media Player 12, might be worth another look.

I’ve tried to use Windows Media Player a few times before. I think the last time was when WMP10 came out, back when I was still running XP.  It was ugly, glitchy, and liked to freeze for long periods of time for no reason, especially when network shares were involved or the library was much above 20 GB. Once in a while, it would eat its own database and refuse to show anything until I nuked the library database files on disk and reimported everything. Not so good.

Normally, I’d use iTunes, but over the past couple of releases it’s been hard not to notice that Apple is a lot worse at writing Windows software than Microsoft is at writing Mac software. I’ve experienced redraw glitches, funky-looking (i.e. not ClearType) text rendering, general sluggishness, and an inability to turn off annoying things like those go-to-the-iTunes-store arrows which can be taken care of with a preferences editor on the Mac. Also, my iPod 4G finally died. RIP Inductive Satanograph 2004-2009. You’re syncing and charging over FireWire with the angels now… *sniff*

A lot of people use WinAmp, but the UI is like a cheesegrater being rubbed across my corneas. It’s one step above a Taiwanese OEM’s overclocking utility. There are things with command-line interfaces that are prettier and more usable than WinAmp. It’s skinnable, so theoretically there could be a skin out there that fixes this problem, but so far every 3rd-party skin I’ve seen has been worse than the default.

So. WMP12. Been using it for a few weeks now. Turns out it has problems. Big ones.

Tag Support

Surprisingly, WMP12 supports MPEG-4 tags better than MP3 tags. I’m not aware of any published standard for MPEG-4 tags. Tools like AtomicParsley and Mutagen appear to have been built based on inspection of iTunes-tagged files. WMP12 had no problem reading my collection of MPEG-4 AAC music, album art and all (except for the problems it has with all album art, which I discuss below.)

However, it doesn’t support ID3 v2.4 tags on MP3s at all. The word from the WMP team at work is that this is intended behavior, because v2.4 isn’t widely supported. Umm… The standard’s been out for nine years, guys. You should at least be able to read them even if you don’t write them. Why not ask the Xbox 360 team for some code? The 360’s media player can read them. I don’t know if it supports fancy features like replay gain frames (RVA2) but at least it gets title, album. and artist right.

This is not an insurmountable obstacle; downgrading from v2.4 to v2.3 doesn’t cause any problems in my music library. I ended up writing my own Python utility for reading and writing v2.3 tags, because Mutagen won’t write anything except v2.4, and after downgrading (and cleaning up a few screwed-up files with a hex editor), metadata started appearing in WMP12.


Unfortunately, WMP12 doesn’t seem to support the ID3 TPOS frame or whatever the MPEG-4 equivalent is. This is the disc number field in iTunes, the one that lets you specify where a track belongs in a multi-disc set. It’s listed as known by the Windows Media Format SDK, but there’s no way to display it in WMP12, and it doesn’t affect sort ordering, so it might as well not exist. Without it, all the tracks on a multi-disc set get zippered together, sorted by track number and then alphabetically:


On top of that, the Advanced Tag Editor is gone, and the Edit context menu option seems to be broken for some data types: I can’t clear a wrong release year, for example. On hitting Return, it snaps back to the previous value.

Album art

I have nice high-quality album art from Amazon, Discogs, iTMS, or the web embedded in almost all of my music files. WMP12 finds it, creates a tiny little downscaled copy, and uses that for album art display instead of the full-resolution stuff in the music file. Then it poops invisible JPEG versions all over the library folder structure (Folder.jpg, AlbumArtSmall.jpg, and friends.) There was a workaround for earlier versions, but it’s gone now. Look at this Now Playing window. Doesn’t the artwork look lonely? And blurry?



Every so often, I’ll start WMP12 on my home machine and it’ll go through the entire library and make two entries for each track. They’re pointing to the same file location, so nothing’s being copied, but everything is listed twice. This is infuriating. Sometimes it goes away if I relaunch WMP12. Sometimes it doesn’t. It goes away if I delete the library databases in %LOCALAPPDATA%\Microsoft\Media Player, but it can come back just as easily. Possibly related is that Last.fm’s scrobbler has stopped scrobbling tracks played in WMP12.

Neither of these glitches happen on my computer at work, and the only difference I’ve noted so far is that the Music library at home includes a folder on an external hard drive (which is always plugged in), while the Music library at work only includes the My Music folder. Don’t know what’s going on here.


Man, they’re not even trying any more. Time to reinstall iTunes.

Tagged , ,

invalid BS_jmpBoot in boot block: 000000

MediaFour‘s MacDrive (7.2.6) keeps screwing up the GPT on my external GPT-formatted drive. It has one HFS+ partition and one 200 MB EFI system partition, and when I boot my iMac into Windows (Vista SP1 x86), mount the drive, and then boot back into Mac OS X (10.5), I usually find that OS X won’t recognize the HFS+ volume any more. The characteristic error is an ignore/eject/format unrecognized dialog after OS X login, and “invalid BS_jmpBoot in boot block: 000000” from Disk Utility when trying to repair it.

It seems that the GUID for the HFS+ volume is changed from {48465300-0000-11AA-AA11-00306543ECAC} (HFS+) to {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7} (“Microsoft Basic Data”). Windows doesn’t have any trouble mounting it as long as MacDrive is installed, it’s OS X that has the problem. I was able to fix the GPT by changing the GUID back to what it should be, at which point the drive was recognized by OS X, and found that the actual HFS+ file system was unharmed. I wrote most of a GPT editor in the process, and if Mediafour doesn’t fix MacDrive soon, I may end up turning it into a one-click GPT fixer.



Here’s the tool I used to fix my own disk: gpt_surgeon.py

It’ll need Python 2.5 or higher, and has only been tried in OS X on my own machine. Run it with no arguments or look at the code for a usage statement. The repair process goes like this:

First, list the partitions on your disk to figure out which one needs to be relabeled with the right filesystem type. If you don’t know what your disk device path is, go look in Disk Utility or System Profiler or run diskutil(8) with its list option. The path for my external disk is /dev/disk1.

$ ./gpt_surgeon.py list /dev/disk1

Read MBR and GPT from /dev/disk1.
partition 0:
     type: EFI System
     name: u'EFI System Partition'
    flags: 0x00000000
partition 1:
     type: Microsoft Basic Data
     name: u'Untitled'
    flags: 0x00000000

Note the partition that says “Microsoft Basic Data”. Assuming that you had a single non-system partition on the disk, and that the partition was HFS+ before MacDrive got to it, this is probably that partition. In my case, it’s partition 1. Remember the number; you’ll need it in the next step.

If you have multiple data partitions on the disk, especially if one of them is actually a Windows data partition, you should use something like disktype to check what filesystems are present in each partition, so that you don’t accidentally relabel the wrong one.

If you have any other partitions from this disk mounted, unmount them now.

You’ll need to run with sudo to get the privileges necessary to actually repair the GPT on disk.

$ sudo ./gpt_surgeon.py repair /dev/disk1 1

Read MBR and GPT from /dev/disk1.
Changing type of partition #1 on /dev/disk1 to HFS+...
    Opened /dev/disk1 for writing.
    Wrote MBR.
    Wrote GPT header.
    Wrote GPT entries.
    Closed /dev/disk1.

And this is what the disk’s GPT should look like afterwards. Your HFS+ partition should be mountable now.

$ ./gpt_surgeon.py list /dev/disk1

Read MBR and GPT from /dev/disk1.
partition 0:
     type: EFI System
     name: u'EFI System Partition'
    flags: 0x00000000
partition 1:
     type: Apple HFS+
     name: u'Untitled'
    flags: 0x00000000


second update: commenter James let me know that Christophe Grenier‘s TestDisk utility can also be used to fix this problem.


third update: here’s a video walkthrough of the process. For people who have Flash turned off for some reason, please see the QuickTime version of the walkthrough.


last update: gpt-surgeon is opening up! Thanks to all who submitted usage reports, suggestions, failure data, and proposed patches. I hope you’ll find future versions at least as useful. Comments have been turned off for this post; all questions, comments, suggestions, and support requests about gpt-surgeon must be submitted through the gpt-surgeon LaunchPad site and should be accompanied with disktype reports.

Tagged , ,