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