Summer Goals

For last term’s goals click here.

My goals last term went pretty well so I am going to aim high again.

Objective: Maintain strong academic achievement

Key Results:

  • 9X% in CPSC 213

  • 9X% in CPSC 221

  • 9X% in CPSC 310

  • 8X% in CPSC 320


Objective: Personal enrichment and learning

Key Results:

  • Make major improvements to my Android app: SS Log

  • Create a MEAN (MongoDB, Express, AngularJS, node.js) stack web application

  • Read 5 books (not for a class)

  • Average one blog post a week

  • Apply for an average of 5 jobs a week until I get on

  • Do something “interesting” once a week

The last one requires a bit of an explanation. It is very easy to want to spend any free time watching Netflix, but there are so many things to see and do in Vancouver during the summer that I really want to try to make sure I am not constantly doing that. Examples of what would count is a challenging hike, or visiting somewhere I have never been before.


Objective: Improve health and fitness

Key Results:

  • Average four 20+ minute fitness sessions a week

  • Walk 8,000 steps at least 5 days per week

  • Bike 30 minutes a week

  • Average 7:45 of sleep a night

Scoring my 2014 Winter/Spring Goals

About 4 months ago I posted a bunch of goals for the term on my blog. I wanted these goals to be public to keep me accountable. So, now that the term is over I am going to score how well I achieved them.

Objective: Maintain strong academic achievement   ( 0.875 )

Key Results:

  • 8X% in STAT 302     ( 1.0 )

  • 9X% in MATH 221    ( 1.0 )

  • 9X% in CPSC 210   ( 1.0 )

  • 8X% in COMM 486a   ( 0.5 )

So, not all my marks are actually in yet, so I will have to update this when I get the last but I will provide scores based off my pre-final mark and my estimate for how well I did on the final. In this case, I am giving myself a 1 if I reached my goal, and 0.5 if I am within 5%.

Objective: Gain experience through personal projects and self-direct learning ( 0.5375 )

Key Results:

  • Complete two non-trivial Android apps   ( 0.5 )

  • Successfully complete two hackathon events ( 0.4 )

  • Complete one Udacity data science course   ( 1 )

  • Average one blog post a week  ( 0.25 )

I developed, and published, one Android app. I ended up switching my focus after that to learning more about web development, an area I wasn’t as familiar with so I never made a second app. One of the hackathons I wanted to complete never happened, and the other had a topic I wasn’t super interested in. I did end up organizing my own little hackathon with some friends, which somewhat fell apart but I still spent three solid days working hard on web development so I am going to mostly count that.

Objective: Improve health and fitness    ( 0.57 )

Key Results:

  • Average four 20+ minute fitness sessions a week   ( 0.8 )

  • Walk 5km+ every day    ( 0.9 )

  • Deadlift 220lbs, Squat 190lbs, Benchpress 180lbs   0 )

I average four sessions a week for about the first half of the term, but certain bio-mechanical issues got in the way of continued success. However, over the last month or so I have been working really hard on physio to hopefully overcome some of those issues so I am still giving myself a decent rating. I only missed my 5km target 8 times over the 4 months, about half of the times was due to intense rain or snow, and most of the others were health related if I remember correctly. Because of my health issues I basically stopped doing all of those lifts so I have to give myself 0. I don’t know what I am currently capable of but it is probably less than that.

My overall score: 0.67

While that score is in the “sweet spot” for OKR’s, I can’t help but feel a little disappointed that I didn’t do better. Hopefully better health will help me with health and fitness goals for my next set of goals.

I’ll post my goals for the summer term in the next few days.

Basis Band B1 Fitness Tracker Review

The Basis Band is a watch that is full of sensors designed to give you a continuous read-out of your activity throughout the day. An accelerometer tracks steps, a heart-rate sensor tracks heart-rate and there are sensors that record perspiration and skin temperature. This gives the device the most comprehensive array of sensors of any activity monitor. It also combines input from all the sensors to estimate calories and to track sleep.

