[dataflow] new frameworks and GUI editors + visually edit a BGL graph

Hello, I uploaded some youtube videos of a new visual editor for the Dataflow library. There are three examples, each using a different underlying framework (the visual editor code is generic): visually editing a Dataflow.Signals network (data flows instantly): * http://www.youtube.com/watch?v=7a4HJ4zVPXc visually editing a Dataflow.Managed network (data flows on request): * http://www.youtube.com/watch?v=KwrnSjhJyf4 visually editing a BGL graph (this simple example lets you construct a directed graph and query the number of strongly connected components): * http://www.youtube.com/watch?v=gVLetAAnPrc The latter two examples use proof-of-concept implementations of alternate frameworks built on top of the generic framework that is part of the Dataflow library: Dataflow.Managed is unlike Dataflow.Signals in that doesn't couple data transfer with component invocation. In other words, if producer A is connected to consumer B, when A changes its value B will not be notified immediately. Instead, after any number of values in the network has changed, the network as a whole can be told to update (the network will then notify all components whose inputs have been modified, in the order of a topological sort of the components). Alternatively, components can be invoked individually, which gives them a chance to check their inputs / modify their outputs. The BGL support layer for the Dataflow library is an example of how something that is not strictly a dataflow thing (e.g., a graph) can still satisfy Dataflow concepts (there are Components (vertices) that can be connected), and be used with the framework (e.g., you get a GUI editor for free). If you're interested in playing with this: The new GUI uses GLV (http://mat.ucsb.edu/glv/) which is included with the dataflow library in the sandbox and integrated in the bjam build of the examples. As long as you have glut/freeglut available, it should build using gcc/darwin, MSVC8+, gcc/minGW, and if you are better than me at knowing which X libraries to link with and know how to manipulate a Jamfile, gcc/linux (any GCC version 4.x should work). If you run into any problems, please let me know. The latest code is currently available from the sandbox only, instructions/docs at: http://www.dancinghacker.com/code/dataflow/ Any feedback would be appreciated. Kind regards, Stjepan

On 07/20/08 18:29, Stjepan Rajko wrote:
Hello,
I uploaded some youtube videos of a new visual editor for the Dataflow library. There are three examples, each using a different underlying framework (the visual editor code is generic):
visually editing a Dataflow.Signals network (data flows instantly): * http://www.youtube.com/watch?v=7a4HJ4zVPXc
Stjepan, I went to http://www.youtube.com/watch?v=7a4HJ4zVPXc but then couldn't figure out what I should do next. There was a blank window with a title above it: gui dataflow editor using GLV and the Dataflow library but there were no buttons or menus anywhere suggesting how to make a video play or what to do next. What should I do to visually edit a Dataflow.Signals network from: http://www.youtube.com/watch?v=7a4HJ4zVPXc ? Where can I get an example Dataflow.Signals network to play with?

On Sun, Jul 20, 2008 at 8:03 PM, Larry Evans <cppljevans@suddenlink.net> wrote:
Stjepan, I went to http://www.youtube.com/watch?v=7a4HJ4zVPXc but then couldn't figure out what I should do next. There was a blank window with a title above it:
May have been a youtube glitch. If it's still not working for you, I uploaded the same videos to blip.tv: http://dancinghacker.blip.tv/posts?view=archive They show up better on blip.tv anyway..
What should I do to visually edit a Dataflow.Signals network from:
http://www.youtube.com/watch?v=7a4HJ4zVPXc
? Where can I get an example Dataflow.Signals network to play with?
The code for these examples is in the sandbox: http://svn.boost.org/svn/boost/sandbox/SOC/2007/signals/libs/dataflow/exampl... If you checkout http://svn.boost.org/svn/boost/sandbox/SOC/2007/signals, and run bjam in the signals/libs/dataflow/example/glv_gui/ directory it should hopefully build the gui examples for you (you will need to have BOOST_ROOT environment variable set, and GLUT/freeglut accessible). The Dataflow.Signals example is called glvgui_example. The components are registered in the example_bank class, if you want to play with different components you can add them to the editor there. If you have any questions or run into problems please let me know! Best, Stjepan

On 07/21/08 03:30, Stjepan Rajko wrote:
On Sun, Jul 20, 2008 at 8:03 PM, Larry Evans <cppljevans@suddenlink.net> wrote:
Stjepan, I went to http://www.youtube.com/watch?v=7a4HJ4zVPXc but then couldn't figure out what I should do next. There was a blank window with a title above it:
May have been a youtube glitch. If it's still not working for you, I uploaded the same videos to blip.tv: http://dancinghacker.blip.tv/posts?view=archive
They show up better on blip.tv anyway..
Apparently the problem is with my web browser, firefox. When I switched to windows vista and used IE, the youtube video played fine. Is there some sort of plugin or extension to firefox that will enable it to play the videos?

