It's 8 in the morning here, and I've been awake since some vague time
way back in yesterday.  I may be rambling.  I also have no idea what I'm
talking about, since I have not looked at the code or the design.

On Fri, 23 Sep 2005 23:40:14 +0200 Gabriel Rossetti
<[EMAIL PROTECTED]> wrote:

> Can't you just cache the eaps that need to be visible? I doubt that he
> has hundreds of eaps in his ibar/engage.

As I said, to get e17 to start up quickly again, I cut it down to the 40
odd eaps that I use on a regular basis, and start everything else from
the command line, living without icons for those.  Most of those 40 live
in the menu, only a dozen are in engage.

> and load the others if they are needed later on? 10 times out of 9 we
> use programs that are in our menu/ibar/engage first,
> that's why we put them there in the first place.

Good point, which suggest a three level approach.  At start up load
those used by ibar, engage, and first level favourite menu.  Load other
menus as they are accessed (most menus will have few enough to make
this quick), or as a background process after handing control to the
user.  Most of the time apps will be started via ibar/engage/menus, so
they will be loaded before they are needed, even if it just before (I
love 'just in time' code).  Only loading the first level menu at
startup also caters for the time when all 4000 eaps have already been
spread around several levels of menus.

The second level is to track often used apps, what "favourites" usually
means in other window managers/OS's.  Recent versions of KDE let the
user choose between most recently used, and most often used.  Nothing
stopping us from doing both, stick them in a menu or two.  Once they are
in a menu, the eaps get loaded according to first level rules.  Before
they get to the menus, they are loaded according to third level rules.

Which brings us to the third level, a low priority task that checks
through all other eaps, caching the meta data and pointers to the
original eap, checking that this cache matches current reality, updating
when the eaps get changed, etc.  In other words, Rastermans new idea,
but it only applies to eaps that are hardly ever used, or that where
newly created a few minutes ago.

The beauty here is that the horrid 'scan several thousand files and
cache them' process is both low level background, and not needed most of
the time.  The second level makes e17 customise itself based on your
actual usage.  Visible ibar/engage/menu icons get loaded quickly,
sometimes just before they are needed.  The only time you get a long
delay is when you start an app that you have not started before, AND has
not been processed by the third level task, in which case the delayed
thing is providing a tiny little icon in the corner of the window.  Oh
yeah, and the same icon on your engage task bar, which will be a big
blue question mark until the icon is found.  I suspect that this will
not happen often, and should never happen a few minutes after the
thousands of eaps are created in the first place, as the background task
will have caught up by then and the cache will be correct.

Fresh e17 installs will distract the user with all this new, fancy, gee
wizz stuff that is accessed from ibar/engage/menus, that by the time
they get around to trying to access third level eaps, the background
task has completed B-).

Create icon from the window menu may have to to display a "you have
4000 of apps installed, and I have only processed 1234, 1235, 1236"
progress bar for a minute or two.

Everybody is happy, e17 gets a reputation for being fast, pretty, and
intelligent, Winblows dies a the horrible death that it deserves, and
we all get paid huge sums of money to develop e18.

Over to you lot, pick holes in these ramblings.

-- 
Stuff I have no control over could be added after this line.

Send instant messages to your online friends http://au.messenger.yahoo.com 



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to