Wednesday, November 02, 2005

Working around iTunes lack of multi-user support

Update 2/28/06: Geez, this is complex. I ended up giving up on the sync approach when I found I could do just as well by dragging and dropping a music folder from my Public folder onto my wife's copy of iTunes. (I only need an update sync, not a true sync.) However, some things didn't work. My wife couldn't select a bunch of tunes and edit ratings and preferences across the group, she could however set preferences on one file at a time. I had a hunch permissions were an issue. She could read from but not write to the Public folder.

So, I next used Sharepoints to create a new Group called Parents (grrrr. OS X should have an easy bundled GUI app to do this -- in this regard OS X is as bad as XP Home.) and added Emily and I to that Group. Then I set permissions on the Music folder within my Public folder so Parents could read and write to the Music folder. This fixed the problem.

Why is write access required to set ratings using one method, but not with another method? I don't know, but I'd bet I've uncovered some hacked designs in iTunes.

Update 11/8/05
: MacOSX Hints has a version of this that's at least comparable if not better. I might integrate the two some day or leave it up to the reader! The MacOSXHints submission includes an AppleScript that looks like it may update the Client's Library database when tunes are added to the Master Library. That sound great and I'll try it.

Update 11/10/05: The synchronization script referenced in Mac OS X Hints didn't work when two users were on the same machine and used Fast User Switching. I figured out how to revise it to support FUS (my first ever AppleScript project). I posted the sample code to the comments section on the Mac OS X Hints article. I may create a web page for this sometime; the techniques are apparently undocumented. (Parenthetically, I think AppleScript's days are numbered -- the lack of documentation is impressive.)

Update 12/11/05: It turns out there's a much easier approach that just works with iTunes. After adding new tunes to the 'master user', switch to the 'client user'. Then click on the folder containing all the music. Drag and drop to the left side of iTunes. iTunes compares and only adds references to the new music. View by date added and add to playlists as desired.

Here's my original article with its updates:

There's a "design flaw" in iTune when it comes to multi-user support.

Here's a brief version of the hack to work around it. I'll write more when I'm less tired.
1. Move iTunes Library to Public folder of iTunes owner. (If you don't know how to do this you shouldn't be trying a hack like this!).
2. User 2 opens Public Folder. Copy 'iTunes Library' file to User 2 music folder.
3. Open iTunes. Change advanced prefs on Library to 'don't copy when add'.
User 2 now has their own database pointing to the music repository. They can rate songs, create playlists, etc -- all independently. They can sync with their own contacts and calendar and their own version of iPhoto. (Ahh, but you want to use the shared iPhoto library? Tough luck! Similar set of problems as with iTunes. I'm still working this one. For now I export the images that will go on my wife's Nano.)

But what about songs I add to my collection in future? I have experience with this in another setting. You keep track of what you added and you drag and drop the folder into iTunes for User 2. iTunes will add the songs by reference (since pref is set to 'no copy'.) A bit tedious, but not that hard really. We only add songs occasionally. When you do this drag and drop by the way, iTunes does not create duplicates, it's very good at resolving these conflicts.

Can user 2 do damage? Not to the music library. They have read but not write privileges on the Public folder. [see 2/28 update for why this doesn't quite work]

Update 11/3: A longer version of the above that I submitted to MacOSXHints:

iTunes is designed to support multiple iPods, but not multiple users. In particular attributes like "last played" and "ratings" are meaningful only for a single user. Contacts and Calendars are also user specific.

That's fine, unless your spouse (SO, daughter, son, etc) has their own iPod. Each time they sync they'll mess up smart playlists that depend on "last played", and "ratings wars" may occur.

Of course they could have their own music collection and sync in their own user account. That's presumably what music owners would like. Communal property is not their favorite topic. Apple could readily fix this (see below) but their music partners would likely object.

There's a workaround. I used something similar to this in the past and it works reasonably well if you have a mature music collection and are not adding a ton of new music.
User 1 moves iTunes Library Music to User 1 Public Folder (iTunes will do this for you if you change Library location then tell it to consolidate). Copy User 1 iTunes database there to for the moment using the Finder (ignore the xml file, iTunes recreates that).

User 2 copies the iTunes database file to their default location, deleting their old database. Start iTunes. Change advanced options to uncheck import into iTunes when adding music.

User 2 now switches to their account when syncing. They set ratings, etc. They have their own Playlists.
What about new music?
User 1, Administrator, handles all new music import.

After new music is added Administrator switches to user 2 account (need to know pw of course, otherwise user 2 has to do this) and uses Finder to navigate to newly added music.

Administrator starts user 2 iTunes and drags and drops new music folder into user 2 iTunes.
iTunes is very good at adding references to the new music, but it does not move the music into iTunes because we unchecked the 'move into library' option.

Note that User 2 cannot delete music (read-only privileges on Public folder). User 1 can delete, but User 2 will have dangling references. So, periodically Administrator must delete dangling references in shared libraries, though in fact they don't really do anything -- they just look unsightly. (I think there's an AppleScript that might do this.)

