Initial Snow Leopard Client Impressions

My initial impressions are that Snow Leopard is very much worth the upgrade if you can afford the time to do an operating system upgrade (in this case for me it was ~1.5 hours: 45 minute install, 45 minutes testing apps and seeing they still worked without any modification)

Pros:

  • Speed
    Awesome!
  • New Services Feature
    My favourite feature
  • OpenCL
    If you haven’t seen MacResearch’s Introduction to OpenCL check out 33:30 to 34:50 or so. (Rough timecodes
  • iCal Event Editing Gets a Window Again
  • Spotlight Default Search Location Fix and Sortable Results I can finally search within a folder without holding a needle to my eye first!
  • Enhanced Icon View Neat if I used icon view.
  • Faster wakeup to password screen Hawt.
  • Faster Time Machine Backup Hawt.
  • Airport Menu Changes Neat animation, but more info when holding the option key as well.
  • Gamma 2.2 Default No longer do I have to set this up each time.
  • New Fonts Menlo is cool, but Chalkduster; Heiti SC and TC; and Hiragino Sans GB are all fonts I’ll never use.
  • Safari Plug-ins are sandboxed Awesome - Flash won’t hurt as much even after ClickToFlash
  • QuickTime Player New UI is great for viewing.
  • Preview Faster and better scaling.
  • Mail Much faster. :-)
  • Set a time before the screen saver asks for a password. THANK YOU.
  • Smaller footprint I liked the good thwack of disk space I got back (~6GB)
  • Grand Dispatch Can’t wait to see the results on the Mac Pros at work.
  • Screen Recording Neat, but I’ll stick with ScreenFlow.
  • Revised Keyboard Shortcut / Services Preference Pane Much nicer to work with.
  • Wake on Demand No more having to worry about whether the computer is asleep or not? Over wireless? Sweet (Airport Extreme only though)

Cons:

  • Base 10 Counting
    WTF. DO NOT LIKE. “Mac OS X can not count” Would prefer a preference to turn this off and/or proper suffixes (eg. MiB instead of MB)
  • QuickTime Player Absolutely neutered into being useless beyond viewing and “Sharing” your movie to MobileMe.

In summary, there is no one real feature in Snow Leopard worth upgrading for - no major consumer focused feature. It’s the sum of all the parts that make it worth much more than the $29 they are charging. Once installed you never want to go back.

iCal Server Multiple / Sub Calendars and Sunbird

At my workplace we use iCal Server running on Mac OS X 10.5 Server to share several calendars all under our one staff group. With iCal, so long as the group is delegated to be shown on the user’s accounts you can see all the calendars but with Sunbird you only get to see the first calendar.

Before going further it’s worth noting how to delegate a group calendar so a user can view it without manually adding the group calendar as it’s own calendar (if using Delegates instead of multiple calendar “accounts” (same credentials, different calendars) is your aim). To do so you have to add the group calendar as a normal account in order to set it up, and then set up delegation as you would for a normal account. The important URL to know for using a group calendar is http://FQDN.OF.SERVER:8008/principals/groups/groupname (as always replace http with https and 8008 with 8443 if you are using SSL).

Sunbird uses slightly different URLs than what you use in iCal to start with, where in iCal an example URL might be http://FQDN.OF.SERVER:8008/principals/users/USERNAME or http://FQDN.OF.SERVER:8008/principals/groups/GROUPNAME. The corresponding URL to use in Sunbird is http://FQDN.OF.SERVER:8008/calendars/users/USERNAME/calendar or http://FQDN.OF.SERVER:8008/calendars/groups/GROUPNAME/calendar

That’s great for adding a single calendar but what if a user or a group has multiple calendars under their one account? iCal will automatically show them as a group whereas Sunbird requires you to add each and everyone that you wish to have show up.

You can specify a “sub-calendar” to subscribe to in Mozilla Sunbird by specifying the unique ID of that calendar instead in the form of the url http://FQDN.OF.SERVER:8008/calendars/__uids__/UID_OF_GROUP_OR_USER/UID_OF_SUB_CALENDAR (Newer versions of Lightning will take http://FQDN.OF.SERVER:8008/users/USERNAME/UID_OF_SUB_CALENDAR). Note the lack of calendar at the end of the URL. To determine the UIDs in question it’s easiest using iCal, if you click on a calendar and press Command-I (File -> Get Info) you can see part of the CalDAV URL at the bottom of the sheet that appears.

