Setting Up a Dev Machine for Node.js

It seems every few months setup of whatever tech stack is always tweaked a bit. This is a collection of information I used to setup my box recently. First off, for the development box I always use nvm as it is routine to need a different version of Node.js installed for various repositories and such. The best article I’ve found that is super up to date for Ubuntu 18.04 is Digital Ocean’s article (kind of typical for them to have the best article, as their blog is exceptionally good). In it the specific installation of nvm I’ve noticed has changed since I last worked with it some many months ago. Continue reading “Setting Up a Dev Machine for Node.js”

Say Hello to Jon and Amy @ML4ALL!

Welcome the next two speakers I’m introducing: Jon Oropeza and Amy Cheng!

jon-oropezaML Spends A Year In Burgundy

Jon (@joropeza) is coming to Portland from Portland to speak to us about Cote d’Or in Burgundy! He’s a hacker, grape lover, and Portlander that loves a good smooth wine made out of those grapes he loves!

Jon being a both a weather nerd and a wine nerd, he was curious if machine learning could be applied to vintages in an area where a) quality of wine varies greatly by year b) most of that variance has to do with weather patterns and different aspects of temperature and precipitation c) there are known, reasonably-objective classifications or ‘scores’ of each vintage, such that we could say that such-and-such year with such-and-such weather produced wines of good/bad/mediocre quality.

Continue reading “Say Hello to Jon and Amy @ML4ALL!”

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”

Oh Gerd, It’s Friggin’ 2018 Already, I survived and here’s a retrospective!

Overall 2017 was a successful year, but the ride was an emotionally and physically brutal train wreck, figuratively and literally. Here it is the first and I’m recovering and hoping that 2018 is better. But before diving into 2018 I’ve got to recollect just a few things for 2017.

Peloton become Pelotech. For most of my work in 2017 I knocked out a few key projects for Pelotech. First was the build out, expansion, and management of their branding and online presence. Follow @Pelotechnology on Twitter, or for a few business links and topics they now have a LinkedIn Pelotech Page.

While also I got to step in and build some awesome CI/CD systems, software solutions, and modernized a number of projects for a variety of companies including Nordstrom, Impinj, and others. We used some pretty excellent tools too including Rancher, Drone.io, Kubernetes, and a host of others in addition to our regular stacks for Node.js, Go, and even .NET in some places. Joachim even knocked out an impressive .NET core app with React and other components; pt 1 & pt 2.

Beyond that I’ve started multiple courses that will be released this year, some with LinkedIn Learning (prev Lynda .com). The courses range from Terraform, to Kubernetes and Go, and related technologies. These have been a lot of fun to learn about, prepare, and setup for an audience ready to learn and use these technologies. I’ve always enjoyed teaching people that are curious and I’m sure I’ll do a lot of that in 2018 too.

.NET Fringe took place again this last year too. Again, it was an awesome lot of fun. Again, a great geek train crew. Again a lot of fun to lead the fringe bike ride. .NET Fringe has turned into more than I think Troy, Glenn, myself, or others ever really thought it could have. Hopefully we can keep it going, albeit 2018 is a bit cloudy so far, at least for me when it comes to organizing events.

I wrote a short retrospective on .NET Fringe and what makes a great conference, if you’re organizing and looking for that feel, this may be a helpful read.

Beyond just the professional I’ve become a mortgage and US homeowner statistic! Yay! I think. It was an inordinate amount of work in my opinion and the verdicts out on the actual benefits over time. But as for a place to live, having a home to return to every day, a home that will eventually be owned is a rather pleasant feeling.

Here toward the end of the year, December 18th was kind of a summary however amidst all the other things. I’ve wrapped up my work with Pelotech, survived a train wreck, and am looking forward to getting into some new projects this year (more on this real soon).

Other than these things, 2017 was a year I’d promised myself I’d lay low, maybe even drop the ball if necessary, and kind of just relax. I wasn’t real successful at that and I’ll just have to consider 2017 a failed extended vacation. For now, Phil Haack & Hadi Hariri summarized my sentiment perfectly.

Anyway, that’s my retrospective for 2017, now time to put together some of those resolutions for 2018!

__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.

Prerequisites:

  • 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.

Prerequisites

Before starting everything I went ahead and created a project repository on github for Oi to use waffle.io with. Waffle.io 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, README.md 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”