On 07/21/08 03:30, Stjepan Rajko wrote:
On Sun, Jul 20, 2008 at 8:03 PM, Larry Evans <cppljevans@suddenlink.net> wrote:
Stjepan, I went to http://www.youtube.com/watch?v=7a4HJ4zVPXc but then couldn't figure out what I should do next. There was a blank window with a title above it:
May have been a youtube glitch. If it's still not working for you, I uploaded the same videos to blip.tv: http://dancinghacker.blip.tv/posts?view=archive
They show up better on blip.tv anyway..
Apparently the problem is with my web browser, firefox. When I switched to windows vista and used IE, the youtube video played fine.
Is there some sort of plugin or extension to firefox that will enable it to play the videos? OOPS. Just got back to unbuntu and firefox is not playing
On 07/21/08 08:02, Larry Evans wrote: the youtube video fine. I've no idea what I did or if the change happened somewhere else, but it works on firefox now.

On 07/21/08 03:30, Stjepan Rajko wrote: [snip]
If you checkout http://svn.boost.org/svn/boost/sandbox/SOC/2007/signals, and run bjam in the signals/libs/dataflow/example/glv_gui/ directory it should hopefully build the gui examples for you (you will need to have BOOST_ROOT environment variable set, and GLUT/freeglut accessible). Apparently LD_LIBRARY_PATH or something similar also needs to be set:
/home/evansl/prog_dev/boost-svn/ro/branches-proto-v4/sandbox/SOC-2007-signals/libs/glv/include/glv_behavior.h:20: warning: 'bool glv::Behavior::mouseResize(glv::View*, glv::GLV&)' defined but not used gcc.link ../../../../bin.v2/libs/dataflow/example/glv_gui/gcc-4.1/debug/glv_graph /usr/bin/ld: cannot find -lGL collect2: ld returned 1 exit status

On 07/22/08 07:00, Larry Evans wrote:
On 07/21/08 03:30, Stjepan Rajko wrote: [snip]
If you checkout http://svn.boost.org/svn/boost/sandbox/SOC/2007/signals, and run bjam in the signals/libs/dataflow/example/glv_gui/ directory it should hopefully build the gui examples for you (you will need to have BOOST_ROOT environment variable set, and GLUT/freeglut accessible). Apparently LD_LIBRARY_PATH or something similar also needs to be set:
/home/evansl/prog_dev/boost-svn/ro/branches-proto-v4/sandbox/SOC-2007-signals/libs/glv/include/glv_behavior.h:20: warning: 'bool glv::Behavior::mouseResize(glv::View*, glv::GLV&)' defined but not used gcc.link ../../../../bin.v2/libs/dataflow/example/glv_gui/gcc-4.1/debug/glv_graph /usr/bin/ld: cannot find -lGL collect2: ld returned 1 exit status
Apparently that's not the only library that's missing in my setup. Using `bjam -n` to get the actual link command line, I found it contained: -Wl,-Bstatic -lpthread -lGLU -lGL -lglut -lXv -lXext -lXaw7 -lX11-xcb -lX11 so, I rm'ed the -lGL and then got: /usr/bin/ld: cannot find -lXv So...what is required to get the link command to work? IOW, there must be something in my environment that I need to modify to get the bjam to find the libraries needed by these examples. What are those requirements? -TIA -Larry

On Tue, Jul 22, 2008 at 6:27 AM, Larry Evans <cppljevans@suddenlink.net> wrote:
Apparently that's not the only library that's missing in my setup. Using `bjam -n` to get the actual link command line, I found it contained:
-Wl,-Bstatic -lpthread -lGLU -lGL -lglut -lXv -lXext -lXaw7 -lX11-xcb -lX11
Looking at this, I'm guessing you are trying to build this on Linux - is this correct? If so, you fall under the category I mentioned in my original e-mail as "and if you are better than me at knowing which X libraries to link with and know how to manipulate a Jamfile, [it should build under] gcc/linux". In other words, I still haven't figured it out for that platform :-(. But I just fired up my Linux box and will try to figure it out ASAP. Stjepan

On 07/22/08 08:54, Stjepan Rajko wrote:
On Tue, Jul 22, 2008 at 6:27 AM, Larry Evans <cppljevans@suddenlink.net> wrote: [snip] Looking at this, I'm guessing you are trying to build this on Linux - is this correct?
Yep. Sorry, I should have mentioned that. [snip]
If so, you fall under the category I mentioned in my original e-mail as "and if you are better than me at knowing which X libraries to link with and know how to manipulate a Jamfile, [it should build under] gcc/linux".
Yeah, I just reread that.
In other words, I still haven't figured it out for that platform :-(. But I just fired up my Linux box and will try to figure it out ASAP.
Thanks!

On Tue, Jul 22, 2008 at 7:23 AM, Larry Evans <cppljevans@suddenlink.net> wrote:
In other words, I still haven't figured it out for that platform :-(. But I just fired up my Linux box and will try to figure it out ASAP.
OK - I have it building on Ubuntu with the following libraries: lib glut : : <name>glut ; lib openGL : : <name>GL ; lib openGLU : : <name>GLU ; lib X11 : : <name>X11 <link>shared ; lib Xext : : <name>Xext ; lib pthread : : <name>pthread <link>shared ; Changing X11 and pthread to link shared seemed to be the critical thing to get it working. I have committed the new Jamfile - please see if it works any better now...
Thanks!
You are very welcome - thanks for giving this a try (and not giving up!) Stjepan
participants (3)
-
Larry Evans
-
Mathias Gaunard
-
Stjepan Rajko