Spent the best part of the night bug fixing on ICeCoffEE and F-Script Anywhere. I fixed the latter problem, but didn't get to finish the feature I'm planning on adding, which I'll finish and release after I get some sleep.

I'm seeing a very weird bug with a new release of a certain AppleScript Studio app and ICeCoffEE. The stack looks like this:

#5334 0x95364940 in -[ASKEventHandlerRegistry descriptionsForClassName:includingSuperClasses:] ()
#5335 0x95364940 in -[ASKEventHandlerRegistry descriptionsForClassName:includingSuperClasses:] ()
#5336 0x95364940 in -[ASKEventHandlerRegistry descriptionsForClassName:includingSuperClasses:] ()

I've tried lots of things to clear out any cached information in the registry. After many hours I realized it was more likely some quirk of posing that was causing the problem, and indeed this was it:

Breakpoint 4, 0x95364884 in -[ASKEventHandlerRegistry descriptionsForClassName:includingSuperClasses:] ()
(gdb) po $r5
NSTextView
(gdb) po objc_lookUpClass("NSTextView")
NSTextView
(gdb) po [objc_lookUpClass("NSTextView") superclass]
%NSTextView
(gdb) po [[objc_lookUpClass("NSTextView") superclass] superclass]
%NSTextView

Presto, instant infinite recursion. I may be able to fix this by patching the ASKEventHandlerRegistry, but I'm wondering what else posing can break by destroying the chain of superclasses in this manner. Why does it need to do so, anyway?

Nicholas RileySpring EA 2 is out, including Jaguar compatibility. Most of the weird glitches I found in EA 1 are fixed, and there's a bunch more sample objects and actions to play with, which should give you an idea of Spring's incredible potential. I can definitely imagine using it to intelligently organize my contacts and projects as I go through a day. It'd be useful to be able to drag files/folders onto a Spring canvas and link them along with people, places and things (even if there were no external .obj representation of a file, although I can think of some great uses there too). In Jaguar, it wouldn't be hard to add vCard support so you could drag people out of or into Address Book, too.

If everything works, you should be able to drag the picture of me at right into a Spring canvas and have a functional object. We had discussed several possible methods of adding Spring objects from browsers, but the drag-and-drop method was the Holy Grail and I'm really happy that the Spring folks were able to get it to work with existing Web browsers as nicely as it does. If you get tired of staring at my face, there are a few more drag-and-droppable people at the Spring ObjectGarden.

No time to write much, but would you be interested in a picture?

The stability of my desktop Mac has increased significantly since upgrading to Jaguar. It's been up for almost 7 days as I write this, which would have been a veritable record in 10.1.x. While not a crasher, there's one odd problem that's occurred twice so far. It happens like this:

  • coreservicesd dies. From the crash logs, the invariant part of the stack is LSPlugin_server / _XRegister / _LS_server_Register / _LSReceiveRegistration / _LSReceiveBundleRegistration. This makes sense that the crash is coming from LaunchServices, as at least this time, it crashed while I was copying an application.
  • OS X does not restart coreservicesd, so weird stuff starts happening, such as icons disappearing.
  • I attempt to manually restart coreservicesd (bad idea?)
  • At some point a few minutes later, almost every open application quits unexpectedly.
  • Dragging stops working, even intra-application. Cocoa apps print “CoreDragCreate error: -900″, Carbon apps just don't work at all. pbs is working fine as inter-application copy and paste are unaffected.
  • Neither logging out and back in, killing and restarting coreservicesd and lsregister, or anything else I can discover short of restarting fixes the problem.

Has anyone else seen this? I wish I could replicate it so I could file a bug report.

Aiee, it's nice to see people trying out OS X, but this article by Moshe Bar has so many blatant errors in it I don't know where to start. You'd think a programmer would know better than to review something they'd obviously hardly used. Of course, there's no place to comment on the page.

Seven of us #uiuc.testers went to the Beef House in Covington, Indiana for dinner tonight.
Needless to say we were rather stuffed afterwards, and attempted to change our nicknames to
reflect it. It didn't exactly have the desired results, however.

22:43 UncleJed is now known as JedFull
22:43 @Fun-Boy> yes.
22:44 @gracie> ww = wrongwendy  :-D
22:44 @Wendy> Actually, I did http://www.iprh.uiuc.edu
22:44 You're now known as saStuffed
22:44 @Fun-Boy> i have photoshop 7.
22:44 Sam is now known as SamFull
22:44 SamFull is now known as SamPAcked
22:44 @RealCmdr> sabi: I'll probably pull out Photoshop, Illustrator, Font
                 Folio, and my Wacom tablet.  :-)