OS X users and groups: not much progress since 2001!

I have a scheme in mind to get around the DRM-constrained design "flaws" in iTunes for a multi-user family.

The first step is to create a shared folder that's read-only for most of the family. That's where the iTunes music files will live. Problem is, that's not easy to do in OS X. As near as I can tell this 2001 article is still true today: The Mac Observer: Hot Cocoa - Unlocking The Power Of Groups In Mac OS X. I think there are some more GUI utilities one can buy (ex: Sharepoints), but Apple has not addressed this -- probably because this is the province of OS X server. Mac Classic was far more useful as a home file server.

Microsoft did the same yucky thing; in many ways Windows 95 was a better fileshare than Windows XP Pro. In this case, though, Apple is even worse than Microsoft.

Anyway, getting the file share working is the least of my concerns! I can do the command line stuff or use sharepoints. This will be interesting ...

Update 2/27/08: I put my iTunes Library in my Public folder, which grants read access to everyone, but no write access. The Shared folder grants read and write access to everyone. That seemed to work, but I discovered that iTunes actually uses a mixed model to store metadata. Some is stored in the internal database, some stored in the local file system. It's complex, I think there are some significant deep design problems with this in iTunes. I need to experiment with granting write access to one user but not the children. Looks like I'll be donating money to Sharepoints if it works!

Fix for 10.4.3 fan problems: unplug and restart and resetting the SMU (PMU?)

[Via macintouch]

Interesting! Seems to work for many who get roaring fans: Turn off, unplug, push power button to drain (capacitor issue?!) then plug and restart.
Macintouch - Mac OS X 10.4.3

