Viewing posts for the category fbp

microflow 1.0

Posted by: pangelo on April 15, 2014

One of the cool things I got around to doing for my Codebits presentation this year was to finally dust off and publish microflow, my experimental Python implementation of the basic Flow-Based Programming concepts.

This small library was very useful to me during the early stages of my research, when I was first exploring the ideas around Flow-Based Programming, but it never actually worked in the sense that you could build anything but very simple applications with it. So while I was going through the FBP book again while preparing for my Codebits talk I took the chance to finish off the rough edges of the library and update it to use Python 3. I also optimized it for readability, so other could use it as a learning tool or as the basis of other runtimes.

Sure, there are other FBP or FBP-like runtimes written in Python, like Kamaelia or protoflo, which are more robust and better performing, but if you are learning about the basics of Flow-Based Programming, it could be a simple example to start playing with the concepts in a very expressive and readable language.

So, if you have some time have a go at it and let me know what you think. I hope it can be as useful to you as it has been for me.

read more / 0 comments

Get in the Flow

Posted by: pangelo on April 14, 2014

I was lucky enough to attend Codebits again this year, and the event was awesome as usual. In the middle of all the things to see and do at the event I was able to present a talk again, this time focused on the topic of Flow-Based Programming. For those whose could not come to the event, here is the original talk description:

As software developers, every day we are faced with ever more complex systems to run our applications. Single machines are not enough. Now we need to orchestrate hordes of multicore CPUs, GPUs and DSPs to run our applications in a scalable, distributed way and this is hard.

Flow-based Programming is a programming methodology created by J Paul Morrisson at IBM in the 70s in order to solve everyday challenges he faced when developing large scale business applications. Based on a solid theoretical foundation and battle-tested on real-world applications (with one of them running continuously for the last 40 years), FBP is making a comeback as an effective model to reason about and implement data intensive, distributed applications, as can be seen by the growing interest in tools like NoFlo and Storm.

In this talk I will present the history and fundamental concepts of Flow-based Programming, and how it is different from other models like dataflow, functional and object-oriented programming. We will then use noflo to develop a small heterogeneous application using this methodology.

And here is the talk video:

I think the talk went well and that I managed to get the main ideas across, although looking back it probably sounded a bit confusing because I couldn't see my notes during most of the talk. I'll see if I can expand those notes a bit and post them as a follow-up to this post. In the mean time do check the other Codebits 2014 talk videos, there's lots of good stuff there.

Here's hoping to be able to present again next year to showcase dataflower to the Codebits crowd.

read more / 0 comments