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.


About Dave Winer

Dave Winer, 54, pioneered the development of weblogs, syndication (RSS), podcasting, outlining, and web content management software; former contributing editor at Wired Magazine, research fellow at Harvard Law School, entrepreneur, and investor in web media companies. A native New Yorker, he received a Master's in Computer Science from the University of Wisconsin, a Bachelor's in Mathematics from Tulane University and currently lives in Berkeley, California.
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s