Category Archives: My Personal Life

Unison: File sync from Ubuntu to Windows 7

Hey, been awhile. Have been ignoring the blog (even my traditional New Year's Eve Post) and many of my other Internet habits in favor of various projects I've been hard at work on. I just pulled off a WordPress update; you're reading this so it looks like it went smoothly.

Anyhow. One of the aforementioned projects (and the thing you came here to read, if you found this page by Googling an error message — and if you did, you may want to skip my meandering explanation and go straight for the numbered steps at the bottom of this post): I recently decided to set up a file sync system across the computers in my house. It's useful for syncing things like savegames, RSS feeds, and the public-domain ebooks I've been grabbing from Project Gutenberg and MobileRead and comics from Digital Comic Museum across multiple devices.

I'd done some command-line RSS before, and also set up backup systems with Toucan, but figured I'd try something different on this one. I gave Ubuntu One a shot and it seemed promising until I realized it isn't open-source and I can't set up my own server. Canonical is swiftly becoming the Apple of the Linux world — good at taking open-source software and making it pretty and usable, but not so great at giving back to the open-source community.

Ultimately I settled on Unison, which proved to be a bit of a headache — frankly if anybody has a better solution I'd be happy to hear it, but here's how I got it to work.

First of all, the Unison GUI requires GTK. Hardly a problem on the Linux side, but under Windows, extracting the binaries from gtk.org and setting the PATH variable didn't work, no matter what I did. Maybe it's a Windows 7 thing, or maybe it's a Unison thing, but either way, Unison threw up "This application has failed to start because libgtk-win32-2.0-0.dll was not found. Re-installing the application may fix this problem." every time I ran it. Sticking it directly in the GTK\bin directory worked but is an ugly solution; multiple sites suggested installing Pidgin, which comes with GTK, but produces the same problem as Unison doesn't find it in the path.

(Actually, let me back up a bit: I couldn't get Unison to work with 64-bit GTK at all. The only Unison binaries I could find were 32-bit; I opted to install a 32-bit version of GTK rather than stick Cygwin on my HTPC and compile Unison from source.)

Ultimately, I found a binary Windows installer for GTK (conveniently the first Google match for gtk windows binary installer); whatever my PATH problem was, this installer fixed it. The Unison GUI was up and running, from its own folder.

Next problem, though: SSH. Unison did not play nice with PuTTy.

Googling the problem, I found a page called Unison-ssh, which includes a wrapper named ssh.exe for download. If you've read this far you've probably already installed PuTTy, but in case you haven't, you'll only need it if you want to use public key authentication — this ssh.exe will automatically install a copy of PuTTy's command-line SSH utility, plink.exe, if it can't find it. (Well, hypothetically. It tries to stick it in WINDIR and if you're not running it with admin privileges it'll fail.)

Now, I should add that this ssh.exe doesn't work properly under Windows 7; it'll prompt you for a username but only let you type one character and then automatically Enter it. Same problem with the password prompt. The comments thread in the page is filled with people who have the same problem. Maybe a clean compile would fix it, I don't know; again, I didn't want to go to the trouble of setting up compilers on my HTPC.

There's a solution a ways down the comments thread. Unison stores its data in the .unison directory, even under Windows. (That'd be \Users\name\.unison under Win7.) They're simple text files with the .prf extension. And you can add an "sshargs" line to give command-line arguments. If you're comfortable sticking your password in plain text, you can add the line "sshargs = -pw [pass]" and you're done. But if you're not, you can set it up with RSA keys. A later comment links a post on Palin's Technical Blog that runs down how to generate a keypair with puttygen — the problem is, I couldn't get my Linux server to accept it; I kept getting a "Server refused our key" error.

I found the solution on Andre Molnar's blog: you need to generate the keypair on the Linux server, using ssh-keygen, add the public key to your authorized_keys file, then move the private key over to the Windows machine and use puttygen to import it and then save as a PuTTy .ppk file. From there, add "sshargs = -i [path to private key]" to the appropriate .prf file.

Almost done, but the Unison GUI still has path issues, even if you stick ssh.exe in the same directory as PuTTy and add that to your PATH. I got around it by sticking a shortcut on the desktop with the PuTTy directory as the working directory.

In summary:

  1. Install openssh-server on your Linux server and PuTTy on your Windows client.
  2. Install Unison and its dependencies on your Linux server. (It's offered in the Ubuntu repos; command-line is unison, GUI is unison-gtk.)
  3. Install Unison on the Windows client.
  4. If you want to use Unison's GUI, install GTK on Windows.
  5. Download the ssh.exe wrapper for PuTTy. Stick ssh.exe in the same directory as PuTTy and put that directory in your PATH.
  6. Generate an RSA keypair on your Linux server using ssh-keygen. By default it will put the keys in ~/.ssh/id_rsa and id_rsa.pub.
  7. Copy the contents of the public key (id_rsa.pub) to ~/.ssh/authorized_keys. Remember to set perms on ~/.ssh to 700 and authorized_keys to 600.
  8. Move the private key (id_rsa) to the Windows machine. That's move, not copy; delete it from the Linux side as you don't want to store the same private key in more than one place.
  9. Run puttygen.exe. Import your existing private key, then save the result as a new .ppk file. Delete the original key file. Again, only the owner should have read perms on this file.
  10. At a minimum, your \Users\name\.unison\foo.prf file should contain the following:

    root = [Windows path]
    root = ssh://[user]@[host]//[Linux path]
    sshargs = -i [path to private key]

  11. To get the Unison GUI to run ssh.exe properly, create a shortcut and set its working directory to the PuTTy directory.
  12. You can schedule regular syncs using Windows Task Scheduler; run the command-line Unison executable, with args "-batch [name of pref file]". Don't include path or extension, just the filename ("foo" in my example above).

So there you go: a cross-platform syncing solution. Good for backups, for keeping files consistent between your desktop and your laptop, or for anything else that requires keeping the same files on multiple machines.


Playing: Just finished playing a fan translation of Act Raiser. Maybe a bit more on that soon.

Reading: Blood of the Elves. As I await The Witcher 2.

On the other hand…

Two posts ago, I argued for more 8-page comic book stories.

A couple weeks back, I picked up Nation X #4, because it had a Milligan/Allred story with Doop. Now, that was pretty awesome…

…but then I realized I'd paid $4 for an 8-page story. I would not have bought the book for any of the other stories in it. The one where the kids raid the fridge was fun, but still not enough to justify the purchase.

So, all this to say, I'd love to see more anthologies like Nation X…except, you know, good.


Playing: Mega Man 10

Reading: Just wrapped Men of Tomorrow.

Pointless Nostalgia on an Aribtrary Date

Yeah, okay, so it's been awhile. It's been a busy year. Looks like I missed this site's tenth anniversary by a few weeks, but it was December 9, apparently.

2009. 2009, 2009, 2009. You know, the last two years were straight-up law-of-averages affairs, though in different ways. '08 was pretty mediocre all around; no real highs and no real lows. '09…well, if '08 was a flatline, '09 was a sine wave. It was like the "That's good! That's bad." bit on Simpsons. Alternating highs and lows. The best part of '09 was meeting a very nice girl and finding myself, for the first time in my adult life, in an actual relationship. The worst was losing my uncle. And there were peaks and troughs aplenty in-between.

In other nostalgia-y not-quite-news, I've gone and started another damn KateStory — I didn't miss that anniversary. The sucker's 15 years old now. I can't believe it's already been 5 years since the 10th anniversary.

I reread all 17 previous installments in preparation. In reverse order. And you know, I learned some things.

  • Brent was right about pretty much everything. Books I-III should probably all be considered one book, VI shouldn't be in there at all, comedy is more important than strict adherence to whether or not I have replaced my watch battery, and Final Fantasy VII is not nearly as good as I thought it was when I was 15. (Chrono Trigger, on the other hand…)
  • Speaking of which, IX isn't nearly as horrifying on a reread as it was a year ago when I had to go through and excise all (well, most of) the adolescent bickering. It's actually better than X. X just fucking drags.
  • Going through the old books looking for "best lines" to reuse in the first chapter of XVIII, most of them were written by Brent. I had a pretty good number of runners-up, but there really weren't any with my name on them where I went, "Yes. That is the best line in this book." Though I threw a couple of mine in anyway for the sake of balance. (Of course, I also focused on lines that would work with the phrase "It was [year], and" prepended to them.)
  • I kinda miss the old days when chapters would cut off in mid-sentence. I should try doing more of those.
  • I've named every single book except KateStory Gaiden, which was McDohl's title. Some of them are well-named (I know Brent's a fan of "Midnight Falls. And can't get up.") and some aren't (I think the reason Book III is "Searching for a Plot" instead of "The Search for Plot" is that the latter was the title of Mad's Star Trek III parody).

I'm seeing end-of-the-decade lists pop up everywhere, but have no great urge to put up any of my own. I can't fucking believe I've got my 10-year high school reunion coming up. Feels like I don't have much to show for it, but on the other hand, I've got a pretty good life, all things considered.

Which isn't to say it can't get better. Here's hoping 2010 continues the past year's trend of wonderful things while ending its trend of terrible ones.

Happy New Year.


Reading: Jeez, haven't read a prose book in months; spending entirely too much money on comics. I just finished Fables vol 7 and Usagi Yojimbo vol 1.

Playing: New Super Mario Bros. and Dragon Age: Origins.

Auld acquaintance

You know, having my New Year's Eve traditions rudely and abruptly yanked out from under me has itself become something of a New Year's Eve tradition — and, the childish drama inherent in such a change in plans notwithstanding, I think I'm all right with that.

The wonderful paradox about New Year's, and a significant portion of why it is my favorite holiday, is the balance of the old and the new, of tradition and change. (Also, beer.) I'm a guy who puts a lot of stock in his past, but who could sure use some forward momentum in his life about now.

Traditions are wonderful things, and seeing old friends is a joy — but shaking up a routine is something special in and of itself. I'll never forget New Year's Eve 2000/2001 — nothing special, perhaps; I just stayed home and watched Batman (the 1989 one) and Army of Darkness with my little brother. It wasn't the night I had expected or planned for, but it was a very pleasant capper to a very hard week. (It was also the first night I checked out #finalfight, starting another tradition — every year I'd show up there early on New Year's morn, even years after I quit my regular attendance of the channel. That's another tradition I'm breaking this year — with some pride, actually; it's important to know when to let traditions go.)

I've had a comfortable New Year's Eve routine for, if my count is correct, the past five years (and that image at the top of the main page is from the 2006 party). It didn't hold this year, but that opened the door for something new. I saw Lewis Black perform (second time; he always puts on a good show), and, running late to meet my friends at Four Peaks (as it turns out, they left at 11:30 — honestly, who leaves a New Year's Eve party half an hour before midnight?), my dad and I happened to be on the new light rail train passing over Tempe Town Lake when midnight hit. We saw fireworks over the lake. Then we walked around the downtown area until the 12:45 fireworks show, which was pretty spectacular — I don't understand how there were people simply walking away, with their backs to it, paying no attention.

Anyhow. In the spirit of the holiday, in the spirit of the balance of the past and the future, I have some thoughts on where I am and where I'd like to be — nothing quite so simple as resolutions, but a few ideas.

I have a steady job now — but I'd like a better one.

I have a lot of good friends — but I could stand to make more. And, I hate to say it, but the truth is maybe some of my auld acquaintances should be forgot.

I love my hometown — but I'm overdue for a change of scenery.

I'm an honest person, to a fault. I speak my mind and don't play games. But I could stand to keep my mouth shut more often than I do, and learn when to cut my losses rather than go down swinging.

And, as jaded a person as I am, I can never foresee a time in my life where I turn my back on a fireworks show.

I have no idea where I'll be come this time next year; I don't think I can count on seeing Lewis Black and then being on the light rail over the lake at precisely midnight. But that's a liberating thought — who knows what the future will bring? Maybe I'll start a new tradition, or maybe it'll be another satisfying one-off.

Think about your traditions — and think about new ones you can start.


Reading: Me of Little Faith, by Lewis Black; Our Dumb World (yes, still; it is a very long book best read in one- or two-page chunks)

Playing: Chrono Trigger DS, Final Fantasy IV DS, Super Smash Bros. Brawl

More KateStory

KateStory Books XV and XVI are now posted in their entirety! I have made corresponding updates to the index and character guide.

XVII is still ongoing (go over and write something!), and the KateStory anniversary is coming up in a few short weeks.


Playing: Dragon Quest IV. Brad bought it for my birthday! Thanks Brad!

Love and Rockets: New Stories #1

So, people on the messageboard have recently been prodding me about the fact that there are threads there that consist largely of me posting and nobody replying, yet meanwhile I have let my blog languish since February. It is a fair point, and so I'm going to start putting my posts about things nobody else apparently wants to talk about up here instead of on the boards.

Sadly, Love and Rockets seems to be one of those things, and that's a shame — anything involving Skrulls or written by Mark Millar provokes lively discussion, yet when I bring up one of the seminal series in comics history (and, for my money, a fantastic piece of American literature)? Nada.

So this week marked the debut of Love and Rockets: New Stories, the third volume of the series and a new format — a beefy 100-page annual. I suspect that the reason they titled it New Stories instead of simply Volume 3 is that, at a glance, it looks like a trade; they want to emphasize that it is not, in fact, a collection of old stuff.

The presentation is 7 short Gilbert stories (one of which is written by Mario) bookended by a Jaime story in two 24-page installments.

Jaime's story is set, loosely, in Locas continuity — it features Penny Century and Xo, and Maggie appears briefly — but it doesn't fit with the series' usual realistic themes; it's a superhero story. It recalls the early Maggie the Mechanic stories, where dinosaurs and robots appeared as casual, everyday parts of life, and Love and Rockets was actually a fairly accurate description of what you were likely to see in the book.

That aside, needless to say, it's not everday superhero fare. There's plenty of Kirby love to go around, but this is still a Love and Rockets story — it's about family issues, old friends reuniting, and strong women.

That element of the familiar pervades Gilbert's stories, too, but he abandons his established world — there's no Palomar here, nor even any of its tangentially related characters like Venus or Fritz. They're also short — Jaime devotes 48 pages to a single story, while Beto's longest is 16.

Papa, The New Adventures of Duke and Sammy, and Victory Dance form a trilogy of sorts, increasingly surreal as they go. Mario's story, Chiro El Indio, is not so much surreal as whimsical, and has a certain 1920's vibe to it. Never Say Never is a funny animal story about luck and sharing the wealth, while the aptly-named ? is a thick-lined, surreal pictures-only story that recalls Owly or Frank.

Beto's stories show a good deal of stylistic range — I'm not an artist and I'm likely to stumble in trying to describe what he does with lines and shading, but each story is visually distinct.

Anyway. Love and Rockets. One of the all-time greats, and I love that it's still being published — even if we only get one a year now.

Looking forward to Beto's story in this year's Treehouse of Horror comic.


Playing: Just finished Mass Effect for the second time; working my way through various Mega Man titles in preparation for 9.

Reading: Our Dumb World, in-between various comics. The local Atomic Comics had a 20% off sale on Labor Day and I picked up a stack; so far I've read Astonishing X-Men vol 4: Unstoppable and Batman: Gotham by Gaslight.

WordPress

You've probably noticed the site looks different.

Or, if you haven't because you're reading this via RSS, you've probably noticed you just got ten duplicate entries in your reader.

That's because I just migrated my backend over to WordPress.

As I alluded in a recent post (and yes, I update so seldom that three months ago qualifies as "recent"), b2evolution reached a point where it made even the simplest tasks a chore. A quick rundown:

  • As noted before, it refused "id" and "name" attributes in <a> tags. In other words, it would not allow me to use anchor tags as anchors.
  • Its error messages were hideous. "Invalid URL" may be useful information in a post that has as many as three links in it, but when you have fifty, it's the coding equivalent of punching me in the gut and then pointing and laughing. And for those of you who have not yet taken a 100-level programming course, it bears noting here that telling me which URL was causing a problem would take maybe twenty characters of additional code.
  • Not only wouldn't it tell me which URL was a problem, it wouldn't tell me why. I had to poke through a gigantic list of blocked URLs before I discovered that b2evolution had for some reason automatically blacklisted all mac.com sites.
  • Okay, this is the best one. You think blocking mac.com is bad? Check this out. In the same post, I linked to a rather lengthy driver URL — go ahead and mouse over that link and see what I mean — and b2evolution rejected it.

    See anything wrong with it? No? Neither did I. It took me about an hour to figure out what was happening. Here's the problem:

    The link contains the string "&ProductID". See where I'm going yet? No, you probably don't; even if you know that the HTML code for an ampersand is "&amp;" it probably hasn't hit you what happened there.

    So okay, here's what happened: b2evolution saw the "&Product" in that link, expanded it to "&amp;Product", and then, on a second pass, turned the ;P into a smiley.

    Hang on, it gets better: there is no way to disable smileys in the b2evolution admin control panel; you have to hack the PHP manually.

    Hang on, it gets even better: there actually is a checkbox in the control panel to allow you to disable smileys…and it is grayed out by default. Someone went to the trouble of actually coding up an easy fix…just to make it impossible to use.

In short, b2evolution was like everything my old web host ever gave me: at first, it was a generous gift and gave me an outlet to share my thoughts with the world, but over a period of years it became less and less bearable up until it reached a point where I simply couldn't go about my daily business anymore without it making my life unpleasant.

Actually, catty remarks about Internet drama aside, this is a coincidence — I started this overhaul several days before Sharkey decided to pull up stakes. However, it's a happy coincidence, and it's nice to see him carve us out an alternative to Crazytown.

Anyway, on to the technical side, for anyone else who has WordPress questions. On the whole, I think WP is better so far. I absolutely despise "smart" quotes, and it parses text inside <code> tags just as poorly as b2evolution, if not even worse, but fortunately I found two plugins called Unfancy Quote and Preserve Code Formatting which take care of those two problems right out the gate.

I think I've done a pretty good job with the new theme, taking the old look and making a few modest changes to it. (I've finally retired that silly-ass old digits.com counter. It is the end of an era.) The CSS is my own, but the PHP code is largely adapted from Sandbox. As such, it's GPL'ed code, so once I'm finished tweaking it I'll put a zip file up just in case anyone wants to eyeball my source.

