Viewing posts from April, 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.
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.
One of the nice opportunities afforded to the students in the UT Austin|Portugal program is the chance to make an short time visit to the city of Austin to get to know the UT campus and to visit faculty and research groups related to their research areas to explore opportunities for research collaboration and to prepare for a possible one semester stay as a graduate student or as an invited researcher.
I was very looking forward to this opportunity since my PhD started but I could only find the time to do it during the last week of May. The city of Austin is beautiful and very culturally active, well worth a visit on its own, especially during the Spring time.
On my first day, I had a chance to tour the RTF department's production facilities. I discovered resources for 3D projection, DCP creation, motion capture, surround sound production and reproduction, audio foley and mixing, video editing, as well as the audiovisual production material (cameras, lights, audio recording and studios). I alsoad the chance to talk a bit about my work with Keefe Boerner, the production facilities manager who kindly showed me around the place, and how it might be used to help automate the heterogeneous systems used in stage production (lights, audio, projections, smoke machines, etc.).
Next day, I met with Professor Luis Francisco-Revilla at the TACC VisLab. Professor Revilla had formerly been my instructor on the HCI Summer School at FEUP in 2012, and naturally our conversation flowed around HCI aspects of my work, especially in what regards to evaluation, i.e., how to measure success in face of the development goals, how to define what aspects we want to evaluate and how to setup user studies for it. On this day I also met Rob Turknett at the VisLab and he showed me around the lab's resources. We also had a brief chat about my work and how it parallels and complements some of the work being done at the lab. Rob is also one of the founders of the AMODA (Austin Museum of Digital Art) group and so we also talked a bit about the digital art scene in Austin. Also on that day I met fellow classmates living in Austin and visited the ATX Hackerspace.
On another day I had the chance to meet with Professor Sharon Strover and we had a really nice conversation about many topics related to my research and the Digital Media program. In the afternoon I met with Professor Donald Fussel in the CS department and I got to know a bit about the research his group is doing, especially work related to developing user interfaces for artistic creation, and he gave me some feedback on some specific aspects of my work. I also got to meet some of his PhD students.
On my last day at Austin, I briefly met with Professor Brian Evans, and we talked a bit about his research work and his experience with digital art student's projects. Later that day I met with Professor Bruce Pennycook at the Fine Arts department, and we talked mostly about open-source and creativity support tools, and he gave some very interesting critical feedback on the tools I'm developing from his perspective both as a researcher and as a practitioner.
Overall, I have really enjoyed my time at UT Austin and I met many nice people doing some really interesting work. This visit has really helped me refine the scope of my research and opened many doors for future collaborations.