What’s in my bag – the daily version

My daily needs is geared primarily towards my commute to work and the time I spend around the office. With most of my recent roles, it’s really rare that I’m at my desk. Also, the commute on the subway is the rare time of my day where I have to myself to read, write, code and sometimes just listen to music while I doze off. Since this is a daily commute version, I wanted to carry what would be the absolute essential and nothing more as weight becomes an issue very quickly as I’ll be lugging this in my bag daily

Continue reading “What’s in my bag – the daily version”

Commuting and my random gadgetry

I’m commuter and I started this blog post primarily to help me rationalize what’s in my bag as over the months I commute to work, my bag keeps getting heavier daily until I do a purge and begin that cycle again. For myself, I find I get this way when I’m not cognizant of what it is I’m trying to accomplish and loading up a bag with more stuff is always easy until it gets so full where it gets to the breaking point. Like many people, I’m a commuter in multiple aspects:
  • I travel to work daily on local public transit
  • I travel weekly to out of town for day trips and sometimes overnight trips
  • I travel yearly for vacation

Continue reading “Commuting and my random gadgetry”

Unable to re-install Windows 8

I decided to downgrade my computer from Windows 10 to Windows 8 today and was unable to re-install Windows 8 initially. Whenever I tried to install Windows 8, I kept running into the issue where I got the following error “We couldn’t create a new partition or locate an existing one.  For more information, see the Setup log files.” After banging my head for a while, I came across a number of articles including this one which I took the steps from.

  1. Remove all drives from the computer. This includes hard disks, usb disks and also any PCI-E disks you might have
  2. Reboot the PC with the Win 8 CD in and select repair
  3. Head over to the advanced tools option
  4. Once in the command prompt Type the following:
    SELECT DISK <whatever disk number you have>
    ASSIGN LETTER=<whatever disk letter you want it to be>
  5. Repeat the steps above for all other Hard Disks present but don’t make any other disks active
  6. Reboot and start the installation again

I think I ran into this issue primarily because I also dual boot my machine between Ubuntu and Windows and Windows 8 doesn’t seem to like seeing a GRUB partition in existence.

This works with Windows 8

Installing Ansible on Ubuntu

The easiest way to get the latest version of Ansible consistently is to not depend on the OS repositories (i.e. homebrew or apt) but rather through PIP.

Install the development tools

sudo apt-get install python-dev python-setuptools build-essentials

With that install, you should get easy_install as well

Install PIP

sudo easy_install pip

Now with PIP installed, you can quickly install Ansible

sudo pip install ansible

I found that I needed to install python-dev and build-essentials to compile any of the necessary files

Hope this helps!


Organizing Ansible

While we’ve been using Ansible for almost a year at Kinetic Cafe, I’ve been spending a lot more time with it at a personal level. A big part of it is that I tend to really like being familiar with the tools that my team uses at work and the other is because I actually have a lot of home and cloud servers running because I tend to like being familiar with the tools that the team uses at work. Ansible’s strength stems from the idea that you can ssh to a server and perform a series of tasks based on modules already built for you. At it’s core are concepts like inventories, roles, handlers, dependencies and variables but then allows users to use it in many different ways within that structure. However, this flexibility lead to chaos when I started to use it so I took some time organizing Ansible in a meaningful way for my home infrastructure.

Continue reading “Organizing Ansible”

Problems updating therubyracer gem in Yosemite