If there's anyone else trying to migrate old-ass b2evolution (0.9 series) to WordPress, there are a couple different ways to do it. You can convert to Movable Type and import natively (tutorial at Insert Witty Title), which preserves categories but hoses custom slugs, or you can use a conversion PHP script (tutorial at ibrian, though there are a few different versions of the script), which preserves custom slugs but hoses categories. I opted for the latter since it's less of a pain to recreate categories than slugs, but YMMV; if you never used custom slugs and just stuck with the default post titles, I'd say try the former. (There is something in there about how b2evo replaces spaces with underscores and WP replaces them with dashes, but there should be a tool to correct that too.)

Anyway. New blog, new forum. Let me know what you think. Maybe one of these days I'll get up the courage to dust the cobwebs off my Links page.


Playing: Super Mario Galaxy.

Reading: Just finishing Dune.

Triple-Booting a Mac Pro

Updated 2007-10-14. Scroll down to where it says "Update 2007-10-14". I'd put a link here, but for some reason b2evolution will not let me use the "id" or "name" attributes; expect a presumably silly and useless "rant" on that subject very, very soon. (Update 2008-01-17: Switching to WordPress fixed the problem.)


So I got that Mac Pro I was talking about earlier. No, I still can't afford the thing, so if you notice me living a life of indentured servitude for the rest of my days, well…I'm Irish. We're used to it.

