Goodbye watchSugar

I'm happy to report that Dexcom has added watchOS support to their own first party iOS application. This is a great step forward in helping us diabetics keep an eye on our glucose levels.

There also seems to be some exciting rumors floating around that the next version of the Apple Watch will have blood sugar monitoring built in. The watch data would be gathered through a sensor requiring only skin contact. The data would likely not be as accurate as the subcutaneous sensors Dexcom currently uses. However, combined with the subcutaneous data the wrist data could be used to make our entire monitoring system much more accurate. Though nothing has been announced yet, I think it is an encouraging sign that Apple announced a partnership with Dexcom at this year's WWDC.

Anyway, back to watchSugar. While it was a fun project and extremely helpful for us diabetics who used it to monitor our blood glucose levels directly on our watches, watchSugar was always a hack. It worked periodically making web requests to Dexcom's website. This is a lot of extra data and battery usage just to retrieve information that originated from a personal device that was also attached to you. Now that Dexcom has added first party support, there is no reason for watchSugar to be around.

watchSugar remains open sourced on github. Thanks to everyone who helped me develop and test the app initially. May your glucose levels always remain low, but not too low. (👊 Diabetic fist bump).

Meet TapCoding

I'm proud to announce my latest software project has been released today. Meet TapCoding.

TapCoding is an iOS application that users how to program in Swift.

TapCoding's curriculum assumes no prior programming knowledge. Users work their way through thousands of bite-sized pieces of material. All told, this material is easily the size of a programming book.

But programming books are boring.

Instead of relying upon walls of text, I wanted TapCoding to rely on interactive exercises. Its primary teaching tool, the Code Building exercise, allows users to build up lines of code a piece at a time:

TapCoding includes hundreds of code building exercises which allow you to use pieces of Swift code to learn the fundamentals, without getting bogged down in the overwhelming amount of syntax needed to become a programmer.

TapCoding includes hundreds of code building exercises which allow you to use pieces of Swift code to learn the fundamentals, without getting bogged down in the overwhelming amount of syntax needed to become a programmer.

TapCoding also includes exercises that help users understand code by spotting errors, exercises to practice producing code by typing it, and exercises that serve as mini-quizzes to check your understanding.

The entire introductory course, which includes 9 lessons, can be unlocked for free my maintaining a "streak" of practicing your coding once each day. The entire curriculum can be unlocked via In-App-Purchase for $6.99.

Please download TapCoding and don't hesitate to let me know what you think!

Meet watchSugar

As a Type I Diabetic, I've used many continuous glucose monitoring (CGM) systems over the years. For the uninitiated, these systems traditionally consist of a small adhesive sensor which injects into your abdomen, a re-usable transmitter that attaches to the sensor, and a bluetooth enabled receiver device.

Very recently a CGM company called Dexcom released their G5 Mobile system which has one extremely freeing innovation: the receiver software can run on your iPhone, obviating the need for carrying an extra pager-sized device 24/7. It sounds like a small detail but believe me having one fewer device to carry, charge, and not drop in the toilet (true story) has been wonderfully liberating.

There is one thing though. As an iOS developer it drove me crazy that the Dexcom G5 Mobile app didn't offer an Apple Watch watch-face complication. Dexcom went 99% of the way to the holy grail of CGM only to drop the ball on the 1 yard line. I imagined being able to see my blood sugar in less than a second by simply raising my wrist. I was so close.

So I did what any efficiency obsessed diabetic iOS programmer would do. I launched Xcode and started hacking. The fact that the Dexcom Share feature sends your blood sugar data to a web server allowed me to write a simple client that downloads this data and keeps your watch in sync. My blood sugar data was already accessible on the cloud. The only real challenge was keeping the values updated while not running afoul of the processing time limits Apple imposes on third party watch apps.

Meet watchSugar. I've been using it consistently in the past month and it's really been a game-changer for me. The watch face really takes a lot of friction out of diabetes management. As I imagine it will be useful to more people that just me, I've decided to release it to the public. It is now available on the App Store and the code is on Github.

Thanks so much to everyone who helped me beta test. Together we knocked out many considerable issues through testing.

Also: apologies to those of you who didn't make it into the beta and had to wait. My initial call for testers ended up being spread far and wide which got to be pretty over-whelming. At a certain point I had to stop accepting new testers. At least your wait is now over. Enjoy!

[Diabetes fist bump]

A New Place on the Internet

When you look at your own personal website year in and year out, the design and layout can get long in the tooth without you ever noticing it. "It's a website about me being a programmer", I think to myself, "Obviously, I need to host it myself. And certainly people will appreciate that I wrote it myself in a plain text editor with nary an auto-complete suggestion in sight. Certainly. Surely the praise for such resourcefulness will be lavished upon me from every corner of the internet. They will proclaim me, King of the Internet!"

Bah. With lots of new stuff on the horizon I have snapped out of it and decided to retire my text-only, single page personal site for something a bit spiffier. This new CMS should give me lots of leg room to spread out and get comfortable. A bit of photography. Some words about my upcoming adventures. Hell, maybe even a little bit of personality. The skynet's the limit.