I bought the Basis hoping that it would give me the information to make quantitative health and fitness goals. Instead of telling myself to “be more active” I could quantify it by number of hours, estimated calories or number of steps.

If I had to sum up my thoughts on the Basis Band, I would say that it is a bit disappointing. Disappointing because it shows a lot of promise, but a number of little things combine to make the experience not what it should be.

The Good:

There are a lot of great things about the Basis. It tracks steps accurately giving you the number of steps and the time spent walking and running each day. It is very accurate at separating walking from running. When I did interval running where I alternated between running and walking, the basis was only a few seconds off the total time spent running, which was impressively accurate. Moves, which I reviewed a few months back, was completely confused and randomly marked some of it as running and some as walking.

The Basis tracks heart-rate quite well when I am inactive. When I am in the range of 50 – 80 bpm and my arms aren’t actively moving I get accurate and frequently updated heart-rate readings. With the data I can see some interesting things, like my heart-rate increasing about 10 bpm a little before writing an exam and then decreasing back to its normal rate over the first 30 or so minutes as I focus and relax. However, it falters as the heart-rate rises above this range which I’ll cover in “the bad” section.

Sleep tracking showing the various stages of sleep

Sleep tracking showing the various stages of sleep

The sleep-tracking feature is probably the best part of the Basis, although mediocre software hampers how useful it is. Using the array of sensors the Basis fairly accurately determines when you fall asleep, not simply when you get into bed or when you press a sleep button like most alternatives, and when you wake up. You can check the web or mobile app to see a graph of how your sleep breaks up into the various stages and they give you a percentage score based on total time sleeping as well as the percentage of time in each stage. Basis says that they calibrated this with sleep researchers at a number of universities and sleep centres, but it is difficult for me to comment on accuracy other than to say that it somewhat matches with my subjective feelings of how well I slept. It is at the very least good for tracking total hours of sleep.

The Mediocre:

The Basis Band on my wrist. It is a little clunky, but at most angles people will see it it looks decent.

The Basis Band on my wrist. It is a little clunky, but at most angles it looks decent.

Given that the device is a watch, which is more noticeable than other forms of activity trackers, aesthetics are important. The good news is that the chrome version is inconspicuous. The bad news is that it doesn’t look great. Personally for me, I am not looking for a fashion statement, but I don’t want something that is ugly. In the few months I have worn it only one person has asked about it, and I’ve never seen anyone stare at it. That is good enough for me, but if you are someone who is fashionable and cares more about their appearance this may not be for you.

Since getting the Basis I have worn it almost 24/7 and I have found it mostly comfortable. If I tighten up the band in an attempt to improve accuracy while I workout it can start to feel like it is digging in, but normally I barely feel it.

The Basis was unable to get heart-rate measurements while I cycled, and categorized me as cycling for only about half of the time I was actually cycling

The Basis was unable to get heart-rate measurements while I cycled, and categorized me as cycling for only about half of the time I was actually cycling

The band is supposed to also be able to track cycling but my experience with that is quite mixed. It completely missed a 20 minute bike-ride one time, and another time it considerably under-counted my time biking. Given my limited data points for cycling though I am not quite ready to say it is bad yet, although it is so far disappointing.

A few of my habits at the end of the week

A few of my habits at the end of the week

Basis uses a system of “habits” which allows you to set goals for a variety of metrics and then have your completion of those habits automatically tracked. Options are metrics like number of steps, sleep and wake times, length of sleep, minutes of activity, and some interesting options like getting up and moving at least once an hour between 9 and 5. There are quite a few of them and Basis makes you unlock them over time by completing your current ones. Most of the habits work well, and habits like the step count certainly help motivate me to walk more frequently, but a slow and poorly designed app makes checking on your progress painful, so ultimately I usually end the day not really knowing how I did on any of them. This severely limits how motivational they are.

The Bad:

