Replacing Quicksilver

September 1st, 2011 — Wordman

When Quicksilver debuted in 2003 it seemed like someone you met either never heard of it or sang its praises to the heavens. This, of course, made me suspicious. I tried it anyway. Pretty soon, I was singing its praises to the heavens, too.

If you haven’t used it, it is a bit hard to explain. Everything you’ll read about it calls it an “app launcher”, which is one of the things it does, but that label doesn’t really tell you anything. The basic idea is that you have a hot key combination (control-space, usually) that pops up a floating window, you type the first few characters of whatever you are trying to open (apps, but also documents and a bunch of other stuff), Quicksilver finds what you are typing as you type it, and you select what it found (usually the first choice) by hitting return and the thing launches. This doesn’t sound all that impressive, but once you start using it, you feel crippled on machines that don’t have it.

Unfortunately, Quicksilver has a checkered history and was more or less abandoned a few years back. This post details my search for a replacement.

Confession: I wanted this post to be better, with screenshots and detailed analysis of the pros and cons, and so forth. It turns out, however, that all of the following applications do the basic job I wanted, and choosing between them turned out to be more about aesthetics and “feel”. While choosing software on this basis is a totally acceptable thing to do, its not particularly empirical or compelling, so sorry for that.

So, what was I looking for? I’m not a “power user” of Quicksilver. It has a lot of untapped potential that I never used, so don’t care much about. 99.9% of what I used Quicksilver for was:

  • Launching applications
  • Locating and opening documents
  • Revealing a file in the Finder
  • Getting info on a file

I spent about a month with various launchers installed on various machines. Here are the applications I tried:

Quicksilver

Maker: QSApp
Version Tested: Β60
Price: Free
Technology: Mac-only
iUseThis users: 11194

Surprise! Maybe I’m the last to know, but only after testing a number of these applications did I discover that, earlier in 2011, a group of developers had started developing Quicksilver again, and seem to providing better support than the original ever had. The first of their releases appears to have been mostly about fixing bugs. The second added quite a few new features. It also seems a bit faster and more polished.

So, if you came here looking for a replacement of that old version of Quicksilver, you might just be after the resurrected new version. This seems especially true if you are a Quicksilver power user, as the developer’s blog seems to cater to that crowd.

Alfred

Alfred iconMaker: Running with Crayons
Version Tested: 0.9.9 (w/ Powerpack)
Price: Free (Powerpack $20)
Technology: Mac-only
iUseThis users: 872

Though still in beta, Alfred seemed like the most streamlined of the bunch, though perhaps not quite as powerful. Certainly, the free version is sleek but rudimentary (it handled all of the jobs I list above except for the “Get Info” part). The interface, however, has a certain elegance that the others lack.

I bought the optional PowerPack ($20) and was more impressed. It has a great set of features that, importantly, are quite simple to use. The risk with all these application launchers is that, as you add knobs and whistles, they become…well, knobs and whistles. You get tons of customization in an ever more confusing interface. Alfred seems to have solved this problem somehow. Just looking at the advanced features in the preferences, I can see how (and why) to use them. I don’t get the same feel from Quicksilver.

LaunchBar

LaunchBar IconMaker: Objective Development
Version Tested: 5.1
Price: $35 (free 30-day trial)
Technology: Mac-only
iUseThis users: 1357

LaunchBar has been around a long time (I seem to remember it predating Mac OS X, sort of a precursor to the Dock, but maybe I’m thinking of something else). When Nicholas Jitkoff, the original developer of Quicksilver, was abandoning his creation, he specifically mentioned LaunchBar as a replacement. LaunchBar uses a slighly different approach, so it’s developers supply a guide to switching from Quicksilver.

The app is polished and has a ton of features, but in the month I used it, I didn’t find that one killer thing that would make me want to pay more for it that I would for Alfred. (Plus, it’s hard to beat Quicksilver’s free.)

Google Quick Search Box

Google Quick Search Box iconMaker: Google
Version Tested: 2.0.0.3328
Price: Free
Technology: Mac-only (Windows version discontinued)
iUseThis users: 791

Google grabbed Nicholas Jitkoff, the original developer of Quicksilver. One of the projects he has worked on for them is the Google Quick Search Box. The QSB comes across as a “Quicksilver light”, with more Google-centric search power built in from the start. I found the Google branding a bit distracting.

While I was testing, a new version came out. I immediately liked the previous version better (the new one seemed much slower), which isn’t a good sign, though the new version’s branding wasn’t as irritating.

Spotlight

Spotlight iconMaker: Apple
Version Tested: Lion’s
Price: Free (Built into Mac OS X)
Technology: Mac-only
iUseThis users: no entry

