The ultimate fix to my concern here will be to move to a memory device driver, 
but for right now I am trying to distract myself from that and get some much 
needed work done (small grant proposal).  The question is one of design in my 
Smalltalk binding: how should it work?  How can it work?

One consideration is how and when a plot gets created and initialized.  In 
object oriented terms, "who" creates it?  Yes, I personify objects: deal with 
it :)  The less that needs to be specified at that time, the better.  I can 
understand needing to specify the device early on, but why is the file name 
required before initialization?  Could that be relaxed?   Could it be relaxed 
wisely?

One possible reason not to relax it could surround vector graphics.  I have not 
yet figured out when the file is created and when data is written to it.  Early 
in my experiments, I had success only with .svg files, and my 500,000 sample 
time series predictably created big files.  I quickly found and installed the 
remaining pieces and got png working, but I could see how one might want (or 
perhaps need) to write the file as elements are being drawn.

For the moment, I am simply trying to reduce the amount of duplicate code I am 
creating before I end with a lot of it that I later have to fix.  My 
interactive plots get written to a most-recent graph file (yuk, but it gets the 
job done for now).  When the goal is to create an image on disk, it still might 
be nice to be able to defer the decision about the name.  My horrible handling 
of interactive plots makes it all the more obvious, because one has to know the 
plot is interactive when it is created rather than being able to make that 
decision (shamelessly save a temp file and load it from disk to view it) at the 
last minute.  Obviously, when I get to the point of using  a memory buffer, it 
will indeed be possible to create the graph and only then route it to a window, 
disk, or use it for drawing outside of PLplot's influence.

Any strong thoughts on this or similar topics would be appreciated.  In 
particular, did you have a design turn out particularly well or poorly; if the 
latter, was there a fix?  I am mostly thinking about friendliness of the 
resulting binding.  Can one easily create a plot, add data to it, and have the 
plot either decide its own limits or, if specified, use limits that are 
explicitly set?  What is the role of ensured execution?  For now I always call 
plend().  Should the binding behave differently if there is an unhandled 
exception?

Bill

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to