Friday, January 6, 2017

Xcode Build Settings

It happened again.

Yes, I had to get an xcode build working on a server and the build parameters were causing problems. How do I overload these and set them on the command line?


  1. Go here: http://help.apple.com/xcode/mac/8.2/
  2. Click the Search Button in top right.
  3. Type in "Build Settings"
  4. Select the "Build Settings reference" page.
  5. There are the build settings you can override on the command line. Including some that are normally set in the Xcode project file. Which is handy when you need to override something in the Xcode project file but do not want to commit that change into your source control system.




Monday, June 6, 2016

Sun Top Recon

I decided to head out to the Sun Top trail, near the Dalles Campground in Rainer Park. My goal was to do a recon ride on Saturday night to find the trail head at the top of the mountain and get some photos of sunset from the top of the mountain.

Unfortunately, I did not get to reach the top since the road became increasingly more blocked by fallen trees and the snow cover was increasing. The snow is usually gone by the end of May but I thought it would be worth seeing if it was already gone.

Given that the top of the mountain peak and trailhead road was still not cleared I figured that the mountain bike trail would have a similar issue. That as well as the snow cover on the exposed road made be think the trails would still have snow given the fact it is in the woods with more coverage.

So, my plan to ride the trail on Sunday morning was put on hold and this ride became a recon ride. On the plus side, the climb was not difficult but it was long and steady. Here are the stats from Strava:

Of course, I also got some footage from the ride. Here are some highlights of going too fast down the mountain on the return. As well, you might see some Elk if you have good eyes and watch high res.



Monday, May 9, 2016

Video: Tiger Mountain Sun

Here's a sunny ride from a few weeks back. These are some highlights from my April 17, 2016 ride on Tiger Mountain.

Monday, April 25, 2016

Wet and Sloppy Ride with a Crash Bonus

Through darkest night, through pouring rain, no weather will stop my riding...or pain.

Crashed yesterday during a wet and slippery ride on Tiger Mountain. Funny thing is, I posted some PB (Personal Bests) for time on some of the trail sections even though it was a slip slop ride bouncing and sliding along roots and rocks.

Without further adieu, here's footage from my April 24, 2016 group ride with just 3 of us braving the elements:

Saturday, April 23, 2016

Mountain Biking Tiger Mountain April 10, 2016

Here's a new biking video from a recent ride on Tiger Mountain:



Here's a breakdown of the ride on Strava where I upload my Microsoft Band rides.

Sunday, November 22, 2015

Channel 9 Speaker: Developing Windows Apps with the Microsoft Band SDK

The Connect(); // 2015 event just passed (November 18-19, 2015) and I got the opportunity to be one of the speakers in this years event.

About a month ago I was asked if I would like to be one of the speakers and present a demo that showed the integration of the Microsoft Band SDK with a Windows Universal App using Visual Studio 2015. Though nervous, I jumped at the chance to improve my presentation and public speaking skills.



You can read more and watch the video at Developing Windows Applications with the Microsoft Band SDK over at Channel 9.

Monday, November 9, 2015

Last and First Day with the Microsoft Band SDK Team

Well, for those that don't know, I have been working at Microsoft for the last 1.5 years as a contractor on the Microsoft Band. I have spent that time with the Microsoft Band SDK team and helped with test automation and testing first. Then I moved into feature development on the Band SDK with the majority of that contribution on the Microsoft Band WebTiles for iOS feature.

Friday was my last day as a contractor at Microsoft on the Band Team.

Today, Monday, November 9, 2015, as you read this I am likely sitting in a New Employee Orientation session. Today is my first day as a Full Time Employee at Microsoft.

I am staying with my team and will be continuing to contribute to the Microsoft Band SDK Team. I will be helping to implement upcoming features and continue to improve the Band SDK for 3rd Party Developers.

It's an exciting day. I am happy to join my team as a Full Timer and continue to improve the Microsoft Band.

Saturday, October 31, 2015

Mtn Bike Vid: Duthie Hill

Another mountain biking video. Little shorter this time with some footage from October 23, 2015.

These are some of the trails at Duthie Hill Bike Park.

