Node.js posts

I've been writing more or less regularly to this blog since 1997. Here you can find my posts categorized with "nodejs".

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 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.
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 GObject Introspection and Node.js

GObject Introspection and Node.js

Unfortunately I will not make it to GUADEC this year. However, here is something new for GNOME developers:

Running CoffeeScript on Microsoft Azure

It is quite easy to run CoffeeScript applications on Azure now that they support Node.js. You can mostly follow the steps of their Node.js and Express tutorial, with couple of modifications.

What is the appeal of server-side JavaScript?

Node.js showed up at the right time. PHP, currently the most popular server-side language, has been mired in community squabbling amidst a large effort to refactor its character encoding support, while also losing developer mindshare to the many excellent Ruby web frameworks that have appeared in the last few years. But Ruby web frameworks, and the language itself, have become...

A series of tutorials is very interesting, a framework that provides an Erlang-like actor model for Node.js. As the framework is quite new, documentation is a bit lacking. Here are some good links:
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?

Creating Objective-C applications with Node.js

Creating Objective-C applications with Node.jsNative-feeling Mac applications can now be built in JavaScript with NodObjC. This means OS X joins Windows 8 and GNOME in the group of desktop environments that can be targeted with the universal runtime. Hello World looks like the following:

Implement LDAP servers in JavaScript

Implement LDAP servers in JavaScriptI’m quite excited about this. LDAP has always been an interesting protocol, but with rather complicated implementations.
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:

JavaScript to CoffeeScript converter

JavaScript to CoffeeScript converterThis is an interesting option for making older JS codebases more easily maintainable CS, or when dealing with large patches sent in JS format to a CS project.

Node.js exercises in CoffeeScript

I attended the Node.js workshop in Falsy Values last week. As both Node.js and CoffeeScript are often short of examples, I decided to put my implementations of the exercises up on GitHub. This even resulted in a ReadWriteWeb post:

Falsy Values JavaScript conference

Node.js workshop starting. Poll of people participating… most write mainly PHP, Java, Python, Ruby. But everybody also writes JavaScript.

Node.js for Python Developers

Pythonistas could think of Node.js as the JavaScript equivalent of CPython, Twisted, and setuptools packaged together in a single binary residing server-side. It includes a package repository (npm), and is all about event-driven I/O. That means that every time you make a call that would block, you pass a callback to it, kind of like how Twisted’s Deferreds work.—Pete Hunt...

Using VIE for server-side templating

In our Palsu collaborative meeting tool we’re using VIE for server-side page generation. This effectively means RDFa is our templating language. The CoffeeScript looks like the following:

The Universal Runtime

In the coming years another billion people will get online. They will do it with their smartphones instead of what we consider computers. And their experience will be quite different from ours when we initially started using the internet.Despite its promises, it looks like the post-PC ecosystem will be a lot more restrictive than the PC one was even in...