Mac OS X – Tech Tips, Reviews, Tutorials, Occasional Rants Fri, 21 Mar 2014 05:03:09 +0000 en-US hourly 1 iStat Pro is an Awesome Free System Monitoring Widget Fri, 26 Jun 2009 22:12:47 +0000 icon-istatproFor Mac OS 10.4 or higher: iStat pro is a system monitoring widget that has it all.

iStat proMain site

Like any system monitor worth its salt, iStat pro displays vital information about your:

  • CPU
  • Memory
  • Hard disk(s)
  • Network
  • Temps
  • Fan speed
  • Battery (for laptops)
  • Uptime and System load
  • Running Processes


Unlike some other system monitoring tools for Mac OS X, iStat pro runs in the Dashboard instead of in the System Menu or the Dock. To me, this is preferable because I can quickly send it completely out of the way when I don’t need to check any system stats.

Okay, so it displays system stats. Is that all?

Nope. For starters, one cool aspect of iStat pro is that it displays your external IP address under the Network section. Pressing the i key (provided iStat is the active widget) will copy that external IP to your clipboard, which is handy for network admins.

istat-pro-prefsYou can also customize the stew of the widget. Want only certain elements (such as CPU, Temps, and Memory) to display? No problem, just turn off the others in the Preferences.

Want the stats widget to display vertically instead of horizontally? Yep, it can do that.

Want to rearrange the order of the elements? Just drag-and-drop.

Dislike the default color? Just pick from any of the nine included colors. There’s bound to be one you like.

If you’re totally hardcore about system monitoring, you can buy the iStat for iPhone app ($2) and check your Mac’s system stats remotely from your iPhone or iPod touch.


For you hotkey aficionados, here’s a list of the available hotkeys for iStat pro, taken directly from the manual.

c – Show or hide the CPU section
m – Show or hide the memory section
d – Show or hide the disks section
n – Show or hide the network section
p – Show or hide the processes section
u – Show or hide the uptime section
b – Show or hide the battery section
f – Show or hide the fans section
t – Show or hide the temps section
s – Swap between tall and wide skins
i – Copy external IP to the clipboard
g – Update external IP
1 – 8 – Change skin colour

iStat pro is freeware/donationware from iSlayer.

Securing a Linux Server: SSH and Brute-Force Attacks Mon, 15 Jun 2009 16:35:51 +0000 Continue reading Securing a Linux Server: SSH and Brute-Force Attacks ]]> If you have a web server, then you are the target of many possible attacks. *ANY* port you have open on that server can be exploited, so you if you value your uptime and your data, you need to secure it. This article focuses on locking down your SSH configuration and user permissions.

If you’ve had your server online for a while without locking down your SSH configuration, have a look at this file: /var/log/secure and see if you’ve got a lot of connection attempts.

This is what a brute-force attack looks like:

[prompt]$ sudo less /var/log/secure
May 31 22:42:12 yourdomain sshd[25711]: Failed password for invalid user alberto from
port 32976 ssh2
May 31 22:42:12 yourdomain sshd[25712]: Connection closed by
May 31 22:46:11 yourdomain sshd[25714]: Connection closed by
May 31 22:56:46 yourdomain sshd[25717]: Invalid user neil from
May 31 22:57:10 yourdomain sshd[25717]: reverse mapping checking getaddrinfo for failed - POSSIBLE BREAK-IN ATTEMPT!

Using Geobytes (or a similar IP address locator), I can see that some hacker-bot in Argentina was guessing both usernames (e.g. alberto, neil) and passwords every few seconds. F*#K!!

The Solution

Here’s what the solution to this problem entails:

  1. Add users for each person accessing the server.
  2. Create a password for those users.
  3. Fly to Argentina and show Sancho I got something for his punk-ass. Just kidding… are you still paying attention?
  4. Add the necessary user(s) to the sudoers file. You don’t want anyone to have direct root access, so this file defines who gets sudo privileges.
  5. Create a public/private ssh key to use in logins.
  6. Install the public key(s) on the server. This will enable the server to recognize the owner of the private key (i.e. you).
  7. Turn off Password Authentication
  8. Disable Root Access

