SVG1.2 and web applications

For those of us using SVG for developing web applications:

- SVG Chat engine via XML-RPC:
  http://xmlrpc.kollhof.net/jsolait.xmlrpc/chat.svg

- SVG Editor - Beta - look and feel:

  1) Without JavaScript (for ASV6pr1)
      http://j2k.sourceforge.net/svg/august8/btn_def19.htm

  2) With JavaScript (for ASV3)
      http://j2k.sourceforge.net/svg/august8/btn_def20.htm

- SVG Risk like game:
  http://www.g-linares.com/navelgas/tg/prototipo/mapa.svg

- SVG Electronic simulation:
  http://jan.kollhof.net/projects/svg/examples/microspatz/microspatz.svg

- SVG Fake Desktop:
  http://jan.kollhof.net/projects/svg/examples/desktop/desk.svg

- SVG House Location Database
  http://www.xfront.org/svgdemo/

- Not mentionning Adobe Sample SVG apps:
  http://www.adobe.com/svg/demos/main.html

Among others.

Let say, that I was pretty pleased by DSM Event handlers
http://www.w3.org/TR/2003/WD-SVG12-20030715/#dsm
and similar UI control, anything that can simplify my scripting life is 
welcome! =)

SVGTimer could be pretty useful.
http://www.w3.org/TR/2003/WD-SVG12-20030715/#SVGTimer

Network interface would be nice (simple like Perl FTP, IRC, HTTP CPAN 
modules)
http://www.w3.org/TR/2003/WD-SVG12-20030715/#network-data

  - FTP:    http://search.cpan.org/author/GBARR/libnet-1.16/Net/FTP.pm
  - SFTP:   
http://search.cpan.org/author/BTROTT/Net-SFTP-0.05/lib/Net/SFTP.pm
  - RSH:    http://search.cpan.org/author/RIIKI/Net-Rsh-0.02/Rsh.pm
  - SSH:    http://search.cpan.org/author/IVAN/Net-SSH-0.07/SSH.pm
  - SMTP:   http://search.cpan.org/author/JHI/perl-5.8.0/lib/Net/SMTP.pm
  - IRC:    http://search.cpan.org/author/JMUHLICH/Net-IRC-0.74/IRC.pm
  - Telnet: 
http://search.cpan.org/author/JROGERS/Net-Telnet-3.03/lib/Net/Telnet.pm

Maybe a Socket Interface to TCP/UDP sockets?
Maybe all this can be done via XML-RPC or SOAP support?
There is a question of efficiency.

Someone proposed a "push" technology solution for constant broadcasting
of networked clients working on a same SVG document:

  1) A type some stuff,   while B and C watch the changes real-time
  2) B delete some stuff, while A and C watch the changes real-time
  3) C edit some stuff,   while A and B watch the changes real-time

Think of this as an advanced chat or netmeeting SVG application on the web
for collaborative team work exchange remotely located.

Currently, for instance, the Chat application, it mainly use XML-RPC to talk 
to the server
which requires some timer latency or must be updated whenever an event 
occurs.

Now, can we replace the XML-RPC thing to talk to Java or Python or Perl
with DSM Event handlers maybe, maybe not!?
Will it be efficient?

Another thing would be to have standard behaviour
for scrollbars, menu, buttons, checkbox, radio buttons, push buttons,
label, textbox, muti line textbox, combo box, drop box, list box, multi 
select box,
tab window, button with images, volume like scroll bar, spin button, up/down 
button,
split window button, cooledit toolbar buttons, document view toolbar, status 
bar,
tree folder view, etc.

For instance, currently, creating a Microsoft Word similar application using 
SVG
is quite a challenge in EMCAscript, having lines falling at the right place, 
with proper
select, cut, copy, paste, mouse selection, keyboard navigation,
pictures insertion (SVG), table insertion (SVG) or SVG animation.

For instance let say you have  "hello\nworld"
your cursor is on 'w' you press the UP arrow key, where does your cursor go?
Now you press the DOWN arrow key follow by LEFT arrow key, where does your 
cursor go?
BTW, SVG has no '\n' only multiple <tspan>, so things get a little bit more 
messy. ;)
That kind of stuff.

It's difficult to calculate the width and height and to adjust everything in 
consequence,
maybe DSM event handler will fix lots of this messy logic, I hope so! =P

For instance, take:
http://j2k.sourceforge.net/svg/august8/btn_def19.htm

if I want to resize the 'SVG applet', I would need to recalculate all 
scrollbars,
position of buttons, width of background, shadow and stuff like that instead 
of writting
something that depends on the size and location of a window, like I would do 
in C/C++ or Java.


Another thing, copy/paste to and from other application without using "Copy 
SVG".
It's far from being 'transparent'.

e.g. Select a picture in Word, do ctrl-c, go to an SVG application in an 
editable box
press ctrl-v and have that picture embedded right there in encoded Base64 
format, for instance.
To be able to do that kind of logic, transparently, like most people would 
do in Front Page
or Windows application for instance, that would be a big plus for Web apps 
to have such support for:

RTF text             (translated into SVG),
XHTML formatted text (translated into SVG),
Binary Pictures      (Base64 encoded),
Binary Sounds        (Base64 encoded),
Animation            (translated into SVG and/or Base64 encoded),
Multimedia content   (translated into SVG and/or Base64 encoded), etc.


These are my current concerns:

- Having easy-to-program widget and especially extend them for look-and-feel 
(color, style, size).
- Having text to be displayed exactly like XHTML text or even more crazy
   (currently ASV does not support SVG CSS font that are identical to XHTML 
CSS font without some tweaking)
- Having proper text/object auto-layout in any direction (360 degree)
   including word-wrap or not (being specified by CSS property)
- Having XHTML border CSS attributes.
- Having proper printing support, something like
   this SVG will be printable exactly like a PS or PDF on any machine. 
(print and print preview facility)
- Having proper select/cut/copy/paste that is fully transparent to the user.
- Having easy to use customisable events,
   including form/widget resizing manipulation, auto-layout, etc.

Mainly, anything that can be easily done with normal Widgets in Java Swing, 
C++ Builder, MFC or KDE.
That programmers use every day with RAD GUI builder (e.g. VB, JBuilder, C++ 
Builder )
without thinking "how should I program such behaviour", just use it or 
drag'n'drop it.

For instance, nobody have to program normal CGI forms widget behaviour in 
XHTML,
it just works with simple <input> tags definition.


Anything that makes our life simpler, should be simple enough to code and 
implement.
Crazy stuff should be possible, with some reasonable work.


As far as I am concern, I see the future of SVG replacing every other 
currently used format
with proper XML namespace extension for metadata to keep them working:
PS, PDF, GIF, PNG, XBM, XPM, Flash, Animated GIF, HTML/XHTML,
Word/Excel/Visio document, PowerPoint presentation, etc.
Already Word/Excel/Powerpoint can be saved in working HTML format, let's go 
one step further! =)

Most of them can already be replaced with SVG 1.1 specs, but some features 
need too much coding
to get it work properly (layout/printing mostly), things should be a bit 
simplified
by adding more abstraction facilities.


Sincerely yours,
Fred.

_________________________________________________________________
STOP MORE SPAM with the new MSN 8 and get 2 months FREE*   
http://join.msn.com/?page=features/junkmail

Received on Monday, 18 August 2003 09:44:32 UTC