Dedicated to my late brave, beautiful and silly mummy, Debra Ross. I love you mumster.

Skip navigation

Category archive for mac os x

Because archives are so much easier than having just hundreds of posts on the home page. I learned that the hard way.

Free and open source Mac software goodies

One of the most common questions I’m asked by people moving over to the Mac (or FreeBSD as the case may be) is what software I use. Truthfully I’ve been mulling over creating a series of blog posts that I can update with new software as I find it for a while now. For want of a better phrase, my recent wipe and reinstall of Mac OS X Leopard on my MacBook Pro and subsequent reinstalling of software gave me the kick in the arse I needed to get this series of posts rolling!

This first post lists all the graphical free and open source software I use and love on my Macs. Over time I’ve been slowly replacing proprietary software with these gems and, while I admit I still need to use commercial software at times, this software is what I use to get virtually all my work done. Not only that, but they’re free as in beer and speech!

Part two (coming soon) consists of free and open source command line Terminal applications you can automatically install from MacPorts that I swear by and love using.

NOTE: This list is not exhaustive, it’s merely a list of free and open source software that I personally use and am endorsing! If you feel I’m missing something important though, feel free to post a comment.

I also understand there’s some overlap in functionality, i.e. Perian and VLC. This is because I’ve always believed in using the right tool for the job, not just using a particular tool because you happen be using it already.

Free and open source software for Mac
Icon Application Use
Camino Fast, lean Mac native Mozilla web browser
possible replacement for Safari, Firefox
UnifyCamino Makes Camino look more Leopard-ish
possible replacement for Tiger-ish Camino
MacVim Advanced Mac native Gvim text editor
possible replacement for TextEdit, Gvim
TrueCrypt Highly secure disk image encryption, supports AES, Twofish, Serpent
possible replacement for Disk Utility encryption
The GIMP Sophisticated photo and image editing
possible replacement for Preview, Photoshop
Inkscape SVG vector graphics editor
possible replacement for Illustrator… almost!
Juice Receiver More sophisticated and more flexible podcast client
possible replacement for iTunes for podcast downloads
Perian Super duper codec pack for QuickTime
possible replacement for dedicated DivX player
VLC I dub it my anime player ^_^
possible replacement for some QuickTime video
Handbrake Slick tool to rip DVDs
possible replacement for… coasters
MacPorts Easy way to install *nix software
possible replacement for… manually compiling!
Xquartz More current X11 for GIMP etc
possible replacement for default bundled X11

My kingdom for a bigger notebook hard drive

An ominous sign of things to come?
An ominous sign of things to come?

It’s crunch time: alas after months of neglect and with so many assignments and projects active and being worked on at any one time, my internal 149 gibibyte (aka 160 gigabyte) hard drive has finally been maxed out. Bummer!

Having used Windows, Linux, FreeBSD, NetBSD and Mac OS X on computers with drives that are nearing breaking point, I do appreciate how incredibly stable the BSDs and Mac are under capacity stress. By comparison the general wisdom with Windows (at least when I still exclusively used it before 2003) was that you must reserve at least 10% of your drive at all time to maintain stability, NTFS included. By comparison, this MacBook Pro has been close full for a while now and still only EyeTV and the slow as molasses Microsoft Office 2008 for Mac applications are capable of crashing it.

As I’ve discovered the hard way though, notebook computers present their own set of storage challenges! For most of my life I’ve been a desktop computer user; it was only in 2006 when I made the decision as a computer science student studying overseas that a souped up notebook computer would make more sense for taking around to different houses and around campus than a new desktop.

Of course the problem with said notebook computers is that you can’t just easily slide in an extra hard drive when your existing one starts to fill up! Sure you can buy external drives, but they still won’t match the performance of the internal drive. What happens then is I tend to backup material to the external drives, but projects I’m compiling, editing video for or otherwise working on end up staying on the internal drive.

VMware Fusion 2.0 beta 2 New Virtual Machine Assistant
What can I say, I love toying around and exploring operating systems!

This is also a problem for virtual machines which I spend lots of time using and writing about. To satisfy my own addiction and fanaticism for studying operating systems, as well as for my work which involves compiling and testing applications, I have multiple VMs on this internal drive. Running these virtual machines on an external drive is completely out of the question given the performance would really, really suffer. Having 12 virtual machines which combined take up 72GiB on a 149GiB notebook drive though is also completely out of the question!