You will see calendars/__uids__/UNIQUE_ID/ONLY_PART_OF_THE_UNIQUE_ID because the label the text is placed into is not big enough to fit the URL. Because you can’t get the full URL from there it’s easiest to go to the iCal Server itself and navigate to /Library/CalendarServer/Documents/calendars/__uids__/ (you’ll need administrator privileges to view this). From there find the folder named the same as the UNIQUE_ID portion of the URL and open it to find a folder with the UNIQUE_ID of the “sub-calendar”. You can now put the URL together and use that in Sunbird to view that additional calendar.

Example URL of a sub-calendar in the group:
https://FQDN.OF.SERVER:8443/calendars/__uids__/FA26C8C6-5B78-4AB0-AE73-0E9576574EBB/F74174B7-380C-4630-9192-9025F4C691A2

EDIT:

Sub-calendars also work at https://FQDN.OF.SERVER:8443/calendars/users/USERNAME/UID_OF_SUBCALENDAR

Sources Used:

   apple, ical, ical-server, mozilla, sunbird

Chromium Mac Build Bot Updater Script

When I read on MacRumors that the Chromium builds for the Mac were available and were actually launching the “stupid” geek in me jumped at the opportunity to try the unfinished, unpolished software. By “stupid” I refer to the side of near any geek who sees the OOO SHINY and is fully prepared to deal with the instability and issues that will crop up with using pre-alpha/alpha software. Naturally when I saw how fast and furious the updates were happening alongside the fact there was no automatic update mechanism apparent in Chromium (I don’t have the Google Updater installed and don’t want to) I sought to find out how to automate the updates to make the pain of manual downloads, copies and such go away.

Using my previous WebKit script, 5 minutes looking at the Chromium application layout and how the builds are stored on the server I changed the script. I fully expect it to break horribly in the future as Google changes folder layouts and/or adds Chromium support to their own “silent” updating mechanism.

#! /bin/bash

# Based off my WebKit nightly script (now defunct as WebKit uses Sparkle)
# Copyright 2009 Micheal Jones
# Software License: Do whatever you want.

#Find current revision
currentRevision=`/usr/libexec/PlistBuddy -c 'Print :SVNRevision' /Applications/Chromium.app/Contents/Info.plist`

#Get latest revision
latestRevision=`curl -s http://build.chromium.org/f/buildbot/snapshots/chromium-rel-mac/LATEST`

#Abort if there is no update
if [ $latestRevision -le $currentRevision ]
then
    echo "There is no update for Chromium available"
    exit
fi

#Append download address
address='http://build.chromium.org/f/buildbot/snapshots/chromium-rel-mac/'${latestRevision}'/chrome-mac.zip'

echo "Downloading... $address"
curl -s $address -o /tmp/chrome.zip

#Abort if the build is not available
if [ "`head -n 3 /tmp/chrome.zip | tail -n 1`" = "404 Not Found" ];
then
    echo "Latest Version is not available yet (try again in a couple minutes)"
    rm -rf /tmp/chrome-mac.zip
    exit
fi

#Unzip
unzip /tmp/chrome.zip 1>/dev/null

echo "Copying..."
#Copy to Applications
cp -RfL /tmp/chrome-mac/Chromium.app /Applications/ 2>/dev/null

echo "Cleaning up..."
#Clean up
rm -rf /tmp/chrome*

revision=`/usr/libexec/PlistBuddy -c 'Print :SVNRevision' /Applications/Chromium.app/Contents/Info.plist`

echo "Finished. (r$revision)"

Realistically you should be looking for the latest source at the link below:

As always this script can be found in my git repository on GitHub.

   development, scripting, shell, webkit

Quick Looking a .csv File

On ServerFault someone was asked a question why .csv files were unable to be viewed in Quick Look. For some reason .csv files are not defined as plain text by the operating system which leads to odd conflicts between applications that can deal with .csv files that causes QuickLook to report that it can’t find a generator for the file and just show the icon.

