I'm becoming a Node.js developer

A little over a year ago I switched my primary development platform to browser-based JavaScript. Fargo came out of that, and soon there will be Fargo 2.

But we needed a solid back-end, and we didn't have one as of the end of the summer. It was obvious that it had to run in Node.js. I made a bunch of approaches, but it didn't come together until my longtime friend Brent Simmons gave me a Hello World server app in Node. That was what I needed.

Now I've been immersed in Node on Unix for the last few weeks. Last time I seriously used Unix was in the late 70s when I was a computer science grad student at UW-Madison. Unix is still the same, but the tools have developed, deepened. It's a little like time travel for me, having missed about 34 intervening years.

The Unix docs rarely put it together for you. I need to do X. Fumble around, and read a bunch of Stack Overflow pages, but I'm still not getting it. Or maybe I'm more acclimated to the client side, and I just have to develop stronger sea legs on server JS. I'll let you know.

Dan MacTough, also a longtime friend, helped guide me through the Unix/Node setup. I started by reading the code he released on GitHub, and eventually we Skyped so I could ask a series of questions. Every answer saved me days.

Now I have a server on an Amazon EC2 Ubuntu micro instance. It's running my fargoPublisher prototype. I have a pretty smooth deploy method with a folder shared between my desktop and the server, and the Macintosh Terminal program. I can upload a changed version of the software and reload the app in a few commands, a few seconds.

I miss the easy setup I had in Frontier. I could have a table of scripts that all ran concurrently. They could attach themselves to a port and off we go. Servers were easy to write and deploy. I want that same smoothness on Unix.

Ideally I'd like a browser-based Node app that let me manage a list of concurrently running Node apps. A checkbox next to each enables or disables (load or unload as necessary). Stats about each app, how long it's been running, how many hits its taken, etc. I want it to "just work" of course, which is most definitely not the Unix way.

I'm also considering various hosted setups. But I like having my own server. I'm trying to do it without a GUI interface, all through web interfaces and the command line.

Last built: Wed, Jul 9, 2014 at 11:23 AM

By Dave Winer, Wednesday, January 29, 2014 at 5:00 PM. Don't slam the door on the way out.