Linux System Metrics with collectd

This tutorial assumes you have the following software installed. https://collectd.org https://www.docker.com collectd is a general purpose system metrics collection tool that supports various plugins for reading metrics from sources and writing results to destinations. Multiple sources can be read and then written to multiple destinations which makes collectd very flexible. For example, you can collect CPU, Memory, and Load information and write those results every 10ms to CSV, Redis, and RDD (we will get to that).

Go Made Me Return to College

A long time ago I gave a TEDx talk about how I ended up where I am and the choices I made. Most notably, the choices I made to transfer to many different colleges and eventually drop out. As I got more comfortable in my developer career at Harvard and then MadGlory I convinced myself that I never needed a formal education in Computer Science to do well. Convincing myself of that helped minimize the annoying itch I had that reminded me I never graduated, specifically from the school I worked my ass off to get into when I was a senior in high school, Rensselaer.

GopherCon 2017: Generating Hundreds of Video Catalog Feeds in Seconds

When lightning talks CFPs were announced for GopherCon 2017 I was hesitant. I had given plenty of talks before and a few lightning talks, which were to small crowds, but I’ve only been writing Go for 8 months, it would be my first GopherCon, and they had and impressive line up of speakers, so I wasn’t sure what I could contribute. That damn imposter syndrome kicked in pretty hard. However, I figured what the hell, and threw my hat into the ring to see if I would get selected.

Fuck Your Hustle

This word is used throughout the startup and tech worlds and it annoys the shit out of me. Not only does it seem to stroke the egos using it, but it is also being used in completely the wrong context. Both of these definitions indicate no decisions being made on the person being hustled. How does this have anything to do with successfully launching a startup, product, or completing any task that is worth a damn?

Go, Go import "container/list"!

On a few different occasions I’ve needed to keep a registry of interface implementations to iterate over later on. The first time I did it was to have define an EventWriter interface. // writers/writers.go package writers type Event stuct { Action string `json:"action"` Details string `json:"details"` CreatedAt string `json:"createdAt"` } type EventWriter interface { WriteEvent(event Event) } var Writers []EventWriter func Add(writer EventWriter) { Writers = append(Writers, writer) } Elsewhere, in my program I initialized a few implementations of EventWriter and added them to the list of available ones.

Self-Documented package.json

I read a google article the other day about a self-documented Makefile. The TL;DR is you can add comments to each of the commands in the Makefile. Then by just running make from the command line it will print both the command and the associated comment to explain the entire Makefile at a quick glance. Not only is this very helpful, but it also rids your README of this shit you constantly having to keep updated:

Build it Live: NASA Video App

Yet another appearance at Sharatoga TechTalks to cover building a NASA video app in 15 minutes with the Odd Networks developer platform. Even though I had a short amount of time I also went over how we built the platform using microservices to move as fast as we could to get an MVP. I have plans to elaborate on this topic and give a more in depth talk at other JavaScript conferences.

2015 Highlights

I posted a 2012 Highlights a while back and I’ve missed a few years so I figured I would do this again. Turned 33, my high school hockey number PRs: Squat 385, Deadlift 470, Shoulder Press 155, Front Squat 300, Snatch 185, Clean and Jerk 230 Became a part of the Jeep family Got a new touring hog A lot more epic artwork from the talented Abbey Saunders at Needlewurks Hit the 3 year milestone at MadGlory Co-started a new company, Odd Networks Published my first Xbox 360 app for the world’s first 24⁄7 Poker Network Became a maintainer on Seneca.

3 Years at MadGlory

This may have been the first job that when I look back over the years I am absolutely shocked with how much I have been exposed to and learned. I couldn’t be more grateful towards everyone I work with. After all, MadGlory would be nothing if it wasn’t for the people that work there and I am glad to call them my family. MadGlory opened its doors only 3 years ago, but over those years we have gone from a 4 person team with no office and a few clients to a team of 20+ in our now 2nd office.

Hot "require" Node Modules

Under normal circumstances when writing node apps all dependencies and code are packaged in the repo and deployed. Modifying any part of the app requires you to deploy again and reboot the server. However, I needed a way to hot require javascript code and execute it while the app was running so there would not be any downtime. I was able to achieve this using node core’s modules API to fetch a string of javascript from a database and execute it within the context of my node app.

PRd - A Side Project

I am becoming a regular at speaking at Sharatoga Tech Talks lately. Its a really nice low pressure venue to not only practice public speaking, but also share what is going on with my local tech community. This past meetup I shared my current side project that highlights one of my non-tech passions, fitness and weightlifting. PRd has been out for over a year and I am currently rearchitecting it for the next major release.

Side Projects

I’ve been hearing a lot of chatter about side projects lately. First was from fellow Glory Lord, Mubs, when he gave a talk at Sharatoga TechTalks in February 2015. He is basically the king of side projects north of Albany, NY as far as I am concerned. So what he had to say was very inspiring. A few weeks later Twitter started getting more activity about side projects and then one very popular dev’s tweet came into my timeline about his side projects.