With my desktops in the past I tended to dedicate a smaller drive with the fastest RPM for the operating system and two larger, equally sized drives mirroring each other (later using RAID instead of software) for the data. On my current desktop back in Singapore which I SSH and SFTP into from here in Adelaide I have FreeBSD 7.0 AMD64 on its own dedicated, 10,000RPM SATAII drive with 32MiB of cache shared with binaries, and two 7,200 RPM drives for the home directories, port collections, documentation and served data. Ideally I’d love to have another super fast drive just for /swap too!

On this laptop I’ve got everything under the sun on one drive. Perhaps partitioning the drive and assigning the /Users directory to a secondary partition might help to compartmentalise the information and improve performance. On BSD and Linux it’s trivial to assign the /home directory to a separate volume, on Mac OS X I’m not so sure. Seems like I have some homework ahead of me!

This much taken up, on a 149GiB internal notebook drive. Bummer!
This much taken up… on a 149GiB internal notebook drive.

Of course it probably wouldn’t hurt cleaning this drive out either. I have a few Ruby scripts which I run each afternoon which cleans up my desktop and puts files in the appropriate places, but it can’t determine what is safe to delete and what isn’t. I need an electronic secretary I think. Make someone sign a NDA, then go through my drive and get rid of things. No, wait… perhaps that isn’t such a good idea.

As my fabulous father always says after ringing me from his office in Singapore which has more paper, books, phone receivers, emails and blood pressure tablets than Parliament House: "All I need is a time machine Ruben… then I’d work just fine"

Fun with the Mac OS X weather widget

While rearranging my Dashboard widgets on my MacBook Pro this morning, I accidently stumbled upon a feature in the Weather widget which upon later investigation has already been well documented. At least I felt like an electronic archaeologist for a few minutes!

Regular Dashboard widget showing weather in Mawson Lakes, South Australia
Regular Dashboard widget showing weather in Mawson Lakes, South Australia

If you haven’t tried this out already though, give it a shot:

  1. Fire up your Dashboard, usually with the F12 key
  2. Drag a new Weather widget from the widget bar onto the Dashboard
  3. Hold down the Command/Apple and Alt/Option keys

You now have a widget with the weather set to "Nowhere", and by clicking the picture in the top centre you can change the weather conditions. It was cold and raining before in Rubenerd Nowhere, now it’s snowing!

Altered Dashboard widget showing rain in Nowhere

Altered Dashboard widget showing snow in Nowhere

My OS pipe dream, and HP developing a Linux distro?

According to a CNET News report, HP is rumoured to be creating an alternative operating system to Windows, based probably on Linux. From the report:

Is the biggest PC vendor in the world looking to give customers an option besides Windows?

An article appearing in BusinessWeek this week cites anonymous sources who say Hewlett-Packard is at least looking into it. “Sources say employees in HP’s PC division are exploring the possibility of building a mass-market operating system,” the article states.

The operating system would reportedly be Linux-based, but would be tweaked to be more accessible to mainstream users.

If this rumour is true, I think it’s a fantastic move on HP’s part. Apple has shown with Mac OS X that a superior user experience can be achieved outside the realm of Windows by leveraging the power of a free and open source operating system under an aesthetic user interface, on hardware created specifically for the OS and vica versa!

What I’ve always said I’d love to see; and this development might be a step in the right direction; is a break from the monoculture of Windows replaced by a mixture of operating systems that can communicate through open standards. This is perhaps a weakness with efforts like Ubuntu, Debain and other GNU/Linux distributions; they are emulating the Windows model with all the problems associated with all the trillions of different combinations of hardware that they could potentially run on. For people like me who revel in tinkering with computers this isn’t a problem, but for people who actually have work to do on their machines and don’t have a degree in computer science it’s just a pain in the arse.

I’m imagining a time in the not too distant future when:

  • there are an interesting assortment of operating systems such as Mac OS X on Apple computers, HP Linux on HP computers, Dell Haiku on Dells, ASUS Minix on EEEs…
  • despite their different architectures they can all exchange documents with each other and read them without trouble
  • they can all run software written for others with little or no modification through compatibility layers and standardised APIs that everyone respects
  • instead of terms being dictated by one software vendor in Redmond, computer hardware companies modify the software for their customers needs
  • computers become nice to use again
  • vanilla versions of operating systems such as Debian GNU/Linux and FreeBSD continue to exist separately (as well as being the foundations of the custom OSs above) for power users and computer enthusiasts, just as sports cars exist for motoring enthusiasts!

I know it’s a pipe dream that will almost certainly never happen. A nerd can dream though right?

