Monday, July 20, 2015

Bank of Dad

Dad with $100Not sure where I picked this one up but we instituted the Bank of Dad a few years back. It has been a fun way to teach saving, interest, and responsibility with money to our kids.

How the Bank of Dad Works


  • Each child gets a weekly allowance on Sunday that is equal to 50 cents for each year they are old (ie. 9 gets you $4.50 a week). The allowance increases each birthday by 50 cents.
  • At the first of the month the kids get 10% interest on the balance of what they have on the last day of the previous month. Ya, pretty sweet for them.
  • The kids decide how they use their money within reason.
The money is all handled by Dad and there is an account book for the boys that is in a shared location (a kitchen drawer for us) so anyone can check the balance. Only Mom and Dad can do updates to the account book but the boys are free to review their balances and check the deposits/withdrawals.

Interest

The interest of 10% is high, especially as their savings climb but here is the goal with that. We are teaching them to save. We have let them know that normal banks for not pay back this well but we want to show them what saving can do for your money in the long term.

We explain that when you give the bank money it uses your money to make more money. By loaning your money to them to use they pay you back a bit of the money you loaned them.

The fact that they can see that they are making money by keeping it in the Bank of Dad has encouraged one of our sons to never spend a cent. The other son tries to device schemes where he has enough money in the Bank of Dad that he is buying toys and games off the interest. I saw, great to both of them. They are learning the power of money and what it can do for them.

Responsibility

The fun for Mom and Dad begins when we go out and one of the boys decides he wants something. Certain things are covered by Mom and Dad. For example, food, clothing, school supplies, sun screen, etc. You get the picture.

For other things, comics, toys, new lunch boxes to replace the lunch box they lost comes out of the boys allowance.

Many times, just this weekend for example, I have said, "No, problem, if you want to pay for it out of your allowance you can have that." The kids will all of a sudden wonder what is the price? They generally remember how much money they have. Once they see the price and do the math against what they have saved, they decide to put it back.

We use many of these times to also have discussions about value. We talk about how cool or fun something looks but is it really worth so much of their savings? We let them know that if they think it is then by all means buy it.

We have some failures (a huge number of Magic Cards) but many successes (they have learned that gift shops are generally a bad idea).

That's one way we are trying to teach our kids the value of money. What do you do?

Wednesday, July 15, 2015

DroolFactory WebTile for Microsoft Band

DroolFactory WebTile

I have been working on the Microsoft Band SDK team for the past year or so. As part of that we just delivered WebTiles which allow you to display web content on the Microsoft Band without any programming.

A WebTile is a specially formatted zip file with a manifest and icons that contain the resources required by the Microsoft Health app to sync web content to a WebTile on the Microsoft Band.

You can find out more and create a webtile here: http://developer.microsoftband.com/WebTile

As an example, here is a webtile that has the ATOM feed for this blog: http://1drv.ms/1K8x8Pc

The above link will work from a Windows Phone, iPhone, or Android Phone with Microsoft Health installed.

Acknowledgements

Icon from: Bulldog by Randall Barriga from the Noun Project

Tuesday, June 30, 2015

Setup Dev Environment for the Parrot Minidrone SDK

Why a Minidrone SDK?

A coworker recently received a Parrot Minidrone Jumping Sumo. This is a wheeled drone that can jump 2.5 ft into the air and jump gaps (forward jumps). It has an onboard camera that allows you to drive the drone with your iPhone and see through it's eyes.

The drone also has an SDK for iOS and Android. Seeing that he has no time to use it he thought my kids and I might like it. So, now we have a minidrone with an SDK that we can use to control it.

But before we start with some code we have to get the dev environment setup so we can start to use this.

Start With Optimism

To get started, download the ARSDKBuildUtils and use this to install and build the environment.

Parrot Developers Github Community

There is an install document located in their repo: Docs/install/INSTALL

Here are the tools I had to pre-install:
  • wget, automake, autoconf, libtool
I already had homebrew install so installing them was fairly easy.
I already had git installed as well and did not need to install it with homebrew.

Here is where I said, I have a copy of libtool, I will skip that.

I had an openssl issue as well, but I will cover that later.

You Skipped A Step

Even though I had libtool installed, it was the pre-installed version and it caused many build issue. Since I had an older libtool than the library was built with the build scripts that were automagically generated were incompatible and hence I ran into a lot of compile issues.

Lesson for Devs Installing: Do not skip a step.

Lesson for Devs Publishing Libraries: List the exact versions of the tools you used to build your libraries on your machine.

When All Else Fails, Start Start Again

After trying the built in clean and force clean options of the SDK3Build.py build script and then rebuilding, I was still running into issues. I could see that the clean was not working.

So, I did the logical thing. After having installed the latest libtool through homebrew, I started over.

