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
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.
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.
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.
- 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
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.
Year in Summary
- 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 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 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
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.
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
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
- Download Android SDK
- Unzip it into a folder. I typically create temp in my user folder. To access it:
mkdir ~/temp cd ~/temp
- Install Android SDKto access ADB andfastboot
- Go to the folder you’ve unzipped (i.e. /Temp/Android-SDK)
- Run the Android UI
- 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
- 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
- Reboot the machine into Fastboot mode
- 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.
- Download the latest version of CyanogenMod 12 (Lollipop)
- Download the latest version of Google Apps
- Copy the files to the Download folder on your OnePlus One
- Shutdown the device
- Reboot the device in recovery mode by pressing volume down and the power button
- 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
- Install the new ROM
- Click on the Install button
- Select the ROM installation file you had downloaded earlier
- Swipe to Confirm Flash
- 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