And as for the article specifically related to HP exploring other options besides Windows, any chance HP would create an OpenVMS laptop or consumer desktop? That would be a VERY compelling product! Pipe dream number 2!

VMware Fusion 2.0 Release Candidate 1 available

Screenshot of VMware Fusion 2.0 Release Candidate 1

For those who are also avid VMware Fusion users, you’ll be pleased to know the first Release Candidate for VMware Fusion 2.0 has been released (build number 113392).

For my own selfish needs, I only had three problems with the last beta which I’m hoping this RC has fixed:

Performace Issues with BSD hosts
Linux distributions performed just fine, but X.org in FreeBSD and Xfree86 in NetBSD on my MacBook Pro with 2GiB of RAM took far longer to load and performed worse than my 200MHz Pentium MMX box with 32 megs. This is not an exaggeration!
Folders that don’t disappear
In an attempt to backup my virtual drives as I like to do on a regular basis, I moved a folder from the virtual Windows 2000 machine to my Leopard desktop. Instead of copying over, the folder vanished from the guest, and didn’t appear on the host! One solid week of work down the toilet!
No stretched resolutions
VMware Fusion 1.x did not stretch the guest’s screen resolution when it was lower than the host’s. This meant in full screen there would generally be black bands on the sides, below and above the guest display… which was just fine for me! The Fusion 2.x betas flipped the default configuration so that it stretches the virtual screen which perhaps is useful for gamers but for reading text on an LCD it looks dreadful! As far as I can tell there’s no way to change this in the GUI, and adding lines to my preferences file turning off GuestToHost does nothing.

I might not have much time to look over these issues fully this evening or tomorrow, but I’ll certainly let you know what I find out when I can get back around to it. Stay tuned.

ASIDE: For what it’s worth, I’ve learned my lesson with virtual machine betas: they’re not worth it. Other "beta" products are actually quite usable, but not software like this. In the future I’ll be sticking with the latest stable release, in order to protect my sanity :-)

A revisited MacVim editor review

About a week ago I posted (amongst other ramblings) that I had successfully moved over to the Vim text editor for most of my day to day… editing. I mentioned how I loved the syntax highlighting and how much it improved the readability of code, and how I had got used to the two mode operation and most of what I would consider to be the basic and intermediate commands.

MacVim icon
MacVim in the /Applications folder

Unfortunately I also said that I had installed Vim from MacPorts on my MacBook Pro to use in the Terminal and that I failed to see what the point would be of installing the dedicated graphical MacVim application. I’ve since been proven wrong and have even started using MacVim as my primary editor for everything I do on this machine, and I love it!

ASIDE: Despite what you may think, I was not paid any money to create this post. Isn’t it a sad state of affairs these days when you have to go on record saying that you’re not being paid off? Sheez Lousie!

My incorrect assessment stemmed from my own misunderstanding of what MacVim was capable of; I assumed that it was just an Aqua version of GVim, or in English a Mac OS X native version of graphical Vim that didn’t need X11. While this is true, it does have features that put it far ahead of the simple Terminal based Vim I was advocating before.

Firstly, the syntax highlighting which what made me fall in love with Vim from the beginning is far richer in MacVim because it supports full 16bit colour, not 16 colours. Below is a comparison of a simple Ruby script I wrote shown in MacVim and Vim:

Vim (left) compared to MacVim (right)
Vim (left) compared to MacVim (right)

Now obviously I could go into my Terminal.app preferences to get the same background colour and font size, but the colours definitely look nicer in MacVim. I’m one of those fruitjobs who sees their code as poetry, and as with all art it looks far nicer when presented in a nice frame :-).

Another feature of MacVim given that it’s a native Mac OS X Aqua application is that along with the regular [esc]+[:]+command Vim commands, it also supports native Mac shortcuts. This means to open a file I can enter :o ~/Documents/MyFile.rb or just as easily enter [Command]+[O] and use a regular Mac OS X dialog box.

Then there are the little things that perhaps don’t improve usability in the traditional sense, but make the program nicer to use such as native, Safrai like tabs, the utilisation of the Mac menu bar and a native Mac toolbar you can collapse. It also throws errors using native Mac windows:

Mac-like error message
Mac-like error message

My final concern with using a graphical MacVim application instead of the command line Vim was that I spend most of my life in the Terminal and would hate to have to move to the Dock, click the application icon and navigate to the file I want when I might already be there in the Terminal. Fortunately in the MacVim archive you download there’s also a small mvim script you can put in any folder in your shell’s $path which will automagically launch the MacVim application whenever you enter mvim filename from the Terminal, just as with TextMate. I chose to put my mvim file in /usr/local/bin given I’m also a FreeBSD guy.