22:44 ~ superman set +o t-10000 on #uiuc.test
22:44 SamPAcked is now known as SamPacked
22:44 ! SamPacked was kicked from #uiuc.test by CmdrKuehn (Niq flood (3 nicks
          in 6secs of 30secs))
22:44 + SamPacked [~atlan\@dan0329.urh.uiuc.edu] joined #uiuc.test
22:44 ! SamPacked was kicked from #uiuc.test by MellieMel (Niq flood (3 nicks
          in 6secs of 30secs))
22:44 + SamPacked [~atlan\@dan0329.urh.uiuc.edu] joined #uiuc.test
22:44 ! SamPacked was kicked from #uiuc.test by JedFull (Niq flood (3 nicks in
          6secs of 30secs))
22:44 ~ saStuffed set -o MellieMel on #uiuc.test
22:44 @saStuffed> ROFL
22:44 + SamPacked [~atlan\@dan0329.urh.uiuc.edu] joined #uiuc.test
22:44 ~ TrollBoT set +o SamPacked on #uiuc.test
22:44 @t-10000> HAHAA
22:44 ~ saStuffed set -oo CmdrKuehn JedFull on #uiuc.test

Why do people write Mac OS X installers which destroy symbolic links? I just installed two applications and went two for two: the RsyncX installer (which uses Apple's installer) broke my /usr/local symlink, and the StuffIt Expander 7 installer broke my /Library/Frameworks symlink.
On the good side, StuffIt Expander 7 finally supports long filenames. It's only taken Aladdin three years to do so. Congratulations!

First progress exams for med school are Monday, so I'm planning on disappearing into a hole this weekend. Before I go…

Inluminent and 347.com have been discussing “Zoe” and appear to be having similar reactions to mine. I gave Nat an introduction to “Zoe” last week and he was suitably impressed. Seriously, if you ever ask yourself “how do I find that email I got six months ago about subject X?”, feed your mail into “Zoe”.

I still haven't had a chance to fix the serialization problem I got upgrading to “Zoe” 0.2.6; a kind soul sent me the 0.2.4 version I accidentally deleted, and it continues to work fine. Raphaël hasn't been able to reproduce the error I and another person were getting, but suggested a couple of things I can do to work around it.

Today I spent some time on my lunch break looking at the material from macosxlabs.com: lots of useful setup info from medium to large sites which have implemented lab management and incorporated OS X machines into heterogeneous networks (AFS, NFS, NIS, LDAP, Kerberos). The info is good, but I wish they wouldn't use Web Crossing for their forums—its interface is so cumbersome and outmoded. Although, if they turned on the Web Crossing NNTP gateway it would help!


Jaguar introduces a keyboard equivalent for the “Hide Others” command in the application menu: Command-Option-H. LaunchBar includes an option to map Command-Shift-H to Hide Others in all applications, which I'd been using for many months. I use application hiding much more often in Mac OS X than I did in OS 9, possibly because I often have twenty or more applications open and appreciate the ability to focus on my current work to the exclusion of other things.

Carbon applications, which get application menus automatically built by Mac OS X, gain command-shift-H automatically if they're not already using it. Cocoa applications supply their own application menus, and the newly recommended key equivalent isn't even supported by Apple's own applications such as TextEdit.

In an effort to stop myself from using the 'wrong' keyboard equivalent, which in any case shadows useful equivalents in applications such as the Jaguar Finder, I've turned off LaunchBar's “Hide Others” mapping and rely on those built into applications—making it painfully clear how few Cocoa applications have been updated. Luckily, there's a very quick and easy fix: the user key equivalents mechanism in Cocoa applications. User key equivalents are a very low-tech but effective mechanism which allows you to add key equivalents to menu items simply by associating the text of a menu item and your desired equivalent. Your changes even show up in the menus.

The easiest way to edit user key equivalents is with David Remahl's excellent ReKey application. To add a mapping for “Hide Others” to every Cocoa application, just execute the following:

defaults write NSGlobalDomain NSUserKeyEquivalents -dict-add 'Hide Others' '@~h'

All Cocoa applications you subsequently launch should obey the setting.

“Zoe” 0.2.6 was released today with a new contextual search feature, which allows you to limit your searches. So far I haven't been able to install it: I'm getting serialization errors when I try to start it.

From my referer log, I found someone browsing my site in Italian. Cool.

Next Page »