You can make a case that one of Mac OS X’s under-appreciated features, Spotlight, can replace some of what Quicksilver does. Try hitting command-space and type the name of an application, for example.

On the other hand, Spotlight offers an application programming interface (API) to access the content index it makes, and the other apps in this list make use of it in one way or another.

Conclusion

While I’m pleased that Quicksilver now has someone in its saddle again, I will be sticking with Alfred (plus powerpack) for a while. Had I known Quicksilver had been resurrected before I bought Alfred’s powerpack, would I have still purchased it? I’m not sure. But since I have, I’m going to give it a go. As I mentioned, though, this is largely just based on “feel”. I really don’t think you can go wrong with any of these.

Replacing Quicken

July 21st, 2011 — Wordman

Since OS X Lion does not include the old Rosetta technology, it will not run Quicken 2007. So, I have been trying out replacements before I upgrade. Here is what I need:

  • I have Quicken data going back to 1993. A replacement needs to be able to import it all, the more intact the better.
  • I download transactions electronically from a number of financial institutions. I need to be able to continue doing this at least as well as Quicken does it.
  • I need fairly advanced investment management. Though I no longer invest in stocks, I have in the past, and want those trades preserved. I also need the ability to manage investments of instruments that are not traded on exchanges (so, for example, don’t have official symbols or price feeds and so on).
  • Obviously, it needs to be Lion combatible
  • Good-looking reporting is useful, but not required. Again, at least as good as Quicken is needed (though that is not saying much).
  • I want a decent, Mac-like user experience.
  • I do not care about syncing to mobile devices or the like.

One warning: the reviews below will be a bit stream-of-consciousness, as I write down observations as they occur to me.

Preparation

If you are planning on doing a similar migration, make sure you export your Quicken data before you upgrade to Lion. You won’t be able to launch Quicken once you upgrade. Every app I tested can import a .qif file, so export on using File→Export→To QIF….

And, of course, back up everything, yadda, yadda, yadda.

Non-contenders

There turn out to be a surprisingly large number of financial apps that run on the Mac, but I will only be testing some of them. Most I am rejecting because they seem small time, unsupported, weakly-ported and/or missing features. There are, however, some popular, realistic choices that I am passing on:

  • Quicken Essentials for Mac ($50) is the most recent version of Quicken for Mac; however, it is ridiculously underpowered compared to its predecessor, Quicken 2007. If it would do the job, I would have converted to it months ago.
  • Some suggest just running Quicken for Windows under an emulator, such as Parallels. Since financial applications are not particularly CPU intensive, this should work fine. While I do own a version of Parallels, I pretty much never run it. I’m not really interested in starting. (BTW, if you are a Parallels user, you need version 6 to run under Lion.)
  • A number of online options, such as mint.com, are available; however, I have no interest in uploading my financial life into the cloud, encrypted or otherwise. (Note: this also why I’m not including screen shots of my testing in this post.)
  • MoneyWell ($50) is an interesting application that I actually own (part of one bundle or another). It is a great (and great looking) little money management application, and does support electronic downloads, but doesn’t have investment features. If you don’t care about that, it may work for you.

This brings us to the serious contenders, in the order I happened to investigate them…

iBank

iBank iconMaker: IGG Software
Version Tested: 4.2.4
Price: $60 (30-day free trial)
Technology: Mac-only (Cocoa)
iUseThis users: 650

The import process was fairly painless and seemed to work well. I had to change a few account categories in a dialog provided for the purpose (e.g. changing loan accounts from “Liability” to “Loan”).

All accounts are listed in panel on the side. Account groups are allowed, which I really needed as I’ve collected a lot of accounts over the years (probably 100+). The grouping worked fine, but the UI only allows you to select (and, therefore, move) one account at a time, so making the groups was tedious, though only necessary once. It doesn’t seem to have a concept of “inactive” accounts either, so I had to build an “Inactive” account group and throw them all in there. Not the end of the world.

While direct connection to financial institutions is supported, it failed with odd errors for many of my accounts. The forum for the software showed many with the same errors, but no solution that worked for me. Some of this, I suspect, is because most of my accounts use more than just username/password for security (e.g. extra “site image” pages, sites that send a confirmation code as a text page that you have to enter, even cryptographic keyfobs). User error may also play a part, as it looks like some sites require you to change settings on the destination web site (and, in some cases, pay a fee) to support direct connection.

So, I fell back to what I had to do with Quicken: login to the sites manually and download my transactions. I’m used to this, so don’t consider it a deal breaker (though direct download would be nice). Importing these transactions is actually a bit smoother than in Quicken.