Creating an SSH Key on your Desktop Machine

Keys come in pairs: a public key and a private key. You’ll keep your private key on your machine (in a secure place), the public key you upload to the servers you want to connect to.

You can use different algorithms to generate the key; this shows you how to do it using the DSA algorithm, which is considered more secure (as of this writing).

Open your Terminal and type the following, then just press enter for the default file location. (OS X users can just open their Terminal. Windows users will have to use Cygwin or Putty).

* Do a man ssh-keygen on your machine to see if you require different options to create a dsa key.

[prompt]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/youruser/.ssh/id_dsa):

Type a passphrase (twice).

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

And now you get something like this output:

Your identification has been saved in /Users/youruser/.ssh/test.
Your public key has been saved in /Users/youruser/.ssh/
The key fingerprint is:
12:34:56:78:01:23:ab:a7:42:2b:46:5a:3f:fc:4c:ca youruser@ComputerName
The key's randomart image is:

+--[ DSA 1024]----+
| o o++o |
| o+ . oo.. |
|++.o .. |
|*o. + . . |
|+. . * S |
| E o . |
| |
| |
| |

The ASCII art thing is a new feature, allowing folks to visually identify different keys.

For more information about SSH on OS X, please refer to Dave Dribin’s excellent blog:
ssh-agent on Mac OS X 10.5 (Leopard)

Back on your Web Server

Now that you’ve created your public and private key on your desktop machine, you need to head over to your web server and make some changes.

1. Log into your web server and create users

If you are still logging in as the root user, you need to create other users:

Create a user:
adduser your_username
Create a password for the user:
passwd your_username

Test logging in as this user now. From your desktop machine, try

2. Give One User Sudo Privileges

Now that you have a user other than the root user, you should lock down the root user and push root privileges to the sudo command. The goal here will to disable root logins entirely.

You will need to switch to the root account to perform the following. You can either login as the root account from your desktop machine, or switch to the root account by using the Switch User command (su):
[prompt]$su - root

You grant sudo privileges to your users by editing the sudoers file… but you can’t simply edit that file. You must use the visudo command. This is a very special variant of the VI text editor which is designed for a single purpose: to edit the sudoers file. The security of your entire server can be compromised by this single file, so the visudo command ensures that any editing of this file never allows it to be in a state where its permissions could be compromised.

Other than that, the visudo program works like the VI program — it’s a text editor, but you should familiarize yourself with the editor before messing with your sudoers file.

WARNING: You can lockout ALL users from your machine if your fat fingers or VI ignorance corrupt this file!!! If you are at all unsure of your VI abilities, please review our article: VI Overview.

The goal in editing this file is the addition of a single line of text:
your_poweruser_name ALL=(ALL) ALL

There are a lot of other custom modifications you can make to this file to allow certain users access to individual functions, but that’s a more advanced topic.

Save the file, but DO NOT CLOSE THIS WINDOW. If you made a mistake, you need access to this file in order to fix it. I recommend leaving this window open until you’ve got EVERYTHING locked down and you’ve verified that it works.

Again, go back to your desktop machine and test that you can still login using a password. Once you’re in, try using the sudo command and make sure that you an use it to execute commands.

Add Your Public Key to the Web Server

In a new window, login to your web server from your desktop machine. You should still be prompted for your password.

See if you’ve already got a .ssh directory in your user’s home directory:
[prompt]$ ls -Gal

If you don’t have it, create it:
[prompt]$ mkdir .ssh

Now, move into that directory:
[prompt]$ cd .ssh

If you don’t already have a file named authorized_keys, you need to create it (again, you can use the VI text editor)

You need to paste your entire public key from your desktop machine into this file on the web server. IT MUST FIT ON ONE LINE. SSH expects each key to occupy a single line.

*In VI, you can hit ESC then type :set nu to see line numbers.

Once you’ve pasted in your key, save the file and adjust the permissions:

[prompt]$ chmod 644 ~/.ssh/authorized_keys
[prompt]$ chmod 755 ~/.ssh

