Making DarwinPorts A Bit Better

by Christopher Roach

I have to start this post off with a quick apology for already breaking the blogging schedule that I had setup in my first posting. In it, I stated that I was going to try (notice the word "try"—rule No. 1: always leave yourself a way out) to maintain a weekly posting schedule. Well, here it is only my second blog posting and I am already falling behind schedule. I do have good reasons for this though. I haven't been slacking off these past two weeks, but rather I have been putting the finishing touches on a brand new article for O'Reilly's ONLamp website, which, by the way, I'm hoping you all will come and checkout as soon as it goes live. (Shameless plug alert!!!) The article is the first in what I hope will be a very entertaining and informative series on artificial intelligence programming with the Python programming language. In the first article in this series, I go over decision trees, a topic of machine learning in which the program learns—through a set of example data—how to classify records in a dataset. So, as soon as the article goes live, I'll blog it here and give you all a chance to run on over to the ONLamp site and read up on decision trees.

So that's what I've been working on for the past couple of weeks, but what about today? Well, in order to make it up to each of you for my most egregious disregard for schedule keeping, I thought I might try to make several posts today. First, there is this sad attempt at attrition in which I'll also cover quickly a new tool that all you OS X / Unix lovers can use to make your DarwinPorts experience a little nicer. Following this, I have two posts that I have been working on for the past couple of days, that I plan on sharing with you all today. The first of these will go over a tool that I recently found while working on the aforementioned decision trees article. It's called graphviz and it makes creating diagrams as easy as scripting. The second article is going to go over one of my favorite features of the Python programming language—its documentation. We'll cover pydoc and docstrings and all of that fun stuff. It'll be great, so make sure that you tune back in in the next few hours for each of these postings, or better yet, why not just subscribe to my RSS feed.

Now that I've gotten all of the apologies and previews out of the way, why don't I go ahead and get to the point of this post. In my last post I quickly pointed out two very important applications that you'll no doubt be using from time to time if you make a habit of following my blog closely, namely, the Fink and DarwinPorts projects. (By the way, if you missed my last post, and you're interested in using either of these tools, make sure you check it out. It has links to two great MacDevCenter articles that will get you started in both of these programs.)

If you took the advice in my previous post and installed both of these programs, then one thing you'll notice is the lack of a GUI for the DarwinPorts program. Fink comes with its own GUI, FinkCommander, however, DarwinPorts (at least to the best of my knowledge) comes with nothing more than a command line interface. Now, while I'm not dissing the beauty and efficacy of a CLI interface (far from it, I'm writing this post in Emacs from the Terminal application as we speak), I do realize that not everyone has the same appreciation for it that I do. So, I did a bit of digging around the ol' interweb and came across a nicely designed Tcl/Tk based GUI entitled PortAuthority for the DarwinPorts application.

Installation of PortAuthority couldn't be easier (well, I guess if somebody else installed it for you, or if supermodels were installing it...ok, tangent, let's get back to PortAuthority, shall we?), just go to the PortAuthority website and click on the download link on the right side of the page. This will transport you to the project's page on sourceforge. From there just download the zip'ed file and unzip it onto your computer. Inside the zip'ed file is a single binary that you can drag-and-drop into your Applications folder, and that's it, you're all done. Double click the application and get started with some downloads. If you're using OS X 10.4 (Tiger) then this application should "just work", since this edition of OS X comes with a fairly significant subset of Tcl/Tk for Aqua. If you happen to be on an earlier version however, you can download Tcl/Tk for Aqua here. Its a fairly easy install as well, since binary distributions of each with a familiar installer package can be found for, I believe, all of the former OS X renditions.

Ok, so I hope I've redeemed myself in each of your eyes. I have apologized and I've even come bearing gifts (well, just one gift really, but "I come bearing gift" doesn't have the same ring to it). I hope you'll all download the PortAuthority program and give it a try. Its quite nice, and best of all its Open Source. So, not only is it free to use, but you can also take a look at the code if you're interested in learning any Tcl/Tk scripting, which is not a bad idea since this is an extremely portable, easy to use, and ubiquitous scripting/gui combination. So, enjoy the application, and I hope you'll all come back in a few hours for my next posting on Graphviz.

See you then!!


2005-12-15 14:58:46
Thanks for the kind review...
I'm the developer of Port Authority. Thanks for the good words.

The binaries at SF support Tiger only, as that's my development platform, but it is pretty easy to build from source as well using the Tk Aqua installers: I provide instructions at the website on how to do this.