Friday, 24 January 2003
I was looking to find a new edition of Janeway's Immunobiology, as none of the local bookstores had a copy; a search on Dealtime revealed Wal-Mart as an option. Scary.
I was looking to find a new edition of Janeway's Immunobiology, as none of the local bookstores had a copy; a search on Dealtime revealed Wal-Mart as an option. Scary.
DSBRTuner 1.0.1+njr5 released, adding a requested feature, audio input volume adjustment, as well as a fix for a crashing bug when no audio input devices are connected.
Next up should be ICeCoffEE 1.3.
I've said the most of anyone in #macdev over the past 167 days. Something tells me that might be a sign I'm IRCing too much.
Some bugs I haven't seen mentioned elsewhere, which made last week a bit more painful than it should have been:
1. If you do a selective restore in Retrospect under Mac OS X, and choose to replace corresponding files, it restores the files in the wrong place. In my case, I was trying to restore /Library/Preferences/edu.mit.Kerberos on a disk named “Mac OS X”, but Retrospect restored to /Mac OS X/Library/Preferences/edu.mit.Kerberos instead. I tried a restore three times over and was very confused when the file didn't appear as I expected; finally, I switched restoration methods and it worked. A few days later, when poking around I noticed a “Mac OS X” folder I didn’t recognize and realized what happened. This would have been fine in pre-10.0 versions of Mac OS X, which mounted disks directly at the filesystem root instead of in the /Volumes directory, but in 10.2, it’s simply a bug. On my parents' computers, which have a partition named “Applications”, this bug could potentially cause the entire /Applications folder to be incorrectly overwritten.
2. While I was working from home, my desktop Mac suddenly became unresponsive. I came into the lab to check it out: it was very slow to respond, and top indicated that the kernel task was using over 100% CPU. Several reboots and over an hour later, the culprit turned out to be my old FireWire/USB 2.5″ hard drive enclosure, where the FireWire plug had become loose and was making intermittent contact.
3. I was burning a CD with Toast when it gave me this message:
So, what’s this mysterious error –5000? I didn’t have permissions to access the file. Toast does a scan before burning to verify that the files are accessible, but apparently permissions is not one of the things it checks. I made two coasters before I figured out the problem.
It would be really nice if my RSS feed started including paragraph breaks again. That UserLand is spending time on somewhat more useless things such as custom RSS generation is incredible when my RSS feed is completely unreadable for longer entries. I'm not the only one having this problem. For now, if I double-space my posts in NetNewsWire, they get extra space…
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.