I decided to run a bundle update on one of my core projects today and lo and behold, I received the following error:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

 /Users/kelvin/.rbenv/versions/2.2.0/bin/ruby -r ./siteconf20150415-9556-1l623l4.rb extconf.rb 
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling accessor.cc
clang: warning: argument unused during compilation: '-rdynamic'
In file included from accessor.cc:1:
In file included from ./rr.h:6:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:265:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__bit_reference:15:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:628:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:604:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iterator:341:10: fatal error: '__debug' file not found
#include <__debug>
1 error generated.
make: *** [accessor.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/kelvin/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2 for inspection.
Results logged to /Users/kelvin/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/therubyracer-0.12.2/gem_make.out
An error occurred while installing therubyracer (0.12.2), and Bundler cannot continue.
Make sure that `gem install therubyracer -v '0.12.2'` succeeds before bundling.

It turns out that there is an issue with the command line tools in Xcode 6.3. So you have to revert back to Xcode 6.2. For a full reference, here’s the link from StackOverflow where I got my information from.

Unfortunately, there’s not an easy way to directly link to the download but here’s the link to the general Developer Downloads from Apple



My first forray into Ansible

Learning Ansible has been on my to-do list for a very long time now but I finally found the time to learn it, play with it and even write scripts to

  • create a server on Vultr
  • configure a server based on my preferred configuration
  • deploy an Apache server and a MySQL server
  • Configure the Apache and MySQL server for WordPress
  • Restore my old WordPress install to the new WordPress install

Continue reading “My first forray into Ansible”


Using FullContact to responsibly declare Contact Bankruptcy


I decided to declare Contact Bankruptcy – it’s based on the premise of email bankruptcy where you delete all your emails and assume that if you’ve missed any critical email, the original sender would email you with a reminder of sorts. When I declared contact bankruptcy, it was the idea of deleting all of my contacts and starting again.

For most people, this is probably not an issue. I’m actually often times shocked about how laissez faire most people are about their contacts. Not me. I’m obsessed with information correctness especially about personal information especially contact information. To give you some context, I’ve been managing my personal information electronically since around 1995. I’ve countless desktop software (i.e. Lotus Organizer, Microsoft Outlook, Palm Desktop) before transitioning to various online services (Google Mail, Yahoo, Microsoft Hotmail, Plaxo, Gist). As a result of porting data from one system to the next, I have all of the issues that come with large ETL projects and it’s resulted in really dirty contact data. Of all the issues, the ones that drive me most mad is that I have contacts who are either irrelevant (i.e. contact information is no longer valid so I can’t contact them anyway), information that is incorrect (fields filled with incorrect information due to a messed up export/import) and contacts that have been incorrectly merged. One particular pet peeve – I have well over 300 contacts that have an anniversary date of Dec 31, 1969. In itself may seem harmless except that on New Year’s even, I have 300 recurring events of fictional anniversary dates. The most telling sign for me is that my contact list is over 3000 contacts long and I sure don’t know 3000 people. So I decided to declare contact bankruptcy.

Continue reading “Using FullContact to responsibly declare Contact Bankruptcy”


Installing KVM on Ubuntu

Over the years, I’ve tried a number of virtualization engines but I’ve recently settled for KVM for the home. Virtualbox is great for a desktop but KVM is extremely light and has all the features I look for when it comes to a server version for the home. Here are my install steps to install KVM on Ubuntu

Continue reading “Installing KVM on Ubuntu”


2014: A Retrospective

As per tradition, I wanted to take some time to reflect on the year that passed and share publicly about my year. I’ve found that it’s an easy way to keep myself accountable to myself.

Year in Summary

2014 was a year of some pretty big changes both personally and professionally. From a professional perspective, I left WordJack for another adventure namely Kinetic Cafe. WordJack was an awesome experience  and a company that’s run by some pretty fantastic people. I’m proud of the time that I was able to spend at WordJack and also the things the company was able to accomplish during my stint there. I’m honoured to be a contributor to their success. Kinetic Cafe is a very different adventure altogether that deserves a focused entry by itself.
One of the oddities of 2014 was that traffic on my blog jumped massively. I typically got at best 1500 views a year on any pages. Traffic would typically be sourced from posts to my various social media profiles. This year, I average about 1500 views per month. I think most of the traffic stems from a handful of blogs about installing Plex, resolving some Rails issues on OS X and setting up Sublime for OS X. While the traffic numbers are flattering, the thing I’m probably most proud about is that my blogs are providing some value to the community that I draw a lot from. Numbers wise, I did write more in 2014 then in 2013 but still not quite a blog every 2 weeks. I also primarily focused on thekunit.com from a blog perspective. I’m still mixed about the various web properties that I have.
As part of the change of work, I’m now travelling to work by subway. My commute has increased about 2.5 hours a day. On the plus side, as my commute starts and ends at terminal stations, I’m usually able to get a seat so that commute time has given me some additional personal time which I never got while working from home. In that time, I get to read, write, code and sometimes sleep if I’m especially exhausted. I write some code every week now and check in to my personal repositories. I’ve spun up a few pet projects but none of them are ever at the point where they generate direct business value. I’ve even created a base Rails template of features that are common in most of the ideas I have.

Keep Doing

  • Keep coding – I enjoy coding and I’d like to continue to do that. It’s a good break from my day-to-day job and it allows me to invoke my creative side
  • Keep writing – writing is a good way for me to reflect on the things that I’m doing and observing. It also continues to force me to think through some of my ideas and opinions

Stop Doing

  • Stop working on too many ideas – I’ve started on a number of projects by myself as well as with others. None of them are far enough for it to actually be useful. While they’ve been gratifying personally as they’ve allowed me to spend some time writing code but they haven’t been useful beyond that
  • Stop allowing work to be consuming – work will always be crazy; I know that. While I’ve actively capped the amount of hours I work, I haven’t done as good a job of not let it consume my mind as well. I find myself being mentally exhausted and towards the end of the year, there was this dull fog floating over me where I was working lots but not necessarily focused or productive

Start Doing

  • Start reading more – I read a lot of blog entries to keep up with my work but I haven’t taken the time to do any leisure reading. My goal is to read 2 books for pleasure this year and 4 books for work.
  • Start focusing on 2 projects at any given time – I want to work only on two projects at any given point in time; one as a personal pet project and the other will be with whichever friends who want to work through an idea together
  • Start being more healthy – I need to work out more often. My goal is to work out at least 3 times a week
Happy 2015!