Category Archives: This-and-That

Life at WE – the 9 month mark

We were having a small get-together in our neighbourhood when the conversation turned to talking about our kids and how we want to raise them. Like most parents, we all have the desire to want to raise children that will empathise with others and how as parents we need to be the ones that guide our children. I was glad I was able to share some small part of the work that I was doing professionally. Continue reading Life at WE – the 9 month mark

2016: A Retrospective

This year is slightly different from previous years as I’m actually taking time off and I was able to get a head start on reflecting on the year that went by. 2016 was definitely an eventful year considering the following:

  • Passing of may well known celebrities like Prince, David Bowie, Leonard Cohen and Carrie Fisher just to name a few
  • Great Britain leaving the EU resulting in David Cameron to leave office
  • Donald Trump elected as the President of the United States of America
  • Number of reported shootings of both police and civilian population

Despite all that, the retrospective is meant for me to reflect on my own journey.

Continue reading 2016: A Retrospective

Close of another chapter – Kinetic Cafe

One of the very earliest memories of Kinetic Café is me walking into the Kinetic Café office. We had just extended the office into the old TBDC boardroom. David Dougherty was standing there and talking with Sady Ducross when I was introduced to him. He shook my hand firmly and said – “Welcome!” He then went on to tell me with excitement about how we’d use the space. “It’s going to be great! And we’re growing!” Those were the words that would echo the next two years at Kinetic Café. We grew from about 30 people to 70 people in a span of 2 years and we’d also roll out the first and best in-store retail technology platform today. Don’t get me wrong – there were lots of rough days. There were lots of long nights and weekends. There were a lot of tough decisions to be made. But at the end of the day, we made it. 2 years later, Kinetic is at a different evolution of its growth.

Continue reading Close of another chapter – Kinetic Cafe

2015: A Retrospective

This post is long over due. Another year has come and gone already and as per tradition, I wanted to take some time to reflect on the year that has gone by.
Year in Summary
My 2015 was a year that was mostly consumed by my work at Kinetic Cafe. At the end of 2015, I was able to launch the first commercially ready version of the Kinetic Commerce Platform. The best manifestation of the platform is the launch of ALDO’s mobile app as well as a number of in-store touch points that leverages the platform that was built. The platform was used to launch the app in both Canada and the US and did well with Black Friday as well as Boxing Day traffic on the system. We also launched a second client which is focused more on the malls. While it is a smaller launch in itself, it does represent a whole other use leveraging the same platform

Continue reading 2015: A Retrospective

Pentaho Data Integration crashing after El Capitan Update

I recently started to play around with Pentaho again for a side project at work and found that it was crashing whenever I tried to edit the database connection details. After doing a number of searches, I came across this Jira ticket in Pentaho. The gist of it is that El Capitan is not officially supported and causes Data Integration to crash. Fortunately there’s a fix out there that seems to work.

Continue reading Pentaho Data Integration crashing after El Capitan Update

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

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

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!

My thoughts on Android Wear after some months of use

I thought it’d be appropriate to write about my Smart Wear experience after the release of the Apple Watch news. To re-cap, I bought my LG G watch when it was first released and I still love my LG G watch. In fact, I feel naked without it on my wrist unlike the Pebble which I would remove for days and not worry too much about it. Here are some highlights of my experiences

It’s an extension of my phone

There’s much debate in the community about how the early Android Wear devices were not similar to a watch and how that was a detriment to the experience. I haven’t worn a watch since 1996 which is almost 2 decades ago. The key attraction for me was that it did more than my watch. If I need the time, pulling my phone from my pants is typically pretty quick and I don’t have to check for the time all too often during the day. However, not needing to pull my phone from my pants for every beep or buzz is a really nice thing. I can quickly flick my wrist to check the notification and dismiss it from my watch and carry on what I’m doing.

Google Now integration is REALLY useful

I used to think that Google Now voice recognition feature on my phone and tablet was useful in particular for task list integration. It’s significantly more useful when it’s part of the watch because my watch is always attached to my wrist and my watch is connected to my phone. I find that I’m using this feature significantly more now that it’s attached to my wrist.

One day’s worth of battery is enough if you can rapidly charge the battery

I actually get more then a day’s worth of battery on my LG G watch. I typically charge my watch just before I get to bed and then pick it up again in the morning. I don’t have the need to wear my watch overnight. However, there was a day when I forgot to charge my watch and when I woke up, there was 16% left of battery on it. I put the watch on the cradle, did my usual morning routine and picked it up again as I was leaving the house. The battery charge was up to 76% and lasted me until I went to bed the next night.

You can install apps on the watch

While the watch is primarily an extension of the phone, you still can install apps on it. The early apps such as Flappy Bird seemed ridiculous. However, something like WearBucks is a very practical use case of an app that works well without being tethered to a phone. In general, apps that act as a remote control for the phone work really well. Here are some apps I installed on my watch:

  • Wear Mini Launcher – gives you easy access to your apps and settings by swiping from the top left of the screen
  • Phone Finder – Allows me to find my phone when I can’t find it and locks my phone when the phone is out of range
  • WearBucks – Starbucks on my watch
  • Wear Hotspot – Turns on my phone hotspot without me having to take it out of my pocket

