February 24, 2004
prebinding: A 4.5 Hour Mistake

Sigh, I really, really hate the fact that OS X requires prebinding for Mach-O applications (which is most now days).

A friend decided to bring over his G3 iMac DV SE (400Mhz) with 192 megs of RAM so I could install Panther on it "the correct way". I wiped the HD (per his request) and installed it. After it was installed, prebinding took up about 1/3rd of the total time to install (maybe a little more, 15-20 minutes). I then installed all the updates that Software update gave me.

Software Update found the following new or updated software:
! ARDClient124Update-1.2.4
Apple Remote Desktop Client, 1.2.4, 832K [required]
! BatteryUpdate-1.1
Battery Update, 1.1, 520K [required] [restart]
! iCal-1.5.2
iCal, 1.5.2, 7852K [required]
! iSync-1.3
iSync, 1.3, 6600K [required]
! iTunes4-4.2
iTunes, 4.2, 6560K [required]
! MacOSXUpdate10.3.2-10.3.2
Mac OS X Update, 10.3.2, 39140K [required] [restart]
! Safari_1.2-1.2
Safari, 1.2, 7860K [required] [restart]
* AirPortSW-3.3
AirPort Software, 3.3, 8752K [restart]
* iPod131-1.3.1
iPod Software, 1.3.1, 5760K

Software Update found the following new or updated software:
! Java142-1.4.2
Java 1.4.2, 1.4.2, 30072K [required] [restart]
! QuickTime65-6.5
QuickTime, 6.5, 18660K [required] [restart]
! SecurityUpd2004-01-26Pan-1.0
Security Update 2004-01-26, 1.0, 8000K [required] [restart]
* BluetoothUpdate1.5-1.5
Bluetooth Software, 1.5, 6212K [restart]

Software Update found the following new or updated software:
! iPod21-2.1
iPod Software, 2.1, 17152K [required]

After each group of updates was installed, software update did the prebinding phase. Each time took about 15 minutes for a total of 45 more minutes (just prebinding).

Zoom to last night at 9:30pm. Went over to the house of a former Teacher of mine to install Panther and to install iLife for him on his 15inch Flat Panel iMac (800Mhz, 256megs RAM). He is on a dial-up connection (that connects at 16800 bps) so using Software Update to download the updates was out of the question. I had asked the other person that was "assisting" me to burn a CD with all the updates we had installed on his iMac the week before. For the life of me I could not trick Software Update into using the files that were on the CD. No matter where I placed them on the HD. I didn't know the order so we just ran Software Update to get the updates it said it could install and then installed those based on modification dates, rebooting when absolutely necessary. (Quick note, you must restart on QuickTime updates, OS X updates and some security updates like the most recent one, if you do not some applications may not launch or will crash on launch.) Because software update wasn't doing the installing, it would prebind all over for every friggin' update. That means each update took 10-45 minutes to install. 10-20 extra minutes of each just to do prebinding. If you look above, that is a LOT of prebinding. Just installing a fraction of the above (QT, Java, Security updates, iMac superdrive update, iLife, Panther, OS X update, Safari, iCal, iSync and ARD) took 4.5 hours to install. 4.5! About 2-2.5 hours of that was JUST PREBINDING! I didn't get home until 2:00am.

Someone tell me who the hell thought a technology that required prebinding would be good? It doesn't speed things up. It doesn't make applications launch faster than in Mac OS 9 or even Classic which use a technology that doesn't require prebinding.

When people are testing the speeds of OS X vs XP, then should also consider the time it takes to install.

I HATE PREBINDING

Update: Forgot about something. It is unwise to launch applications or to start a concurrent install-at all, but especially-when prebinding. If you launch an application when prebinding is happening, there is a chance that it could trash your install (happened twice to me, once by accident, twice to reproduce). "Optimizing" is what Apple calls the prebinding phase in the installer. It isn't actually optimizing anything.

Update 2: I'm posting this here instead of the comments because I think it is a very interesting point that Avi Drissman probably didn't mean to point out to me. Prebinding could be a security risk. Not in of itself, but indirectly. You cannot use the checksum of an executable to determine if it has been modified by another or not on OS X. There are sites dedicated in listing the checksums of files included with different OS version. They are often used when someone believes their machine was hacked or accidently left root logged in. Incidental, yes. Not very important, indeed. But it is one wall that is not there.

Try it:

md5 /bin/mv
MD5 (/bin/mv) = efeb7727e40c597fa33953e551c9979d

Looks fine, no? Well, let us redo the prebinding:

sudo redo_prebinding /bin/mv
md5 /bin/mv
MD5 (/bin/mv) = fe7369c88c3a9220ad803ba3e56bbe06

The checksum has changed. While I am sure that there are better ways to get a checksum none are the answer. And AFAIK, dyld doesn't store the executable's actual checksum anywehere.

Posted by rosyna at 03:11 PM
February 11, 2004
Leading the Ignorant Masses to a Better Tomorrow

My bad. Forgot to post this.

FontCard 1.0.3 is out and there appears to be some food or other gunk under my right mouse button.

Here is what is new:

New in v1.0.3

  • Panther Compatible.
  • Now reads from the new font set format in Panther.
  • Opens Font Book when the "Edit Collections" button is pressed on the preference pane.
  • Now shows a bullet (•) instead of an asterisk (*) to better match Apple's Font Book's handling of duplicate fonts. Maybe Apple copied FontCard's behaviour before...
  • Now sorts the font set names alphabetically.
  • Possibly fixed a race condition that could prevent some applications to not launch completely and use 100% CPU.
  • Worked around a "problem" in Panther that caused selecting a font from a submenu to fail.
  • Works in Entourage when running on Panther.
  • No longer builds font collections at launch. This change makes loading the font menu for the first time about a half a second slower than it would otherwise be.
  • Added recent and favorites fonts to the font collections. (Panther only.)
  • Selected fonts are added to the recent fonts collection. They will appear in all applications and Font Book. (Panther only.)
  • Font collections now have icons. If you use something like CandyBar, FontCard will show those icons.
  • Fixed a problem with FontCard still showing up if you had created a new application rule and disabled FontCard for it.
  • Fixed a problem with Illustrator wiping out WYSIWYG menus.

Personally, I love the new recent fonts and favorites features. Apple made it impressively easy to add in Panther. Too bad the API for it is incomplete and requires Cocoa. There is SO much more to come in the future. I hope y'all will like it.

How about that. I managed to use "y'all" and "behaviour" in the same post.

For those that are wondering, the title is a reference to Excel Saga. All Hail Lord Ilpalazzo!

Posted by rosyna at 11:02 PM
February 10, 2004
Unimplemented Preferences

I was checking out a problem with Menu Master keys not working in some applications and I noticed the following preferences in the Finder

defaults write com.apple.Finder AllowCutForItems true You can cut, but not paste so it is completely worthless. Just places the items in the trash.
Something called NewWindowTargetIsHome. But I have no idea what data it wants.
defaults write com.apple.Finder ShowCustomIconsForRemovableVolumes true (or false, I guess)
defaults write com.apple.Finder AnimateSnapToGrid true. Defaults to true.
defaults write com.apple.Finder DisableAllAnimations true. Defaults to nothing.

That's all I could find so far. Neat huh? Should I look for more?

Posted by rosyna at 12:41 AM
February 05, 2004
Waterproof Anime

I've updated my anime pictures. Turns out I own quite a few.

On a side note, does anyone know any place that sells waterproof Bluetooth keyboards and waterproof BT mice? Or even better, how about a waterproof casing for Apple's BT mouse and keyboard? It's too hard to use the trackpad on the AlBook when it is wet...

Posted by rosyna at 04:46 PM
February 02, 2004
Mmm, themes!

The contest page complete with theme submissions is live.

http://www.unsanity.com/contest/

Go grab the themes and try them out. Ponder them. Put them through your toughest critique and then vote for your top three. Vote wisely, you only get to do it once.

Many thanks to those who spent incredible amounts of time working on their themes! Best of luck to each participant!

Posted by brian at 11:08 PM
guiKitty 1.1b1

First things first: THIS IS A BETA. It may or may not work as intended, it may contain bugs, and it may magically consume all milk in your fridge. No guarantees given at this point.

What is guiKitty?

guiKitty is a companion tool for any people interested in creating themes to be used with the ShapeShifter. Its purpose is pretty simple: it can compile and decompile guiKit files, which are the native format understood by the ShapeShifter.

When you launch the application, a splash screen will appear. From there on, you can:

- Drag the .guiKit file you want to decompile onto the splash window. guiKitty will then expand the guiKit into a bunch of files and folders located in a folder with the same name as the guiKit you have dragged on it, in the same location. You can then edit any file from the resulting decompiled folder (to, say, make some tweaks to the theme or whatnot), and then compile the folder back into a guiKit file.
- Drag the previously decompiled guiKit folder onto the splash window. guiKitty will then magically walk the structure of that folder and make a properly encoded guiKit file you can use with ShapeShifter.

guiKitty is freeware and does not require ShapeShifter or Application Enhancer to be installed.

Download Link

http://www.unsanity.net/beta/guiKitty-11b1.zip

There will be an official guiKitty page on the unsanity.com server once we reach the release state.

Conclusion

All in all, this is pretty straight-forward. Read the Read Me file for more information. Since this is a beta, please let me know if there's any bugs either in the comments or by e-mail (slava, usual e-mail sign, unsanity, dot, com). Also please do not re-distribute the file around as this is not a release version, and we don't really want this to be out in the wild at this point.

Posted by slava at 04:53 AM
Unsanity ShapeShifter Contest, Last Minute!

Hey Theme Creators!

There's been a bit of confusion about when submissions for the Unsanity ShapeShifter Theme Contest need to be received. We need 'em by 11:59 PM Mountain Standard Time on February 2nd. In other words, before midnight tonight.

So, burn that late-night oil and get your masterpiece done! And if you thought they were due last night, do those final tweaks and get something that's even more perfect in!

Good luck to all participants. Voting begins Tuesday morning!

Posted by jason at 03:16 AM