I was working out almost the entire time between the  two greyed out walking sections and Basis managed only a few sporadic heart-rate measurements at low points, didn't classify me as active, and barely raised my calories burnt above baseline. At least it measured higher perspiration

I was working out almost the entire time between the two grayed out walking sections and Basis managed only a few sporadic heart-rate measurements at low points, didn’t classify me as active, and barely raised my calories burnt above baseline. At least it measured higher perspiration

The heart-rate sensor is terrible during any kind of activity. In Basis’ defense, they don’t advertise the band as a fitness monitor, but instead sell it as a device for the “rest of your day”. However, when Basis completely misses my hour sweating at the gym and doesn’t count it as active time or raises my estimated calories burnt, you lose a lot of the motivational benefit of a product like this. The majority of the time I workout, regardless of what I am doing, I get at most one or maybe two heart-rate readings when I am resting and my heart-rate is at the low-end of where it will be for my workout.

Because of this, many habits are close to useless for actually tracking what I am doing. A day where I walk a little extra compared to one where I go to the gym for 2 hours is going to show up as both higher in calories burnt, and more active despite that being completely rubbish.

The battery life could also be improved. You get maybe 4 or 5 days, from full charge to dead, or you can charge it for roughly 20 minutes a day to keep the battery steady. The biggest issue is that if you wake up with the notification that you have less than 20% battery left and you don’t have time to charge it before you leave for the morning, there is a good chance it will die on you before you get back home to charge. I lost a day worth of data once because of this and came close a few other times.



The Basis Band is probably the best activity tracker there is, but by having so many more sensors than its competition it makes you want a lot more out of it. For simply tracking steps, both walking and running, as well as sleep it is a great device. If you workout any other way though, it no longer provides consistent or accurate readings and quickly becomes frustrating. Given that  I have it, it is worth keeping on and charging, but I would definitely not buy it again. Basis was just bought by Intel, so with the financial and engineering backing of Intel, a new version with significantly improved heart-rate monitoring and battery life could be a really great device for fitness/health geeks like me.

Road Pricing in Metro Vancouver

I came across a good article this morning about the reality of road pricing in Metro Vancouver. According to author, road pricing is inevitable for Vancouver. I agree, although I think it is a long way out and will be an enormously contentious issue pitting suburban voters against urban voters.

I believe that all the talk about road pricing, referendums, transit and related topics are fundamentally missing what really needs to be done. What needs to be done is changing zoning laws so there is more housing that is close to where people work, shop and play. Simply making it incredibly expensive to commute from Langley to downtown Vancouver simply makes life even worse for long-distance commuters who already have to face the enormous cost of hours wasted commuting every day.

What needs to be done is to create a decade long plan that slowly institutes substantial road pricing along with improved transit and most importantly massive zoning changes. This gives the average family that is currently completely reliant on driving, time to adjust their life in anticipation of road pricing before road pricing starts dramatically reducing their income. It tells everyone looking to move, find work, or employ in Vancouver that they need to consider how far they will be from jobs, shops, or employees when they chose a location. If you are a Vancouver business and most of your employees live in the suburbs, your employees are going to push for you to move closer to them if they foresee the cost of commuting rising.

Under this plan I could see Surrey, with permissive zoning, rapidly becoming a second downtown aimed at employing people in Delta, White Rock, Langley and maybe even Maple Ridge. Without clear long-term guidance on policies however, highways will continue to clog, or a sudden imposition of road pricing will dramatically lower the effective income of most commuting families, without actually creating other opportunities for them. Metro Vancouver can’t continue to move forward when political leaders aren’t talking about their plans for even a year from now. Individuals can’t make rational decisions about where to live and work if they have no idea about future transportation plans.

The various governments, starting with the provincial government, need to demonstrate leadership and a vision.

The City

Lately, I have spent a lot of time thinking about the importance of the city in terms of politics and everyday life. The city, and how it is structured and modified throughout the years, is so integral to most of what we do each and every day, yet it rarely gets the political and popular attention it deserves. Where we work, how we get there, where we go to school, how we access businesses and services, and so much more are intricately related to decisions either made at the city level or decisions pushed upon cities from governments above.