1. Each public key occupies ONE LINE in the authorized_keys file.
2. The authorized_keys file must be read-only for the group and others: 644.
3. The .ssh directory can’t be group writable: 755

Disable Password Logins

The goal here is to disallow random hackers guessing at passwords by disabling password logins entirely. Logins will be verified via keys, and we change how SSH behaves by editing the /etc/ssh/sshd_config file.

Make the following edits to the /etc/ssh/sshd_confg file e.g. by typing sudo vi /etc/ssh/sshd_config

Uncomment the PasswordAuthentication line to
PasswordAuthentication no

And change the line for PermitRootLogin to:
PermitRootLogin no

Then reload the conf:
[prompt]$ sudo /etc/init.d/sshd condrestart

WARNING: KEEP THAT WINDOW OPEN. Open a new window, then try to login as your user once again. You shouldn’t be prompted for your password… you should be prompted for your passphrase — this is the passphrase you created when you created your key.

Try switching to the root account after logging in:
[prompt]$ su - root

And finally, attempt to login as the root user from your desktop. It should fail.


Congratulations! If you’ve gotten this far, you’ve taken some big steps in securing your server.

Once you’ve verified that all of this stuff works, you can close the login windows. If something did not work, LEAVE THOSE WINDOWS OPEN and call a friend — find someone who knows Linux system administration to help you out. This is even more important if you don’t have physical access to your server.


Here’s an article I referenced while writing this:

]]> 1
Skin Your Mac OS X Leopard with Magnifique Sun, 01 Mar 2009 13:00:26 +0000 Continue reading Skin Your Mac OS X Leopard with Magnifique ]]> Tired of the way Mac OS X Leopard looks? No, me neither. Still, if you want a change of scenery, it’s easy to try some new Leopard themes with the Magnifique theme manager.

Magnifique – Main site

To get started, install the Magnifique app (drag and drop). Here’s the main program window:

Magnifique - Main
Magnifique - Main

Themes available for download are shown in the bottom-left corner. There are only about 16 themes available as of this typing, but I expect that number to grow soon. You can get a preview (and download) of the theme just by selecting it.

Once you apply a new theme, you can see its new effects by hitting the Restart Finder and Restart Dock buttons at the top of the app. It’s the same as issuing the killall Finder and killall Dock commands in the Terminal.

One quick note: when applying a new theme, notice that you have a few choices available. Certain themes will allow more choices than others.

Be wary when applying a new theme and choosing the Apply custom mods option (if available). Whether malicious or not, it leaves the most room for the developer to harm your system. Read any and all documentation about that theme before you enable this option!

Some Sample Skins

Here are a few themes that I have tried:


A beautiful, streamlined theme that includes skins for Quicktime, VLC, and Adium.

Nothing drastic, but this is my favorite theme that I have tried so far. What can I say? I appreciate elegance.

Veritas comes with a dock mod, custom mods, and a selection of wallpapers.

Black Mac OS X

As the name implies, this is a dark theme for Leopard. I tend to like dark themes in general, but this one is not as satisfying as I thought it would be.

The blue and black clash pretty hard. If you have some custom icon packs, that would definitely help.

I’d love to see a dark skin that fully enshrouds the Finder, erasing all blue elements.

Milk (Leopard Port)

This is a lighter-colored theme modeled after a popular Linux skin.

Like most of the available themes, the changes are subtle, but noticeable. Actually, if I were to offer any complaint about Magnifique, it’s that most of the available themes don’t offer much striking contrast. Hopefully that will change with the addition of more themes.

To remove a theme and get back to normal, just hit the Uninstall theme button. Your original Leopard theme will be quickly restored.

Do you have a favorite Magnifique skin for Leopard? Do you use a different skinning program? Let us know in the comments.

]]> 4
Printing in OS X: Parallel Ports, Drivers, and Mayem Tue, 30 Dec 2008 13:00:11 +0000 Continue reading Printing in OS X: Parallel Ports, Drivers, and Mayem ]]> Don't Buy One of These! They Don't Work!

