My Node.js Story

Once upon a time in a part of the tech universe far far away, there was a general consensus to block all JavaScript from browser execution. It was the way things were because JavaScript was seen as harmful. You see, the early miscreants of that time had used JavaScript to write all sorts of problematic code that would attack, steal, or otherwise undermine the data one sent across and received on the internet. This is the time I could have started learning JavaScript, but because of its horrid reputation I stayed far away and wrote C, C++, C#, Java, and event some RPG, COBOL, Pascal, and some other code. It was glorious, and the languages were beautiful in their own ways, while JavaScript was shunned by almost everybody in that tech universe! **

Today, things aren’t all that much different, but we make it easier for the whole horde of miscreant scripters to write problematic code in JavaScript. The difference is we allow it everywhere and just try to catch it and prevent execution. Thus, different, but the same, it’s a crazy world we live in.

I started picking up a little JavaScript at the tail end of 2007, when the “JavaScript: The Definitive Guide” was the top book to delve deeply into using JavaScript. It wasn’t another year until the seminal “JavaScript: The Good Parts” cut down the size of what one really needed to delve into by removing the cruft and focusing on the good parts. Slowly, JavaScript was finally starting to take shape as something useful.

Writing JavaScript at this time was a mutant challenge of having it look like Java while being organized like a trash pile of scripts that had no way to manage dependencies or otherwise. I mean, NPM was years away from existing, and really the concept of libraries in JavaScript seemed to be a foreign concept at the time.

2008 rolled around, “JavaScript: The Good Parts” came out, the changes started rippling through the industry and as traction started to mount. The penultimate event occurred the following year in 2009, which at the time almost nobody noticed. Dahl started Node.js at Joyent to enable server side JavaScript code use. At the time, many were flummoxed by the notion, weren’t confident in the single threaded event loop, and overall its release and the project continuing were in jeopardy from this point.

But the project continued and persisted!

Continue reading “My Node.js Story”

Kubernetes 101 Workshop

Today I TA’d (Teacher’s Assistant) a course with Bridget at GOTO Chicago Conference. There were a number of workshops besides just the Kubernetes 101 like; Working Effectively with Legacy Code with Michael Feathers (@mfeathers), Estimates or NoEstimates with Woody Zuill (@WoodyZuill), Testing Faster with Dan North (@tastapod), Data Science and Analytics for Developers (Machine Learning) with Phil Winder (@DrPhilWinder), and so many others that I’d love to have multi-processed all at the same time! Digging through Kubernetes from a 101 course level was interesting, as I’ve never formally tried to educate myself about Kubernetes, just dove in. My own knowledge is very random about what I do or don’t know about, and a 101 course fills out some of the gaps for me.

The conference is located in a cool and sort of strange place for a conference, out kind of in the lake, called the Navy Pier. Honestly, I dig it, it’s a cool place for a conference. I enjoyed the ~15 minute walk from the hotel to the location too, because it’s right there on the tip of the pier, as shown in the fancy map below.


The workshop is going well. Bridget is filling up student’s brains and I’m going to dork around Kuberneting some Cassandra and Node.js for my talk. I’m pretty stoked as the talk has given me a good excuse to delve into some Node.js again, from a nodal systemic viewpoint, “Node Systems for Node.js Services on Nodes of Systemic Nodal Systems” this Thursday.

__2 “Starting a Basic Loopback API & Continuous Integration”

In this article Keartida is going to dive into setting up a basic Loopback API project and get a build of that project running on a continuous integration service. In this example she’s going to get the project setup with Codeship.


  • Be sure, whichever system you are using, to have a C++ compiler installed. For Windows that usually means installing Visual Studio or something, on OS-X install XCode and the Developer Tools. On Ubuntu the GCC compiler and other options exist. For instructions on OS-X and Linux check out installing compiler tools.
  • Ubuntu
  • OS-X
  • For windows, I’d highly suggest setting up a VM of Ubuntu to do any work with Loopback, Node.js, or follow along with this material. It’s possible on Windows, but there are a number of things that are lacking. If you still want to make a go of using Windows, here are some initial setup steps here.

