Boone Putney bio photo

Boone Putney

Software Development
Random Musings
Austin, Texas

HumanPlanet Soleer

Email LinkedIn Github


In continuation of last year’s post, I present my year in review.

Open Source Projects Published

Open Source Projects Contributed to

Start-ups cofounded

Side projects used daily, but not publicly published

  • Task Docket

Favorite books read

Full list of books read and my thoughts here.

  • Brain Maker: The Power of Gut Microbes to Heal and Protect Your Brain–for Life by David Perlmutter
  • In the Plex: How Google Thinks, Works, and Shapes Our Lives by Steven Levy
  • Les Misérables by Victor Hugo
  • Post Office by Charles Bukowski
  • The Signal and the Noise: Why So Many Predictions Fail - But Some Don’t by Nate Silver
  • Trust Me, I’m Lying: Confessions of a Media Manipulator by Ryan Holiday

TV Series Watched

  • Walking Dead - still
  • Game of Thrones - still
  • Parks and Recreation - amazing feel-good series with two or three of the funniest characters ever created.
  • House of cards - addictive, entertaining series, although often unrealistic (hopefully :)
  • Treme - well done portrait of New Orleans culture, with outstanding music.
  • Transparent - Amazon original series exploring modern family, relationships, and sexuality. Josh Pfefferman is the best.

Courses Taken

Fit in some decent continued education in between consulting and building Human Planet. Special thanks to Coursera, for having such quality classes available to ANYONE for FREE.

Programming Languages/Frameworks/Technologies/etc. used

  • Golang
  • React
  • PostgreSQL
  • Neo4j
  • PHP
  • MySQL
  • Drupal
  • Wordpress
  • Python
  • Django
  • Ruby
  • Jekyll
  • JavaScript
  • jQuery
  • SASS
  • CSS
  • HTML
  • AWS [Amazon Web Services]
    • S3
    • EC2
    • CloudFront
    • Route 53
  • Heroku
  • NetSuite
  • Azure

Review Plans for 2015

Be a better open source community member. Publish & Contribute.

Grade: B+

Contributor to 3 open source projects, and publisher of 1 open source project, and several highly trafficed develment blog posts.

Average at least one blog post per week.

Grade: F

Clocked in at 20 posts, although I had a feeling at the time, and am confident in retrospect, that this was a very ambitious number.

Complete at least one side-project.

Grade: A-

Completed the project, and I use it almost daily, but never attempted to bring it to market.

Build one hardware based project up to functional state. Currently thinking something in the mobile/bluetooth/WiFi area.

Grade: F-

Didn’t even start one :)

Network more, especially in the local Austin startup scene.

Grade: C+

Join co-founders network and met with a lot of interesting people, could definitely do more.

Improve time management and planning. Start each day with set goals.

Grade: D+

Improved performance, but definitely sporadic. This is a big area for improvement in the coming year.

Plans for 2016

  • Implement daily planning and time management
  • 25+ Blog posts (setting a more realistic goal this time)
  • Secure angel-funding for Human Planet
  • Beta launch of Human Planet

In continuation of last year’s reading list, here is my second-annual reading list. I finally made the switch over to Goodreads, so I don’t have to do this from memory this time! As usual, there’s an eclectic mix of genres.

In alphabetical order by title…