Enjoy.

Wednesday, October 28, 2015

Stinky Spoke 2016 Signup

The Stinky Spoke, an 18 mile mountain bike ride on the statistically worst weather day of the year, is coming up. The next event is January 23, 2016, in Woodinville, WA.

I've signed up again and have two others who plan to join. Are you up for an 18 mile mountain bike ride with a hill called Heart Attack Hill (300 ft of elevation over a short distance) at the start of the race?

Anyone completing the hill climb without dismounting their bike gets a medal!

Here are videos from previous years:





Sunday, October 18, 2015

Mtn Bike Vid: Soaring Eagle

Saturday morning, my buddy Dan and I went for a ride at Soaring Eagle. This is a fun trail system in Sammamish and is a great place to go for some technical riding with a couple short and sweet descents.

Here's a breakdown of the ride as recorded with the Microsoft Band's Ride Tile (App).

GPS Route at Soaring Eagle

Overview of the Ride

Speed Graph

Heart Rate Graph

Elevation Graph

Mile Split Speeds

Here's some footage from the ride. Wait for the end where we hit 18 MPH down the fast #1 trail.


Saturday, October 17, 2015

MTB Vid: Tiger Mountain, Fully Rigid to Joyride

Another mountain biking video. This time, the Fully Rigid trail onto Joyride. Both trails on East Tiger Mountain.

This video is also from my first ride on my new Santa Cruz and the first time I rode this trail.

Enjoy.

Tuesday, October 13, 2015

GoPro Footage: Tiger Mountain Summit Trail

As you probably know, I invested in myself and upgraded my mountain bike to a new Santa Cruz
Tallboy. I purchased the "entry" level Aluminum model.

This past weekend I had my first true mountain bike ride on my new bike and it was awesome. I was also riding a new trail (for me) for the first time, the East Tiger Mountain Summit Trail.

The first 3.5 miles took about an hour as we climbed about 1500 ft to the summit from the parking lot along highway 18. You can see a nice break down of the splits, elevation gain, GPS map, and other details over at MSBandGuru.com with my post Mountain Biking With The Microsoft Band.

I took a lot of video but here's the deal with GoPro, it can be very shaky and removing that does not always work well.

Here is some footage I took (speed up to 2x speed for most of it) that was taken on a handlebar mounted GoPro. It is very shaky.

For my next ride I will be experimenting with a chest mount and a helmet mount to see which one produces smoother video.

The music is a bit of Cigar Box Guitar that I did and looped.

Wednesday, October 7, 2015

Launching msbandguru.com

I quietly launched msbandguru.com a few weeks back, a Microsoft Band site for News, Tips, and Developer Info.

At msbandguru.com I will be posting:
  • Microsoft Band enabled apps for Android, iOS, and Windows.
  • Microsoft Band Web Tiles
  • Microsoft Band News
  • Microsoft Band Developer Guidelines
  • Training with the Microsoft Band
If you have a Microsoft Band app, articles, website, developer article, or anything Microsoft Band related, get in touch with me.

You can also reach out to me on twitter at: @msbandguru

For development articles and blog posts about training with the Microsoft Band I will look at either cross posting here so readers less interested in Band news and apps can just pickup my posts about dev and fitness that they are used to finding here.

Check msbandguru.com out if you want to find out more about the Microsoft Band.

Monday, September 28, 2015

So You Want to Launch an App, Welcome to Being a Technical Writer

Launching any app means you have to do a lot of jobs that aren't programming jobs. They aren't but if you want to be an Indie and launch your own app you need to wear many hats.

Last night I did another pass through my user documentation. Included in this was a rewrite of the NewThistle LLC Privacy Policy to include information about Paddle Mate. I also tweaked it to add further clarification for the NewThistle Privacy Policy in general.

Next, I did another pass through the Paddle Mate app landing page which performs the duties of marketing material and user manual. This included lots of screenshots, information about how to use features of the app, and how Paddle Mate works with the Microsoft Band. I am happy to have those items checked off my sign-off list for app launch.

A part of running an App Business is taking care of these Technical Writing jobs, amongst the many other jobs you have to do.