Nice to Haves:

  • git-flow – works on any bash, handles the branching and merging. Very nice scripts to have.
  • bashit – Adding more information to the bash prompt (works on OS-X, not Ubuntu or Windows Bash)

Continue reading “__2 “Starting a Basic Loopback API & Continuous Integration””

__1 “Getting Started, Kanban & First Steps for a Sharing App”

This is the first (of course the precursor to this entry was the zero day team introduction article) of an ongoing series I’m going to put together. I’m going to write this series from the context of a team building a product. I’ll have code samples and more as I work along through the material.

The first step included Oi Elffaw having a discussion with the team to setup the first week’s working effort. Oi decided to call it a sprint and the rest of the team decided that was cool too. This was week one after all and there wasn’t going to be much else besides testing, research, and setup that took place.


Before starting everything I went ahead and created a project repository on github for Oi to use with. is an online service that works with github issues to provide a kanban style inferface to the issues. This provides an easier view, especially for leads and management, to get insight into where things are and what’s on the plate for the team for the week. I included the default node.js .gitignore file and an Apache 2.0 license when I created the repository. Github then seeds the project with a .gitignore, and the license files.

After setting up the repository in github I pinged Oi and he set to work after the team’s initial meet to discuss what week one would include. Continue reading “__1 “Getting Started, Kanban & First Steps for a Sharing App””

Nordic.js and .NET Fringe

Ok, so many of the conferences out there you’re going to get fed the company line. You’ll probably experience some odd behaviors and people pushing product on you. If you’ve got the same feeling about conferences as me, and you’d like to experience these things at a conference:

  • A diverse audience of many different people from many different places.
  • You’d like to talk to others that are passionate about the future direction of technology and what we can create with that technology!
  • Listen and watch presenters provide insight to technology, ideas, and spaces that I don’t regularly get to hear about or discuss.
  • Meet many new friends, build my cohort of coders, and learn from each other.
  • Have a good time, relaxed, and not under the pressure of being sold things.

…then these conferences are for you. Seriously, I wouldn’t and won’t ever direct anybody to corporate conferences anymore except maybe in super rare occasions. The conferences to attend are the grassroots, community organized conferences like these two! There are too many other truly awesome conferences where the future is being discussed and made RIGHT NOW! There’s a few lined up that I’ll be attending and am currently working with as an organizer. Here’s the top two RIGHT NOW!

Continue reading “Nordic.js and .NET Fringe”

My Train of Thought on JavaScript, Web Analytics, & Segment

Beware, this is my brain dump as I attempt to figure out Segment integrations. It might seem disconnected at first but I’ll make every effort to loop things back around. First a few pieces of context, or more simply my goals for this blog entry:

1. My goal here is to implement a server side integration with Segment that allows for data, which flows through their system, to end up in another system.

2. The term, it appears, for the software one would build and deploy to their system for them to feed data into another system is called an integration. There is a long list of the integrations that they have available today. It’s so long, that Segment actually has a search feature and all of the integrations divided into sub groups of integrations by advertising, analytics, marketing, sales, support, developer, and user testing.

Continue reading “My Train of Thought on JavaScript, Web Analytics, & Segment”

I’m so mad!!! My response to the fork of node.js to io.js!

I’m so mad!!!

No, actually I’m not. This is cool.

It’s so confusing! No, it’s actually not. Use your learnings and read this Node Forward and read Max’s @maxogdenWhat you need to know.” gist.

It’ll be so hard to test this and test with node.js. Not really, again, read the threads there are a million different ways that you’ll be able to setup a clean build against either while keeping both around on your dev machine. Again, repeating myself, this is cool.

Summary for Devs: This is cool. It’s not going to wreck your projects. Just read up on it and it’ll all be a most excellent journey.

Summary for Decision Makers: Read @eranhammer‘s blog post here. TLDR; is, don’t second guess your decision to go with Node.js, don’t flip out about a Node.js or io.js investment, this isn’t anything more than a healthy ecosystem at work. It’ll be cool.