The bastard about being on the bleeding edge is that there aren't a whole lot of guides to walk you through your setup. For example, I found quite a number of guides on how to multiboot a MacBook Pro with 3 OS's on different partitions of the same drive, but approximately bupkis on how to do it on a Mac Pro with each OS on its own drive.

So, in case anyone winds up Googling for the same information I couldn't quite find, here's how I finally did it. Hopefully this'll make it easier for you than it was for me.

Installation and booting

I can't say for certain, but I think order of drives and order of installation are both important.

After some trial and error, I wound up laying my drives out like this:

Drive 1 is Kubuntu.
Drive 2 is OSX.
Drive 3 is Windows XP x64.

Leastways, that's how they're set up in hardware. For reasons I'm not altogether clear on, they show up in software as Kubuntu on sda, Windows on sdb, and OSX on sdc. Still more curiously, both the Kubuntu drive and the OSX drive are assigned SCSI ID 0,0,0. (Could be some holdover from the old master/slave days? Maybe the drives are on different controllers? Something to do with MBR vs. GPT? Is it because the Kubuntu drive is physically first but the Mac drive boots first? Don't know.)

Order of installation seems to be important too. I say this because my first time through, I installed Kubuntu, it ran fine, and then I installed Windows and Kubuntu wouldn't boot anymore. I'd click on the Linux icon and it would boot the wrong OS. (Actually, it still does; more on that later.) So, as with most things in life, everything was going great until I installed Windows.

