SEELI: Object Orientated CLI framework for Node.js

2014 Aug24

ommand line tools are a difficult thing to get right. I've never really been too happy with the more popular ones in the [node.js]( community. Nothing supplied all of the basic features or implementation style that I wanted. Most of them try too hard to be the interface when all I really want is something that is really good at parsing flags and options, and return input in a plain object. So I wrote my own. Let me introduce you to [Seeli]( ( *C-L-I* ), and object orientated, evented, and classy framework for building elegant Command line interfaces:


npm install seeli --save

Object Orientated

To create a new command, all

Read More
filed under:  cli npm packages terminal node.js

Summer of Sockets Part 2: Request and Response With ZeroMQ

2013 Dec29

eroMQ makes it incredibly easy to connect and communicate between individual applications in distinctive patterns. Last time we took a look at the simple **PUSH** / **PULL** socket types. The next types we'll take a look at are the Request / Reply ( **REQ** / **REP** ) sockets. You can [download]( the source code for the following examples if you would like to follow along.

Request & Reply sockets are probably the most familiar and easiest to reason about for web developers. This most obvious use case with REQ and REQ sockets, is a web server. A client ( REQ ) makes a request to the server ( REP ) and it waits until a response comes back. Unlike the PUSH socket,

Read More

Summer of Sockets Part 1: Playing With ZeroMQ and NodeJS

2013 Sep03

he last few months I've spent working distributed systems for web and tel-com systems. Web applications are notorious for being monolithic, tightly coupled pieces of software under a single code base. This just fine when you application really just needs to work within itself. When your application need to share data with other applications, possibly written in different languages, frameworks, or even off load long running tasks, things can quickly become a challenge. To rectify such problems, most developers reach for a central message queue like RabbitMQ. Now, RabbitMQ is a great piece of technology, as the tag line says, `It Just Works`. However, it posses a couple of interesting problems that has turned me off to it.


Read More

Keep NodeJS Alive With Uncaught Exception

2012 Jul25

odeJS is still a pretty young project, and as you might expect, things can sometimes go wrong with out any obvious reason as to why. The [http module]( for example, especially in some earlier versions of node, will just throw an error and die - bringing your application down with out batting an eye! While not the most desireable method, you can pretty much catch any error comming from a NodeJS process and react accordingly:

process.on( "uncaughtException", function( err ){
    //do something usefull
	console.log( err )

NodeJS exposes a global object called process that you can listen for the uncaughtException event oddly enough, which you can listen to. As long as

Read More

Create A File Watcher With NodeJS and Child Process

2012 Apr15

t is not uncommon in the life of a software developer to want to execute a series of tasks every time a file changes. It tends to come up more frequently in development, for example, you might want to concatenate a series of files, or send and email to an administrator, etc. It becomes even more beneficial to be able to watch all of the files in a given directory. Surprisingly, for as much as it seems to creep up, it tends not to be standard machinery it a large number of programming languages and their standard libraries. Luckily, [Node.js]( gives you all of the [tools](http://

Read More