Having used MacVim for just over a week now, I can confidently say it has really made my life much easier. If you’re on the hunt for a text editor for Mac OS X and don’t like the idea of shelling out an arm and a leg for shareware that isn’t even as good anyway, give it a try! I love it so much I’m going to make a donation this afternoon: after all I would think paying for something you don’t need to pay for is much higher praise than being told you have to pay or it will cease to work, right?

MacVim is available from it’s Google Code project page.

Drive letters in Mac OS X

While sitting at the Boatdeck Cafe in Mawson Lakes, I was approached by a bloke who said he had just switched his Windows laptop for a MacBook, and he had a question about drive letters in Mac OS X. I’ve been asked this question many, many times before so I figure many switchers must be having this problem, so I’m posting about the issue here.

ASIDE: Isn’t it funny how Mac people are generally more willing to talk to other Mac people in cafes and whatnot compared to Windows users? I can’t imagine many Windows users saying "I noticed you’re using a Dell, could I ask you some quesions about how to use the taskbar?"

The other funny thing is, I don’t know why this is! Is it just because Macs are less common, or that if you see a Mac user you can be fairly confident they’re running the same software as you? Or is it some psychological Steve Jobs thing?

Mac OS X is the default operating system shipped with new Macs, and it has it’s heritage in Unix. Like other Unix-like OSs such as Linux, Mac OS X does not use drive letters to reference mounted drives: instead it uses essentially virtual directories for each drive located on the primary "root" directory. This would be equivalent to drive c: in DOS.

Windows 2000 Explorer showing drives, for comparison
Windows 2000 Explorer showing drives, for comparison

For example, on Windows if you wanted to reference the notepad.exe in the Windows folder on your primary hard disk, and another file on your optical drive, the addresses would typically look something like this:

C:\Windows\system32\notepad.exe
D:\Folder\Another\chuckpeddle.txt

On a modern Mac, your primary hard drive is typically the one where you have Mac OS X installed. Therefore, all drives you have mounted on your Mac will not only appear on your Desktop, but will be found within their own virtual folders in the hidden Volumes directory on the primary hard disk, which is ALWAYS referenced with a single forward-slash /.

Leopard Finder showing the hidden /Volumes directory
Leopard Finder showing the hidden /Volumes directory

Here are some examples. The first is the address of a file in our Applications folder on our primary hard drive, the second is a CD-ROM we’ve inserted, and the third is a USB key:

/Applications/TextEdit.app
/Volumes/Microsoft Office 2008/Installer.app
/Volumes/Ruben Memory Key/homework.txt

Notice how the virtual directories which are named after the volume essentially replace the drive letter used on Windows, DOS, CP/M etc. In the first example we didn’t need to reference the Volumes folder because it’s on our primary hard disk. Mac OS X also uses forward-slashes instead of back-slashes (just like a URL) just like other Unix-like systems.

The only caveat to this system is that Apple intentionally hides the /Volumes folder by default. To view it in the Finder, navigate to the Go menu and enter /Volumes.

Of course you can also fire up your /Applications/Utilities/Terminal.app and enter cd /Volumes, then ls to list the contents.

Automatically quitting Terminal.app windows

Quite often I find myself using a particular application for a long time, and only realising that something I’m doing can be done a lot simpler, or even automatically. A quick smack on the head with the palm of my hand and a few shots of espresso is generally called for, followed by implementing the previously unused feature.

In this case it’s a feature of the improved and vastly more usable new Terminal.app bundled with Mac OS X Leopard. In earlier versions of OS X I used mrxvt in X11 for most of my shell goodness; a less elegant alternative to iTerm but one which I found more reliable. Unlike previous Terminal.app versions, mrxvt had a tabbed interface, and exited automatically whenever the process you were working on finished cleanly. I knew Terminal.app in Leopard had the former feature but not the latter… despite it being right under my nose the whole time.


The Leopard Terminal indicating a process has been completed, with the window still open

To get the Leopard Terminal.app to automatically close its window when the process you’re working on finishes cleanly:

  1. Hit [Command]+[,] to bring up the Preferences screen
  2. Click Settings, then click the theme you want to change.
  3. Click Shell and choose Close if the shell exited cleanly from the When the shell exits: listbox.

Now whenever a process you’ve initiated finishes, or if you type exit in your shell, the window closes automatically. When you have tens of tabs open at once, this saves a LOT of time!


The Leopard Terminal Preferences window showing changed setting

RichardDawkins.net