10.4.3 Fan Problems: A big thank you to Peter Trondsen for his tip of disconnecting the power cord and pushing the power button. My rip roaring iMac G5 is quite again.
Anything that involves capacitors in the iMac worries me, and the pushing power button to drain sounds like a capacitor to me (I'm no EE though.).

An Apple kb article talks about the same sort of thing -- another bizarre embedded smart device management unit is causing trouble, and has its own exotic reset:

The SMU (System Management Unit) is a microcontroller chip on the logic board that controls all power functions for your computer. If your computer is experiencing any power issue, resetting the SMU may resolve it. The SMU controls several functions, including:

* Telling the computer when to turn on, turn off, sleep, wake, idle, and so on.
* Handling system resets from various commands.
* Controlling the fans.

Note that resetting the SMU does not reset the PRAM. Resetting the SMU will not resolve issues in which your computer is unresponsive—in these situations, restarting your computer will generally suffice. If your computer isn't responding, perform these steps one at a time, in this order, until the issue has been resolved:

1. Force Quit (Option-Command-Escape).
2. Restart (Control-Command-Power).
3. Force Shut Down (press the power button for 10 seconds).

Resetting the SMU can resolve some computer issues such as not starting up, not displaying video, sleep issues, fan noise issues, and so on. If your computer still exhibits these types of issues even after you've restarted the computer, try resetting the SMU. To reset the SMU on an iMac G5 (Ambient Light Sensor) computer, simply do the following:

1. Turn off the computer by choosing Shut Down from the Apple menu, or by holding the power button until the computer turns off.
2. Unplug all cables from the computer, including the power cord.
3. Wait 10 seconds.
4. Plug in the power cord while simultaneously pressing and holding the power button on the back of the computer.
5. Let go of the power button.
6. Press the power button once more to start up your iMac.

Unlike earlier iMac G5 computer models, the iMac G5 (Ambient Light Sensor) and iMac G5 (iSight) computers do not have a button on the main logic board for resetting the SMU. This eliminates the need to remove the computer's back cover to reset the SMU.
Not to be confused with the Power Management Unit! Arggghhh. Apple's embedded OS devices drive me crazy. I wonder if the 10.4.3 update tries to update the SMU logic and that causes the fans to roar. The SMU reset article suggests that owners of 1st generation iMacs won't benefit from the unplug trick -- they'll have to open the iMac and push the internal reset button.

I'm getting similar problems though with 10.4.2 and my iMac; I dropped the CPU to "low" to reduce heat and the system quieted. That happened after a memory update; I wonder if installing the memory somehow confused the SMU, but it's true I'm also running iTunes continuously now. I'll try this and report what happens.

Corruption in blogger database producing lost posts?

This is a bad bug. I created a post in Blogger yesterday that has vanished. It's still on blogspot
but it's not accessible in Blogger. If I click on the edit link that appears (when authenticated) below viewed blogspot files I get this error message:

The post you were looking for was not found.

From the error message I can see the blog and postid for blogger:
blogID=5710205
postID=113090838306544429

The only way I can see this kind of asynchrony is if there's a corruption problem in the blogger database. Not good.

I only discovered this because I had a link to the now lost posting in another blogger post that still exists. I wonder how long this has been going on.

Nano Notes

Emily got a Nano for her birthday. Here are the odd things I noticed that, I'd guess, most wouldn't.

1. When you export all contacts from OS X Address book, a single file is created, not a set of .vcf files. Interestingly the Nano can handle this file. This is the easiest way to dump a bunch of contact data manually into the Nano. I'll experiment with dumping more than one of these. (iTunes mediation of syncing with Address Book is messed up when multiple users share the same music library.)

2. Gordon's Tech: iTunes and iPod integration and oddities mentions sharing a cable with an older iPod and some oddities of iTunes integration. Alas, the kb is wrong. The 3G firewire iPod will not sync using the cable that comes with the Nano.

More to come ...

Tuesday, November 01, 2005

Remote control for iTunes - Sailing Clicker and more

Still trying to figure out a way to take control of our home media server. I'm currently controlling streaming from my iMac to my stereo using TuneConnect (remote AppleEvent control of iMac) on my iBook and a separate complex kludge involving SlimServer, LAME, iTunes, Airport Express, and mp3 radio streaming (don't ask).

The Kensington remote works with the Airport Express, but it's IR. Doesn't work from the kitchen like the iBook with TuneConnect.

But then there's Sailing Clicker. The Bluetooth won't work (the iMac is out of range) but an 802.11b client that can handle WPA encryption could work. They support the Palm T/X. (Palm TX).

Sailing Clicker is $24 and the T/X is $300. A bit pricy since a Roku would do more and cost less. However both my wife and I have old SONY CLIEs. Either one could suffer a mysterious accident, and be replaced with the T/X ...

Update 11/2: Griffin has the AirClick.
Update 11/7: Griffin has just revised the AirClick. Also, Roku has now documented the 'Roku Control Protocol' which allows one to control a Roku device directly. This overall problem -- managing the relationships between music source, digital rights management, network bandwidth, user location, multi-display, locus of control, device integration, etc etc is really neat from a usability and design perspective. Frustrating (esp. the DRM part) but neat.

Gordon's Tech: iTunes and iPod integration and oddities (the lost posting)

This is a recreation of a post I did on 11/1 that Blogger apparently lost:
Gordon's Tech: iTunes and iPod integration and oddities

Computer vendors have a tough time managing multiple users. Palm blew it completely, they never reconciled their view of the Palm Desktop with the multi-user nature of XP.

Apple has done a bit better, but they're far from perfect. Consider iTunes on one machine that syncs with 3 iPods, two belonging to one user and one belonging to another user. How should the system be setup? Assume the music is shared.

There's no good answer. Ideally the music would belong to a neutral user and each iPod would sync with a shared Library and local playlists. Alas, items from a shared Library cannot be added to local playlists, nor can they be synced to an iPod. If all users share one Library, however, the contact syncing doesn't work.

A basic design problem.

BTW, if one has a Nano and a 3G iPod one runs into an interesting conundrum. The 3G cable will charge both devices but won't sync the Nano, the USB cable will sync both devices but won't charge the 3G. Since I don't want to have too many cables dangling from my iMac, the USB cable will stay there to sync both devices but the firewire cable will go to cradle downstairs to charge devices.