cover image for Flow-Based Programming, a way for AI and humans to develop together

Flow-Based Programming, a way for AI and humans to develop together

I think by now everybody reading this will have seen how the new generation of Large Language Models like ChatGPT are able to produce somewhat useful code. Like any advance in software development—from IDEs to high-level languages—this has generated some discussion on the future employment prospects in our field.
cover image for Building c-base @ 35C3 with Flowhub

Building c-base @ 35C3 with Flowhub

The 35th Chaos Communication Congress is now over, and it is time to write about how we built the software side of the c-base assembly there.
cover image for MicroFlo and IoT: measuring air quality

MicroFlo and IoT: measuring air quality

Fine particulate matter is a serious issue in many cities around the world. In Europe, it is estimated to cause 400.000 premature deaths per year. European Union has published standards on the matter, and warned several countries that haven’t been able to reach the safe limits.
cover image for asComponent: turn any JavaScript function into a NoFlo component

asComponent: turn any JavaScript function into a NoFlo component

Version 1.1 of NoFlo shipped this week with a new convenient way to write components. With the noflo.asComponent helper you can turn any JavaScript function into a well-behaved NoFlo component with minimal boilerplate.
cover image for Publish your data on the BIG IoT marketplace

Publish your data on the BIG IoT marketplace

When building IoT systems, it is often useful to have access to data from the outside world to amend the information your sensors give you. For example, indoor temperature and energy usage measurements will be a lot more useful if there is information on the outside weather to correlate with.
cover image for Get ready for NoFlo 1.0

Get ready for NoFlo 1.0

After six years of work, and bunch of different projects done with NoFlo, we’re finally ready for the big 1.0. The two primary pull requests for the 1.0.0 cycle landed today, and so it is time to talk about how to prepare for it.
cover image for Building an IoT dashboard with NASA Open MCT

Building an IoT dashboard with NASA Open MCT

One important aspect of any Internet of Things setup is being able to collect and visualize data for analysis. Seeing trends in sensor readings over time can be useful for identifying problems, and for coming up with new ways to use the data.
cover image for Flowhub IoT hack weekend at c-base: buttons, sensors, the Big Switch

Flowhub IoT hack weekend at c-base: buttons, sensors, the Big Switch

Last weekend we held the c-base IoT hack weekend, focused on the Flowhub IoT platform. This was continuation from the workshop we organized at the Bitraf makerspace a week earlier. Same tools and technologies, but slightly different focus areas.
cover image for Flowhub IoT workshop at Bitraf: sensors, access control, and more

Flowhub IoT workshop at Bitraf: sensors, access control, and more

I just got back to Berlin from the Bitraf IoT hackathon we organized in Oslo, Norway. This hackathon was the first of two IoT workshops around MsgFlo and Flowhub IoT. The second will be held at c-base in Berlin this coming weekend.
cover image for Two hackathons in a week: thoughts on NoFlo and MsgFlo

Two hackathons in a week: thoughts on NoFlo and MsgFlo

Last week I participated in two hackathons, events where a group of strangers would form a team for two or three days and build a product prototype. In the end all teams pitch their prototypes, and the best ones would be given some prizes.
cover image for NoFlo: six years of JavaScript dataflow

NoFlo: six years of JavaScript dataflow

Quite a bit of time has passed since my two years of NoFlo post, and it is time to take another look at the state of the NoFlo ecosystem. To start with the basics, NoFlo is a JavaScript implementation of Flow-Based Programming:
cover image for Edit as project and Flowhub live mode

Edit as project and Flowhub live mode

In Flowhub you can create and edit full flow-based programming projects. The live mode enables introspecting running FBP systems. This weekend we rolled out Flowhub 0.19 which makes it easy to move between these modes.
cover image for Forget about HTTP when building microservices

Forget about HTTP when building microservices

Microservices — an architectural pattern we recommended in our 2012 International PHP Conference keynote — is pretty popular these days. There are many benefits to consider:
cover image for Conference talk videos

Conference talk videos

As I’m preparing for a NoFlo talk in Bulgaria Web Summit next week, I went through some older videos of my conference talks. Sadly a lot of the older ones are not online, but the ones I found I compiled in playlists:
cover image for Bosch Connected Experience: Eclipse Hono and MsgFlo