Sharatoga TechTalks: git a Free, Highly Scaled Web Host

It was fun to give a quick talk to educate people about leveraging GitHub as a web host for basic websites at the November Sharatoga TechTalks. From the discussions afterwards it sounded like everyone learned something new which is always a plus. Some even had some mind blowing experiences! The slides from my talk are available online and on their own GitHub repo. Other talks from that night were: “Machine Learning and Procedurally Generated Rap Lyrics” by Max Walker “The Art of Design and UI Sketching” by Joe Arcuri Photo Credit: Yuliya Peshkova

CrossFit or Strength and Conditioning?

Ever since starting CrossFit 2+ years ago, I have completely engulfed myself in learning as much as I can about fitness, nutrition, gymnastics, olympic weightlifting, powerlifting, and everything inbetween. The more I learned about what it takes to be a well-rounded athlete and how to generally be physically fit, the more I realized that “CrossFit” is just marketing and branding. Sure the activities you do as part of a CrossFit program span multiple disciplines, but all it needed was to be called something in order for the general public to associate with it and want to sign up.

Introducting Rebel Geeks

It is no secret that I enjoy a wide array of hobbies outside of work. CrossFit, weightlifting, fast cars, and loud bikes, just to name a few. As I became more invovled in the local web community I found a lot of my peers loved to ride as well. What a perfect opportunity to share even more interests with people I know other than just work-related stuff. My old boss gave me the nickname of “Rebel Geek” because of my hobbies aside from engineering web sites.

Single Command Static File Web Server

I have been building a lot of Javascript apps lately. I started to prototype one recently, but I did not want to set up an Apache host or a connect server to run it. I found a little gem of a command that was already installed on OSX. ~/Projects/static-app > python -m SimpleHTTPServer This was the perfect solution for me. SimpleHTTPServer is a Python library and when you send that to Python with the -m flag it tells Python to run the library as a script.

Getting Around Twitter's API Limitations for Embedding Tweets

Remember the good old days when you could just make an AJAX call to Twitter’s API, get some JSON back and embed your tweets as you saw fit? Then Twitter had to get all high and mighty about their display requirements. Now, in order to get your own tweets via JSON you have to now authenticate and register a widget and all sorts of bullshit. All for what? Displaying a single tweet of your own on your website?

TEDxAlbany: The Master of My Fate

I had the honor of giving my first conference talk ever at TEDxAlbany. It was a great experience and I plan to give more talks in the future.

Tag Your Config Files in OSX Mavericks

I have always liked the concept of tagging. To me it helps organize without being too restrictive as having a predefined set of categories or even folders that I would have to manage. So when I saw the new features of OSX 10.9 Mavericks I was happy to see that tagging made it on that list. Since I do a lot of web development and use the command line a lot I found that I have a shit load of configuration files all over my system.

I Love My Fear

This was sent to me by a very good friend of mine and it deserves to be shared. However, the author is unknown, so if anyone knows who it was please let me know so I can credit them. What do I fear? I fear stagnation and lack of progress. I fear never reaching my potential and being average. I fear being forgotten… The past… Yesterday’s news. I fear giving up and being passed by, going softly into that good night.

paleorecipes.io: for geeks, by geeks

I spend a lot of time sitting at a desk all day like most geeks do, however I take great pride in my health and physical fitness. I go to CrossFit 5-6 days a week and I am 100% paleo dieting 80% of the time. A lot of us at MadGlory do CrossFit and following the same diet as well. We always mention paleo recipes to each other and eat lunch as paleo as possible, but the more I think about I wonder how popular the paleo diet really is among geeks.

Be Framework Agnostic

Check out the new article I wrote on the MadGlory blog about being framework agnostic. Excerpt from the post: There are a plethora of frameworks available for developing awesome stuff for the web. Each and everyone one of us have our go-to framework, language, cms, etc. that we like. And we like them because we are comfortable with them. However, if you keep and open mind and stay framework agnostic I promise you that it will make you a much better developer.

CrossFit Games 2013

I never thought I would both to register for such a massive event, but considering it was only $20 I figured what the hell. It will definitely be an experience and a humbling one at that to see where I am ranked in comparison to the rest of the world. I have only been doing CrossFit for just over a year now and I have come a long way since day one of not be able to complete 100 wall balls in 20 minutes.

Statamic Minimal Theme

This isn’t much of an article, but more of an announcement about finishing up a Statamic Minumal theme inspired by blog network of http://svbtle.com. I kept it simple by only supporting blog posts and no pages. This follows Svbtle’s focus about writing down your thoughts. Some of Svbtle’s sites: http://dcurt.is http://philosophically.com http://wayoftheduck.com I still need to make it responsive unless someone else wants to tackle that and send me a pull request.

2012 Highlights