This is a quick tip. In a word, do not buy the USB to Parallel conversion cables. They SOMETIMES work, which is worse than not working, because then you start believing that they might work, but when it comes time to print something serious (like a 100 page document), you will go insane… you’ll print 3 pages, then the print queue will jam, you’ll have to reset it, and it will take 4 or 5 minutes to get the next 3 pages into the queue, then it will jam again, and again and again. It’s nuts. You will have wasted $10 or $20 bucks and you won’t be able to print anything reliably.

Using Parallel Printers with OS X

So how do you use a parallel printer with an OS X computer? Macs haven’t had parallel ports on them for years, but there are still plenty of printers out there that do. Here’s my hot tip: get a dedicated print server and hook this into your network. This works, it works well, AND it’s scalable. If you get another USB printer, this option will cover you. If you have multiple computers in your house that need to share a printer, boom, you’re in luck.

This guy is a good friend to OS X
This little guy is a good friend to OS X

I recommend the
($110) because I’ve been using it for about 2 years and I haven’t had any problems with it. I simply plugged it into my router, plugged in the printer, and poof… OS X was able to find it. I’m not using the wireless option on this device, but it is there if I ever need it — if you don’t need the wireless option, TRENDnet has cheaper models. It has two USB 2.0 and one Parallel printer port. I’m sure there are other similar products out there, but the point is to let this little “computer” handle the printing instead of trying to make OS X do the difficult (?) job of translating printing to a parallel port. Check out a print server like this if you need to interface with a parallel port printer on OS X. It’s well worth the money.