There is still some quirks and lots of room for innovation

The LG G watch is really a simple device. It’s a device connected over Bluetooth LE leveraging Google Play and Google Now services using a touch  and voice interface. Google really didn’t add much more capability then that. It’s still very much a minimum viable product which in many ways is a good thing. It’s shockingly simple to use and understand. A lot have been left to the development community to innovate on it. In general, I find apps that act as a remote control for the phone or provide quick and easy access to information seem to work really well as a general use case. One idea in particular surrounds the integration to the Internet of Things; there are more and more connected devices out there. The watch seems like a practical interface for things that can be done quickly such as opening a door remotely for a friend – Thanks, Roberto for the idea 🙂

After about 3 months of use, I still really LOVE my LG G watch. I love the simplicity and pragmatism of the watch.

Upgrading the OnePlus One to Android Lollipop

I was privileged enough to purchase my OnePlus One a while ago as it was the first Android phone that launched with CyanogenMod as its official ROM. Traditionally, ROMs like CM would be the first to market with upgrades but Google has been changing their policies by releasing their code to large manufacturers earlier to encourage them to upgrade their marquee models to the latest version of Android as soon as possible. While the ROM is not an official one, I decided to upgrade my OnePlus One to the Android Lollipop. After surfing around the web, I decided to come up with a summarized version of setting up my version of how I ended up installing Lollipop.

These steps are OSX specific

Preparation

You typically would need to unlock the bootloader, install a custom recovery and then root your phone in order to replace it with a new ROM. This steps that I’m outlining here would be the basic prep to do that and you can always replace your ROM with other OnePlus One ROMs that you choose to in the future. OnePlus actually has a pretty good write up on the site as well as this is a summarized version of those steps

  1. Installadb/fastboot,
    • Download Android SDK
    • Unzip it into a folder. I typically create temp in my user folder. To access it:
      mkdir ~/temp
      cd ~/temp
  2. Install Android SDKto access ADB andfastboot
    • Go to the folder you’ve unzipped (i.e. /Temp/Android-SDK)
    • Run the Android UI
       ./android sdk
    • Select and install Android Platform Tools
    • Once this is installed, you should see the platform-tools directory in the folder as well as the adb and fastboot files
  3. Unlocking theBootloader
    • Reboot the machine into Fastboot mode
      Shutdown the phone
      Press the Volume Up button followed by the power button. Ensure that the USB cable is not plugged in.
      If the phone is booted into Fastboot mode, you’ll see the “Fastboot Mode” text
    • Type “fastboot device” and you should see your device there
    • Type “fastboot oem unlock”
      This will also wipe your phone. You should see the Android robot being fixed and then it will automatically reboot your phone when you’re done
    • Once the phone is re-booted, turn on developer options
      • Go to settings → About Phone → Tap on Build Number 7 times
      • Tap back and you should see Developer Options
    • Turn on USB debugging and disable CM Recovery Protection
      • Go to Developer Options and select “ADB debugging”
      • Go back out to settings and re-enter Developer Options. You should see the “Update CM recovery” option
      • Uncheck the “Update CM recovery” option
  4. Download the latest version of TWRP for OnePlus One
    • Download the latest TWRP recovery
    • Copy the file to the platform-tools directory
    • Reboot the machine intoFastboot Mode by typing the following in theOSX terminal
      adb reboot bootloader

      or shutting down the device and rebooting it to the bootloader by pressing the volume up button and power

    • Install the custom recovery by typing
      fastboot flash recovery .img
    Once the recovery and bootloader is installed, you’re now ready to install any ROM of your choice. In this particular case, we’ll be installing CyanogenMod.
  1. Download the latest version of CyanogenMod 12 (Lollipop)
  2. Download the latest version of Google Apps
  3. Copy the files to the Download folder on your OnePlus One
  4. Shutdown the device
  5. Reboot the device in recovery mode by  pressing volume down and the power button
  6. Wipe your current data
    • Click on the Wipe Button
    • Click on Advance Wipe
    • Select Davlik Cache, System, Data and Cache
    • Swipe to Wipe the existing data
  7. Install the new ROM
    • Click on the Install button
    • Select the ROM installation file you had downloaded earlier
    • Swipe to Confirm Flash
  8. Install Google Apps
    • Click on the Install button
    • Select the Google Apps file you had downloaded earlier
    • Swipe to Confirm Flash

You’ll note that I didn’t go through the root process. Overall, I have to say that I’ve been pretty happy with the CM Lollipop ROM.

Updated: One thing to note is that CM12 is currently not an official build so I modified the link to point to the CM12 build. Also, special thanks to Jesse Anger for creating the original install instructions and doing the original testing