Planet maemo: category "feed:766d7361580352c5efed0204e4ba8593"

Henri Bergius

Atreus: Building a custom ergonomic keyboard

2017-04-20 00:00 UTC  by  Henri Bergius

As mentioned in my Working on Android post, I’ve been using a mechanical keyboard for a couple of years now. Now that I work on Flowhub from home, it was a good time to re-evaluate the whole work setup. As far as regular keyboards go, the MiniLa was nice, but I wanted something more compact and ergonomic.

Click to read 2368 more words
Henri Bergius

Working on an Android tablet, 2017 edition

2017-02-10 00:00 UTC  by  Henri Bergius

Back in 2013 I was working exclusively on an Android tablet. Then with the NoFlo Kickstarter I needed a device with a desktop browser. What followed were brief periods working on a Chromebook, on a 12” MacBook, and even an iPad Pro.

Click to read 2728 more words
Henri Bergius

Process API for NoFlo components

2017-01-05 00:00 UTC  by  Henri Bergius

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.

Click to read 3344 more words
Henri Bergius

Full-Stack Flow-Based Programming

2014-02-06 00:00 UTC  by  Henri Bergius

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.

With Flow-Based Programming and the emerging Flowhub ecosystem, we can take this even further. Thanks to the FBP network protocol we can build and monitor graphs spanning multiple devices and flow-based environments.

Jon Nordby gave a Flow-Based Programming talk in FOSDEM Internet of Things track last weekend. His demo was running a FBP network comprising of three different environments that talk together. You can find the talk online.

Here are some screenshots of the different graphs.

MicroFlo running on an Arduino Microcontroller and monitoring a temperature sensor:

MicroFlo on Arduino

NoFlo running on Node.js and communicating with the Arduino over a serial port:

NoFlo on Node.js

NoFlo running in browser and communicating with the Node.js process over WebSockets:

NoFlo on browser

(click to see the full-size picture)

Taking this further

While this setup already works, as you can see the three graphs are still treated separately. The next obvious step will be to utilize the subgraph features of NoFlo UI and allow different nodes of a graph represent different runtime environments.

This way you could introspect the data passing through all the wires in a single UI window, and “zoom in” to see each individual part of the system.

The FBP ecosystem is growing all the time, with different runtimes popping up for different languages and use cases. While NoFlo’s JavaScript focus makes it part of the Universal Runtime, there are many valid scenarios where other runtimes would be useful, especially on mobile, embedded, and desktop.

Work to be done

Interoperability between them is an area we should focus on. The network protocol needs more scrutiny to ensure all scenarios are covered, and more of the FBP/dataflow systems need to integrate it.

Some steps are already being taken in this direction. After Jon’s session in FOSDEM we had a nice meetup discussing better integration between MicroFlo on microcontrollers, NoFlo on browser and server, and Lionel Landwerlin’s work on porting NoFlo to the GNOME desktop.

Full-stack FBP discussions at FOSDEM 2014

If you’re interested in collaborating, please get in touch!

Photo by Forrest Oliphant.

Henri Bergius


2013-12-12 00:00 UTC  by  Henri Bergius

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

Click to read 1562 more words
Henri Bergius

An update from the NoFlo world

2013-10-04 00:00 UTC  by  Henri Bergius

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

Click to read 1858 more words
Henri Bergius

J. Paul Morrison invented Flow-Based Programming while at IBM in 1969.

I ran into the concept in 2011 while trying to figure out a better way to create software. I read his canonical book on the subject, and decided to try and implement it in JavaScript. Thus, NoFlo got started.

It has been an honor to have Paul as a mentor in the process. In late June 2013 we flew to Toronto to meet him. What resulted was quite a thorough code review of NoFlo’s FBP implementation, and a video interview. The interview with Paul is finally online. Enjoy!

If you want to meet Paul in person, the next opportunity will be in the Toronto Flow-Based Programming meetup on September 11th. On the same week we also have my NoFlo talk in Zurich on the 10th, and Forrest’s talk in Berlin on the 14th.

In other news, the NoFlo Kickstarter campaign just hit 96%. Please help us get it funded so we can bring better flow-based tools to designers and programmers everywhere!

Henri Bergius

GeoClue rises again

2013-08-08 00:00 UTC  by  Henri Bergius

Those that have been following my blog for a longer time know that I’ve been talking a lot about making the Linux desktop and mobile platforms location aware.

Thanks to the amazing advances in adoption of mobile platforms, this dream has more or less become true, especially in the more widespread Apple and Android ecosystems. All these devices know where they are, and developers are coming up with different smart applications to utilize this information.

The free software world has been at risk of getting left behind. GeoClue, the location framework designed for these environments was in a state of flux for a long time with very little happening to it. But now we have GeoClue2, a rewritten implementation of the original idea.


LWN has a good write-up:

Zeeshan Ali spoke about GNOME’s geo-awareness, which is undergoing a rewrite. Geo-awareness consists of four major pieces, he said. The first is geolocation, or the “where am I?” question. The second is the opposite; the user wants to find a different location: a particular address, a nearby restaurant or gas station, or other points of interest. The third issue is routing, finding the best way to get between locations. Finally, there is the user interface topic: locations, points of interest, and routes all need to be presented to the user on a map.

GeoClue2 can determine location from four different sources: coordinates from GPS devices (the most accurate), the location of nearby WiFi access points (which is accurate to just a few hundred meters), the location of 3G cellular towers (which are accurate only to a few kilometers), and IP addresses (which are accurate only down to the city level).

A major shortcoming that the new service addresses is privacy:

GeoClue2 also offers better privacy controls; the previous version of the library would provide the current location to any application; with GeoClue2, GNOME will require the user to confirm location requests from each application.

Kudos to Zeeshan and the others involved for keeping the location-aware dream alive!

I haven’t personally been involved much in the free desktop world lately. This is mainly because I’ve been busy trying to change the worlds of web publishing and software development, but also because I don’t really have a desktop at the moment. Instead, I do my work with an Android tablet and a web browser with an attached keyboard. But despite that, I hope this will be picked up not only by GNOME, but by the other Linux ecosystems as well.

Henri Bergius

My interview on the origins of NoFlo

2013-08-06 00:00 UTC  by  Henri Bergius

Here is a video interview of me talking about the origins of NoFlo, the flow-based programming environment for JavaScript:

You’ve seen short pieces from this in the NoFlo Kickstarter video, but most of the material is new. This was shot when NoFlo turned two, and so I’m obviously spending some time talking about where things came from.

The video should work well to support the hacker’s perspective of our funding campaign. Please support us and spread the word!

It is pretty amazing to think that since my last post on Friday, we’ve almost doubled the amount of contributions. Thanks to all the nearly 500 backers who have already helped us to change the world of programming!

Henri Bergius

NoFlo Kickstarter, the hacker's perspective

2013-08-01 00:00 UTC  by  Henri Bergius

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!

Click to read 2632 more words
Henri Bergius

Leap Motion and the virtual interfaces

2013-07-27 00:00 UTC  by  Henri Bergius

The eagerly waited Leap Motion controller is now out, and reviews are pouring in. Most of them see the promise but find the current experience frustrating:

Click to read 1608 more words
Henri Bergius

The mobile-first Web

2013-06-07 00:00 UTC  by  Henri Bergius

The growth of mobile web users is staggering. While some of us have been browsing the web on mobile devices for nearly ten years, most of the world population is only now getting there.

Click to read 2386 more words