10 Great OS X Applications for the Web Developer Sat, 20 Dec 2008 07:00:15 +0000 Continue reading 10 Great OS X Applications for the Web Developer ]]> One of the things I think of every single working day is how great a platform OS X is for software development. Now, take that with a grain of salt… I do development in a LAMP dev shop running Linux, Apache, MySQL and Perl/PHP, but we’re running some enormous sites (,, and All of those technologies are open-source, and (in my opinion) very well suited for serious commercial sites. Java is fine if you need to send a man to the moon, but it you just need to say “Hello World!”, you’re still might be dealing with a rocket launch…

Peanut Gallery Java Pot-Shots

.NET isn’t any better… every .NET shop I’ve dealt with has had horrible down-times and massive release delays… but I digress…

Why is OS X Awesome for Software Development?

  1. Exposé — this feature saves me 30 to 45 minutes per day (yes, I’ve timed it). It’s unbelievable how much time you can save if you can quickly get between documents and apps.
  2. The BSD Subsystem — if you’re working with Linux/PHP/Perl/MySQL, it saves so much time to have OS X’s Terminal right there with a Unix variant under its hood. No need to emulate with Cygwin or go remote with Putty. You can test your Apache config or database queries without ever having to connect to the network.
  3. My Mac Runs Windows! — I can test my web pages in all major browsers by flipping between OS X and Parallels Desktop running Windows, or by using VirtualBox.
  4. It’s Not Windows — ha ha… I had to slip that one in. Sorry if you’re suffering through XP. I mean Vista. I mean the NT kernel.

Top 10 Applications for Software Developers on OS X

Ok, on to the main event. Here are ten great applications for a software developer working in OS X. These are the applications that have found an integral place in my workflow. Not all of them are free, but I have tried to list a free alternative when appropriate. I’m not recommending you get ALL of these, but depending on what exactly you’re doing, you might want to try out a handful of them.

iTerm: A Better Terminal

1. iTerm (Free)

Link – iTerm

This is to the command line what Firefox is to browsers: if the Terminal is IE, iTerm is like Firefox. It is simply a better Terminal. It allows tabs and bookmarks for those of you who log into multiple servers.

TextMate: a powerful interface and editor2. TextMate ($57)

Link –TextMate

I do like Smultron a lot (it’s free), but TextMate’s interface is preferable to me. It’s similar to a full-featured IDE such as Eclipse (which is also free) because it gives you a full folder-structure view in its document drawer (something that Smultron or TextWranger do not).

One thing – unlike Eclipse, TextMate is lightweight and fast without ump-teen Preference pages. If you need an IDE, give NetBeans (free) a try.

Transmit: a Powerful FTP/SFTP client with a great interface3. Transmit ($30)

Link –Transmit

Although there are free FTP clients out there, Transmit has one of the best interfaces because it incorporates Mac OS X’s column view. To be fair, I have had some problems connecting to certain servers when using Transmit, but I don’t know enough of the firewall internals to know why one client performed better than another.

If you prefer a free alternative, my recommendation is Cyberduck (free).

Sequel Pro is the sequel to CocoaMySQL4. Sequel Pro (Free)

Link –Sequel Pro (Free)

There are only a couple of choices when it comes to GUI MySQL interfaces for OS X, the other big one being Navicat (they have a lite version that’s free). The other popular choice for a long time was CocoaMySQL, which is still available for 10.4 users, but development on it has been abandoned and the project has moved over to Sequel Pro (the sequel… get it?) Sequel Pro offers an improved interface for 10.5 users (I prefer it to Navicat).

OmniGraffle: graphing, flowcharts, and designs5. Omnigraffle (Bundled with OS X, or $100, or $200 – Pro)

Link – OmniGraffle

Imagine Microsoft Visio, but clean and not bloated and well… not Microsoft. If you have to diagram databases or put together product requirements for documentation, this is a beautiful little product that may have come bundled with your Mac. The Standard version can almost get you through the medium and large projects. I haven’t seen anything on the Mac that comes close to what this application offers, and even though I get the feeling that the high price tag is getting validated by riding Visio’s bandwagon, I still think this is a good bit of software.

6. PhotoDrop (Free)

Link – PhotoDrop

This is a very simple app that lets you create droplets for bulk image processing. Each droplet can do things like convert images between formats, perform scaling and cropping, even watermarking. If you are doing web development, this is just a simple (and much cheaper) alternative to running Photoshop’s Save for Web feature over and over and over again. Very, very handy.

unArchiver: never type a weird command-line un-tar statement again.7. The Unarchiver (Free)

Link – The Unarchiver

This is handy if you’re frequently dealing with Zip, Tar, GZip, BZip2, Rar, 7-zip, LhA, and StuffIt files. Yes, you can handle many of these on the command line, but if you’d rather deal with a GUI, this tool is handy.

8. Nvu (Free)

Link – Nvu

This is a complete Web Authoring System for Linux, Windows and OS X. It’s like a free version of Dreamweaver (which maybe you’ve already outgrown?).

It has good support for style sheets and a Javascript console, but one irk is that the tabs that show multiple open documents seem to disappear if you are viewing the HTML source for the document (instead of the “Normal” WYSIWYG view). If you’re beyond the integrated WYSIWYG type of thing, have a good look at Eclipse (Free)… it’s a big framework that does a lot of things, but a number of web developers I know use it for its convenient browsing and previewing capabilities. Eclipse also integrates with versioning software (like SVN), but because it’s heavy-hitting, I only recommend it for more mature users. NetBeans looks to be a lighter alternative to Eclipse, but I haven’t tried it myself.

9. Seashore (Free)

Link – Seashore

This is a lightweight photo-editing application. It’s got all the things in Photoshop that I use frequently (layers, brushes, and exporting for web). It’s got some handy keyboard short-cuts, but it’s missing others.

SuperDuper: Elegant and Powerful Backups10. SuperDuper! (Shareware, $28)

Link – SuperDuper!

This is a popular backup utility. If you’re serious about doing development work, you know there is a lot of effort put into maintaining your valuable code and prior versions of it. You can use SuperDuper to create bootable clones of a drive, too. Hot stuff.

You can use SuperDuper! for free (forever), but the advanced features are available for a $28 fee.

Honorable Mention: Fluid (Free)

I mention this little app because I’ve found it extremely handy over the past couple days. If you compile a site into its own app, you can take advantage of the built-in Apple-tab shortcut to get to it. Another really helpful thing about working within the application-switching workflow is that you can assign the application(s) its own icon. That’s REALLY helpful when you’re working with a dev and a production version of a site… honestly, those simple little things can prevent disaster.

But the real reason I was compelled to mention Fluid is its inspector. It breaks a page down into the html tags, images, and style sheets ridiculously well. In my opinion, the layout of this program is sickly good… IMHO it’s better than the revered debugging plugin Firebug for Firefox. Wow. Yes, really. I’ve never had an easier time tracking down problematic HTML or a goofed up CSS declaration. However, the Fluid-compiled web site seems to have some weird behavior with its caching… you know the drill: make your edits, clear the cache, refresh the page. But sometimes the Fluid version doesn’t refresh correctly. I don’t know if this is something I can configure or if its an artifact of compilation, but I really hope it’s the former. The DOM inspector is just too slick to overlook. For more information, check out Brian’s post about Fluid.


I hope you’ve benefited from my sharing of this short list. I don’t recommend that you rush out to get all of these programs: some of them may be more relevant than others. If you think one looks interesting or practical, give it a try and see if you like it. Feel free to post your own suggestions about helpful OS X applications for software and web development.

Feature image credit: Guillermo Esteves
]]> 3
I Hate ID3 tags (Part 2) Tue, 16 Dec 2008 21:25:52 +0000 Continue reading I Hate ID3 tags (Part 2) ]]> I think I finally found a good solution to my dilemma.  The best part is, it’s open source and available for windows, linux, and mac.


