Eloquent Software Forum Index Eloquent Software
Excellent utilities for Mac OS X
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

1.2.5: no more crashes after OS updates!

 
Post new topic   Reply to topic    Eloquent Software Forum Index -> LiveDictionary
View previous topic :: View next topic  
Author Message
mikeash
Site Admin


Joined: 11 Mar 2004
Posts: 127
Location: VA, USA

PostPosted: Tue Aug 01, 2006 6:52 pm    Post subject: 1.2.5: no more crashes after OS updates! Reply with quote

I just put LiveDictionary 1.2.5 out. This is basically identical to LiveDictionary 1.3b2, but with the version number changed. There are significant internal differences but I decided that they're obscure enough that doing a full point update would just confuse people. However, I'd like to discuss them here, because they'll have a very good effect in the end.

Anyone who has been using LiveDictionary for more than a few months has noticed that LiveDictionary likes to put up nasty warnings and crash and burn after an OS update. Then a LiveDictionary update follows a day or two later, and life is happy again.

This probably caused some anxiety among some of you. What if I drop off the face of the Earth, or am just on vacation for too long?

It also caused some anxiety for me, since I don't want to delay the update. But what if an OS update happens at an inconvenient moment?

This problem was caused by the technique LiveDictionary used to get text out of Safari. When LiveDictionary was originally created, there was no public method for extracting the text at a certain point out of a WebView (the main view that Safari and other WebKit apps use). But obviously there is some way to do it buried down in the code, otherwise you couldn't click and drag in the text to copy and paste. So I went digging.

Ultimately I ended up with a horrible collection of black magic which I will probably explain more deeply in a blog post. But suffice it to say, I was doing a lot of really terrible and unsupported things. A small change in WebKit could, and often did, completely break my code. Then I'd have to get the debugger out and go through and see what changed, and fix my code to suit.

At some point, the public DOM APIs (the same stuff you get when you examine pages using JavaScript, more or less) got enough functionality to do what LiveDictionary needs. LiveDictionary 1.2.5 abandons the old error-prone code for the new shininess for the current and future versions of Safari. (Old versions of Safari still get the old code, since it's known to work even if it's ugly.)

This means that LiveDictionary 1.2.5 should work, with no changes, for any future OS, through Leopard and beyond. That's not to say that I'm going to stop working on it! But neither you nor I need to get a lump in the throat when Apple releases an OS update anymore.
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger
Display posts from previous:   
Post new topic   Reply to topic    Eloquent Software Forum Index -> LiveDictionary All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group