UNIX was not designed to stop its users from doing stupid things, as that would also stop them from doing clever things.
At the end of the day, I had to give it a try. I ordered a 17" MacBookPro with all the knobs turned to eleven. It arrived on Monday so I've had about two days to learn my way around. Here's how the experience has gone so far. [Too salty for us, Norm, the censors had a field day –ed.]
Unpack. Boot. Follow the prompts. Hey, it's a laptop!
A laptop with
a dumb name. Let's call it “
traytable” instead. Heh.
I think to myself A machine without emacs isn't a machine I want to use. [As a typographic device, the thought bubble is a little much, even for you isn't it? –ed.]
Configure the keyboard:
$DIETY intended that key labelled
“caps lock” to be “ctrl”.
Development tools. I need development tools.
Install XCode (gcc, make, etc.)
Install Firefox and the necessary extensions (Adblock Plus, del.icio.us, Firebug, Flashblock, Greasemonkey, ScrapBook, Tab Mix Plus, Web Developer).
Install Subversion, Python, and Mercurial.
At least I don't have to install Perl.
Web server, I want a web server.
Enable Personal Web Sharing.
So far, so good; that's a nice Apache web server. But I'm trying to setup a staging area for what my web hosting company serves, so I need suexec. Luckily, I've done this dance before.
Get Apache 1.3.33, configure, make, and install suexec in the right
I have questions. My friends have answers.
Time to get my home directory. This is going to be easy because I just put it all under Mercurial.
hg clone ssh://firstname.lastname@example.org/path/to/home
Unfortunately, some of the old chat logs have names that differ only in case. So the command fails. What the beep?! The OS X filesystem isn't case-sensitive!? I repeat, What the beep?! Of all the stupid beep beep beep stupidity. Luckily, I say luckily, the case-collisions are unimportant and as much accidental as anything else.
Go back to my old box Beeping beep idiotic beep filesystem beep. and move some files around. Update the repository. Clone it to the Mac.
Install SSHKeychain. Enable remote login.
No dircolors? Beep?
Bah, that's a dashboard widget. Where's the beep command-line tool? Oh, over there. Nevermind.
Hmmm. What's missing?
Get the sources for wget, do the configure, make, make install dance.
Get the sources for gnupg, do the configure, make, make install dance.
Installing common software from source. How quaint.
Music. I need music.
Fire up iTunes. Point it at my music share.
What the beep!? The iTunes player doesn't understand FLAC!? Beep! I don't suppose RhythmBox has been ported? I have no (particular) interest in buying music from Apple, I wonder if there's a descent DAAP-aware, Last.fm-aware music player?
Aquamacs: it's a nice port; perfect for a Mac junkie, I'm sure. But it's more Aqua, less ’macs. Beep your standard Aqua UI, I want emacs. You adapt to me, machine, not the other way around.
Ahhh, that's better.
Is that my best bet, IRC-wise?
Click-to-focus sucks. It really beeping sucks. Especially since it makes you click twice most times: once to get the application's attention and once to do the action you intended when you pushed the beep button in the first place! But I concede that the title bar on the top of the window makes focus-follows-mouse more complicated. I guess I'll learn to live with it.
Modules. I need modules.
Update CPAN. Install LWP::UserAgent, XML::XPath.
Download, compile, and install expat.
Install XML::XPath, XML::Parser, Proc::ProcessTable.
Attempt to install Flickr::Upload, Flickr::API, …
Why the beep won't XML::Parser::Lite install?
Why doesn't head work? What the beep is going on?
Holy beeping beep! I let LWP::UserAgent install /usr/bin/HEAD! Oh beeping beep beep beeping case-insensitive filesystem. What the beep am I going to do now?
Beep! Not on the install disk. Beep! At least not outside of some archive. Uhm. Anyone around? Hey, Edd, uhm, you there? Any chance you could send me /usr/bin/head? You can. Got it. Thank you! Whew! Beep beeping filesystem!
Beeping XML::Parser::Lite still won't install. What's the deal? I wonder if it works for anyone else?
The damn trackpad
$DIETY, I hate
this beeping trackpad. Constantly taking my
fingers off the home row to move the beeping mouse.
Why can't I have my pointing stick back? is a little off-center
and I keep resting my right palm on it. I wonder if there's some sort of “palm
detection” setting hidden somewhere?
I wonder if I should be worried that it isn't being maintained anymore?
Next up, email.
Wrestle with emacs.
Wrestle seriously. Turns out, if your
Hey, I can read my mail! Can I send it?
You'd think, since the Mac comes with Postfix installed, that it'd “just work.” It doesn't. Web searching reveals that someone will sell you a $10 tool to make it work. Buy a tool to make installed standard system software work correctly? What's up with that? Web searching will also reveal an alternative. I did that. Sending mail is a little bit complicated for me because corporate mail must go through a corporate relay and I don't really want to send all my personal mail through that relay.
Download, build, install, and configure msmtp.
Part of my problem in this transition is that I want to port an environment that I've crafted over the last ten years, changing as little as necessary because I know how it all works. Sometimes that means I'm trying to do things in very non-Mac ways. Beep you. You adapt to me, machine, not the other way around.
Yay! I can send email.
If I start Emacs from a shell window where my environment is setup, things work well. If I start Emacs by clicking on the icon in the applications folder, they don't. How do I configure things so that apps inherit the right environment by default?
And if I do, will that make Emacs aware of SSHKeychain for managing passwords? I fear not.
What the beep? How come if you're tabbing through fields on a form in Firefox, it skips right past the pulldowns. I don't want to use the mouse.
Now, can I collect new email?
To read my email, I download it with fetchmail and hand it to the local MTA which procmails it through ClamAV and DSPAM before delivering it. DSPAM in turn relies on a MySQL database.
There's a long, brutal story to tell here about how I managed to download, install (or build and install, as appropriate), and configure MySQL, DSPAM, and ClamXav. I even ported my existing DSPAM database. And it almost worked. (Something about porting the old database didn't work; I had to retrain it.) So I gave up. I've simply outsourced all my spam filtering to the corporate email servers and GMail. So be it.
Somewhere in here I got the Mac equivalent of the BSoD. Snort. That's not supposed to happen.
This 1920x1200 display is saweet! But the fonts are a little small even for my taste.
Get the DejaVu fonts and install them.
Configure the terminal to use DejaVu Sans Mono.
Why isn't that anti-aliased?
Next, I setup my Mac to use both displays. I have to say, if Tim hadn't told me about it, I never would have thought of dragging the menu bar to the other screen. I lived with the menu bar on the top of the bottom screen for most of a day. Just grabbing and dragging it is either way cool and obvious or very subtle and frustrating. I'm not sure which.
Get the sources for links, do the configure, make, make install dance.
Why does my staging area for norman.walsh.name serve up the wrong stuff?
Disable content negotiation in
You know, Evan’s right, it would be nice if the top opened a few more degrees.
Hmph. QuickSilver crashed. Maybe twice. Bzzzt. But thank you for playing.
Install LightRoom. Install X11. Install OpenOffice.
And on we go. First look: LightRoom is awfully nice.
Lest it seem from my commentary that I'm deeply disappointed with
traytable, let me just say that I'm not.
It's gorgeous. And fast. And I think I'll get used to it.
Change happens, right?
More to come. [With less ranting, please. –ed.]