Looking back on 2012 I realized that a shit load of stuff happened. Here is what went down. Turned 30! Started eating paleo and began CrossFit at Feral CrossFit with Jaime and lost 35 lbs PRs: Squat 300, Deadlift 410, Shoulder Press 135, Bench Press 235 Finished building our house and moved in Finally went our honeymoon to Ireland a year after getting married Went from knowing no one in Upstate NY in the web industry to knowing a slew of amazing, talented people Switched jobs from Harvard to MadGlory Released my first open source plugin on GitHub Authored 4 GitHub repos Started blacksmithing with my buddy Jace Adopted another bulldog…James Redesign this site and switched it to Statamic Got a new Avy Sent my bike to Broadway Choppers to become badass Started and finished my right arm sleeve thanks to Justin Kopec Found out I have extended family living in Albany 2013 is going to be even better since 13 is my favorite number.

Quick and Dirty Local Domain Names for MAMP

More often than not I’ve been needing to run web projects under their own domain instead of the simple sub-folder method. One major advantage to developing this way is deployment to production only has to rely on the domain name instead of sub-folder paths which can get annoying to work with. Since I have always leaned towards MAMP as my goto stack for development on my Mac I figured I can just tweak minor pieces of it without having to set up a custom stack.

Farewell to Harvard and Onward to MadGlory

Well believe it or not after 7 memorable years working in the Harvard School of Public Health Information Technology Department I have decided to leave. I will be taking up my new post at MadGlory Interactive as Chief Architect. MadGlory is a web software company that creates awesome stuff for the video gaming and entertainment industry. This new direction is bitter sweet, but it was an opportunity I couldn’t pass up.

VPSCheap.Net Review for the Server Savvy

For a long time I considered paying for an unmanaged VPS that I can beat the crap out of by installing packages, running web apps, learning new shit, or whatever else I can come up with. I do have shell access to my DreamHost account that is running this site, but since its a shared host I’m limited to what can be installed because I don’t have full root access.

GitHub for Statamic, My First Open Source Plugin

Even though Statamic has only been around for a short while there have been some great plugins developed for it and I wanted to get in on the action. But what to make? I didn’t want to bite off more than I could chew considering the other projects I have going right now. Since Statamic has a decent following amongst web developers and designers I thought a plugin for them would be the best option.

Convention Over Configuration Web Servers

I am seeing more and more bootstrap projects for HTML, CSS, PHP, and the like. This is great because it really removes a lot of the configuration time when starting a new project so you can get down to business. Even frameworks for Ruby and PHP have basic web app skeletons in place before you being working. With both front end and middleware levels covered its time we focus our efforts on the backend servers that power these apps.

A New Focus, a New Design, and a New CMS

A few weeks ago I just happen to pull up my site (powered by Tumblr) and I noticed I had a shit ton of photos, quotes, and crap completely unrelated to my profession. I wanted my site to represent not only the professional me, but the personal me as well. However, I think I went a little overboard on the personal side. Because of that realization I decided to refocus my website and with that new focus came a new design powered by a new content management system.

Git's Hate for Folder Names Beginning with a Dash

I was working on HTML wireframes last night for a client and I was using a ”-” (dash) as a folder name to store CSS, images, and JS. This also kept it ordered at the top of the file list. client-website - css style.css imgs logo.png js jquery.min.js favicon.ico index.html You get the idea. I needed to delete a file from the repo inside the dash folder so I tried:

Always use the wpdb WordPress Database Class

I just had a troubleshooting conference call with a developer and we ran into an issue with a site I installed into a WordPress Multisite instance. At first glance it looked like it was a low-level PHP error since a foreach function was throwing an Invalid Argument error. Digging deeper the developer found that the code that he wrote was using a hard-coded table reference to wp_options. I told him we are using a multisite instance and the fix was clear.

First Day at Collar Collective

Yesterday I was lucky enough to spend the day down at the co-working space offered up by Agora Games. It has been dubbed “The Collar Collective” because of its location in Troy, NY, aka “Collar City”. Troy’s mark in history is due to its shirt, collar, and other textile productions. I was extremely happy to learn about this since where I grew up only 20 minutes away was Lowell, MA, which is also very well known for its historic textile industry.

Semantic Definition List

I have always felt awkward using the definition list DL markup because of its lack of structure. Especially when using the definition term DT and definition description DD tags. They have no association to one another other than the order they appear. You can see how there are 3 groups of terms and descriptions, but semantically they are not grouped together. I propose using a pre-existing list-related element to group each together.

When Relational Databases Attack!

I have been working with relational databases for years and they serve a great purpose, but with the new kid on the block, NoSQL, there is no reason why some data stores should still be using relational databases. I have worked on a system that stores all person directory information. This information includes things like Name, Email, Job Code, Office Location, Phone Numbers, etc. Obviously this is a very object oriented structure since a single person can have multiple email address, numbers, and so on so initially a relational database would make sense to use.

Case Insensitive Sorting in MongoDB

I learned, while working on an app for myself, that MongoDB always sorts case sensitive. Boo. The order of sorting is: Numerics (0-9) Upper Case Letters (A-Z) Lower Case Letters (a-z) A few examples of the documents I have stored are: { title: 'iRobot', tags: [...] } { title: 'Rambo', tags: [...] } { title: 'Con Air', tags: [...] } Running sort on the title field… col.find().sort({ title: 1 }) yields…