The one way to force it to work is to roll your own, with a bit of help after reading the QuickLook Programming Reference it was rather simple to roll together a proof of concept QuickLook generator for .csv files.

It’s not pretty, it may break at any time (if only because it’s using a dynamic UTI since one is not defined anywhere, however .csv files have been using the UTI “dyn.age80g650” for quite a while - as far back as prior to 10.0) but it works and forces the .csv to display properly.

The code and a download of CSVQL is available on GitHub:

Source: http://github.com/Chealion/chealion/tree/master

Download: http://cloud.github.com/downloads/Chealion/chealion/CSVQL.zip

Check out Pascal’s comment for a much nicer looking version - actually puts the data into tables.

   apple, csv, git, github, quick look, software

DROC.CA : Douchy Business Practices

I’m unsure as to exactly why this annoyed me so much but on receiving junk mail to my home address from a company called “Domain Registry of Canada” (spammer’s website) I felt compelled to write an email (if only to get myself off their mailing list).

Hi,

I’d like to inquire why environmental resources, postage, and my time was wasted by sending a letter to my home address “as a courtesy” to “renew” or should I say SWITCH for 4 times ($40.00 CDN) the price I currently pay to register my domains.

Please remove me from your database and in my obtuse opinion grow a pair of non shifty business practices. (“Domain Registry of Canada”? It may be legal but it’s certainly douchy).

Pissed off over junk mail and shady business practices,

Micheal

I’m fully aware it will do nothing, they won’t (and most likely should not) care about my opinion of their practices but making it known that Domain Registry of Canada is soliciting me to switch (under the guise of renewing) is douchy. The domain is even transfer locked (meaning I can’t switch registrar’s with their fancy paper form). It does stand to point that the moment you start reading further it’s quite obvious it’s a solicitation - it’s not hidden but the fact that I am being solicited for this annoys me even if it “standard practice” by those who have business practices I despise.

   domain registry of canada, droc

Aborting On the Second Disk on a Restore

Scenario: Client attempts to restore their iMac using their Software Restore disks (10.4.10) but the second disk containing iLife for some reason refuses to be recognized. iLife is already installed and the OS has been installed but the Installer will come up everytime you attempt to start up the computer.

