Perhaps I should clarify to the members of this group that saying that
"IBM developed such and such..." is a bit of an over-simplification. In
the interests of historical accuracy, the various IBM mainframe
implementations of FBP were built, initially at the IBM Montreal Data
Centre, then via a customer engagement, then within IBM Canada Internal
Systems - no dialect of FBP was ever offered to customers, or officially
supported by IBM Corporate (although history might have been different
if it had been). We did try to get the Greater IBM interested a number
of times, but it never took off! Just thought I should clarify that :-)
Looks like FBP is picking up speed, at least in the JS world! Sounds
like the combination of Hook.io and NoFlo will be very powerful!
Perhaps we should add a NoFlo generator to DrawFBP...?
Minor question: can anyone tell me where the word Wakanday (Wakanda?)
came from?
Hi,
On Feb 24, 2012 5:53 PM, "Paul Morrison" <paul.m...@rogers.com> wrote:
> Thanks for pointing this out, Ged! As Ged says, excellent presentation, Henri! It was rather weird hearing myself referred to at a conference - but nice! Thanks, Henri!
My pleasure! :-)
Sorry for not sharing the link. I seem to have forgotten about it.
> Looks like FBP is picking up speed, at least in the JS world! Sounds like the combination of Hook.io and NoFlo will be very powerful!
Indeed. I haven't been able to proceed much in the last few months, but now we're participating in a major project where we will use FBP for routing signals from physical (and virtual) sensors between systems and making diagnosis based on them. So in addition to Hook.io there should be MQTT messaging for FBP as well.
> Perhaps we should add a NoFlo generator to DrawFBP...?
That would be great. There is a web-based UI that ships with NoFlo, but certainly we could also design things in DrawFBP.
NoFlo can already load graph definitions from two formats: JSON and "the .fbp language", but DrawFBP XML files could be easy to add as well.
Is the format documented anywhere?
/Henri
Ok, I'll look at it soon.
> Actually, I was thinking that, if you wanted to send me a complete NoFlo
> network specification, it should be simple enough to have DrawFBP generate
> it, similarly to its JavaFBP and C#FBP generator functions.
Here are some examples:
https://github.com/bergie/noflo/blob/master/examples/linecount/count.fbp
https://github.com/bergie/noflo/blob/master/examples/linecount/count.json
--
Henri Bergius
Motorcycle Adventures and Free Software
http://bergie.iki.fi/
Jabber: henri....@gmail.com
Microblogs: @bergie
Regards,
Paul
On 24/02/2012 1:05 PM, Henri Bergius wrote:
> On Fri, Feb 24, 2012 at 7:04 PM, Paul Morrison<paul.m...@rogers.com> wrote:
>> I have attached a sample .drw file - it's pretty self-explanatory, except
>> perhaps for the<id> <fromid> and<toid> fields, which relate the ends of
>> arrows to the blocks they are attached to.
> Ok, I'll look at it soon.
>
>> Actually, I was thinking that, if you wanted to send me a complete NoFlo
>> network specification, it should be simple enough to have DrawFBP generate
>> it, similarly to its JavaFBP and C#FBP generator functions.
> Here are some examples:
> https://github.com/bergie/noflo/blob/master/examples/linecount/count.fbp
> https://github.com/bergie/noflo/blob/master/examples/linecount/count.json
>
Either format is fine, though the JSON one is probably easier to parse
and generate. The .fbp format is more of a convenient shorthand when
defining graphs on the command line.
> Paul
/Henri
On 24/02/2012 2:24 PM, Henri Bergius wrote:
> On Fri, Feb 24, 2012 at 9:06 PM, Paul Morrison<paul.m...@rogers.com> wrote:
>> Great! Either format - or both? Maybe some time in the next couple of
>> weeks...?
> Either format is fine, though the JSON one is probably easier to parse
> and generate. The .fbp format is more of a convenient shorthand when
> defining graphs on the command line.
>
>> Paul
> /Henri
>
On Feb 24, 2012 10:12 PM, "Paul Morrison" <paul.m...@rogers.com> wrote:
> Your mention of parsing makes me think that you are thinking in terms of generating a rough diagram, and then pushing and pulling the blocks and arrows until it looks halfway decent! I haven't tried that, as it would be hard to do with a JavaFBP network, so I am curious
Well, eventually an editor probably should be able to both load and save such definitions. But indeed, "export to NoFlo" would be a great start!
NoFlo even has the possibility of providing a RESTful server API for manipulating a network, so one option would be going and modifying live FBP networks over the web ("save to server").
/Henri
On Mon, Feb 27, 2012 at 4:36 AM, Paul Morrison <paul.m...@rogers.com> wrote:
> a) I assume for now we will just generate the json text - correct?
Yep.
Eventually it would be interesting to also talk to the NoFlo remote
API so you could edit existing (and running) NoFlo processes. But for
now just saving the file format would be plenty.
> b) DrawFBP currently keys on the file extension - i.e. .java for
> Java, .cs for C#. I believe the extension for the json text
> is .json. If I use .json for NoFlo .json, what happens if another
> json language comes along? Suggestions?
Two options:
* We define a new file extension for NoFlo's JSON format
* We decide that the way NoFlo uses JSON is the way JSON-based FBP
network definitions should be done
> c) as per my previous question, we can use IIPs to generate "data"
> tags. Do you want me to generate the double quotes on the contents,
> or do you prefer to tap them into DrawFBP yourself?
The "data" key can contain any valid JSON-serialized information, so
it could be a string (double quotes), an object (in curly braces), a
number (no quotes needed), a list (square brackets), or a combination
of these.
This probably depends on how much freedom the UI in DrawFBP gives when
defining IIP contents.
On 27/02/2012 4:15 AM, Henri Bergius wrote:
> Hi,
>
> On Mon, Feb 27, 2012 at 4:36 AM, Paul Morrison<paul.m...@rogers.com> wrote:
>> a) I assume for now we will just generate the json text - correct?
> Yep.
OK.
>
> Eventually it would be interesting to also talk to the NoFlo remote
> API so you could edit existing (and running) NoFlo processes. But for
> now just saving the file format would be plenty.
>
>> b) DrawFBP currently keys on the file extension - i.e. .java for
>> Java, .cs for C#. I believe the extension for the json text
>> is .json. If I use .json for NoFlo .json, what happens if another
>> json language comes along? Suggestions?
> Two options:
> * We define a new file extension for NoFlo's JSON format
> * We decide that the way NoFlo uses JSON is the way JSON-based FBP
> network definitions should be done
I may have a way round this - but if it doesn't work, maybe option 1...
I'll try some ideas out.
>
>> c) as per my previous question, we can use IIPs to generate "data"
>> tags. Do you want me to generate the double quotes on the contents,
>> or do you prefer to tap them into DrawFBP yourself?
> The "data" key can contain any valid JSON-serialized information, so
> it could be a string (double quotes), an object (in curly braces), a
> number (no quotes needed), a list (square brackets), or a combination
> of these.
Didn't know that! That's great!
>
> This probably depends on how much freedom the UI in DrawFBP gives when
> defining IIP contents.
I'll make sure we have the maximum!
Thanks for the feedback!
- do NoFlo primitive components also have an extension of json?
- do you have a notation for the "sticky" connections in subnets - shown
as red IN and OUT in the attached diagram?
TIA
Paul
On Tue, Feb 28, 2012 at 2:11 AM, Paul Morrison <paul.m...@rogers.com> wrote:
> - do NoFlo primitive components also have an extension of json?
Subnets can be .json or .fbp. Components themselves are written in
JavaScript or CoffeeScript. So, usually .js
> - do you have a notation for the "sticky" connections in subnets - shown as
> red IN and OUT in the attached diagram?
There is no notation for this. The way subnets work in NoFlo is that
all available ports will be automatically exposed. So if there are
unattached ports, those will become ports of the subnet "component",
as will all ArrayPorts.
Although DrawFBP is essentially language-agnostic, I realized that
selecting components is the one area that is language-dependent.
Currently DrawFBP supports .class files in the "select component class"
dialog, and it filters out all except .class files (and directories, of
course) - so, for NoFlo, we can filter all except .js and .json files,
and directories. Oddly, I just realized that I don't know what the
corresponding construct is for C# - dll's...? Anyone know?
Also, for now, I will just not generate any connect code for the sticky
connections...
Regards,
Paul
On Thu, Mar 1, 2012 at 6:19 PM, Paul Morrison <paul.m...@rogers.com> wrote:
> I sent a new copy of DrawFBP to nemein.com - is this the right place?
Yep, thanks! I was able to draw a NoFlo network with it and make it run:
https://github.com/bergie/noflo/blob/master/examples/linecount/count.drw
So indeed, a very good start. I was wondering if it makes sense to
have full component paths in the file, as this makes projects more
difficult to share between people. A relative path might work better.
But still, now NoFlo has an IDE ;-)
There were some errors that I sent to you by email.
TIA
I have a version which attempts to check if brackets - {[( - in IIPs are
balanced. Quotes are checked to see if they are paired (and brackets
within them are ignored). I can send it to you, but I thought I would
check if you want some kind of escape so double quotes can be handled as
data (e.g. \") - I haven't put that in yet. Also, for the
blockclassname tag, I can just put the relative name into the generated
code if you want (i.e. the string after the last slash)... Please let
me know what you would prefer.
Regards,
Paul
On 02/03/2012 8:40 AM, Henri Bergius wrote:
> Hi,
>
> On Thu, Mar 1, 2012 at 6:19 PM, Paul Morrison<paul.m...@rogers.com> wrote:
>> I sent a new copy of DrawFBP to nemein.com - is this the right place?
> Yep, thanks! I was able to draw a NoFlo network with it and make it run:
> https://github.com/bergie/noflo/blob/master/examples/linecount/count.drw
>
> So indeed, a very good start. I was wondering if it makes sense to
> have full component paths in the file, as this makes projects more
> difficult to share between people. A relative path might work better.
>
> But still, now NoFlo has an IDE ;-)
>
> There were some errors that I sent to you by email.
>
>> Paul
> /Henri
>
On Sat, Mar 3, 2012 at 2:15 AM, Paul Morrison <paul.m...@rogers.com> wrote:
> I have a version which attempts to check if brackets - {[( - in IIPs are
> balanced. Quotes are checked to see if they are paired (and brackets within
> them are ignored).
Thanks! Starts to look very good. I've attached an example of a
working NoFlo graph. The .drw source can be found from:
https://github.com/bergie/noflo/blob/master/examples/linecount/count.drw
From here to running the program is quite straightforward:
* Open the .drw file in DrawFBP
* File -> Generate Network -> NoFlo
* Save as... -> filename.json
* Run with noflo filename.json