I had tried it in its early beta, and decided to try it again.  It can easily do everything iTunes does (except for all the stuff you don’t want iTunes to do).  Any feature it’s missing is typically available as a plugin.  It has some flaws, but they are already set for later releases (such as CD burning, but heck why not just use infra recorder for everything).  Just take a look at the features and “coming soon” section of the page.

Here is the important part:

The Single Most Amazing Plugin Ever. You can set multiple folders for it display in the folder tree, and it is simple to add content to.

When combined with Songbird, it solves all the problems the ID3-tag-hater has.  I also managed to install and uninstall enough plugins that it feels like it was made just for me.

Oh, did I mention it has a web browser built in and is fully skinnable?  I might do a full review in the future, but for now, I’m going to go listen to well organized music that I didn’t have to import into a sloppy music library.

]]> 2
An Overview of Free Online Invoice Software Sat, 13 Dec 2008 14:17:13 +0000 Continue reading An Overview of Free Online Invoice Software ]]> I got tired of tracking invoices for clients using an Excel spreadsheet. I knew there must be some good solutions for on-line invoices, so here’s what I found. All of these had a paid counterpart, and some of the free versions were too limited for all but experimental use. E.g. when they say there’s a limit of managing only 2 clients, that means you have to delete one and create a new client (entering name and address) each time you have to send an invoice to someone new.

Billing Manager lets you easily create invoices
Billing Manager lets you easily create invoices

Billing Manager

Link –

This is the only service I found that offered unlimited invoices and unlimited clients for free. They are iPhone compatible, which means their site is iPhone friendly (it’s relatively fast), but they don’t have a standalone app yet. I had some serious problems importing my OS X Address Book contacts (see below), and their documentation didn’t help, but they responded promptly to my emails. In order to use Credit Cards and Electronic Checks, you have to set up an account with QuickBooks merchant service, which will run $15/month. One other irk with this software is that it requires you to disable your pop-up blocker for the preview functions to work.


Link –

The free version gives you one login and lets you manage only 3 clients. They have auto-bill gateways so you can charge credit cards using Paypal (yes, even using a basic Paypal account). This looks to be a nice and professional service… they even sent me a nice snail-mail sample invoice welcoming me to my trial account.

Lite Accounting

Link –

With the free account, you cannot use a custom logo on invoices, and you are limited to 5 invoices per month. They boast the “most affordable” solution, and yes, their full membership is almost as cheap as some of the others’ entry level membership.


Link –

They actually have an iPhone app and an OS X Dashboard widget. The free service limits you to 2 invoices per month and 2 clients per month.

Greener Billing

Link –

Their free (dirt cheap) plan offers you 3 invoices per month. Unlimited clients and unlimited staff access is nice… but you can’t send unbranded emails to clients (in other words, when you send an email invoice, it’ll somehow reference Greener Billing… which isn’t necessarily a bad thing).