For decades now, the majority of tall towers and major density expansion in Metro Vancouver has occurred in the downtown core. This approach, often called vancouverism, has helped lead Vancouver to the top of the global livability charts, but it appears to be coming to an end as Vancouver starts to run out of downtown space in which to continue expansion. In the City of Vancouver there are pockets of density, mostly surrounding skytrain stations, that have small-scale development plans but for the most part, the rest of the city is off-limits politically.

While the various municipalities seem intent on building new dense transit-connected neighbourhoods, and developers seem keen on building these same neighbourhoods, there is very little space and little political will. I have noticed though that there is one source of large development friendly space that seems to be the next focus for Vancouver development: the mall.

Oakridge Mall has massive re-development plans that include 11 towers, a number of low-rise apartments, new office space, and expanded retail. Also, a park built on top of the actual shopping centre portion of the development.

In Burnaby, Brentwood Mall has a similarly massive re-development plan, with 10 towers, two of which would be some of the tallest in B.C., more office space, new public space. Lougheed Town Centre has plans similar in scope but earlier on in the planning phase so few details are yet available.

Metrotown and Station Square also have plans for large towers, more residential space, more office space, and a “Granville Island feel” to the area.

The common elements between all these plans are interesting. Almost all of them are taking what is currently acres of ugly parking lots and turning them in to (hopefully) vibrant communities that are walkable and transit friendly. All these new neighbourhoods will integrate office, retail, and residential in close proximity with the intent of creating more vibrant spaces to live and work in.

While I think there are many good elements to most of these plans, I worry that they will end up stale, expensive communities that lack diversity. Unless municipalities step in, I imagine the majority of the residential towers will end up as luxury one and two bedroom condos with steep price-tags for the majority of people. I hope both Vancouver and Burnaby work with developers to ensure that families and lower-income residents can afford to live there.

My thoughts on UBC’s Bachelor of Computer Science program (after one term)

There is very little information about the BCS program on the web so I figured I would add my thoughts.

I entered the program with a good grasp of basic Python, and a decent grasp of basic Java. Most introductory computer science basics like recursion, a few algorithms, logic, and the core of how a computer works were somewhat familiar to me. What I wanted to get out of the program was a much stronger basis in algorithms, data structures, design patterns, and to improve my mathematics and statistics.

I’ll start with what I don’t like about the program. UBC’s Computer Science courses have a very strict pre-requisite structure. You must take 110 (a design course) before 210 which then opens up most other courses. Because of this, if you enter the program with an introductory knowledge of Computer Science, which is increasingly easy to gain through free online courses these days, the entire first two terms of Computer Science courses are fairly simple. They will still take up a decent amount of time though. If you are doing a normal 4 year degree, this is not a huge issue as you have a lot of non-CS courses you need to take, but if you are in BCS then this makes it very difficult to take enough relevant classes to retain full-time status.

Because of this I am stuck taking a less than full-time course load even with a filler course that I most likely won’t get credit for. UBC is holding me back from a number of courses that I feel quite confident I could complete with little issue. Because of this, I will enter their co-op program with fewer CS courses than I could have done and I will be less competitive than if they allowed me to take a few other courses.

Another slight downside is that you gain few marketable skills in the first two courses, especially in comparison to something like a programming bootcamp. The intro course uses a programming language that most people in industry have never heard of, Racket, and after that you mostly use Java. While Java is widely used, if you look at the average job description for entry level positions in software development, you are going to notice a lot of languages and technologies that UBC will never teach you. The CS courses you do take will give you a good grounding from which to learn these technologies though. You just really need to take time to learn some of these yourself and to develop a few personal projects to show employers.