But after a day and a half of banging my head against the wall, I finally got all 3 OS's moving by rearranging the drives (see above) and installing Windows first and then Kubuntu. (OSX, of course, was preinstalled.)

Things to keep in mind: since we're talking 64-bit Windows, the Boot Camp program is useless. You can ignore it. It might be useful for resizing your OSX partition since Windows insists, for no reason whatsoever, on writing system files to the first drive. I say "for no reason whatsoever" because you can move those files — boot.ini , ntdetect.com , and ntldr — to the drive Windows is installed on and it'll run just fine. There's more info at x(perts)64; that guide is specifically for dual-booting XP and Vista, but I found it useful anyway.

(Also, "the first drive" noted above is actually the second drive in my case, which caused a good deal of confusion; as I mentioned earlier, both the Kubuntu drive and the Mac drive show up as 0,0,0.)

It's also worth noting that the much-ballyhooed rEFIt doesn't work for me; I have to hold down Option at startup to get a working boot menu.

That menu gives me the following:
rEFIt, Windows, Windows, Windows
because EFI very helpfully assumes anything that's not Mac is Windows.

The first "Windows" is actually Kubuntu. The second gives me "Error loading operating system". I assume that the first "Windows" is the MBR of the drive and the second is the first partition, which is flagged bootable but doesn't have Grub on it.