In summary, I thought that Billing Manager was the best deal out there for those users who need a basic service (and who aren’t simply evaluating). Billing Manager was the only one that offered unlimited invoices and unlimited clients.

Outlook Address Book CSV Fields

As I mentioned, I had trouble working with Billing Manager’s address book importer. It worked fine for my Outlook address book, but it did not work well with with my OS X Address Book. This is probably because I’ve got it synced with my 10 year old Yahoo! address book (yikes!), and there are some real messy fields in there. So here are the steps you can use to get your address book into Billing Manager’s format:

  1. 1. Unfortunately, OS X’s Address Book Application does not allow for you to export your addresses into a CSV format. There is an Address Book to CSV Exporter linked on the Apple web site, but it won’t work for this task. You need a program that enables you to export a header row. Download the Address Book Exporter by David Martin & It allows for far greater flexibility. Download it.
  2. Once inside the Address Book Exporter, click on the “Configure Settings”. Check the “Write column titles as first line” — this is your header row.
  3. Check most of the fields (see image). Outlook doesn’t seem to have columns for any Instant Message addresses, so I left those out of my export.
  4. Open the resulting file in Excel (I know I know… groan… I don’t know another way to do this). Open another blank workbook and paste Outlook’s Header Row values (below) into the first row. Two tips here: first remove the commas. Also have a look at Excel’s “Paste Special…” feature. There’s a checkbox in there to “transpose” the paste. This will paste rows into columns or columns into rows.
  5. Copy the columns from your OS X Address Book Export into the matching columns in the Outlook-friendly workbook.
  6. Save the workbook as a CSV file.
OS X Address Book Exporter
OS X Address Book Exporter

Outlook’s Header Row

For the record, when you export your Outlook contacts, these are the fields that show up in your header row:

Title, First Name,Middle Name, Last Name,Suffix,
Company,Department, Job Title,Business Street,Business Street 2,
Business Street 3, Business City, Business State, Business Postal Code,
Business Country, Home Street, Home Street 2, Home Street 3,
Home City, Home State, Home Postal Code, Home Country,
Other Street, Other Street 2, Other Street 3, Other City,
Other State, Other Postal Code, Other Country, Assistant's Phone,
Business Fax, Business Phone, Business Phone 2, Callback,
Car Phone, Company Main Phone, Home Fax, Home Phone,
Home Phone 2, ISDN, Mobile Phone, Other Fax, Other Phone,
Pager, Primary Phone, Radio Phone, TTY/TDD Phone,
Telex, Account, Anniversary, Assistant's Name,
Billing Information, Birthday, Business Address PO Box, Categories,
Children, Directory Server, E-mail Address, E-mail Type,
E-mail Display Name, E-mail 2 Address, E-mail 2 Type, E-mail 2 Display Name,
E-mail 3 Address, E-mail 3 Type, E-mail 3 Display Name, Gender,
Government ID Number, Hobby, Home Address PO Box, Initials,
Internet Free Busy, Keywords, Language, Location,
Manager's Name, Mileage, Notes, Office Location, Organizational ID Number,
Other Address PO Box, Priority, Private, Profession,
Referred By, Sensitivity, Spouse, User 1,
User 2, User 3, User 4, Web Page

Did I miss any free invoicing products? Let me know in the comments.

]]> 7
Introduction to Bash Scripting Tue, 09 Dec 2008 17:58:51 +0000 Continue reading Introduction to Bash Scripting ]]> Here’s a great tutorial for bash scripting:

Linux and OS X: Harness the Power of Bash
Linux and OS X: Harness the Power of Bash

If you’re doing any work with Linux or OS X computers, knowing even a little bit of bash can save you a whole lot of work. You can write automated backup scripts, you can scan for faulty permissions… the list is endless. You’ll end up building a toolbox of common scripts that you will use in multiple places.

Only one thing wasn’t given much attention on that page, so I thought I’d point it out:

for next Loop

