I’ve been administering production UNIX systems since 1998. I’ve been running Linux-and-only-Linux on my desktops and laptops for almost that same period of time. In 2003, after seeing an influx of Macs into our department, my boss asked if I’d keep a Mac around just so we could replicate any issues that were reported by our userbase to help them out. I found it perfectly usable, though at the time it was real work for me to get it to be usable for all of the things I’d need it to do at work, and I never was comfortable with it. Recently, however, I had the opportunity to get a new laptop through work, and I decided to give the new MacBook Pro a shot.
I really committed to making it my primary workhorse, shunning my nice dual-lcd-monitor linux box and a perfectly usable Gateway laptop (”the monster” - 17″ screen and a full numeric keypad!!). It has been about one month since the MacBook Pro showed up, and I haven’t had to use any other machine for about 2 weeks. It took a little bit of googling to find everything I needed, and there’s still one or two pieces of the pie missing, but overall, I think I can definitely call this machine “admin ready”.
So let’s have a look at what I’ve done to my MacBook to make it worthy, and maybe some friendly readers can help me fill in some as yet missing pieces!
After using OS X for about one week, the first really big realization I came to was that it was far too easy (for me) to be distracted in this environment. Then I realized the reason: no virtual desktops! I use virtual desktops in Linux specifically to keep things I’m *not* working on out of my way. Without that ability in OS X, I was going to have to seriously change how I work. This would not do.
I found a couple of different virtual desktop managers, and decided on a whim to go with VirtueDesktops. This week, I unwittingly converted two other admins from other managers to VirtueDesktops. I guess I made the right choice, then, eh? It’s actually a nicer virtual desktop manager than I have under Linux. I now have 12 desktops set up, and I use about 8 of them. However, there are other tools involved in making all of these desktops useful, so I’ll move on to those. For now, just now that there’s a desktop pager, configurable keyboard shortcuts, and lots of other nice features of VirtueDesktops.
I’m an email junkie. I don’t like to let email sit around. It comes in, it either gets a reply or it doesn’t, and it’s largely dealt with the minute it arrives (or the minute I know it’s there). I use Mail.app because it works fine for my needs, except that I couldn’t get the alert notifications I wanted in the way that I wanted them. I found this really cool application called Mail.appetizer, a plugin to Mail.app, and I can tell it which of my folders and mail accounts to watch for me. When mail arrives, it pops up a window with a preview of the message (or the whole message, if space allows). This window also has buttons on it to let you go see the message in Mail.app, mark the message as “read”, delete the message, or dismiss the window. If you do nothing, the window disappears after a few seconds on its own. This is beyond perfect. I find now that I don’t need to go to my “Mail” desktop nearly as often as I used to. Click the link to see a screenshot - nice!
I’m also a music junkie, and I’m always listening at work. But I really wanted something in the toolbar to control it so I didn’t have to go back to the desktop it lives in every time I wanted to skip a song or pause iTunes. For this, I use YouControl: iTunes. This thing is pretty slick. It sits in the toolbar at the top of your screen, giving you immediate access to the play, skip forward and backward, a menu button for current title info, and it even puts your rating stars in the toolbar so you can click as you listen without heading over to iTunes-land to do it. I now use the ratings feature a lot more often, and I almost never look at iTunes at all. Another nice feature is an overlay window that announces the song being played, along with album info and some other information if you desire. You can turn that feature off, or a mouse click will dismiss the window if it’s really in the way.
So now that my time spent dealing with email and iTunes has been cut to about 1/8 the original time, what do I do with all of this time? And I still have desktops to fill!?
Well, for one thing, I installed Parallels Desktop for the Mac. It’s the first application I’ve mentioned so far that costs money (currently, $80). This is very, very, very similar to VMware workstation under Windows or Linux. The only feature I find that I miss from VMware is the ability to checkpoint a VM. So, for example, if I’m testing a service, I can first set up a clean install of my distro of choice, checkpoint it and label it “clean-os-install”, then set up the service software I’m testing, and before doing anything else, checkpoint again and label it “clean-service-install”. From there I can go about my testing. If things blow up, I can go back to “clean-service-install” in far less time and with less effort than doing it manually. Parallels, to my knowledge, doesn’t have this feature, but does allow you to “clone” VMs to try to get the same benefit. It’s not the same, but it’s passable. I currently have three virtual machines installed, all networked with eachother, and I can ssh from a normal OS X Terminal session through the Parallels virtual interface. I’ve also set my Mac’s “Sharing” configuration to allow things connected to the virtual interface to reach the internet through my wireless card. If you want to see a setup where switching machines is as easy as switching desktops, check out the demo video for using VirtueDesktops with Parallels. Works like a charm!
So, yes, I can run Linux on OS X and get whatever I need from it - but I don’t want to use it as a crutch, switching over to a resource-intensive Linux VM just to run, say, ‘nmap’. So for things like nmap that don’t come with OS X but for which a VM is just overkill, I use Fink. Fink provides Mac-friendly versions of thousands of open source packages commonly found under Linux. It also has a decent interface - FinkCommander - to aid in searching for and installing new packages.
With these tools installed and configured, what can’t I do?
Well, I haven’t tried yet, but I’m not sure my old method of connecting directly to the serial port of a server using a USB-to-serial adapter will work. I haven’t looked for a minicom or hypterterm package for the Mac, either. A smaller thing I’d like to fix (it hasn’t made it to the top of the priority list yet) is I’d like the delete key on my keyboard to act like a backspace key.
The one that’s really irking me *now*, though, is that there doesn’t appear to be either a free, or a worth-paying-for database schema design tool for the Mac.
If anyone has info on how to solve those issues, or you just want to share your favorite sysadmin app for OS X, feel free to post and help me complete my transition!


