http://qs1969.pair.com?node_id=161550

Hi all,

I've cooked up set of demos of the neat applications of Perl to the SVG application concept.

SVG is starting to make some serious strides in the client-side (browser) side of things and is now embedded in most Adobe products, most importantly in the new Acrobat viewer. This is opening up SVG as a potential replacement for HTML for clientside interfaces.

I've been working on some pure-perl generation of SVG application interfaces and here are some of my (fairly lame) preliminary results. You need the Adobe SVG plugin for these. I have only tested the output with version 3.0, but 2.0 might work as well.

1/ Dynamic Graphs of live streaming yahoo quotes (only works when the markets are open). This demo handles 50,000 points before memory becomes an issue.

2/ Dynamic Graphs from random data. Less slick than the above graph, but you get the point. The bottom stream has 4 independant dimensions. (this demo is a bit of a ram hog after a while) By the way, notice that the application it is embedded within is also pure-perl.

3/ Live real-time, 2-way interaction with a database without refreshing the screen (This is fairly important functionality because it allows complex applications to retrieve popups and pulldowns from a server's database without refreshing the entire page. Since the connection to the server is already in place, the lag is minimal). Select a region by clicking and dragging the mouse, and circles pop up with pos, colour, and size retrieved real-time from the server's mysql instance.

Note: (This demo is being hosted on a $200/year shared server, and still is fairly responsive).

And finally, here is a report I cooked up discussing the performance of the use of the modified-DOM approach used in SVG.pm to generate SVG (or any XML for that matter). Summary: SVG.pm generates 12000 nodes per second on a run-of-the-mill 500MHz x 256K linux box under mod_perl.

I am planning to give a paper about this functionality and the SVG.pm module at yapc::europe in Munich and at the SVG::Open conference in Zurich.

There are tutorials and other case studies about SVG.pm at thePerl SVG server

Hackmare.