Usually, your programming syntax is cleaner if you avoid the for next construct and stick to the for each construct instead, however, with bash scripting you often need to work with that crazy little numerical iterator for changing things like file names (e.g. backup1, backup2, …). So you should get familiar with the seq command. It creates an array, going either forwards or backwards, and then bash’s for next loop iterates over that array.

Here’s the seq syntax:


And here’s how you might iterate backwards over an array:

for I in $LIST; do
echo "I is $I";

Now get over to and start learning.

]]> 3
µTorrent Mac Beta Finally Released Thu, 27 Nov 2008 05:53:42 +0000 Continue reading µTorrent Mac Beta Finally Released ]]> I just received this e-mail from the μTorrent Mac Team:


You asked us to tell you about µTorrent Mac developments.

The beta is out. It’s Leopard and Intel only right now, but we’re working
to expand support soon.

Get it here:

Remember it’s beta software, so there may be bugs and annoyances. Please
help us make it better by contributing to the conversation in the forums

– The µTorrent Mac Team

This is great news. µTorrent is an excellent torrent client on Windows, and I’m excited to give it a try on Mac OS X. Yes, it’s still a beta, but I look forward to seeing how it compares to my reigning favorite client – Transmission.

0.9.0 is the current version.

Here’s the main screen:

And some Bandwidth preferences:

So far, I’d say it looks and acts a lot like the Windows version, just a lot more slick, glassy, and Mac-like.

Your thoughts? Will you be switching your Mac torrent client?

Keep Your Address Book in Sync with Dropbox (Mac OS X) Tue, 25 Nov 2008 05:47:38 +0000 Continue reading Keep Your Address Book in Sync with Dropbox (Mac OS X) ]]>

Disclaimer: some users have reported that this method does not work properly. Rest assured that it works, but I only recommend it for people comfortable with the Terminal. There’s a lot of room for error.

Please back up your Address Book before attempting this method. I am not responsible for lost data. Please see the comments below for further commentary.

Here is a little tip for you Mac users out there. We have written about the awesome, cross-platform Dropbox service before (here and here), and while it’s great for keeping ordinary files and folders in sync across the Internet, there are a few more clever uses for it.

With a tiny bit of command-line magic, you can easily keep your Mac OS X Address Book backed up online and synced to other Macs. Here’s how:

Preliminary Steps

First of all, download and install Dropbox on any OS X machines that you wish to sync. Finished? Excellent!

Next, go ahead and make a backup of your Address Book (optional, but strongly recommended). Just go to File → Export → Address Book Archive….

Keep that export handy in case things go wrong.

Link Address Book to Dropbox

Here’s the fun part. To make this process work, Address Book needs to be able to save data to your Dropbox folder. At present, Dropbox can only sync ONE folder (and everything in it). So, you see the problem? Address Book keeps all its data inside ~/Library/Application Support/AddressBook, and we need to trick Address Book into saving to your Dropbox folder.

Symbolic Links to the rescue! We can easily fool Address Book by creating a symlink.

Step 1 – First, we’re going to move the Address Book data files to your Dropbox folder. Make sure Address Book is closed. Launch Terminal (in your Utilities folder), and assuming your Dropbox folder is inside your Home directory, issue this command:

mv ~/Library/Application\ Support/AddressBook ~/Dropbox/

Step 2 – Now, create the symbolic link. The format is ln -s [destination] [name of file or folder]. The syntax does not change as to whether the link is to a file or a folder. Still in Terminal, type:

ln -s ~/Dropbox/AddressBook/ ~/Library/Application\ Support/AddressBook

That’s it. You’re done. Try launching Address Book and make sure your contacts are still there. Now when you add a new contact and it, you should see Dropbox update as well. Notice the tiny, green Dropbox check marks on my AddressBook linked folder:

Adding Other Macs

To add another OS X machine to the mix, just repeat these steps (except for the first mv command). In short, just install Dropbox, make sure Address Book is closed, and then:

  1. Delete the AddressBook folder from ~/Library/Application Support
  2. Create the symlink (ln -s ~/Dropbox/AddressBook/ ~/Library/Application\ Support/AddressBook)

There you go. Address Book will stay syncronized and backed up online.

]]> 56