Even with what I said above, I do like the program. I just wish I could speed through the first year a little faster. UBC’s Computer Science department is quite teaching focused compared to other departments at UBC. The courses are fairly well structured, especially if you like partially flipped classrooms, and the instructors definitely care about your success. Between TA’s and Professors there is easy access to someone if you are having issues with a course concept.

The BCS community is also a nice asset. You will meet a lot of awesome students with similar goals that will make your time at UBC a lot better. The program coordinator is helpful and happy to talk to you and provide advice. You also have access to events, such as hackathons, game jams, and tech-talks, that help teach you some of the “hot/new” technologies that your CS classes don’t teach you. The school appears to have a good reputation with all the big tech companies as well as Vancouver’s mid-size and small tech companies.

I am excited to get to the upper level courses, to start co-op, and to really dig into some interesting personal projects. I’ll make a new update when I am further into the program, but if you want to read the thoughts of someone who graduated, check out this Quora answer.

I’ve since updated my thoughts after finishing another term which you can read here.

Personal Goals

I have never found New Year’s resolutions particularly useful. The “standard” ones like “go to the gym” and “eat healthy” are worthy goals but lack specificity and clear quantifiable sub-goals. But all the talk of setting personal goals around this time of the year usually pushes me towards setting a few of my own, even if I am a few weeks late to the resolution game.

I came upon a video of a workshop by Google’s Rick Klau, How Google sets goals: OKRs, and immediately started to like the idea of using something similar to Google’s internal goal system, OKRs, as my own personal system for setting goals. Basically the system breaks down to having a small number of objectives that can be broad like the “standard” resolutions. Each of these objectives then has roughly four key results that are quantifiable. You set a period of time for the goals, in my case this academic term, and then at the end of that period you give a score between 0 and 1 for each key result and then average the score.

What I really like about this system is that it is designed so that you set goals such that it will be very difficult to attain 1 on each. You want to aim high and then hopefully attain roughly 70% of those lofty goals. Another important aspect for Google is that everyone’s OKRs are public (within the company) so that anyone can see what their co-workers are focusing on.

To give readers an idea what this looks like, and to make myself publicly accountable for my goals, below is a draft version of my OKR with a few omissions. I made the grade goals slightly less specific for posting on here but otherwise everything is exactly as written. I’ll make another post at the end of the term tallying up my score.

Objective: Maintain strong academic achievement

Key Results:

  • 8X% in STAT 302

  • 9X% in MATH 221

  • 9X% in CPSC 210

  • 8X% in COMM 486a


Objective: Gain experience through personal projects and self-direct learning

Key Results:

  • Complete two non-trivial Android apps

  • Successfully complete two hackathon events

  • Complete one Udacity data science course

  • Average one blog post a week


Objective: Improve health and fitness

Key Results:

  • Average four 20+ minute fitness sessions a week

  • Walk 5km+ every day

  • Deadlift 220lbs, Squat 190lbs, Benchpress 180lbs

  • Placeholder (waiting to figure out a baseline for another measurable health goal)

App Review: Moves

Over the last few years I have slowly been getting into the “quantified self” space. For those who have yet to hear of the term, it basically refers to any app or gadget that tracks data about you for the explicit purpose of giving you access to the data or an interpreted form of the data to motivate or simply inform you. Most of the time the data is fitness or health related, although it could in theory be about anything.

One of the latest “quantified self” apps I now use is called Moves, and it is a free app available on iPhone and Android. The core of the app is an activity recognizing algorithm the developers call TRACE (for TRajectory and Activity Classification Engine). It is basically a more advanced pedometer which uses your phone’s accelerometer along with location data to accurately determine distance and type of activity. Because it is using more than just an accelerometer, it can tell the difference between running, walking, cycling, and motorized transport with a fair degree of accuracy. The only accuracy issues I have experienced so far is occasionally classifying cycling as motorized transport, but the app allows you to easily correct that.

