-- kmx
On 17.6.2014 14:30, Chris Marshall wrote:
My preference would be to extract the best of iPython for PDL and implement in perl. AFAICT, iPython doesn't appear to have an interface specification for their web frameworks and the development logs do not appear to address any portability for non-python environments. As for the IDE/workbook style, maybe we could start with something like the LCD of the current implementations: iPython, Matlab, Maple, Mathematica, Spyder(?),... Once this interface is architected, the next step would be to implement it. At this point, it would be possible to hack in an iPython version but that would probably have portability problems and only of use for Python + PDL users which is a step backwards from making PDL easy to install/use. --Chris On Tue, Jun 17, 2014 at 7:05 AM, David Mertens <[email protected]> wrote:Hey everyone, This and another recent conversation prompted me to dust off App::Prima::REPL last night. I was in the middle of a refactoring effort when I left it off, so I hammered through that last night. The only obvious difference between what's on Github and what's on CPAN is the handling of the output window, but a more important refactorization underlies that difference. I feel a lot better about it. It seems that we could pretty easily move forward on two independent fronts. Perl has some very nice web frameworks, but since the iPython code is already available, we could hook into iPython's framework for the first cut of the web stuff. If we later want a pure-Perl solution, we could build a Perl web front end that could be swapped out for the iPython one. Then we'd have to get the GUI side working. One hard part will be the math typesetting, but I have a shortcut in mind that we can try using. Another hard part will be changing the workflow and layout to mimic iPython instead of Matlab. That will take a bit of study, and it may be better to write a different GUI app (called perhaps iperl) rather than try to fold this functionality into the current GUI (prima-repl). I suspect that anybody who wants to get involved can begin by downloading and digging into the notebook software. I wonder if the Julia bindings might serve as a good reference? David On Mon, Jun 16, 2014 at 8:32 AM, Chris Marshall <[email protected]> wrote:Very interesting discussion so far. A focus on PDL development for me as release manager has been to improve the portability and buildability of PDL across all major perl platforms (windows, macosx, and unix/linux/bsd/*). We've made steady progress but once PDL is installed the user might ask "Now what?". It would be nice to have a clear and simple answer for that. (In addition to the use case of supporting better scientific development and collaboration). The good news is that we have two key pieces already available that could be a foundation for iPDL: (1) Interactive PDL shells (perldl, pdl2) We've already made a start at integrating multiple GUI toolkit event loops. Stalled for now but I think we know what is needed. (2) Prima and Prima::OpenGL This gives us a baseline, *extremely* portable GUI toolkit to build on. We could use other toolkits but it is really difficult to beat the portability of Prima as a powerful GUI for perl. In a sense it is a little known super-power perl module. :-) NOTE: I explicitly call out Prima::OpenGL because I think for high performance and portable graphics and realtime visualization, OpenGL is now the default standard---even including GPU compute shaders in the latest version. I'm sure there are some other ideas but, like the PDL3 development discussions, I think the best approach is to KISS as much as possible. Avoiding outside toolkits and libraries where possible is a win for portability, especially for non-unix-ish platforms such as windows. --Chris On Mon, Jun 16, 2014 at 7:10 AM, Paul Goodall <[email protected]> wrote:Hi David, Craig, I’d be happy to help with this - I should have spare time in between projects to contribute to it. Personally, I don’t think it would be a bad thing for PDL to be more accessible to the general community. Typically when I explain to others that I use PDL, I’m met with a blank face, prompting for an explanation. It would be nice if PDL were to be recognised as a desirable skill in the same way that Python is (particularly, for example, in job interview situations). It is a shame that more people don’t know about/have the power of PDL at their fingertips :-) Paul On 13 Jun 2014, at 18:12, David Mertens <[email protected]> wrote: Paul, To clarify, the notebooks that you mention in your link have two key features. First, they provide online sharing, so it is very easy to show your colleagues some ideas and calculations. Your colleagues can probably even try manipulating the data in their browser, if it's fancy enough. Second, they provide means for (1) writing code, (2) writing prose, (3) typesetting math, and (4) embedding media such as pictures. They are, in essence, Mathematica clones for their respective languages. PDL does not have an equivalent to this sort of tool. I wrote a rudimentary offline GUI data analysis program called App::Prima::REPL, but that was more targeted at the Matlab audience, not the Mathematica audience. It was also a giant pile of spaghetti, and I got stalled partway through a refactoring effort. It is not document focused, but rather tab focused. There is an API for building our own custom tabs, but it's really more of a programmer's tool, not a scientists log book. I have lately found myself doing a lot of thinking in LyX, then programming in Perl. I would really like if there was some way for me to combine all of that into a single document, much like the notebooks that you mention. However, my programming time has lately been dedicated to other projects (especially, this last week, polishing off some final work on PDL::Graphics::Prima for a forthcoming release). If you are interested in helping, please let me know. I'd love to work with somebody on this. :-) David On Fri, Jun 13, 2014 at 12:32 PM, Craig DeForest <[email protected]> wrote:I wouldn't say there's an online notebook viewer so much a powerful toolkit to build one. David Mertens recently implemented PDL::Graphics::Prima, which is an object framework that can be used to construct interactive notebooks very simply and quickly. For example, you can generate a plot object and connect it to a PDL, and very easily update the plot as the PDL evolves - or autogenerate/autoupdate plots as you carry out a calculation. That is sort of in keeping with the PDL "style" -- our niche seems to be powerful tools that are expert-friendly, rather than polished packages. On Jun 13, 2014, at 9:27 AM, Paul Goodall <[email protected]> wrote:Hi, Apologies if this has a very obvious answer, but does PDL have an equivalent to the online notebook viewers available to the likes of Python, Ruby and (even) Julia? http://nbviewer.ipython.org I’d really like to make use of this ‘IPDL’ if it exists. Thanks, Paul-- "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." -- Brian Kernighan_______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
_______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
