I just want to be SAFE — What is Safe Mode?

Safe mode is available in Mac OS X 10.2 or later, and is one of the more useful ways to troubleshoot the Macintosh OS. To start in Safe Mode, hold the Shift key down as your Mac starts up.
Starting up into Safe Mode does several things:

  • It forces a directory check of the startup volume.
  • It loads only required kernel extensions (some of the items in /System/Library/Extensions).
  • In Mac OS X 10.3.9 or earlier, Safe Mode runs only Apple-installed startup items (such items may be installed either in /Library/StartupItems or in /System/Library/StartupItems; these are different than user-selected account login items).
  • It disables all fonts other than those in /System/Library/Fonts (Mac OS X 10.4 or later).
  • It moves to the Trash all font caches normally stored in /Library/Caches/com.apple.ATS/(uid)/ , where (uid) is a user ID number such as 501 (Mac OS X 10.4 or later).
  • It disables all startup items and login items (Mac OS X 10.4 or later).
  • Mac OS X 10.5.6 or later: A Safe Boot deletes the dynamic loader shared cache at (/var/db/dyld/). A cache with issues may cause a blue screen on startup, particularly after a Software Update. Restarting normally recreates this cache.

Taken together, these changes can help resolve software or directory issues that may exist on the startup volume.
The Disadvantages:
A normal boot sequence may take 10-30 seconds, but when performing a safe boot all the normal caches are either destroyed or being rebuilt, so a safe mode boot may take up to 3-5 minutes.  Also some features don\’t work in Safe Mode  For example, you can\’t use DVD Player, capture video in iMovie, use audio input or output devices, or use an internal or external USB modem. The behavior of some devices such as an AirPort card may vary depending on computer and Mac OS X version.
Safe Mode in Mac OS X 10.5 or later also disables Quartz Extreme (hardware accelerated graphics). Applications that depend on Quartz Extreme will not open, and the Mac OS X menu bar will appear solid even if \”Translucent Menu Bar\” is enabled in Desktop & Screen Saver preferences.

Screen Sharing gives a Black Screen?

Ever since I upgraded to Snow Leopard, one small issue has been bothering me.  Screen Sharing to our Video system would give me a black screen, but only from Nerv.  The other computers could screen share to it fine, only Nerv has had this issue.
I have found some references to this in 10.5.5, and a few references with Snow Leopard, but they didn\’t seem to solve the issue.
Here\’s the work around.  From the Screen Sharing application, choose View –> And toggle the other setting (Adaptive or Full Quality).  For example, in my case it was set to Adaptive, changing it to Full Quality solved my issue.  Of course, this takes a bit more bandwidth, but on the local LAN, it doesn\’t matter.
I\’ll be reporting this to Apple.

10 computing conspiracy theories examined

What would the day be without a good conspiracy theory?  Here\’s the top 10 computing conspiracy theories examined.
Number two, still makes me laugh…

2. SETI program is a smokescreen

The Theory: The US government knows that little green men exist – and it also knows that we\’ll never find them by listening for radio signals. So to keep us off the scent, it promotes futile SETI research.

Preference plist was NOT a dictionary.

It\’s not a dictionary?  Well, that\’s right!  My preferences aren\’t a dictionary….
Updated 10/27/2009, with a potential solution…
Updated 02/13/2010, with a solution…

Seriously though, if you see the following in your console log:

9/18/09 12:36:49 PM PreferenceSyncClient[60967] Preference plist was NOT a dictionary.
9/18/09 12:36:49 PM PreferenceSyncClient[60967] Preference plist was NOT a dictionary.
9/18/09 12:36:49 PM PreferenceSyncClient[60967] Preference plist was NOT a dictionary.
9/18/09 12:36:49 PM PreferenceSyncClient[60967] Preference plist was NOT a dictionary.

You might have an small issue to resolve…
In my case, that message has been occurring every hour… From some research it appears to be MobileMe related… But when I checked the MobileMe status on Nerv, I found a funny thing…
MobileMe was turned off… But I know I see the MobileMe Widget activated, and that message was occurring… I re-activated MobileMe, and forced a sync…
Now, I am waiting to see if that resolved the error in the log…… And it hasn\’t…
So, if anyone has any suggestions on resolving this issue, please feel free to let me know…
Here\’s another case of a similar issue…Except that he\’s had high CPU use, and a stuck MobileMe sync...
Update — 9/24/2009

There has been some speculation that this maybe related to MobileMe Syncing (as discussed above), Google Syncing, and at least one set of fingers have been pointed towards Growl.  I have submitted this case to Apple under Radar # 7249814.

Update — 9/25/2009

As far as I can tell, all of my preferences (~/library/Preferences & /Library/Preferences) are intact, and not corrupted…

If you would like to test this, use this small bit of python code:

import sys
import os
directory_to_scan = sys.argv[1].strip()
print directory_to_scan
files_in_directory = os.listdir ( directory_to_scan )
for x in files_in_directory:
#print directory_to_scan,\”/\”,x
if x.upper().find (\”.PLIST\”) <> -1:
os.system (\’sudo plutil -s \”%s/%s\”; # Use Plutil in \”lint\” mode to check the plist\’ % (directory_to_scan,x) )


import sys
import os
directory_to_scan = sys.argv[1].strip()
print directory_to_scan
files_in_directory = os.listdir ( directory_to_scan )
for x in files_in_directory:
if x.upper().find (\".PLIST\") <> -1:
os.system (\'sudo plutil -s \"%s/%s\"; # Use Plutil in \"lint\" mode to check the plist\' % (directory_to_scan,x) )

Update — 10/27/2009

A posting on the Apple discussions thread mentioned:

I found the problem. It was Google trying to connect to an unknown server. I had downloaded Chrome but didn\’t like it. Anyway, I used HoudahSpot to find everything Google after LittleSnitch reported Google trying to \”phone home\”. I trashed everything GOOGLE and restarted last night. The console message is now gone.

That got me thinking….  I did at one time have Address Book configured to sync with Google…  I checked and that is still turned on.  I have turned it off, and I am currently waiting to see if that message disappears….

The files that were created when I configured it, are:

  • com.google.GoogleContactSyncAgent.plist @ ~/Library/LaunchAgents
  • com.google.ContactSync (folder) @ ~/Library/Application Support
  • com.google.GoogleContactSync.plist @ ~/Library/Preferences

So, if we take the error message at face value, either the LaunchAgent or preference file maybe damaged…

But of course, the root cause of this issue is that the error message is uninformative, and does not indicate which plist \”is not a dictionary\”. If Apple had indicated which plist was the cause, we would not be investigating this issue.

Update #2 — 10/27/2009

Well, that did not seemingly solve the problem for me….  I still have the preferences message appearing in the console log on a regular basis…

Update #3 – 2/13/2010

I believe that a solution has been found in the Apple Customer forums…  The following command, will reproduce the plist was not a dictionary error message…

/System/Library/CoreServices/PreferenceSyncClient.app/Contents/MacOS/PreferenceSyncClient –sync –periodic

and the next command will display all the files that have any array in it…

egrep \’^<array>\’ ~/Library/Preferences/*

I do not suggest deleting these files, instead move them to a different directory.  For example, my iTunes preferences was detected as a file in question…  As well as the iCal alarmscache file….  And neither application was indicating or showing any issues…  So move the file to a different location, and test to ensure that you are not receiving a false positive….

egrep just does a pattern match, so it just scanning the files for \”<array>\” being found at the beginning of a line.  I hope to have this confirmed as a solution in a few hours, when I don\’t see this error message in the log file any longer…