Re: Jinnee is definitely lost
- From: Jo Even Skarstein <joska@xxxxxxxxxxx>
- Date: Fri, 18 Apr 2008 08:01:08 +0000 (UTC)
Henk Robbers <h.robbers@xxxxxxxxx> wrote:
This is what I wanted to do in 2003 when I revived Teradesk.
I also wrote in an interview that I would encourage people who
wanted something more modern to fork Teradesk as much as would
be needed.
That would be a good idea if someone wants to improve on the existing
desktop, but I don't think TeraDesk is a suitable starting point for a
modular desktop. I've had a look at the code, and the various potential
modules are still too entangled with each other.
If you break down the functionality of a desktop into different modules,
each module becomes a very manageable project, and I think it would be
best to start from scratch (or perhaps use parts of TeraDesk's code where
applicable):
- Desktop: Manage desktop background. Icons on desktop. General set-up.
Icon assignment, document type assignments.
- Desktop server: AV-server. Icon server. Put icons and icon assignments
in shared memory so each of the components doesn't have to keep and
maintain their own copies.
- File explorer: Display a window with a specified directory. Pass the
user actions (copy, move, delete etc) to the AV-server.
- File info: Display and change information about a specific file or
folder.
- File copy: Copy/move files, using the File info module to do any
renaming if necessary.
- Search: Search for file/foldernames or contents. Search result is passed
to File explorer for viewing. Possibility to save search
criterias/filters, thus allowing "search folders" in File explorer.
Each of these modules would be separate applications communicating with
each other through the AV-protocol. The AV-server would then act as a
"hub", handing out and passing tasks to the appropriate module.
The AV-protocol is quite suitable for this kind of modularization, and
since it's a well known protocol it would be possible to replace a module
with an existing or new program if you want to.
The downside of the AV-protocol is the use of pointers to global (if we're
lucky!) memory. This causes problems for MiNT's memory protection, not to
mention what happens if the calling application crashes after the message
is sent but before the called application is finished processing the
string pointed to! A solution would be to replace the string pointer with
a shared memory block or a pipe, falling back to the string pointer for
legacy applications.
I think that this approach to a desktop has several advantages over a
monolithic desktop in a multitasking environment:
- Less bloat. Separating functionality into modules allows simpler code.
And stuff you never use is never loaded.
- Expandable. If the desktop server is correctly designed, the desktop
environment can be expanded almost indefinitely by configuring the server
and adding a new module.
- A better user experience. A lengthy search or copy-operation would never
block the rest of the desktop.
- Freedom of choice. Don't like the existing File explorer? Write a new
one with ftp-support or whatever.
- And for the programmer: Easier development :-)
--
/*
** Jo Even Skarstein http://joska.nvg.org/
*/
.
- Follow-Ups:
- Re: Jinnee is definitely lost
- From: Djordje Vukovic
- Re: Jinnee is definitely lost
- References:
- Jinnee is definitely lost
- From: MiKRO / Mystic Bytes
- Re: Jinnee is definitely lost
- From: Jo Even Skarstein
- Re: Jinnee is definitely lost
- From: Henk Robbers
- Jinnee is definitely lost
- Prev by Date: Re: 1040STE 68000 chip socket
- Next by Date: Re: emailer
- Previous by thread: Re: Jinnee is definitely lost
- Next by thread: Re: Jinnee is definitely lost
- Index(es):
Relevant Pages
|
Loading