[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