To the left you can see the apps default view, which is a daily storyboard that shows you where you were, how you travelled between those places, and a summary of distance travelled at the top. If I had cycled or ran that day you would also separately see totals for those activities at the top. On iPhone, but not yet Android, you can also have it display estimated daily calories as well. You can also click into an activity or place to see a map view of your day.

And that is pretty much what the app does. What I really like about this app is the simplicity. It does very little but it does it well. Unlike standalone solutions for tracking activity, this works without having to wear a new device and never requires you to turn it on, or tell it that you are about to start a run. It simply runs in the background and determines your activity and you can completely ignore it most of the time.

Moves has quickly become one of my favourite apps. Even without the app actively pushing me to be more active, just the simple act of tracking activity motivates me to move a little more. A few times now I decided to bike to the grocery store instead of taking the bus simply because I wanted to see the blue biking activity on Moves. It sounds a little silly, but it definitely motivates me. I would highly recommend this app to figure out just how much you are actually moving each day. Then watch this video and try to up your activity a bit every day.

Moves isn’t without a small downside. It definitely has an effect on battery life. If you currently struggle with getting through the day on one charge, this app is probably not for you. If you generally don’t have much of an issue, then you probably will be fine with this app. On my phone, Moves tends to use about 10% of the battery over a day. For most people, that is probably not too bad. You also can put Moves into a battery saving mode if you know you will be away from a charger longer than usual.


Hanged, drawn and quartered

Today I went into the core of London. On the recommendations of the receptionist at my hostel I decided to go to the free Natural History Museum first. Located in a beautiful old building in the core of London, this museum houses lots of great exhibits ranging from an exhibit on dinosaurs to one on earthquakes.

After waiting in line for about 10 minutes, I entered and immediately went to the dinosaur exhibit. While there were lots of cool elements, it was crammed full of kids which killed much of the appeal. There is a surprisingly realistic animatronic tyrannosaurus rex which I found impressive. Sadly, hundreds of children also found it impressive so it was a little too packed.

After the dino exhibit things got better though. The enormous mammal exhibit was full of taxidermied animals from around the world. I found it to be an extremely interesting collection and it kept me captivated despite it being my second natural history museum on this trip.

Other exhibits on arthropods and on the human impact on the world were also good. The geology stuff tends to be on the boring side to me personally, but the presentation here was quite good. They even had a earthquake simulator.

After some time checking out the museum I crossed town to the Tower of London. This expensive exhibit is completely worth it. It includes a guided tour by a Yeoman Warder, more commonly known as a beefeater. This tour was one of the highlights of my trip. My guide, @BillyBeefeater (yes, he has a twitter account…), mixed humour and history perfectly. If you go to the Tower of London, do not miss out on these tours.

The crown jewels were amazing. Considerably better than the Scottish crown jewels. They also pretty much perfectly highlight why I am a staunch republican (in the traditional sense of the word, not the American republican party). This ridiculous ostentatious displays of wealth and pomp and circumstance is a little much for me. Apparently the Queen’s Jubilee cost about a billion dollars to host (according to a newspaper I read today). I have no idea how expensive these jewels are, but with the sceptre having the worlds largest diamond, I imagine pretty expensive.

The castle is cool, but not quite up there with Edinburgh Castle. The royal armory is full of past kings’ suits of armour as well as loads of weapons. Now that I think of it, go to the Tower of London if there is a zombie apocalypse. There are enormous gates, and thousands of weapons of all sorts.

The Natural History Museum

The lobby in the Natural History Museum

Outer walls of the Tower of London

Traitor’s Gate

Our “beefeater” guide

Tower bridge with the olympic rings up


I wanted to go to Oxford but getting to Cambridge was significantly cheaper.

It’s a neat little town. Sadly the weather was awful. It rained almost the entire time I was there and by the time I left my jeans were soaking wet.

I don’t have a whole lot to say about Cambridge. The museum I was going to go to was closed so I mostly just wandered around. The town has a certain charm to it, and the university is quite beautiful.

Here are a few pictures.

A church

King’s College if I remember correctly

Another college

The library