The third "Windows" is actually Windows.

Now, rEFIt looks similar — it offers "Boot Mac OS X from Mac", then "Boot Linux from HD", "Boot Legacy OS from HD", "Boot Windows from Partition 1", not always in that order — but the last three all open the same OS, either Linux or Windows depending on which I booted more recently.

So I'm stuck with holding Option at boot and selecting the left Windows or the right Windows, but at least it works. I'm hoping future versions of rEFIt fix this problem.

Windows

Here's where you can find the necessary 64-bit drivers for Windows:

(Sources: Triple Boot thread on the Apple forums; Airport Driver thread on driverguide.com forums)

Kubuntu

Boot issues aside, this is the single most painless Linux installation I have ever experienced. I know there's no dearth of people singing the praises of Ubuntu and how close it is to being ready for desktop use, but I'm afraid I'm going to have to add my own redundant voice to the chorus. It was almost painless.

I still had to install the nVidia drivers by hand — either get us some free drivers that work or stop being so damn concerned about ideological purity, guys; I need support for my video card, and this would make life pretty rough for the average user. But by my standards as a Linux vet…I didn't even have to touch xorg.conf. Kubuntu, how I love you.

Setting up wireless was another concern, especially when I read there was no native support for the adapter and I'd have to use ndiswrapper. Let me explain something about ndiswrapper: it was a bastard to install under Gentoo, and is responsible for every single kernel panic I've experienced in the past year and a half.