Bosch Connected Experience: Eclipse Hono and MsgFlo

I’ve been attending the Bosch Connected Experience IoT hackathon this week at Station Berlin. Bosch brought a lot of different devices to the event, all connected to send telemetry to Eclipse Hono. To make them more discoverable, and enable rapid prototyping I decided to expose them all to Flowhub via the MsgFlo distributed FBP runtime.
cover image for NoFlo 0.8 is out now

NoFlo 0.8 is out now

After several months of work, NoFlo 0.8 is finally out as a stable release. This release is important in that it brings the Process API for NoFlo components to general availability, paving way for the 1.x series.
cover image for Building NoFlo browser applications with webpack

Building NoFlo browser applications with webpack

I was looking at some of the Stack Overflow noflo questions yesterday, and there were a few related to building NoFlo for the browser. This made me realize we haven’t really talked about the major change we made to browser builds recently: webpack.
cover image for Redux-style middleware with NoFlo

Redux-style middleware with NoFlo

This post talks about some useful patterns for dataflow architecture in NoFlo web applications. We’re using these concepts to build Flowhub, the flow-based programming IDE.

Process API for NoFlo components

It has been a while that I’ve written about flow-based programming — but now that I’m putting most of my time to Flowhub things are moving really quickly.
cover image for The Grid: Web Design by Artificial Intelligence

The Grid: Web Design by Artificial Intelligence

As mentioned last year, I’m working on a Artificial Intelligence that can do web design. It is called The Grid. Last week I gave a talk at Lift Conference explaining how it all works.
cover image for Flowhub Kickstarter delivery

Flowhub Kickstarter delivery

It is now a year since our NoFlo Development Environment Kickstarter got funded. Since then our team together with several open source contributors has been busy building the best possible user interface for Flow-Based Programming.
cover image for Flowhub public beta: a better interface for Flow-Based Programming

Flowhub public beta: a better interface for Flow-Based Programming

Today I’m happy to announce the public beta of the Flowhub interface for Flow-Based Programming. This is the latest step in the adventure that started with some UI sketching early last year, went through our successful Kickstarter — and now — thanks to our 1 205 backers, it is available to the public.
cover image for Flowhub and the GNOME Developer Experience

Flowhub and the GNOME Developer Experience

I’ve spent the last three days in the GNOME Developer Experience hackfest working on the NoFlo runtime for GNOME with Lionel Landwerlin.
cover image for Building an Ingress Table with Flowhub

Building an Ingress Table with Flowhub

The c-base space station — a culture carbonite and a hackerspace — is the focal point of Berlin’s thriving tech scene. It is also the place where many of the city’s Ingress agents converge after an evening of hectic raiding or farming.
cover image for Full-Stack Flow-Based Programming

Full-Stack Flow-Based Programming

The idea of Full-Stack Development is quite popular at the moment — building things that run both the browser and the server side of web development, usually utilizing similar languages and frameworks.
cover image for Flowhub

Flowhub

We just opened the Flowhub website for pre-orders. Flowhub is the collaborative development environment for NoFlo and other flow-based programming systems.
cover image for NoFlo and GNOME

NoFlo and GNOME

As the readers of this blog know, I’ve been working on a Flow-Based Programming implementation for JavaScript in the form of the NoFlo project. The idea of FBP in nutshell is to separate the control flow of software from the actual implementation. Developers build reusable “black box” components that are then connected with each other through a graph that you...
cover image for An update from the NoFlo world

An update from the NoFlo world

Wow, September was a busy month. As you probably know, our NoFlo Development Environment Kickstarter succeeded with 115% funding. Thanks everybody!
cover image for Flying a Quadrocopter with NoFlo

Flying a Quadrocopter with NoFlo

The Parrot AR.Drone is quite a lot of fun, and also quite hackable. We recently got one, and the first thing to do was to connect the excellent Node.js ar-drone module with the NoFlo flow-based programming framework.
cover image for NoFlo coverage in August 2013

NoFlo coverage in August 2013