1Q84 (1Q84, #1-3) by Haruki Murakami

American Lion: Andrew Jackson in the White House by Jon Meacham

American Sniper: The Autobiography of the Most Lethal Sniper in U.S. Military History by Chris Kyle

Brain Maker: The Power of Gut Microbes to Heal and Protect Your Brain–for Life by David Perlmutter

Broken Windows, Broken Business: How the Smallest Remedies Reap the Biggest Rewards by Michael Levine

Crossing to Safety by Wallace Stegner

Dad Is Fat by Jim Gaffigan

Dead Wake: The Last Crossing of the Lusitania by Erik Larson

Freedom by Jonathan Franzen

Go Set a Watchman by Harper Lee

Growth Hacker Marketing: A Primer on the Future of PR, Marketing, and Advertising by Ryan Holiday

Heaven is for Real: A Little Boy’s Astounding Story of His Trip to Heaven and Back by Todd Burpo

Hooked: How to Build Habit-Forming Products by Nir Eyal

Hyperbole and a Half by Allie Brosh

I Am Malala: The Girl Who Stood Up for Education and Was Shot by the Taliban by Malala Yousafzai

In the Garden of Beasts: Love, Terror, and an American Family in Hitler’s Berlin by Erik Larson

In the Plex: How Google Thinks, Works, and Shapes Our Lives by Steven Levy

John Adams by David McCullough

Les Misérables by Victor Hugo

Let’s Explore Diabetes with Owls by David Sedaris

Liar’s Poker by Michael Lewis

Maude by Donna Mabry

Missoula: Rape and the Justice System in a College Town by Jon Krakauer

Not My Father’s Son: A Memoir by Alan Cumming

Pearl Buck’s the Good Earth by Pearl S. Buck

Post Office by Charles Bukowski

Rob Delaney: Mother. Wife. Sister. Human. Warrior. Falcon. Yardstick. Turban. Cabbage. by Rob Delaney

Shakespeare Saved My Life: Ten Years in Solitary with the Bard by Laura Bates

Steve Jobs by Walter Isaacson

Tales of the Jazz Age (F. Scott Fitzgerald Classic) by F. Scott Fitzgerald

The Art of Living: The Classical Manual on Virtue, Happiness and Effectiveness by Epictetus

The Atlantis Gene (The Origin Mystery, #1) by A.G. Riddle

The Atlantis Plague (The Origin Mystery, #2) by A.G. Riddle

The Atlantis World (The Origin Mystery, #3) by A.G. Riddle

The Autobiography of Malcolm X by Malcolm X

The Bell Tolls for No One by Charles Bukowski

The Blessing of a Skinned Knee: Using Jewish Teachings to Raise Self-Reliant Children by Wendy Mogel

The Book Thief by Markus Zusak

The Boy Who Harnessed the Wind: Creating Currents of Electricity and Hope by William Kamkwamba

The Corrections by Jonathan Franzen

The Cryptographer’s Way by Dr. Bradford Hardie III

The Grand Design by Stephen Hawking

The Life and Times of the Thunderbolt Kid by Bill Bryson

The Life Changing Magic of Tidying Up by Marie Kondō

The Lost City of Z: A Tale of Deadly Obsession in the Amazon by David Grann

The Martian by Andy Weir

The Miracle Morning: The Not-So-Obvious Secret Guaranteed to Transform Your Life (Before 8AM) by Hal Elrod

The Pearl by John Steinbeck

The Signal and the Noise: Why So Many Predictions Fail - But Some Don’t by Nate Silver

Things Fall Apart (The African Trilogy, #1) by Chinua Achebe

Three Weeks With My Brother by Nicholas Sparks

Trust Me, I’m Lying: Confessions of a Media Manipulator by Ryan Holiday

Twenty Thousand Leagues Under the Sea by Jules Verne

We Are Not Ourselves by Matthew Thomas

When to Rob a Bank by Steven D. Levitt

Where the Red Fern Grows by Wilson Rawls

Wild: From Lost to Found on the Pacific Crest Trail by Cheryl Strayed

Wool by Hugh Howey Omnibus Edition (Books 1-5 of the Silo Series) l Summary & Study Guide by BookRags

Yes Please by Amy Poehler

Zealot: The Life and Times of Jesus of Nazareth by Reza Aslan

Zero to One: Notes on Startups, or How to Build the Future by Peter Thiel

When recently doing some last minute Christmas shopping on Amazon, I was presented with a suggestion to check out the Coin 2.0, with surprisingly positive average customer reviews (4 stars visually). I had been a supporter of the Coin Kickstarter campaign the first go-around, but canceled after numerous delays and poor reviews on the beta versions.

Out of curiosity, I clicked on the link:

At quick glance, I found that all of the featured reviews in the main area and on the sidebar where largely negative. Then I looked at the Customer Reviews graph, and saw that the following breakdown:

  • 5 star: 32%
  • 4 star: 12%
  • 3 star: 7%
  • 2 star: 19%
  • 1 star: 30%

This didn’t look like it averaged out to 4 stars, so I quickly ran the numbers. The actual average was under 3 stars (2.97)!

I did some quick research, and found that Amazon had recently changed their formula to provide more weight to “newer, more helpful and verified customer reviews” link.

Sorting the reviews by both “most helpful” and “most recent”, I found both to largely be weighted towards negative (3 stars or less) as well.

After a quick search, I couldn’t find any specifics on Amazon’s “Machine Learning Algorithm.” I’m not sure what’s going on here, and I’m generally a fan of Amazon, but this seems a little disingenuous. Thoughts?

By default, Go get attempts to “get” repositories via https. Since our private repository was hosted on bitbucket, we needed to find a way around. Below is the quick and simple solution.

You’re probably having this issue if you’re trying to use “go get” and being prompted to enter: “Username for ‘’:”


1 $ git config --global url."".insteadOf ""


The command is fairly straight forward, but basically you’re telling git to access the repository via ssh instead of https url.

GitHub Equivalent

1 $ git config --global url."".insteadOf ""

We’re building the User Interface for Human Planet Concierge CRM with Angular.js. It’s a great framework, and we’re really enjoying working with it. There’s the whole Angular2 backwards compatibility issue, but only time will tell what comes of that.

Since we’ve been busy coding, it’s been hard to find the time to post recently, but I’ll try to do better. No promises :) Below is a little example of how to perform a shallow watch of an object and fire an event when any of it’s elements change.

Code (within our controller)

1 //watch collection to note differences in old and new users
2 $scope.$watchCollection(function () {
3     return Object.keys(vm.users);
4 },function(newValue, oldValue){
5     //perform any actions necessary on old and new values here
6     console.log(oldValue);
7     console.log(newValue);
8 });


the $scope.$watchCollection function takes two parameters:

The first parameter is observed via standard $watch operation and is examined on every call to $digest() to see if any items have been added, removed, or moved. Our first parameter in this example is a function that takes our target object and creates an array of the keys to watch for changes.

The second parameter is a function that receives the old and new values, and is called whenever the first parameter changes. In this example, we’re just logging the values.

Full directive definition

 1 (function() {
 2     'use strict';
 4     angular
 5         .module('app.modules.dashboards')
 6         .directive('myController', myController);
 8     /* @ngInject */
 9     function myController() {
10         var directive = {
11             bindToController: true,
12             controller: Controller,
13             controllerAs: 'myController',
14             restrict: 'A'
15         };
16         return directive;
17     }
19     /* @ngInject */
20     function Controller ($scope, $rootScope, $translate, $timeout) {
21         var vm = this;
22         vm.users = {};
24 	//watch collection to note differences in old and new users
25 	$scope.$watchCollection(function () {
26 	    return Object.keys(vm.users);
27 	},function(newValue, oldValue){
28 	    //perform any actions necessary on old and new values here
29 	    console.log(oldValue);
30 	    console.log(newValue);
31 	});
33 	/* other logic... */
35     }
36 })();