As mentioned, some of my investments don’t have official price feeds, so the balance in those accounts initially showed up as zero. After some tinkering, I found it is possible to manually enter a price for these instruments, which is about as much as I can expect. Armed with a price, the balance became correct.

One drawback I notice is that investment accounts don’t seem to have a column containing a running total of shares, just value. That is an annoying omission, so much so that I wonder if I’m just missing some mechanism to display it.

Loan information was not transferred over, so I had to set that up by hand. The accounts were all there, just not linked together with proper payment information. Setting this up is straightforward and provides a good “pending transaction” ability to see when payments are due. I needed to make some of these transactions show up in the past, which took a couple of tries to get right, but nothing too severe.

No import is perfect, but it did seem that any non-ideal situation I ran into was easily corrected, usually by the action I naturally tried first, which is a good UI in action.

Conclusion: As the first of these applications I tried, iBank set a pretty high bar. I could easily see myself using it, and it will be the one to beat.

Liquid Ledger

Liquid Ledger iconMaker: Modeless Software
Version Tested: 2.3.3
Price: $40 (60-day free trial)
Technology: Mac-only (Cocoa)
iUseThis users: 11

The import of my 3MB .qif file took over three hours to complete (contrasted to less than a minute from all the other apps). It does seem to have imported correctly. Also, it automatically groups accounts into folders in its sidebar, very similarly to the way I had to do it manually in the others. You can still can only select one account at a time, though (this is particularly irritating here, because if you select a folder, it displays the combined transactions from all accounts in the folder, so you know the UI has the ability to display multiple accounts at once, but just doesn’t for no reason). No way to hide inactive accounts, either.

I generally hate toolbars in any application, but this one is particularly bad. Five buttons, one of which is a color picker. Really? The only thing remotely useful is the search field, but fortunately, it isn’t useful enough to force me to keep the toolbar visible. It does include an option to hide it, which I used almost immediately.

The Income & Expenses section is quite nice, sort of like smart folders showing transactions based on what Quicken calls Categories, rather than Accounts.

The software recommended that I save a SQL version of my data, as it would better handle my large number of transactions. Not only faster saving, but a much smaller file (~6MB vs. 36MB). Interesting.

Importing transactions from institutions is…not great. Unlike Quicken and iBank, there is no interface for matching what is being imported with the existing ledger. It is easy to re-import transactions, duplicating them, but not so easy to undo the duplication.

After a few minutes of looking, I don’t see any way to update security prices. I also don’t see any features for calculating/scheduling loan payments. That’s a big problem for me, as I don’t want to calculate principal vs. interest each time.

Investment features exist, but seem fairly sparse. It doesn’t have the concept of “Move Shares In” that Quicken does, for example, though it allows entry of transactions in a sort of “warning” mode, allowing the destination to remain empty (as it would in an MS transaction).

It can handle split transactions (where one transaction might be distributed among a number of accounts), but does so using a semi-modal popup dialog. Functional, but…meh. Modal dialogs are generally bad these days.

Pretty much nothing in the application is right-clickable, in spite of a number of menus being sensitive to what is selected. That’s sort of old-school Mac, from the dumb one-button mouse days. Apparently, I don’t work that way anymore.

Conclusion: If this were the only choice, it would be tolerable, but some of the others are more feature-rich. The lack of loan support and more advanced investment features is a problem for me.

Money

Money iconMaker: Jumsoft
Version Tested: 4.0.1
Price: $19, until end of July (free 15-day trial)
Technology: Mac-only (Cocoa)
iUseThis users: 236

I got this one as part of the most recent Mac SuperBundle (and you can, too, if you hurry). It is possible that this application is the best day-to-day money management software in existence. I wouldn’t know, though, because it screwed up my import pretty badly.

After taking about 10 minutes to import, the end result was a totally blank window. After quitting and relaunching, my information showed up. Sort of. The main overview has a section called “Top Categories”. For some reason, every entry in this section was the abbreviation of a state, most of which I’ve never lived in. Looks to me like the import might have put the wrong column in the Category field.

A bigger problem is that some of my investment account transactions are missing share quantities. That is really bad.

Performance was really, really bad. I got the distinct impression that Money was not prepared for the number of transactions I have. When resizing, for example, the window would not redraw for several seconds.

Conclusion: The problems seen right away with this application meant I rejected it before really getting to the heart of it. It simply failed at preserving my old data, so no point in continuing.

iFinance

iFinance iconMaker: Synium Software
Version Tested: 3.2.8
Price: $30 (30-day free trial)
Technology: Mac-only (Cocoa)
iUseThis users: 99

I’ve liked other applications from Synium (particularly MacFamilyTree), so was anxious to look at this one.