August was a big month for NoFlo. We launched the Kickstarter campaign, which went from 0 to 90% inside the month. The Kickstarter has brought quite a lot of attention to Flow-Based Programming, including lots of interesting new NoFlo contributions. There has also been quite a lot of media coverage, and I thought to collect these into one place. To...
cover image for Why did I reimplement Jekyll using NoFlo

Why did I reimplement Jekyll using NoFlo

Jekyll is a delightful piece of software. A Ruby application that turns your Markdown and HTML files to a nicely constructed static website. Since the generated site is static, you can deploy and serve it from anywhere with no security or performance concerns. As a matter of fact, this site is built with Jekyll.

Software is not text

It has been interesting to watch the reactions to Bret Victor’s The Future of Programming and our NoFlo Kickstarter. While much of it has been supportive, there seems to be a largish group of people that are offended by these notions. How dare we suggest that software could be made in other ways than textually?
cover image for NoFlo talk at c-base, August 9th 2013

NoFlo talk at c-base, August 9th 2013

I will be giving a talk on NoFlo tonight at 9pm at the c-base hackerspace in Berlin. If you’re interested in flow-based programming, feel free to join!
cover image for My interview on the origins of NoFlo

My interview on the origins of NoFlo

Here is a video interview of me talking about the origins of NoFlo, the flow-based programming environment for JavaScript:
cover image for NoFlo Kickstarter, the hacker's perspective

NoFlo Kickstarter, the hacker's perspective

This has been a big week for NoFlo, the flow-based programming environment for JavaScript. Yesterday we released NoFlo 0.4, which added support for running flow-based programs in web browsers. And today we launched our NoFlo Development Environment effort on Kickstarter. Before continuing, make sure to watch the video!
cover image for NoFlo: two years of flow-based programming

NoFlo: two years of flow-based programming

NoFlo — the flow-based programming system I started — is now two years old. I pushed the first commits to GitHub on June 5th 2011 from Hacker Dojo in Mountain View. To get us started with the story, I’ll let Wikipedia summarize:

Writing reusable, multi-platform JavaScript with Component

I’m currently in the process of porting the NoFlo Flow-Based Programming environment to run also in the browser. While there are some obvious differences in things like filesystem interaction and component loading, the goal here is to reuse as much of the same code as possible between these two platforms.
cover image for Thinking about the flow-based programming user interface

Thinking about the flow-based programming user interface

As readers of this blog already know, I’ve been working on the NoFlo flow-based programming environment for JavaScript. Lately the development effort has received a large boost from both the EU-funded SmarcoS Project and client work, and so the question of a flow design UI has become even more urgent.

Distributing NoFlo components via NPM

NoFlo is an implementation of the Flow-Based Programming model for Node.js. Today I’ve released version 0.2.0 which provides a handy new feature: the ability to share components via NPM.
cover image for NoFlo in JS.Everywhere

NoFlo in JS.Everywhere

Learn about NoFlo and flow-based programming in JS.everywhere conference. October 15th in Boston.
cover image for Business analytics with CouchDB and NoFlo

Business analytics with CouchDB and NoFlo

The purpose of business analytics is to find data from the company’s information systems that can be used to support decision making. What customers buy most? What do they do before a buying decision? What are the signs that a customer may be leaving?
cover image for Web server in NoFlo

Web server in NoFlo

Node.js powered web server, written with the NoFlo flow-based programming tool and visualized with jsPlumb. Performance isn’t bad, either:
cover image for Some notes from Desktop Summit 2011

Some notes from Desktop Summit 2011

As usual, Desktop Summit 2011 has been a lot of fun. I’ve been to most of the GUADEC and aKademy free desktop events in the past few years, but this was the first time I didn’t give a talk. Even that way, it was definitely worth spending a week in Berlin.
cover image for Desktop Summit, and some thoughts on Flow-Based Programming

Desktop Summit, and some thoughts on Flow-Based Programming

Like many, I'm currently in Berlin for Desktop Summit, the combined conference of the GNOME and KDE communities. It is a lot of fun to see all the familiar faces, and talk about the different projects going on! Now, one of the things I've talked about with people is NoFlo, my new tool that brings Flow-Based Programming to Node.js. What...