Why you should buy the MacHeist bundle

There has been a lot of controversy over MacHeist, accusing it of ‘cheapening’ or devaluing software. In reality it’s a good thing for developers by bringing in sales that they wouldn’t get otherwise.

Case in point: I have very little use for Kinemac or BoinxTV, so I never would have bought those products. I’m glad to be supporting those developers with a bonus sale. Even if you only use 2 or 3 of the applications, it’s still a good deal. Furthermore, 25% of every sale goes to charity. You can either allow it to be divided among 10 charities, or donate all of it to a single charity.

I bought the bundle primarily for Acorn, Little Snapper, and The Hit List (which still hasn’t been unlocked). Even with only those applications it’s a good deal.

Languages & Locales are different

If you’re writing a Mac or iPhone application that supports localization, you should be aware that the language & locale could be different. The preferred language can be changed in the International preference pane by changing the order of languages in the list.

International.jpg

However, when you change the language order, it doesn’t change the locale, which defines the date, time, and currency formats.

In your application, you can find the preferred language using this bit of code (note that I’m using functions that are available in 10.3 or later):

CFArrayRef locs = CFBundleCopyBundleLocalizations(CFBundleGetMainBundle());
CFArrayRef preferred = CFBundleCopyPreferredLocalizationsFromArray(locs);
CFStringRef lang = CFLocaleCreateCanonicalLocaleIdentifierFromString(NULL,CFArrayGetValueAtIndex(preferred, 0));

With French selected as the preferred language, as shown above, it will return ‘fr’ as expected. However, you’re working with a web service that takes a locale name instead of a language, so you do something like this to obtain the locale:

CFLocaleRef locale = CFLocaleCopyCurrent();
CFStringRef lstr = CFLocaleGetIdentifier(locale);

The locale you get is ‘en_US’, which may seem counter-intuitive. If you pass that to your web service, instead of French language text, it will appear in English.

iDrive Warning

When I noticed the free iDrive backup utility at MacUpdate, I decided to download and try it, which requires signing up for the iDrive service. Big mistake. When you sign up for iDrive, you’re prompted to invite friends from your gmail address book. When you do so, it doesn’t give you an option to choose who to invite. It spams *EVERY* address, including posting addresses for services like Tumblr.

Fewer buttons don't mean better UI design

Apple touts their new iPod Shuffle as the ultimate in simplicity, as it has no buttons. However, having too few buttons doesn’t make it simpler, when each button has multiple functions and Apple needs to post a knowledge base article telling how to use all of the functions.

controls.png

The new iPod Shuffle uses a controller built into the earphones to access all of its features. The controller only has 3 buttons, but the Shuffle has a lot more than 3 functions, so each button has to serve multiple purposes using various combinations of clicking, double-clicking, triple-clicking, and holding. Most people will need to carry around a reference card to remember some of the more obscure features.

The iPhone uses a single button on the earphones which serves to pause, resume with a single click, and skip with a double-click, with the volume control on the iPhone itself. That set of features was still manageable, but when a later software update added triple-click, it started the trend to unnecessary complexity.

Ideally, it shouldn’t be necessary to use any more than a double-click. Adding dedicated fast-forward & rewind buttons would make it much more usable.

controls2.png

For another opinion on the buttons, see Jordan Satok‘s post.

Expanding a Drobo

I use my Drobo for Time Machine backups, which very quickly eats up disk space. With 2 drives installed, the Drobo had a capacity of a little less than 1TB, which was about half full. Since it has 4 bays, that leaves plenty of room for expansion.

Last week, a few places were selling the WD Caviar 1TB SATA drive for $95, so I took advantage of that to upgrade my Drobo before I ran out of space. When the drive arrived today, all I had to do was slide it into an open bay and it was immediately recognized. I didn’t even have to shut down the Drobo to install the drive.

It now has 1.2 TB free out of 1.81 TB available space.

DSC_4293

WD 1TB SATA Drive
DSC_4294

Installing the drive

DSC_4297

Drive is ready
DSC_4299

Done!

New Airport Extreme looks good

In addition to the new Mac Minis & iMacs, Apple also introduced a new Airport Extreme Base Station & Time Machine today. The new base station adds two very appealing features: the ability to use 2.4GHz & 5GHz bands at the same time, and ability to set up a guest network for internet access only without being able to access other machines on the local network.

I usually let my “snowbird” neighbor use my wireless network when he’s here, which is usually for a week every few months. I would feel a lot more comfortable setting it up without access to my local network, so I’ll probably get the new base station for that feature alone.

Safari 4 is a winner

After trying Safari 4 on another machine yesterday, I got brave enough to install it on my main system today. I still don’t care for the tab bar at the top of the window, so I used these patches to restore the old style tab bar and the blue progress bar.

I find that Safari 4 is a lot faster than either Safari 3.x or Firefox 3. It also uses a lot less CPU than any of the other browsers. So far I haven’t seen any crashes or incompatibilities. New versions of SAFT and 1Password were released today, so I have all of the functionality I’m accustomed to.

Simple fix for 1Password & Safari 4

When Safari 4 was released today, a lot of people reported that 1Passsword won’t work with it. Since I rely on 1Password, I was very reluctant to upgrade. The developers of 1Password came up with an easy work around, which must be re-applied with every 1Password update until they officially support Safari 4. I came up with a simple automatic patcher, which you can download here, including full source code.