MacPorts is an easy way to install and manage Scala on the Mac. Once MacPorts is installed, you can install Scala using:
sudo port install scala
Sudo will ask for your password. Wait. Done.
Once installed, you may want to know where it was installed. For example, you may need to set the SCALA_HOME environment variable. Just do
port location scala
To update your Scala installation, just do
sudo port upgrade scala
Note that after I upgraded, the location command tracks the old one, even though the new one is active:
$ port location scala
The following versions of scala are currently installed:
scala 2.7.3_0
scala 2.7.4_0 (active)
Error: port location failed: Registry error: Please specify the full version as recorded in the port registry.
So just use ‘@’ to specify the version:
$ port location scala @2.7.4_0
Port scala 2.7.4_0 is installed as an image in:
/opt/local/var/macports/software/scala/2.7.4_0
Tags: MacPorts
Keeping your software up to date can be a pain. On the Mac, most software includes a menu item to “Check for Updates…” and a preference to check automatically. The problem with this approach is that your effort to get something done is interrupted by “New version available. Would you like to install?” The problem is exacerbated with software you run infrequently: just when you need it, there’s an update ready to distract you. A better dialog would read, “New Version Available. After we install it, I’ll remind you what you were trying to do originally. Promise.”
You could click “Do it later,” but that just kicks the problem down the road. Worse, it violates the DIO principle which says that you should strive to encounter new information only once: Do It Once. Handle it, delete it, change it into something else for later, or break into smaller tasks, but whatever you do, Do It Once. The DIO approach prevents the buildup of a half-done, to-do-later, on-the-list, undone, no-progress landfill that’s too big to attack and too disorganized to improve.
With respect to software maintenance, what if you could scan and update all of your installed software automatically? Well you can’t so forget it.
What you can do is use AppFresh smartly. It’s an application that tries to automate the software update process. What it does do is bring the task of updating many programs together in one interface. You can decide to deal with upgrades when you want, then be done with them. DIO.
What makes the automation of updating hard is that every software maker is free to use their own versioning notation and semantics. And while software installation on the Mac is considerably simpler than on Windows, there is no standardized way that also provides hooks for Automation Managers. So AppFresh’s challenge is to detect and facilitate software updating. Viewed this way, it’s a terrific program.
So the way to use it is to open it to the “Update Available” panel. Right click on the columns in the main view and make sure “Installed Version” and “Latest Version” are showing. Then:
1. See what version you have for any item in the “Installed” column. Click an item, then click the “Release” tab on the right sidebar to see the release notes for the latest update. Decide to update or not. If not, right click on the item and choose “Skip Update”. You can wait for the next one.
2. We’re going to update a program. Was the program easy to install? These are the ones you just unzipped or double-clicked the .dmg file, then dragged to the application folder. If so, click the down-arrow “Update” button. Watch the progress. If it doesn’t disappear from the update list, then click on the “Updating” item on the left sidebar and find the program. If there’s an error, try again. If it says, “Installer run needed”, then go find the installer package for the new version in your downloads folder and double click it.
3. If it’s a big-installation package like Microsoft Office, or you know it has its own updater like Adobe Updater, then update it outside of AppFresh. For example, Microsoft AutoUpdate is buried somewhere; I find it by typing ‘auto’ into Quicksilver or Google Quick Search Box.
4. If AppFresh continues to list a program under “Update Available” when you’ve already updated it, then right click on the item and choose “Skip Update”. Or you may see that the “Installed” column still shows the old version, even though you’ve updated it. This means that the software lists only its main version, even though we, and AppFresh, know there’s a newer version with a subversion number. It’s ok. Just choose “Skip Update”.
5. If there’s a program you don’t use often or don’t want to mess with (say a system program), then right click on it an choose “Exclude”. To see what you’ve exclude, and maybe unexclude a program you want to check on or update, look in the “Exclude” panel in the preferences. You’ll still be reminded about updates when you run the program later, assuming you have its “Check for Updates” enabled. So you won’t miss any updates.
It may look like a lot, but its easy to race through the list once you’ve done it a few times. Then your machine is updated, you won’t be interrupted while you’re working, and you’ve dealt with software maintenance simply and Done It Once.
Heh. This is cool. With ShowerAlert, you can check the temperature of your shower without scalding your hand! Even better, it beeps when the water is close to your desired temperature. So you don’t have to make repeated trips to try to scald yourself.
You would think that shower temperature control and data monitoring would be built into your house wiring by now. But perhaps there’s a reason why it isn’t… Let’s call it the Principle of Commoditized Innovation: the most ubiquitous technology will be the least valuable technology upon which other technology can be valued. For example, we won’t soon have auto-driving cars because we make the roads smart. That would be too expensive. Instead, we’ll see car technology advancing rapidly while roads improve very slowly. The roads are the ubiquitous enabler, but because so much other infrastructure builds on it, it can only have the least innovative, most commoditized technology.
In the house case, we can expect to see ubiquitous house smart wiring when there are high value, compelling, and controlled technologies that necessitate its broad adoption.
Tags: ShowerAlert
If you want to be a Mac Whiz, you need the power tools that make your fingers work like ten mice. There has really only been one to consider: QuickSilver. It has the property of great software that it’s easy to get into, and gradually rewards experience and exploration with more power. Fortunately, there are several guides out there, including the AppleBlog’s QuickSilver Guide.
It turns out that the developer of QuickSilver has joined Google and yesterday released a sequel called the Google Quick Search Box. Reviews say that it’s not quite powerful enough to replace QuickSilver yet. But some may prefer its simplicity and appealing interface. It can integrate with Spotlight, if activated via a preference panel.
What makes these tools so powerful is their predictive typing and noun/verb metaphor. With just a few keystrokes, you can select an album, then start it playing. Or you can pick a contact, then open a new email already addressed. The possibilities grow as you get better at it…

There’s a fantastic iPhone debugging tool in development called Clang Checker. It does deep code analysis and can find memory leaks and other problems by following potential code paths. To use it, just download the package and uncompress it. The CD to your Xcode project directory and run it like:
xcodebuild clean; ~/development/checker-0.210/scan-build -k -V -warn-objc-missing-dealloc xcodebuild -sdk iphonesimulator2.2
If you have errors, a nicely formatted webpage opens to shows them.
Other notes:
- Run scan-build –help to see the other tests you can add in.
- Make the argument to -sdk match one of your SDKs, which you can list via:
xcodebuild -showsdks