[Adium-devl] ByObject prefs suck

Evan Schoenberg evan.s at dreskin.net
Wed Dec 6 23:12:39 UTC 2006


On Dec 6, 2006, at 4:10 PM, Augie Fackler wrote:

> What I've figured is in there now is:
> 1) Preferred account
> 2) Spelling Language
> 3) Events
> 4) Local alias (?)
> 5) Old message history
>
6) Notes, as Brian mentions.
7) Local grouping (for metacontacts).
8) Any other plugin-specified information (such as to/from languages  
with the Translation plugin).
9) Last seen date.


> 5 can just be forgotten about with XML logging.
True. This is by far the largest part of the file in terms of size.   
We've also had a bug report of "my previous conversations weren't  
loaded when I upgraded from Adium 0.89.1..." perhaps we could  
fallback to reading the old preference, then removing it, as  
appropriate (insufficient XML messages could be loaded)?

> I think we already don't use 4, but I want to be sure.
I'm pretty sure we do use it, unless there's another key I'm not  
remembering -- where is the information specified as Alias in the  
contact info window stored?

> 2 is definitely something we
> should save, as are preferred account and events.
> That said, I think it might make more sense to store one large file
> rather than lots of little files, since we're looking at about 2k
> files with an average size of .5 kb, that's about 6 wasted megs of
> disk space for a bunch of files that themselves shouldn't take more
> than 1 meg.
In the context of the harddrive on any Mac that can run 10.3, 6 mb is  
pretty insignificant.  The important question is performance, not on- 
disk usage...

..which might be an argument for a single giant plist or might be an  
argument for having separate files such that they are only loaded as  
needed.

> Events I think it might make sense to store in a dedicated events
> preference location - and then include a more complete events editor
> that lets you see all of the configured events (sound notifs,
> everything) so that events for no-longer-listed buddies can be
> deleted (for example, custom sounds for a particular buddy) - or at
> least more easily purged.
The storage and the presentation aren't necessarily connected.  The  
original implementation of the Events prefs (well, really, the third  
iteration, if I remember its evolution properly) included information  
on all contacts' specific events.  It was a bit overwhelming and  
ugly.  Something better might be possible to serve the same idea...  
certainly one bad implementation doesn't mean all solutions are bad.

> I don't really see a need to store special events for unbuddied
> people anyway, so maybe it'd make more sense to just nuke events
> associated with a particular ListObject when that ListObject is
> deleted? Maybe we could do that with writing direction and last used
> spelling language too? Preferred account?
We couldn't do this when deleting an account (delete all associated  
contacts)... I suppose we could when explicitly deleting a contact,  
and not save for people who aren't on the buddy list.  I would  
consider this a bug, though, as a user -- "I set an alias on  
DudeWhoIsn'tOnMyBuddyList, and Adium didn't save it when he messaged  
me again the next day."

I have hundreds of Aliases and quite a few Notes set on contacts whom  
I have no desire to ever have on my contact list.  If I'm in the  
extreme minority in seeing this functionality as useful (and worth 5  
mb on-disk), that's fine -- chorus of yays and nays?

-Evan


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20061206/fad7ae68/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20061206/fad7ae68/attachment.sig>


More information about the devel mailing list