I had most of this material already drafted and moved onto this task last night after I had made progress on my final few bugs. I am at a state now that another sign-off test is planned for tomorrow so I can verify that the few fixes I made tonight did not cause a regression (a regression is the introduction of a new bug or reintroduction of an old bug) which will gate the build (stop me from shipping).

I have said final few bugs more than once, I know that. The reason being that retesting sometimes brings to light new bugs. On a limited budget (my free time) I have to do the best I can with the time I have and sometimes that means days without much progress or reverse progress when I find a serious enough bug.

I am happy that this past weekend I made good progress with Paddle Mate in many areas. Not the least of those is getting these Technical Docs written for my users.

Sunday, September 27, 2015

Reusing What We've Built

Do not brood over your past mistakes and failures as this will only fill your mind with grief, regret and depression. Do not repeat them in the future. 
Swami Sivananda
To often the next big project is more exciting that the current project. We want to move on and do something new so we can learn and to keep us interested.

Sometimes I run into a wall of too much work and too little time. The desire to switch streams from the current project to something new is alluring. It is much easier to switch streams than do the hard slog through the work it takes to complete the current project.

Switching off a project that you see will take longer to complete and moving onto the more exciting new project can he a hard urge to fight. But if you want to ship code then you have to stick to the current project and own up to the time it will take to launch.

It was with this in mind that I was thinking we sometimes need to stop and look at what we have learned. What have we built? What knowledge have we built? Is there something we know now that we are not taking advantage of?

I know that for myself I am always interested in learning and solving new problems. Sometimes this desire to do something new gets in the way of leveraging my knowledge to build products that I would enjoy.

With the Apple TV, 3D Touch, a new iPad Pro, I was presented with the dilemma of should I build a new app that targets those platforms?

While debating this I thought about the work I have been putting into Paddle Mate to finish that last mile from done to shipped. Though I have cut a lot of features to get V 1.0 out the door, I still have some high standards for the V1.0 when it comes to being able to track my workout. It has to work, foreground, background, pausing, etc.

A lot of work has been put into the features around the original stroke detection algorithm to convert Paddle Mate from a neat showcase app into a shipped product. It's something I would be happy to buy and use for my kayaking workouts.

With the work I have done, I started to think, how can I leverage this in another app?

It did not take long to see how I could leverage my Paddle Mate code to create another fitness app.

So, I will be enjoying my friends Apple TV creations. I will check out friends 3D Touch on their new phones. And I  will take a look at an iPar Pro and it's Pencil if I see one in public.

But for the next few months I am reinvesting my knowledge from Paddle Mate into another app.

Saturday, September 26, 2015

Finding GPS Routes for Testing

To test out Paddle Mate I have been using my own routes, some tester uploads, and a selection of
routes I have found online.

The best source online I have found that I have pulled several routes from is the site GPSies: Tracks for Vagabonds.

What I like about GPSies is that I can narrow down my routes to just "On water" meaning I can find canoe and kayaking routes.

If you need to find some routes for your GPS enabled app then start at GPSies.

Friday, September 25, 2015

Adding Voice Recognition to Your App

I was at the Eastside Xcoders on Thursday night for a talk by Alexander Caskey, a former employee at Microsoft Research, Wildfire, Cisco, and Linguistic Technology. He has been working on speech and natural language processing (NLP) for the past 20 years.
His talk was on Speech Recognition in Mobile Apps.

The talk was very deep in the history, forms of speech recognition, NLP, and covered the state of the art today.

I went to hear what is available for mobile developers who want to add speech recognition into their apps. I have a future fitness app I am designing that would be served well by speech recognition as an alternate interaction model.

From the talk, I picked up that for iOS devs the first place to start for speech recognition is Open Ears - iPhone Speech Recognition and Text To Speech. This looks like exactly what I want for the problem I have.

I have a limited vocabulary of words that I want to use as an interaction model for my app. This will allow the user to interact with my app through a limited vocabulary where touch is not an option. I'll be investigating Open Ears to see how it works and report back how it goes.

Friday, September 18, 2015

NewThistle LLC Turns One Year Old

NewThistle LLC is a year old at the end of September!

I just renewed NewThistle's business license and took a look at it's first year.

Here is a breakdown of my Revenue sources. As you can see, I am making the majority of NewThistle's revenue via App Dev Contracts.

To be honest, a huge push to start the company was the first contract I received. It was that contract that pushed me over the edge to start NewThistle and put more effort into app development.

For App Sales, I can say that Selfie Band, my Microsoft Band camera remote for iPhone, is my 2nd best selling app to date. It has only been in the AppStore since August 6th but it has been having steady, if not high, sales.

For NewThistle's first year, I am pretty happy with the results. I have achieved my initial goals to start a company that is profitable and which could bootstrap it's own growth. I had to start by giving the company a loan to get setup.

I then took a big contract first thing and sink a lot of after hours time into for 6 weeks.

With the close of that first contract I had made back the money I loaned the company to purchase new equipment and various web services (website hosting, domain, email). So, 90 days after I closed my first contract NewThistle LLC became profitable.

Since then, I have been trying to run a tight ship. I have decided not to purchase the new iPhone 6s+ since I can get by with the iPhone 6+ until I have a need to get the new phone or I can wait until the iPhone 7. I am on the fence about the iPad Pro but will likely stay away from it unless I have a business need to develop for it. The Apple TV I have app ideas for so that is something I plan to purchase for development purposes.

A big goal with the company has been to have it not cost my family money (though it sure eats up a lot of my time). In the money respect, the company is doing well and has cash in the bank to continue to pay business expenses.

For the coming year, here are my goals:

  • Increase the share of revenue from App Sales.
    • Two apps in the works and more planned.
  • Introduce another source of revenue besides App Sales and Contracting.
  • Continue to be self funding and not require outside financing.
Here's to the next year of NewThistle LLC.

Tuesday, September 15, 2015

Paddle Mate Beta Access

I made good progress on the Paddle Mate "Just Ship It" Release this past weekend. I had to step back, look at my activity state restoration code and fix a couple key problems. With that under control the app is handling backgrounding much better now.

This Beta version also includes:

  • App setting persistence so that the app remembers your last used workout settings (track location, Microsoft Band pairing options)
  • The DOCK view (main landing view of app) now includes a preview of the map from your last workout and some stats from the workout.
  • State Restoration.

With these changes in place, the app is ready for wider Beta Testing. If you are interested in trying out Paddle Mate before I ship it then you can sign up at: Announcing Beta Access to Paddle Mate

Sunday, September 13, 2015

Paddle Mate V 1.0: Just Ship It Release

Past Workout (WAKE) view on the main DOCK view.
I have a couple irons in the fire at the moment which have me spread thin.
  • I'm working on a new site which I will write more about shortly (it is still baking and is not ready for prime time yet).
  • Various home projects.
  • I signed up for a Half Marathon at the end of October and have been ramping up training.
  • Fixed a bug in Selfie Band and shipped the update.
  • I have been finishing up Paddle Mate's first release.
Paddle Mate, the Just Ship It Release, has gotten some well deserved attention the past few days.

I had a couple half baked features and did some triage on those. I decided to move them out into future releases and in the process created a RoadMap. With the RoadMap I have a defined ongoing plan with a focus for each upcoming release.

I just finished off validating that the app works with/without a Microsoft Band attached. Without the Band the experience is not as rich but I am planning to support a richer experience for non-band users over time.

Paddle Mate is now down to 2 gating bugs that I am working on today. In developer lingo, gating means that the product can not pass the release gate to customers until those bugs are fixed.

I have one tester who is out today in this rain that has been testing. Once I get a handle on one of the bugs I will be going out for another test kayak.

The other bug is in the past workout view, I have a handle on the problem and will tackle that later today.

This boat still can't launch when that is all done. My list of tasks after I fix these bugs include:
  • Verify I have no more gating bugs.
  • Write launch page.
  • Write marketing page.
  • Write Privacy Policy for app.
  • Record App Preview
So, with about 1 hour to go in today's dev window I need to get back to getting this app shipped.