Witold Filipczyk wrote:

>>3) Let's talk about open source Arachne instead.... and how to force OEM
>>customers to subsidize Arachne development anyway... ;-)
> 
> 
> Let's talk about it.
> I have some concepts and ideas how should it (browser) be done, but I'm still
> not enough enthusiastic to do it by myself.
> It should be layered, modularized, with use of Unix principle of "Makefiles"
> and "pipes".  

Exactly.

> INPUT -->  parser -->  JS-like structures --> internal_structures --> rendering
>                            of data
>                            
> any change before "-->" regenerates structures after "-->" 
> The goal is to do it in similar way like Makefiles:
> after change on the left side, only necessary part on right side
> is regenerated.

Hmm, this would be cool. For example, first thing new Arachne has to do 
is to re-render (and on 16+ bit display, even re-display) only those 
frames, which have changed. This would allow multi frame mail reader, 
which was possible in current Arachne, but it was impossible slow to use 
(so I haven't released it).  Sometimes, multiframe layout would make 
sense, although most of all, I like two-frame view (Norton/Midnight 
commander style; it makes sense even for mail reader...)

> INPUT could be been not only network, but eg. keyboard.
> Arachne in addition to "browser" could be WYSIWYG HTML editor, or even
> word processor (Keyboard is much slower than network).

Hmm, this is too complicated, and additionaly, anyone can launch Mozilla 
for that, it is done already in high quality. And in StarOffice, you can 
even copy+paste HTML table from HTML page to DOC page (generic text 
editor window...).

I want Arachne to stay lightweight. Norton/Midhnight commander-type 
application. HTML viewing and e-mail are both basic tasks of current 
PCs. WYSIWYG HTML editing not...

> OUTPUT -> graphic screen, text terminal, Postscript

This is already done in such modular way....

> Structures of data should be universal to many uses.
> Such "-->" could be much more than on diagram, but all converters "-->" should
> be simple as possible.
> 
> Events from User should be treated in similar way.

Well, this is not done this way. Only common user even api is URL input 
field. It would be nice to be able to redefine hotkeys - maybe all API 
should be JavaScript, and user can define own menu and hotkey map using 
mapping to JavaScript commands (I don't like JS, but we must implement 
it, and why implementing more than one API ?)

> First step is to:
> - define structures "after parser" and "before render"

This more or less exist in current Arachne.

But I am rather talking about defining lower level API - for portable 
JavaScript library. Let's implement about 20-30 basic I/O and graphical 
commands, which will be available on all supported platforms....

I was thinking about:

int f=aopen("URL","r|w")
aready(f)  ................. checks, whether data are available
aeof(f) .... check for end of file/connection closed
aread(f,buf,size)
awrite(f,buf,size)
agets(f,buf,maxsize)
aputs(f,buf,maxsize)
aclose(f)

(and of course aselect() and await() as simplier-syntax alternativ for
POSIX select() command, but this is only for advanced users, and 
probably irrelevant in DOS ;-)

So we can do eg.:

aopen("file:\c:\autoexec.bat","r");
aopen("file:/etc/inittab","r");
aopen("http://arachne.cz/","r";);
aopen("pop3:[EMAIL PROTECTED]","r");

etc., etc. Simply network transparent, platfrom independent file open.
Cache would be maintained on lower level. This is what eg. Mozilla does
(and sometimes not very good!).

The "r" and "w" flags are from generic fopen() command, but we can add
"c", which means reading from cache if available, why "r" would 
"reopen/reload" object.

I would especially like if this API can do eg.:

aopen("file:somefile.zip/file_id.diz");

(file_id.diz files are now obsolete, but it is just an example ;-)
So mime.cfg conversion stuff would be also hidden under this layer...
and I would like to extend it by virtual filesystem stuff,

I think that from such functionality in Flowerpot would benefit even 
programmers outside Arachne project...

Other function calls should include:

acls()
aline()
abox()
adecoratedbox(); (so we can have themes like Gtk or XMMS... ;-)
adrawimage(filename);
amousex()
amousey()
amousekey()
akeypressed()
abioskey()
etc.

Simply - we need simple and strictly specified functions, which have to 
be ported in order for Arachne to be portable. I want this API to be
clean, and consisting only from few basic functions,  so it is easy and 
fast to port. More complex functionality which doesn't required system 
interaction can be hardcoded in Arachne - except of network transparency...

-- 
Michael "xChaos" Polak
+420 603 872631 / +420 2 33355668 / ICQ# 40434104
http://www.arachne.cz (Arachne Labs homepage)
http://www.mp3records.cz (100% legal and free music)
http://www.legalizace.cz (Stop drug war & release victims !)
http://www.vojna.cz (Petice za zruseni vojny i civilni sluzby)

Reply via email to