First, I deleted all the repos that the SDK3Build.py had downloaded.
Next, I deleted the ARSDKBuildUtils repo (folder, repo meaning repository I had downloaded from GitHub).

Now, with a clean environment with the list of prerequisite tools installed I started over, fixed the openssl issue, and volia I have a working dev environment for the minidrone.

What Next?

The samples for the SDK come with a sample of the new API they have written for one of their flying drones. That drone is a BlueTooth LE based device but the Jumping Sumo I have is a WiFi based drone. So, first I have to convert the BLE sample into a WiFi sample that can communicate and control the Jumping Sumo before I can do something more interesting with it.

Before We Go, What About OpenSSL?

The wget command to get openssl fails in the current version of the SDK3Build.py due to a certificate failure during the curl call. To get around this, I downloaded the version of openssl that the script was trying to download. Unzipped it into the openssl folder it had created and then reran the SDK3Build.py.

This allowed the SDK3Build.py script o get past the failure with openssl downloading. I had to do this again, after I wiped out everything when I went back to a clean slate.

Saturday, June 13, 2015

Mountain Bike Test Ride: Specialized S-Works Enduro 29 vs Santa Cruz Tallboy

How Old Am I?

I love to mountain bike. Always have, always will.
Riding Bauline Line, Newfoundland, 1999

About 17 years ago, boy I am old, I bought my hardtail XC Giant ATX 860. What does the XC stand for? It means Cross Country and at the time it was rated as one of the top XC bikes for the price point. Suspiciously, the price was about $860 as well.

That bike served me well for years as I rode trails in Newfoundland and Ontario. It was great for what I stuck too back then. But, here in the Northwest, it is not up to snuff. There are too many awesome trails calling out to me and for that I need more suspension.

Having ridden the trails out here, I have shied away from trying some of the "sick" stuff people have told me about since my bike and I are not up to these gnarly trails. I continually bottom out my front shock and get jostled around as I try to stay out of my seat to absorb the roots, rocks, and drops that the single track presents here.

It's time to change that and step up to the next level of riding I know awaits for me. So, when I saw that the local bike shop was having a demo day at one of the nearby trails I jumped at the chance to try some new bikes.

Specialized S-Works Enduro 29


Specialized S-Works Enduro 29, Image: Specialized
I wanted to try out the Specialized Stumpjumper 29 but unfortunately they only had the Medium which for my short legs was too tall. So, they setup their only Small Specialized, a Specialized S-Works Enduro 29.

Now, first, before you look at the price, oh you did already? Ya, $9300. I knew bikes could get expensive but that's insane.