Getting started was not quite as clean as some of the other applications. Most put an option to import from Quicken right in your face the first time you launch them. While iFinance also puts an “options for starting” window up, and some of of these options do involve importing, an option to import from a .qif file isn’t on the window. I assumed that I needed to create a blank database, then choose some sort of Import menu option, which turned out to be the case. Oddly, the only progress during the import was the spinning beach ball. No progress bar or anything like that.

Unfortunately, after the import, I’m also missing information from some of my investment accounts. All of Quicken’s “Move Share” transactions seem to have just been dropped on the floor and are missing. The vast majority of transactions are missing descriptions.

The interface is also garish and annoying. As an example, each transaction has a brightly colored amount (white text in a red or green aqua-like button) and has a colored circle for “Category”. This circle is a representation of the account(s) on the other end of the transaction, but there is no text in the list. Just the colored circle. The system has taken my hundred or so accounts and assigned them unique shades, but the color alone doesn’t help me. The detail view shows the actual name of the account (and their colors), but, uh…no.

A quick tour of some of the reports shows them to be more graphic intensive than some of the other applications, but clearly not built for the large number of accounts I have, which make the legend dominate the screen.

Conclusion: Like Money, this one fails at my first basic requirement for data integrity, so doesn’t merit further looking.

Money Dance

Money Dance iconMaker: The Infinite Kind
Version Tested: 2011
Price: $50 (free trial allowing unlimited import, but only 100 hand-entered transactions)
Technology: Java-based
iUseThis users: 215

This is a Java application and, though it does a much better job of being Mac-like than many Java apps, it still shows. The buttons are in non-standard places, the widgets are not standard, background colors are a bit off. Redraws of windows are a bit clunky. Some dialog fields don’t respond to cut and paste commands. And so on. While much of that is cosmetic, it causes me to cringe enough that it is a distraction, so counts as a strike against Money Dance.

The import was quick, but my net worth is off. Looking through the accounts, I see some have additional transactions and some have transactions that are missing. Some moves between a credit line and various investment accounts might be getting double counted for some reason. I should say that these import mistakes are less severe than those made by Money and iFinance. I get the impression that I could correct them with an hour or so of tinkering. Looks like the mistakes are more in the area of account linkages, rather than data actually missing. I’d bet that people without transactions as esoteric as mine would have a better outcome.

The import grouped my accounts in a mostly reasonable way (and, you can remove unused accounts from the sidebar without deleting them, unlike in these other applications), but you cannot group accounts in arbitrary folders.

Split transactions use a modal popup technique even uglier than Liquid Ledger’s. Investment accounts do provide a running share balance, though.

Setting up direct connect to financial institutions was pretty much the same story as iBank, suggesting that the problems may be on the bank end. Importing files manually works, but doesn’t have any “matching” process before confirming transactions, so creating duplicates seems pretty easy.

Conclusion: Money Dance seems powerful, moreso than most of the other candidates, if a little clunky. The import mistakes are troublesome, but not necessarily fatal. For every feature it has that I actually use, though, iBank seems to do the same thing in a cleaner fashion.

SEE Finance

EDIT: I didn’t hear about SEE Finance until someone mentioned it in the comments. See what I have to say about it there.

Conclusion

My top two choices are iBank and Money Dance, in that order, with Liquid Ledger running a distant third. A longer test period and more experience may force me to change my mind, but I am going to use iBank for now. Some things about it still bug me, but it has more to like than the others. Reading comments about the various apps on forums and such suggest that iBank has, historically, had stability/corruption problems, causing many to bail on it in favor of Money Dance. The dates on these comments, though, suggest that this hasn’t happened lately. I’m about to find out.

Let me know how your own switchover goes.

Rebuilding a RAID

January 14th, 2011 — Wordman

A while ago, I showed how to build a 1TB backup RAID in ten minutes. But what happens when a drive in this RAID goes bad? This is easy enough to deal with, but contains a few landmines along the way that can get you if you are not careful.

A few weeks back, I upgraded my backup RAID to use quiet, cool, 2TB disks. After working for a few days, one of the disks started throwing SMART alerts, which (in this case) signaled imminent failure. Soon enough, the drive became non-responsive. (This often happens with commodity components like drives or RAM: either they fail right away, or not at all.) As the drive was still under warranty, I got a replacement drive and swapped it into the RAID, and now all is well.

But, back up a bit. What do you actually see when this happens, and what do you need to do? Well, first of all, remember that the R in RAID stands for “redundant”. The whole point is that if one disk fails, the data remains safe on the remaining disk. At first glance, the RAID looks totally fine. If you run Disk Utility, though, it will tell you that the RAID is “degraded”, like so:

Missing disk

Note that if you have a problem, one of the disks might say “Damaged” or some other status instead of “Missing”, but the idea is the same. So, first land mine: you might be tempted to remove this damaged disk from the RAID set in Disk Utility. Do not do this. Instead, you want to get this disk out of the machine entirely, leaving the software part of the RAID alone for the moment.

Which brings us to the second land mine: how do you know which disk to remove? In the list of disks on the left of the Disk Utility screen, if you click on one of the disks, it should tell you what bay contains the drive at the bottom of the screen. If you still can’t tell, take a look at the RAID information for something like “disk1s2” on the damaged drive. Then run System Profiler. In the “Hardware: Serial-ATA” section, you should be able to find the matching “BSD Name” for the drive and figure out which bay the disk is in.

Once you know what bay to empty, turn off Time Machine, then shut down the machine and remove the drive (follow the link mentioned at the start of this post for how to do this). I should point out that, if you need to, once the disk is removed, you can restart the machine and use it for a while. The RAID will still be degraded, but will function with one disk if needed. (I ran in this state for a while while waiting for my replacement drive.)

Once the disk is removed, you have a couple of choices: you can try to repair the disk, or you can replace it. If you want to try repairing the disk, you should do so using a totally different machine. The reason for this is that once a disk has RAID information put on it, there is a chance that it will try to sync with other RAID disks as soon as it is put on a system with them, which could blow the information away.

One tool that helps immensely in messing with drives and moving them around is something like the NewerTech Voyager Q. This is a box that has several different kinds of disk interface on the back (USB, FireWire, eSATA) and a slot on top into which a SATA disk can be plugged, without messing with screws and mounting brackets and such. It’s totally worth the $70.

Anyway, however you do it, mount the drive on a different box and try to repair it. In my case, this didn’t work, and I had to replace the drive. If you must do so, it is crucial that you get a drive with the same capacity as the good drive in the RAID. Ideally, you want the same exact model of drive.

So, now that you have either a repaired or new disk, you hit the most important land mine: if you try to install this disk into your RAID, and it has some residual RAID information on it, it may hose your data. So, you need to reformat the drive before you add it in. Again, this is best done on a totally different machine. Being paranoid, I reformatted mine to FAT, then reformatted again to HFS, doing a single pass zeroing out of the data.

Now, install the drive into the main machine and startup. Once you are up and running, launch Disk Utility again. Get to the RAID section. As far as the software knows, the old drive it knew about is still missing, so you’ll see something much like the screenshot above.

If you click on the “Missing” part of the RAID in the UI, the buttons at the bottom should change to “Delete” and “Demote”. You should avoid the first one entirely, and only use “Demote”. This will pull the bad disk out of the RAID, but leave the original disk as part of the RAID.

You can now also drag the new disk into the RAID list:

Dragging in new disk

Once both of these are done, click the parent item in the RAID list. One of the buttons on the bottom will change to “Rebuild”. Hit this button. You will get a confirmation dialog:

Rebuild?

Click “Rebuild”, and then watch the progress:

Progress

Rebuilding takes hours, so read a book or something. Once it is done, the RAID should be just how you left it, but in full working order. Turn Time Machine back on and away you go.

Backing up a 1&1 root server

December 4th, 2007 — Wordman

I have a simple need. I want to use rsync to copy various directories on a root server from 1&1 to my Mac. I set all this up this before, but a couple of days ago, the root server refused to reboot. After a lot of tinkering (and swearing) using the recovery systems and FAQs supplied by 1&1, I couldn’t fix it (also, see “An Aside” below), so re-imaged the entire machine. This completely rewrites the box, so the backup must be set up all over again. Setting up an rsync backup turns out to be more difficult than it needs to be, requiring a number of additional steps. Naturally, I didn’t write these down last time, so had to rediscover both the problems and the solutions again. This time, I’m recording them here so that a) I can find them when I need them again and b) on the off chance that they might help somebody.

I should mention that I am not a Linux guru by any stretch of the imagination. What follows will probably bore real Linux geeks to tears. Or, maybe just make them chuckle at my incompetence. Some or all of the following could be wrong or a bad idea. If so, please leave some comments (that’s the third reason I’m posting this).

The Problem

Using rsync to backup a machine makes backups much more quickly than using, say SFTP. This is because rsync only copies things that have changed since the last time you ran it. So, the initial backup pulls everything, but after that each time it runs, only the small number of altered files are transmitted over the network. This requires rsync software on both the source and destination machine, as they communicate to decide if a file needs transmitted, and this is where my problem is.