Under Kubuntu, on the other hand, it was over in minutes. And I don't want to jinx it, but it hasn't panicked my kernel yet.

There's a HowTo at ubuntuforums.org. Steps 1-3 are outdated now; Feisty comes with a current version of ndiswrapper, so you won't need to update it. As for the bcmwl5.inf file, it's the same one in the Dell package I linked above.

To get wireless to work immediately at boot, you'll also need to set your access point up. In Kubuntu, you do go to K → System Settings → Network Settings, click "Administrator Mode", enter your password, click wlan0, then Configure Interface, and enter the ESSID and WEP key. (DHCP and "Activate when computer starts" should already be set.)

I will note that on one of my reboots wireless didn't start up automatically and I had to run iwconfig myself. I think that's most likely due to signal interference in my apartment, but I can't say for sure at this point.

Sound support was the biggest problem I hit. The ALSA driver for Feisty doesn't support the Mac Pro's audio adapter.

After poking around for awhile, I decided that rather than bother with the individual package, I'd just go ahead and upgrade to Gutsy RC. After all, if you've even read this far, I'm guessing you're somebody who's not afraid of the letters "RC"; I'd advise you just to go with Gutsy from the start. (Course, by the time anybody actually reads this guide, I'm betting Gutsy final will be out.)

So far Gutsy's working just fine for me. (Update 2007-10-14: Except that I can't adjust volume from the keyboard. The bar goes between 0 and 11 but doesn't actually make any change in the volume. This appears to be a known bug in Gutsy at the moment.)

I'll edit this post if anything changes or if I find anything else out — I have a Bluetooth keyboard and Mighty Mouse that I haven't bothered trying to set up in Kubuntu yet; I intended it more for my media center/emulation rig Mac Mini anyway. But if I get that, or anything else set up, I'll make a note of it here.

Hoping this has been a help to somebody. I don't usually do this, but when I find myself running into problems that aren't well-documented, I figure I may as well document them myself in the hopes that I can make life a little easier for the next guy.

Good luck, next guy.


Reading: Cat's Cradle again, the first in my "My favorite recently-deceased science fiction authors" theme. I think A Wrinkle in Time is probably next.


Update 2007-10-14: Accessing the Mac drive from Kubuntu

It's easy enough to mount an HFS+ volume under Linux (FS type is just "hfsplus" in mount or fstab), but accessing your home directory or mounting with write permissions is a little trickier.

To access your home directory on the Mac volume from Kubuntu, your Mac user account and your Linux user account need to have the same UID. There are a number of ways to do this; the easiest involve simply creating a new user, but I changed the UID on my Mac login to 1000 with no real trouble.

Just go into Applications/Utilites and run NetInfo Manager, click Users, then your username, then scroll down to uid and gid and change them both to 1000 (or whatever your UID is under Linux — 1000 is, of course, the default number for the first user account).

After that, you'll need to log out and back in, pull up a terminal, do a sudo chown -R <username>:<group> /Users/<username>, and then log out and back in again.

My source on all this is the Gentoo wiki (even though I'm using Kubuntu).

That should give you write access to your home directory on the Mac drive from Linux. To get read access, you'll need to disable journaling.

It occurred to me that I'd like to keep journaling enabled in OSX and only disable it when I want to access the data from Kubuntu. I came up with a relatively simple solution: I wrote a script to enable journaling when OSX boots, and added a line to the shutdown script to disable it.

For the startup script, I created a directory called /Library/StartupItems/EnableJournaling containing a filepair called EnableJournaling and StartupParameters.plist, as follows:

StartupParameters.plist

{
    Description     = "Enable Journaling";
    Provides        = ("Journaling");
    OrderPreference = "Late";
}

EnableJournaling

#!/bin/sh

. /etc/rc.common

# Enables journaling on Mac volume

ConsoleMessage "Enabling journaling on /Volumes/Mac"
diskutil enableJournal /Volumes/Mac
exit 0

(Don't forget to make this file executable.)

(Source: Greg Neagle's blog)

And I modified /etc/rc.shutdown to the following:

#!/bin/sh
# Copyright 1997-2004 Apple Computer, Inc.

. /etc/rc.common

if [ -f /etc/rc.shutdown.local ]; then
        sh /etc/rc.shutdown.local
fi

SystemStarter stop

# ADD THIS LINE:
diskutil disableJournal /Volumes/Mac

kill -TERM 1

exit 0

Seems to work all right; I get journaling when I'm running OSX, and I get write access when I'm running Kubuntu. (Update 2007-11-05: It appears rc.shutdown is gone in Leopard. I'll update when I learn more.)

The bad news is that it doesn't work both ways. At present I have Kubuntu installed on a ReiserFS volume, which is unsupported by OSX. I could have made it an ext3 FS instead and installed the ext2 driver for OSX, but, well, if I wanted compatibility over performance, I probably wouldn't have gotten a Mac Pro.

In which Thad makes oblique references to his personal life

There comes a time in every man's life when he must come to the sobering realization that the most normal person he knows is this gentleman:
Brad wearing a penis hat

It has recently come to my attention that every single person I know is currently campaigning for the position of Mayor of Crazytown. I wish them all the best of luck, but caution them that the incumbent is going to be very difficult to defeat.

I have further realized that Brad is doing a surprisingly poor job in his campaign for Mayor of Crazytown in comparison to everyone else I know.

Actually, it's not that surprising. He didn't do so well in his campaign for Mayor of Tempe, either.


Reading: Elric: Song of the Black Sword. I agreed to read it if Felipe would read Watchmen. So far he is more impressed than I am.

Like I was saying…

Microsoft to change "Hotmail" to "Windows Live Hotmail".

What in the hemorrhaging hell does Hotmail — or any of this other Windows Live crap, for that matter — have to do with Windows?


Playing: Final Fantasy VI Advance, The Legend of Zelda: Twilight Princess