This bike fit better than the Medium though, so I took it for a spin on the trails. For those keeping track, this bike has 155mm of travel (in it's suspension) and weighs about 26 lbs. The light weight and plush ride adds to the cost of this bike but this is one of the best All Mountain/Enduro bikes you can ride today.

So how did it ride? It was like floating over the trail. The trails at Soaring Eagle were not enough for this monster to notice. I went from picking a smooth line to avoid "technical obstacles" like logs, roots, rocks, drops, too hunting them out and smashing through them. I found nothing on the trail that made me slow down. This bike eats gnarly for breakfast.

Throughout the ride I hooted and whooped as I tried to keep up with this bike. Over and over I had so much speed coming through previously gnarly sections that I almost propelled myself into the woods as turns would come up too fast. Nothing slowed this bike down but my cardio.

The bottom line, this bike is more than I need. It is a blast to ride. But it would take some time to learn how to ride this bike. There is a learning curve here that years of XC riding did not prepare me for. I also don't have a lot of trails around here that truly need this level of travel.

If I had to make a complaint, it was that this bike was too plush for the cross country trails I rode it on. It felt like riding an easy chair through the woods and took away some of the joy as it was less nimble through turns.

Juliana Joplin (Standing in for Santa Cruz Tallboy 29)

Next up I wanted to ride a Santa Cruz Tallboy. Unfortunately they did not have one in my size. They
Image: Juliana
did have the women's version, the Juliana Joplin in red (my favorite color no less), in a Small which was a perfect fit. 

This bike felt like I expected. This bike has the same 100mm of travel as the Tallboy and is basically the same model with different colors.

This bike is dialed into the riding I most often do, XC. With it's 100mm of travel it let me scream through the same ride we had just done and still slam through technical sections.

This is more bike that I am riding with my hardtail today but definitely not as plush as the Enduro. Has the Enduro ruined me? Maybe.

This bike and the Tallboy are more in the ballpark of what I expect to spend. At $3399 for the entry level model this bike is more than I would like to spend (I'm cheap), but I know bikes are not cheap today. 

This bike would bring riding in the Northwest to the new level I am looking for. It is responsive, nimble in turns, wants to take flight off humps, and can absorb the gnarly sections. 

Conclusions

The insanely priced monster Enduro would be great if I step up bombing down the sides of mountains. Then I could use more travel but I don't see the need for it for my regular rides. Though fun, it actually took the spirit out of the tame, for this bikes suspension, ride that I put it through. It felt very squishy, especially with lateral control since this bike was built to fly down gnarly trails, not sprint nimbly cross country.

The Tallboy/Joplin was nimble, responsive and tuned to the trails we rode. This is the majority of what I plan to ride and with the travel in it's full suspension this bike felt like riding my hardtail with an upgrade.

The Tallboy also comes in Small so I can get the geometry and reach I want. That said, I really would like to try the Tallboy LT (Long Travel) which is a Tallboy with 130mm of travel. The big problem being that I would not be able to make that decision to go up in travel without trying out the bike since it starts in Medium.

All in all, it was a great morning and has given me some reference points to work with as I search for my new ride.

Saturday, June 6, 2015

Taking the Apple Watch for a Swim

I decided to try out the Apple Watch to track my swim today. I did an open water swim across the
lake and for today's setup, I took just the watch and left the iPhone at home. For a future swim, I will put the iPhone in my waterproof case and slip it down the back of my surf shirt which should hold it in place and hopefully get a GPS signal.

First off, yes, the Apple Watch is water-resistant. To see an in-depth review and set of tests check out DC Rainmaker;s post The Apple Watch Waterproofing Extravaganza: Swim, High Diving, Test Chamber.

What Worked

  • The watch continued to function (as expected).
  • I was able to track my workout time and heart rate using the Other option in the Workout app.
  • The Watch tracked my heart rate at 6 second increments.
What Could be Improved
  • Heart Rate measurements had some wild swings (likely due to reading interference from water). That said, most were consistent and appear to track with my perceived effort. 
  • Heart Rate was very high when I first dived in. Either due to my body adjusting or water interference due to a loose fit on my strapp. I tightened the watch strapp after a short distance and the readings became more consistent.
  • The workout app kept navigating to [End][Pause] screen. I can only assume this is due to water causing phantom taps due "Activate on Wrist Raise" being activated by swim strokes.
Things to Try Next Time
  • Disable "Activate on Wrist Raise" during swim to see if this eliminates the Workout navigating to the [End][Pause] screen.
  • Try out iPhone on board (ok, stuffed down back of shirt) to see if I can track the swim on GPS.
Here's a little swimming footage with the Apple Watch as I try out "Activate on Wrist Raise".



Monday, May 18, 2015

App V1: Knowing When To Stop

Fishing while taking a break
from building Heart Relay.
I have to stop at some point. The hardest part of shipping software you design and write yourself is shipping it. Like any creative activity, you have to know when to stop.

I had a "working" prototype 3 weeks ago in about 3 hours. It had next to no UI, was not intuitive, had no settings, persisted nothing, did not handle Bluetooth disconnects, and many other missing bits and pieces.

The have been plugging away 2-3 hours a night when I can so I can ship a V1. Here are some of the items holding up shipping:

  • Completing the list of V1 features for Heart Relay. There are not that many, mostly make it intuitive, performant, and not look like it was designed by a code monkey.
  • In relation to one, I am not happy with some of the icons. I should just ship what I have but I want more consistency in the icons and to replace words with icons (harder to understand maybe but I would like the user to not be hit with a screen of text).
  • Animations
    • I wanted to add some custom animations for both the connecting event (instead of using the default activity indicator spinner) and the Heart Rate measurement (a beating heart).
    • Animations and custom icons take time.
  • Testing:
    • While testing, I discovered that in noisy Bluetooth environments (work) the Bluetooth connection sometimes drops. Due to this I needed to work on reconnect and how to help the user to recover from this.
    • Testing takes time.
While doing all this new features have come to mind. Here are things I have cut from V1 or are feature creeps that I will consider for V2.
  • Free, Paid, IAP, or Ads?
    • Free: For V1 launch.
    • Paid: For Pro version later with some whiz-bang additions.
    • IAP: Research shows IAP is not worth the work.
    • Ads: After launch.
  • Heart Rate Zone Tracking
    • Going to keep for Pro version later.
  • Heart Rate Zone Alerts
    • Going to keep for Pro version.
    • Will buzz band when you drop out of or rise above your zone target.
  • Heart Rate Export
    • Going to keep for Pro version.
    • Let you export to CSV so later import to whatever app you want.
So, I am still plugging away.

I am debating if I will redesign the app icon. Probably not for V1.

Ok, back to drilling down some reconnection features.

Tuesday, May 12, 2015

Microsoft Band Kit: Swift Samples for iOS

I just finish posting the latest Swift ports of the Microsoft Band Kit SDK Samples for iOS. You can find the original Objective-C samples at http://developer.microsoftband.com/.

My ports can be found at: