Monday, 20 January 2003
Converted ICeCoffEE to use APE and the Unsanity Installer yesterday, in place of its previous input manager/posing and custom installer implementation. It went reasonably smoothly; the APE SDK docs could use some revision and expansion, and the provided Project Builder template has some mistakes in it. Throwing out lots of flaky loader code and my previous hacked-together installer in favor of more reliable and robust replacements felt so good.
While creating the build script I ran into a Project Builder limitation: there's no way to use a Copy Files build phase to copy something at the top level of the “output” directory which will work equally well building from PB and with 'pbxbuild install'. I ended up using two Copy Files phases.
Before I release 1.3 I need to find a reliable way to get the installer to remove old versions, and would like to add support for 10.2's Terminal. 1.2 had 10.1 Terminal support, but was too unstable to ever release publicly. If you're still using 10.1.x, ICeCoffEE 1.2b2 is available here, but please don't distribute it or email me that it crashes Terminal—I know.
Last week someone sent me a feature request to add support for Safari to ICeCoffEE. My first thought was “huh?”, but it's almost working now, thanks to Safari's excellent code quality and the open-source WebCore framework. The remaining problem is that I'm unable to immediately set and retrieve the selection. -[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:] sets the selection, but it doesn't get updated until some time after the mouseUp: method returns, and I can't figure out how to force it to update.
In any case, I need to get back to work and studying. I've got a few war stories (one about Retrospect, one about OS X in general) that I will post later today.