I re-imaged the server using a 1&1 supplied image that sets up the box using a Fedora distribution, all set up to use Plesk and the other standard bits that 1&1 provides. Unfortunately, rsync is not one of those bits, for reasons that are not clear. It is possible that 1&1 wants you to buy backup services from them instead. So, you need to install rsync on the server.

The “Fedora way” of installing software is to use a tool called yum, which “automatically computes dependencies and figures out what things should occur to install packages”. This tool is included in the 1&1 Fedora image, so the following command (as root) should do the trick:

yum install rsync

And here is where things get ugly. While the yum program is present, it’s configuration is messed up:

# yum install rsync
Setting up Install Process
Setting up repositories
core                      100% |=========================| 1.1 kB    00:00
http://update.onlinehome-server.info/distribution/fedora/linux/core/updates/6/x86_64/repodata/repomd.xml: [Errno 12] Timeout: 
Trying other mirror.
Error: Cannot open/read repomd.xml file for repository: updates-released

At this point, I could just manually install rsync and call it a day, but I really would like yum to be working for some other reasons. The error indicates a URL timeout, which means that yum is likely trying to contact a site that isn’t actually there. So, an obvious thing to try is changing yum to point to a different server.

Yum uses two main configuration concepts: a /etc/yum.conf file and a number of files in a /etc/yum.repos.d directory. A quick grep onlinehome /etc/yum.* shows the bad URL is in /etc/yum.conf. Looking at all the other repos in /etc/yum.repos.d, it isn’t clear if the two repos in /etc/yum.conf are even needed. They appear to be 1&1 specific, pointing to a server that 1&1 doesn’t seem to be paying attention to. Certainly, for rsync, they are probably not needed. So, let’s try telling yum to ignore those two. According to the config file, they are named “base” and “updates-released”. A look at the man page and try this:

yum clean all
yum --disablerepo=updates-released,base install rsync

This seems to work like a charm. So, the source for the backup should be ready to go.

There may also be another solution. The update server that 1&1 uses is inside the same firewall as the root server, so can’t be seen from the internet. Even from the root server, it appears that, by default, the root server can only get to the update server using ftp, not http. This is why yum times out when trying to connect to it. It could be that altering the config to use ftp URLs would work.

I have no idea why the install images provided by 1&1 are configured in such a way that they don’t actually function. I’ve sent them mail about this, but they have not replied.

The Destination

The destination of the backup information is a disk on my Mac, which is running Leopard. Rsync comes with Mac OS X, so should already be ready to go. I have set up a “webbackup” script, tailored to the specific sites I want backed up, and I was running this at noon each day as a cron job.

Or, I was. Until I installed Leopard.

Unbeknownst to me, doing an “upgrade” install of Leopard empties out the crontabs of all users, stashing copies in /var/cron/tabs. This deactivates your jobs without warning. This means that the webbackup I thought I had actually hadn’t been updated for several weeks. Fortunately, I managed to suck down a copy of my web folders and the MySQL data folder the hard way (see “An Aside”, below) before re-imaging everything.

Anyway, my backup script looks similar to the following:

#!/bin/bash

# The full path to the place on the local machine that will hold the backup
DEST="/Volumes/Backup Disk"

# The full path to the place on the local machine that will hold database backups
SQLDEST=${DEST}/sql

# The name of the target domain. This name is used both to connect to the
# target server, as well as the name of a directory created in ${DEST} to
# hold the backup data.
DOMAIN=yourdomain.com

# The username and server that are used to log into the target machine.
USER=user@${DOMAIN}

# The path to the directory on the target that will get echoed to the local.
# If you use a relative path here (no starting slash), it will be relative to 
# the home directory on the target machine. So, if you leave this empty,
# if will suck down the whole target directory. You can also use absolute
# paths.
USERPATH=

mkdir "${DEST}"
mkdir "${DEST}/${DOMAIN}"
mkdir "${SQLDEST}"

/usr/bin/rsync --recursive -t --delete --ignore-errors -e 'ssh' ${USER}:${USERPATH} "${DEST}/${DOMAIN}/"

# For each database, do the following
MYSQLDUMP="mysqldump --opt --quote-names -u dbuser --password=dbpassword database_name"
/usr/bin/ssh ${USER} "${MYSQLDUMP}" > "${SQLDEST}/tmp.sql"
if [ -s "${SQLDEST}/tmp.sql" ]; then
   mv "${SQLDEST}/tmp.sql" "${SQLDEST}/database_name.sql"
fi

Being intended for use on Macs, this script should work even for file paths containing spaces. It would use a lot fewer quote characters if you didn’t need to worry about that. You should be able to adjust this script to add additional database backups, extra domains, etc.