The workaround: Start up the computer in single user mode. Then use the following commands (not the ones with ## preceding them however)

## Mount the filesystem so you can read and write to it
mount -uw /
## The files we want live in /var/db
cd /var/db/
## Files that tell us it's a multi disk install
rm .AppleMultiInstall*
## File that tells us to pop up the registration dialog
rm .AppleCustomMac
## Something else to do with setup (Locale Setup?)
rm .locsetup.plist  

I removed all 3 files because they looked like the most likely culprits but gut tells me the .AppleMultiInstall* files are the only ones that have to be removed but I wasn’t able to test it.

You’re now able to boot the computer just fine - it’s imperative however to be sure that you know what has been installed as you’re interrupting the installation. Because in this case I knew that only iLife was on the second disk (in terms of what had been selected to be installed) I didn’t go ahead with reinstalling the OS to be on the safe side.

This has been tested on Mac OS X Tiger 10.4, it should be identical for Mac OS X Leopard 10.5 as well but I’m not 110% positive.

   apple, restore, tiger

Invisible Shield

When I got my iPhone I went looking for a case that ideally would not make the iPhone much more thicker than necessary, protected the screen from fingerprints and scratches and generally didn’t suck. It took a while but after reading reviews I settled on using the Invisible Shield by Zagg.

Good

The Invisible Shield protects my iPhone quite well against scratches against keys and well near anything that doesn’t actually slice the material itself. While often the scratch will be visible, running your thumb over the scratch or just giving the material time will have the scratch disappear like it never existed. It’s remarkably resilient to scuffs as well as often wiping away the offending scuff will cause it to disappear, or if dirty a little bit of water will work as well.

It’s also exceptionally thin and clear leaving the screen of the iPhone easy to see underneath it’s protective layer. Additionally dirt, dust, and other cosmetic annoyances can be easily washes or wiped off the screen just like the glass screen on the iPhone.

I prefer the slightly more tactile feel of the material (and if applied to the back as well if applied) as it gives a better sense of tactile feedback on the touch screen. It feels like you’re moving your finger across the screen a certain amount - much akin to using a scroll wheel on a mouse with grooves versus one that was completely smooth. The additional traction also makes the iPhone easier to hold - especially with your finger tips.

Bad

The suckers are hard to apply - compared to just slipping your iPhone into a case the initial time investment is pretty steep. However if you spend the 5 minutes reading the instructions and/or watching the video instructions on their website and then take your time applying it on the iPhone you’ll avoid the major issues of dust, air bubbles and streaks.

Between all the Invisible Shield’s I’ve installed I’ve seen all 3 major issues and all were my fault and thankfully if you’re paying attention can be avoided by taking the screen off and restarting the procedure over before it has time to start to set (according to the instructions). Having air bubbles or dust under the screen is really distracting but I find the streaks the most annoying if only because they aren’t obvious until you’re looking intently at the screen by watching a movie, reading text or something similar. I’ve found they happen when you pull the shield too taunt and are different then the streaks you get after installation.

After installation you will notice there are streaks on the screen that take a couple days to go away. These are normal and I’ve found will go in the direction that you used the squeegee to push out the excess liquid. So for the first couple days they can be a bit annoying as the streaks will distort the colour of some pixels making it seem as if there are razor thin lines of green or red at certain points. Thankfully after a while for the iPhone and the shield to get used to each other it disappears. I’ve also noticed that until this happens as well the quality of the iPhone screen will appear slightly fuzzy - not bad but as if the anti-alias filter was set a notch or two off optimum.

I’ve found that over time the screen likes to grab and hold onto oil and dust requiring wiping. The slight fuzzy appearance of elements on the iPhone comes back as well because of the oil but after cleaning it’s back to where it should be.

The biggest downside I’ve found is that they are not realistically reusable. For example each time I’ve had my iPhone replaced I’ve had to take the old one off and it would stick to itself creating a nice ball of Invisible Shield destined for the garbage requiring me to shell out another $25-$30 CAD for a new one. Be prepared to buy a new one if you have to replace your device.

Conclusion

So of all the faults with the Invisible Shield (which I find are more caveats than faults) I heartily recommend it because it’s unobtrusive and works exceptionally well. After having purchased 4 of them and applying them on 4 different iPhones I’ve still come back to the Invisible Shield every time.

   apple, iphone, review, zagg

iPhone Restoration : Restoring Home Screen Layout (Pre 3.0)

After having gone through 3 iPhones and countless restores of different iPhones and iPod touches I had to get to the bottom of how to restore my layout of my apps on my home screens.

The Cause

When you restore your iPhone / iPod touch to it’s factory defaults the device is not connected to an iTunes account. When you restore it from your backup (to put your apps and info back on) it will load anything that does not require authorization through the iTunes store (with the exception of free apps - though purchased from the iTunes Store they seem to get loaded anyway). So when you finish a Restore From Backup the first time around it will not load any paid apps or music until it’s authorized. It does it’s authorizations seemingly right after you’ve restored it as it accesses the iTunes Store as if it was just plugged in. Why that has no effect on purchased music I’ve no idea.

In the end you’re left with a phone / iPod that has only part of the data it had on it before and requires you to press Sync again to put your paid applications and purchased music on to it. The biggest issue here is that if you have any data stored in that application, like say Things, or high scores from a game, or just find reorganizing your home layout frustrating you’re out of luck. The paid apps are installed anew, and placed one at a time into the earliest empty spot on your home screens. Frustrating. Thankfully there is a workaround.

The Workaround

  1. Perform a backup before you restore.
  2. After restoring your Phone to the whichever OS version
  3. Restore from your backup (you can cancel syncing music when this part finishes - it will start up again after the next step)
  4. Restore once more - you may see two backups to choose from as it would have created a backup after the restoring. Choose the one that would have a timestamp just before you do the restore.

Annoying because a restore from backup may take as long as 5 or 6 minutes but at least you aren’t stuck reorganizing your applications the way you wanted them again.

EDIT: From what I can gather 3.0 has fixed this issue.

   apple, backup, iphone, restore

Agricola - Initial Impressions

After becoming slowly disenchanted with Settlers of Catan which left me feeling like I could tell who would win often within 1 or 2 moves - if the dice would actually play like it statistically should I felt that I really wanted to get another more serious board game that wasn’t as well known and would best of all be fun. After much searching and asking around I purchased the board game Agricola (BoardGameGeek) after a promising recommendation and the fact that it has taken over as the #1 rated game on BoardGameGeek.

Three members of my family and I set up the Family Game (a simpler variant recommended for starting out) and I’m certainly happy that we did. The game from unboxing (pieces already separated earlier) to finish took a good 4 hours. The 4 hour number is artificially inflated due to reading the rules and figuring out the rules on top of interruptions. Once we had started the game itself only took a bit over the 90 minutes it says to expect. I highly suspect after several more plays it will become considerably faster than that.

The Good

The game plays like a well oiled machine - thought out, exceptionally balanced, and insanely competitive without forcing one into an all out war against someone. Without any dice rolling (the bane of my existence in Risk) the element of chance takes a back seat to good old fashioned strategy and ingenuity.

The game is serious but quite fun - I can’t comment on the “let’s play it again” factor as nearly any brand new game I wish to play it again now that I have learnt the rules and mechanics. [EDIT: After playing several more games since writing the first draft of this - the let’s play it again right away factor is not as high as one would expect. Games can get a bit long but that idea that you can play again the following day is high - or if someone asks to play I’ve yet to have anyone say no. But 2 or 3 games in a row? Not as much]

I look forward to introducing the minor improvements alongside the Occupations of the full game that will result in a much more diversifed game.

The Bad

Your best attack is to go first and take the action that your opponents want the most, and when there are multiple routes to victory and easy to change your strategy it becomes a game where you have to think for yourself and see how you can use the different advantages you have to improve your standing instead of sabotaging others. It’s also quite apparent how important it is to not always go last in the turn order - it makes life much more difficult for sure.

Another “bad” point is the rules. While praised for being concise and very informative and easy to consult they are best compared to a comprehensive reference book instead of a how to or introduction. I explain more later about the insane learning curve.

The colour / aesthetics feel bland - with the muted colours of the majority of the pieces the initial feeling is the only exceptions is the green of the farmyards. After more research there are available upgrades for the vegetables and animals to appear like animals instead of just wooden disks or cubes. The disks and cubes only accentuated the initial overwhelming complexity as pieces are not self obvious.

The Ugly

The initial learning curve if all you have is just the rules is massive. Absolutely positively aggravatingly massive. The game creators have included additional illustrations to make it easier to understand on the back of some of the game boards but if you are unaware that is their point or how they fit together (which isn’t revealed until a page or two into the rules) that simply add to the mass confusion of pieces. The good news is that if you’re patient and just read it all through and be patient while going through those first 7 pages, that items that are brought up that haven’t been discussed will be covered shortly it’s easy to get by.

The silver lining of this is that if you have someone who has played the game before or are able to watch a game in play before playing yourself the learning curve is quite trivial in comparison as the game, once aware of the purpose of the pieces is straight forward and well designed.

The Reality

If you can - find someway to play this game. It’s not the most inexpensive game (retails for ~$75-80 CAD) but the quality of the pieces is excellent and the design top notch. While it won’t be the most favourite game of everyone I can heartily recommend it as no matter what is happening in the game it’s possible to use the advantages you have in hand to do your best if not win.

   board games, games, impressions, reviews

Disabling Mail.app's To Do Mailboxes and Quasi-Debugging Mailbox Creation

Leopard’s Mail.app introduced some nice speed improvements over Tiger’s version but introduced one of the most annoying features (IMNSHO) in Leopard. System Wide “To Dos” in a garish Marker Felt font intent on polluting my IMAP mailboxes with Apple Mail To Do or ToDos.mbox seemingly placed randomly (they aren’t but when your Prefixes differ from account to account it seems random at first). Additionally when I moved servers at my host my accounts on my computer started misbehaving creating nested mailboxes continuously. In the end it’s mostly user error but I’m hoping these tips on how to disable the To Do mailbox (see the edit for the easy way) and force Mail to look properly for the right mailbox will help someone jump to the fix that will stick.

Mailbox Setup Reference

To start with for reference I have several computers and an iPhone that share 4 IMAP accounts (GMail, my webhost and one from work). The main reason I use IMAP is that it keeps them in sync - the backup on the server is just gravy. By default Mail.app uses a mailbox called “Sent Messages” and “Deleted Messages” for it’s Sent and Trash mailboxes. If they do not exist it will attempt to create them - which isn’t entirely interoperable with some webmail clients out of the box (eg. Squirrelmail and RoundCube don’t use those mailboxes by default) or other email clients such as Thunderbird (which doesn’t allow you to change your Trash mailbox in Account Settings so you can’t tell it to use Deleted Messages as well).

Changing Your Sent and Trash Mailboxes Normally

In Mail.app you can click on a mailbox (eg. Trash Man O’ Doom) you’ve created and then under the Mailbox menu scroll down to “Use This Mailbox For” and set the mailbox for what you would like to use it for Drafts, Sent, Trash or as the Junk Mailbox. Nice, easy and it nearly always works. (I’ve had it not work once and that wasn’t Mail’s fault)

To Do Mailboxes Are From Hell

You may have noticed above that there was no option for a “To Do” mailbox or even an option anywhere to disable System wide To Dos which means that once iCal is opened or any To Do is intentionally or accidentally created Mail.app will dutifully create Apple Mail To Do mailboxes for each account you have following the IMAP Prefix if necessary. On my iPhone where To Dos are not even recognized it means I’m always seeing a completely useless Apple Mail To Do mailbox somewhere in the hierarchy of my mailboxes.

Following the publishing of a hint on MacOSXHints.com that described the key used in Mail.app’s Preference file (com.apple.mail.plist) I decided to go digging to see what else was stored there. I discovered that by setting the value to nothing (as in just leave it blank) that To Dos were effectively disabled on that account - I could then delete the Apple Mail To Do mailbox on the account. By doing the same change on the other computers (4 accounts * 4 computers = tedious) I was then Apple Mail To Do mailbox free!

**EDIT: According to a newly published hint there’s another way to avoid ToDo mailboxes being recreated by changing the NewNoteToDoAccount key to the ID of your local account. After deleting all my To Do mailboxes this was auto set so I didn’t notice that it had changed.

**EDIT 2: As far as I can tell this is akin to setting Create Notes & To Do’s in: to On My Mac in the Composing section of the Mail Preferences - which is FAR easier than messing with the plist file.

Multiplying Inboxes

When I changed servers at my webhost, Mail.app got confused about the IMAP Prefixes (I believe the new server was telling Mail.app INBOX and the old server was saying /, but I’m unsure) and decided to whenever I deleted a message to move the message to a new mailbox it would create at INBOX/Deleted Messages. Thinking it was an anomaly I would move the message where it should have gone and delete the newly create mailbox. The next time a message would be deleted (wasn’t necessarily on that computer) it would recreate that mailbox but oddly at INBOX/INBOX/Deleted Messages and the cycle would keep repeating. This was the one time that selecting the Trash Mailbox (Deleted Messages at / and not in INBOX) and telling it to use it failed.

Using the knowledge that the mailbox information is stored in com.apple.mail.plist I edited the offending section setting it properly and haven’t had a problem with it since - it was a good way of having somewhere to write in “I want my Trash to go here”. So it’s useful for making changes and checking to see what path that Mail.app is looking for when it shouldn’t be looking at that location (especially via SSH when VNC is unavailable).

So my frustration ends with that to edit a binary plist the only Apple provided tool is the new Property List Editor 3.0 which is not an optimum solution for editing - it doesn’t provide searching and I find that the extra work using plutil to convert to xml instead of binary and back so I can use TextMate not worth it in the end. Much of what you need to do is in Mail.app itself but when Mail.app is acting up, it’s good to know where you can go to set it back straight and stop the cluttering of your mailbox hierarchies.

   apple, mail, tips, to dos