Rixstep
 About | ACP | Buy | Industry Watch | Learning Curve | News | Products | Search | Substack
Home » Industry Watch » Coldspots

Snow Leopard: Under the Hood 1

A first look.


Get It

Try It

√ Fast install. 41 minutes officially. Although the 'time remaining' meter stuck at 41 for about five minutes. The install wasn't supposed to reboot but it did - twice.

√ /net: no more hang. /net used to do a network search of some sort. Took about 6 seconds to time out and had to be renewed regularly. It's gone.

√ Finder Cocoa? Yeah maybe mostly but not completely. And there are still Carbon frameworks in /System. When you get an error code of '-10810' you know the fetid thing's still not out of Beige Box Country. Put another way: you can take 'Finder' out of Beige Box Country but you'll never get Beige Box Country out of 'Finder'. More on Finder below. Suffice it to say network and system admins are going to be laughing all the way to Redmond WA.

√ .DS_Store: all over the place. Perhaps worse than ever. Please remember the culprit behind this atrocity waited eight years before coming forth and admitting the code was buggy. Guess what? It's not been fixed.

√ Xcode and ~/.Xcode. It doesn't crash on exit anymore - it crashes on launch. Fortunately you can override and continue.

√ sudo. The November 2008 update finally comes to OS X. It took only ten months. Hackers take note.

√ Mail. Starts a new message with a dirty red button. Dismissing a completely empty message composition window will invoke a prompt to save - despite the window being completely empty and there being absolutely nothing to save.

√ Dock. The 'QuitFinder' preferences key no longer works. Finder is launched today by launchd. The startup file is in /System/Library/LaunchAgents. Attempting to børk this in the wrong way exposes a severe design flaw in launchd - intensive polling which can suck up all available CPU and whip up the fans up to the melting point.

for (;;)
    if (program_started())
        break;

√ Colon paths. Still all over the place. Save files with illegal slashes in their names? Yep. See them on disk as colons.

√ find update. New syntax. -name must be explicitly specified.

√ *.LSSharedFileList.plist files. More clutter in ~/Library/Preferences.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>RecentDocuments</key>
   <dict>
      <key>Controller</key>
      <string>CustomListItems</string>
      <key>CustomListItems</key>
      <array/>
      <key>MaxAmount</key>
      <integer>0</integer>
   </dict>
</dict>
</plist>

√ NSTextView speedup. Even in 32-bit mode. Leopard's was very sluggish.

√ pbs.plist. Part of the services dictatorship. The other part's in ~/Library/Caches. What's puzzling is how it arbitrarily forgets to include things at times. Generally this technology feels very buggy.

√ Services hierarchy gone. This is a blow to everyone who since NeXTSTEP 20 years ago has appreciated how powerful these services are - and who's implored the caretakers to increase the hierarchy. More on services below.

√ Services context menus. Items are listed in reverse alphabetical order? Bug.

√ Graphics. Same basic look but a bit paler and lots of icons have been worked over. This when they're supposed to be tweaking Leopard code?

√ Carbon Spell Checker. So Carbon is gone? O RLY?

11 items, 33152 bytes, 32 blocks, 0 bytes in extended attributes.

/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents
/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents/_CodeSignature
/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents/_CodeSignature/CodeResources
/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents/CodeResources
/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents/Info.plist
/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents/MacOS
/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents/MacOS/CarbonSpellChecker
/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents/Resources
/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents/Resources/English.lproj
/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/CarbonSpellChecker.bundle/Contents/version.plist

√ Core Types. The bundle at /System/Library/CoreServices/CoreTypes.bundle. All those files really needed?

com.apple.airport-extreme.icns, com.apple.apple-tv.icns, com.apple.emac.icns, com.apple.ibook-g4-12.icns, com.apple.ibook-g4-14.icns, com.apple.imac-aluminum-20.icns, com.apple.imac-aluminum-24.icns, com.apple.imac-g4-15.icns, com.apple.imac-g4-17.icns, com.apple.imac-g4-20.icns, com.apple.imac-g5-17.icns, com.apple.imac-g5-20.icns, com.apple.imac-iSight-17.icns, com.apple.imac-iSight-20.icns, com.apple.imac-iSight-24.icns, com.apple.iphone-3g.icns, com.apple.iphone.icns, com.apple.ipod-touch-2.icns, com.apple.ipod-touch.icns, com.apple.mac.icns, com.apple.macbook-black.icns, com.apple.macbook-unibody.icns, com.apple.macbook-white.icns, com.apple.macbookair.icns, com.apple.macbookpro-15-unibody.icns, com.apple.macbookpro-15.icns, com.apple.macbookpro-17-unibody.icns, com.apple.macbookpro-17.icns, com.apple.macmini.icns, com.apple.macpro.icns, com.apple.powerbook-g4-12.icns, com.apple.powerbook-g4-15.icns, com.apple.powerbook-g4-17.icns, com.apple.powerbook-g4-titanium.icns, com.apple.powermac-g4-graphite.icns, com.apple.powermac-g4-mirrored-drive-doors.icns, com.apple.powermac-g4-quicksilver.icns, com.apple.powermac-g5.icns, com.apple.time-capsule.icns, com.apple.xserve.icns

√ Exceptions.plist. In the same directory. Check it out.

√ 9.2.2 icons. Same directory again. What are they doing there? Here's a few.

LocalesFolderIcon.icns, OwnedFolderIcon.icns, OwnerIcon.icns, PreferencesFolderIcon.icns, PrinterDescriptionFolderIcon.icns, PrinterDriverFolderIcon.icns, PrintMonitorFolderIcon.icns, PrivateFolderIcon.icns, RecentServersFolderIcon.icns, ScriptingAdditionsFolderIcon.icns

√ Table view multiple selections fixed. Finally. After nearly two years. But other issues remain.

√ Inode crunch. Files are still saved by moving rather than copying. Ouch.

√ Toolbar configuration sheet rendering issues. Some icons appear dimmed. Bug.

√ About Xcode.app. In /Developer. Unbearable. All this - 312 KB - to offer a single PDF file of 73161 bytes? And it has to be code signed too? Ouch.

14 items, 295076 bytes, 624 blocks, 0 bytes in extended attributes.

/Developer/About Xcode.app/Contents
/Developer/About Xcode.app/Contents/_CodeSignature
/Developer/About Xcode.app/Contents/_CodeSignature/CodeResources
/Developer/About Xcode.app/Contents/CodeResources
/Developer/About Xcode.app/Contents/Info.plist
/Developer/About Xcode.app/Contents/MacOS
/Developer/About Xcode.app/Contents/MacOS/About Xcode
/Developer/About Xcode.app/Contents/PkgInfo
/Developer/About Xcode.app/Contents/Resources
/Developer/About Xcode.app/Contents/Resources/English.lproj
/Developer/About Xcode.app/Contents/Resources/English.lproj/About Xcode.pdf
/Developer/About Xcode.app/Contents/Resources/English.lproj/InfoPlist.strings
/Developer/About Xcode.app/Contents/Resources/pdf.icns
/Developer/About Xcode.app/Contents/version.plist

√ com.apple.nsservicescache.plist. In ~/Library/Caches. There's an interplay with pbs.plist.

√ Table view rendering issues. Sometimes the table view forgets it's supposed to have a scroll bar. Nasty bug.

√ com.apple.metadata:kMDItemWhereFroms. A new XA.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
   <string>http://homepage.mac.com/aglee/downloads/AppKiDo-0.983.tgz</string>
   <string>http://homepage.mac.com/aglee/downloads/appkido.html</string>
</array>
</plist>

√ Colons in XA names. Of course when you export them by name and then load them through Apple's document controller...


√ 64-bit Xfile. Weighs in at 53968 bytes complete, 131 KB bundle, and is faster than ever, enumerating man3 now with 8468 files in 189.068 milliseconds - a new world record.


√ Multithreading. Still not great. Sorting huge arrays of data crunches the VM to painful extents and interferes with the smooth operation of other processes. Process and thread control are still sorely lacking and/or not implemented satisfactorily.

√ Sample code migrated. Now found in the ADC Reference Library. Not the abundance of code as before.

√ Nanny nonsense with argc/argv. Singleton Cocoa apps normally don't open files and so their argument list is immaterial. The following is simply the light bulb of someone who hasn't been around Unix very long.

√ Authentication to run privilege-escalated Cocoa apps. The system understands that privilege escalation with Cocoa is a bad idea but doesn't yet get the icon overlay right.

√ StripNIB. A pass in the new Xcode build process that strips out scratchpad NIB files such as classes.nib and info.nib - and presumably designable.nib and data.dependency as well.

√ 8/10/16: The New Calculator. Perfectly square?

√ Saying 'no thanks' to multiple languages: 132 MB. Despite the install supposedly respecting the wish to not have additional languages, 132 MB of such files are nevertheless copied to the destination volume.

√ Some things are faster but other things are slower. Terminal takes ages to get going, so do file dialogs, and the system seems to wobble and sag under the weight of nontrivial processing. This was not seen with Leopard.

Snow Leopard was a code fix update for Leopard. So what's the code name for the code fix update for Snow Leopard?

About | ACP | Buy | Industry Watch | Learning Curve | News | Products | Search | Substack
Copyright © Rixstep. All rights reserved.