This script uses ssh, as does rsync. So, when you run it, most likely you will get asked to enter your password several times. This is irritating and, if the idea is to have this happen automatically, problematic.

It is possible to set up ssh such that keys can be shared between the target and local machines, using them for validation instead of a password. This is less secure, because any ssh connection from the same local user to that user/target combination will automatically connect without a password. If you are away from your machine while logged in, this can be a bad breach.

I create a special “backup” user on my Mac to do this kind of thing. This user has limited rights to the rest of the machine, and serves only the purpose of backing up stuff. Since I am almost never logged in as this user, it minimizes the threat of me accidentally leaving the machine still logged in has “backup”.

Once this is done, try running the webbackup script from the local machine by hand a few times. Once it works the way you want, put the script somewhere (referred to here as /path/to/webbackup. To add it into cron, you need to add an entry to your crontab. Log into the local machine account you will use for backing up and get the crontab into editable mode using crontab -e. The command I use backs up every day at noon and looks something like this:

0 12 * * * /path/to/webbackup >> /path/to/webbackuplog.txt 2>&1

An Aside

I mentioned at the start that I tried using 1&1’s recovery tools. These boot the system from a minimal image, rather than the OS on the box, allowing you to rummage around the box. This allowed me to suck the data that hadn’t been backed up off the machine before I re-imaged it, which saved my butt. Doing this requires that you manually mount the machines disks. They provide instructions on how to do this, but as of the writing of this post, these are now out of date. Their servers now use a RAID in mirrored mode (a.k.a. RAID 1), which can’t be mounted following their instructions. Following their document, your mount commands return errors saying the device is “already mounted or /mnt busy”. This error message is even semi-true. What seems to be happening is that the RAID is marking these drives as “in use” but the whole RAID is not mounted. So, you need to mount the RAID. This is similar to their instructions, but uses different devices. A forum entry suggested the command cat /proc/mdstat to display the names of the raid devices. In my case, these were /dev/md1 and the like. It turned out that these were set up with similar mappings to those described in the 1&1 instructions, so similar mount commands worked. The file systems were also autodetected, which helps:

rescue:~> mkdir /mnt/raid
rescue:~> mount /dev/mda1 /mnt/raid
rescue:~> mount /dev/hda5 /mnt/raid/usr 
rescue:~> mount /dev/hda6 /mnt/raid/home 
rescue:~> mount /dev/hda7 /mnt/raid/var
rescue:~> ls /mnt/raid/var/www/vhosts

Once you have these drives mounted, you should be able to use scp to suck the data you need off the machine, at the very least. Ideally, you should also be able to alter whatever files caused the problem that necessitated the recovery tools. In my case, the problem seemed to occur out of the blue, not from messing with config files or something, so after a few attempts to figure out what was going on, I just nuked the system.

Not putting two iMacDV motherboards in the same case

April 16th, 2007 — Wordman

For even longer than this blog has existed, I have had a plan to take two previously mentioned iMacDV computers apart and place their innards into a single ATX tower case, essentially jettisoning their bulky and power-hungry CRTs and running them from a single power supply.

The threat of high voltage and lack of motivation caused this plan to languish for years. Now, having given one of these machines away, I’m forced to abandon the idea altogether. I did, however, spend quite a bit of time looking into the concept, so thought I’d share what I discovered so someone else with a stack of iMacDV’s can make it happen.

There are a number of issues that prevent such a project from being an easy task. They are:

  1. Discharging the high voltage in the iMac’s CRTs without killing yourself
  2. Connecting a motherboard built expecting a non-standard power supply to use an ATX power supply
  3. Converting the video signal on the motherboard into a VGA signal
  4. Converting the motherboard’s non-standard drive cabling into more typical IDE cabling
  5. Powering both motherboards at once with a single power supply
  6. Wiring up the power switch to correctly power down the two motherboards

All but one of these issues also occur with a project that would put just a single motherboard in the case. For all but the last two problems, a solution that works in a single board machine could be applied to both boards. The last two issues, however, are interrelated and the addition of multiple boards makes the problems more complicated, particularly the final one.

When I started looking into this project, there were a one or two documented attempts on the net to move an old tray-loading iMac into an ATX case, but the slot-loading iMacDV turned out to be a different beast in many ways, so these were not as helpful. There was also a company that sold kits to convert tray-loading iMacs into 1U rack mounted machines. They later started selling kits for the slot-loading iMacDV. These kits were expensive, however (over $200) and the company looks like they no longer sell them.

After waiting a while, however, a site materialized detailing the iMaxATX, a conversion of a single iMacDV into an ATX case. This site looked to have solved most of the tough bits, with good diagrams for the power supply, video and hard-drive wiring problems. Prior to this page, I hadn’t even known that the video was an issue. After all, the iMacDV has a perfectly functioning VGA connection on the back of it, so it wasn’t (and still isn’t) clear to me why this needed to be converted. Still the pictures on the page are fairly convincing that the video needs some kind of tinkering.

I also am not sure if the hard-drive connection tinkering is really an issue, particularly if you are willing to sacrifice the DVD drives, which appear to be the reason for the non-standard cabling. It occurred to me that you may be able to forgo IDE cables all together and just use Firewire. This would require either drives with native firewire interfaces (which don’t appear to actually exist) or IDE/Firewire bridges. If possible, this would be advantageous because it would circumvent a limit of these motherboards that prevents the onboard IDE from supporting drives larger than 128GB. This would look a bit odd in the case, as the Firewire port that is external when in the iMacDV case would essentially be mounted internally to an ATX case, with Firewire cables running inside. This would, however, eliminate the big gray ribbon cables, so might even look more slick. (I should mention that I was intending to mount all this in a clear acrylic ATX case.)

This leaves the power issue. Even though the iMacATX page mentioned above does provide good wiring information, it doesn’t address some problems, including those unique to a two-motherboards-in-one-box solution. In the first place, can a single power supply support two iMacDV motherboards? I think the answer to this is that the PowerPC chip draws so little power that it is possible with a 500w or greater power supply, but I’ve never tested this. If not, using twin power supplies would work, and would make certain things much easier, but wouldn’t be as cool.

One problem with supporting two boards from one power supply is that there is only one main feed from an ATX power supply; however, since you already have to do a bunch of custom wiring to hook this up to one iMacDV motherboard, splicing an extra feed in parallel into this should not be much more difficult, at least in principle. It’s all just voltage, after all. A socketed power supply might also make this process easier. So would using heat shrink tubing.

There is one big wrinkle here, however, having to do with rebooting. The way machines reboot is by, essentially, telling the power supply to turn on and off. With ATX power supplies, the signal to do this is sent by grounding a specific wire from the supply. The iMac motherboards, however, indicate they want a reboot by setting a wire from ground to +5v. So, even in the case of a single motherboard, there is an issue with rebooting (one not covered by the iMaxATX page, as far as I can tell). There are various posts for solving this problem, some using resistors and other parts, others using simple integrated circuits.

It gets even more tricky when running two motherboards from a single power supply, though. You don’t want to have a reboot or power down signal from one of the boards shutting off everything, because that would turn the other board off as well. You really only want the power to cycle if both boards want to power down, and this requires a bit of brains (or, at least, switches) in-between the power supply and the boards. I worked out a method of doing this in my head, but it makes the wiring much more complicated (you can’t just splice the power wires together anymore) and is probably wrong. I’m sure someone with more EE experience could find a better way.

I may never know, however, since I don’t have one of the machines any more (and the other may be dead). If you get it to work, please let me know.

Hyper MacJesus Pro Gold returns from the dead to save all mankind

December 21st, 2006 — Wordman

Back in the days of Macintosh System 6.0, Lamprey Systems (“software that sucks”) brought us “Your Own Personal Savior on a Floppy Disk”, but then He languished as technology outpaced Him. Now, He’s back, redubbed MacJesusX, promising Mac OS X goodness, “the Insinerator Sin-Removal Tool® and state-of-the-art 80’s programming techniques”.

The latest version, unfortunately, isn’t as fun as the System 7 version. I think one reason might be that it doesn’t use the hypnotic theme song from the earlier one. To restore it to its former glory, I’ve managed (not easily) to extract said theme and translated it into a short MP3. You pretty much have to listen to it on a loop to get the full effect. If you have QuickTime installed, hit play on the control below to see what I mean.

Sometimes banner ads are worth clicking

December 13th, 2006 — Wordman

I don’t usually click banner ads, but I followed one a few minutes ago that seems like a killer deal to certain Mac users. It’s called MacHeist and is a bundle of eight, possibly ten, shareware applications. Since two of these appear on my list of recommended Mac OS X software seems to be worth a look. Part of the proceeds go to charity as well.

The final two applications only get unlocked if a certain amount is raised for charity. Since the deal ends on 16 Dec 2006, it looks like this might not happen, which is a pity considering that one of them, TextMate, is the best application of the lot.

Since I already own Delicious Library and TextMate, I’m not sure I’ll buy this bundle, but I’m tempted. Some of the other apps seem intriguing.

Update: Evidently, Daring Fireball thinks you should care less about what you are paying, and more about what the developers are getting. The lesson I take away from his analysis: developers charge too much.