http://www.mspo.com/Minicom2.1.zip is a pkg I made for minicom. I use it with a usb-serial adapter a lot. (I think it's also in fink, but I don't like to maintain fink/pkgsrc for the four programs I have to compile)
If you use MySQL, you can use the Toolbench they've started working on (http://dev.mysql.com/downloads/workbench/1.0.html). I haven't played with it enough to see how flexible you can make it (read: export to something Postgres or someone else can import).
I recommend adding Growl (http://www.growl.info/) to your list. Very handy not just for its usual app support, but you can do something like:
./configure && make; growlnotify -m 'Hey, I finished making X.'
And it will bring up a little notification no matter what desktop you've gone to once it reaches that point. A very simple example, but this one goes on my list of things to install on new machines right along side DesktopManager (http://desktopmanager.berlios.de/), my preference.
Minicom (which can be had from fink) works fine if you install the driver for your usb-serial setup. I use keyspans just fine. I have also had good luck with pyserial. Just expect the entry in /dev/ to be a bit whacky like tty.KeySerial1 or have a USA in it.
Please, check fKeys for a low-level (.kext) keyboard remapper, it supports the MacBook Pro.
http://www.kodachi.com/fKeys
Backspace that delete key!
iTerm, makes my world go Round and I switched from VI to TextMate.
WOW, I also recently switched and my Productivity Really Increased :)
Keyspan USB-serial adapters work great with the Mac. I use them to connect my PB G4 to cisco routers all the time if I need a console.
For us old Mac-heads, aside from using Minicom through fink, you can also use ZTerm: http://homepage.mac.com/dalverson/zterm/ - note that it's a PPC app, not universal/intel.
I used OS 10.2 for a while, but never found a decent terminal emulator that would do the right colorized syntax highlighting in ls and vim, stuff like that. Has this situation changed?
Well, I haven't tried yet, but I'm not sure my old method of connecting directly to the serial port of a server using a USB-to-serial adapter will work. I haven't looked for a minicom or hypterterm package for the Mac, either. A smaller thing I'd like to fix (it hasn't made it to the top of the priority list yet) is I'd like the delete key on my keyboard to act like a backspace key.
Get the USB-Serial adapter from Keyspan (http://www.keyspan.com/products/usb/usa19hs/homepage.spml), install the universal binary drivers, and you should be good-to-go. I also recommend this Bluetooth-to-Serial (RS-232) adapter OEM'ed from SMART Technologies (http://www.zbausa.com/bluetooth_serial_port_adapter.asp)
Once they are installed, minicom, su, seyon, or ZTerm (GUI) will work without a problem.
For database you could try DbVisualizer (www.minq.se) is a Java app so works with almost any database that has a JDBC adapter. The free version has most features, the paid version has spreadsheet like table editors etc.
I made the jump to OS X a few months ago, too, and haven't looked back. My only pet peeve has been the Backspace (or big delete) key when using vi under iTerm on a remote linux box. Well, today I finally figured it out -- and since I couldn't find a decent explanation anywhere, I thought I'd post it here.
To get the Backspace key to act like Delete in iTerm:
1) open iTerm -> Preferences
2) in the General tab click Profiles...
3) select the Keyboard tab and select the profile you use for remote connections -- I use the linux profile
4) if your keyboard profile has a 'delete' mapping already assigned, remove it by highlighting that line and clicking the '-' button next to 'Mapping' below the list box (the default linux profile has 'delete' mapped, but not all of them do)
5) click the '+' button next to 'Mapping', select 'delete' from the 'Key' drop down box, select 'send hex code' from the 'Action' drop down box, and type '8' in the text box below 'Action'
6) Voila! Your Mac OS X keyboard should now send Delete on Backspace (just to clarify, this will erase the character to the left of the cursor when you hit the Backspace/big delete key)
This has been driving me crazy, so I hope it helps someone else. iTerm is very configurable when it comes to key mappings -- maybe too much so, in this case. I would've preferred a simple "Backspace sends Delete" check box, like the standard Terminal app that ships with OS X.
Back again with one more comment... having fixed the Backspace problem, I noticed that the 'del' key also wasn't working correctly. The small 'del' key should erase the character to the right of the cursor. To accomplish this in iTerm, follow my previous steps -- this time selecting 'del' from the Key drop down box and sending hex code 7F.
My Mac keyboard finally acts like my old PC/linux keyboard did in remote sessions!