CppCon2014 Wrap-up

Unbelievably, the 5-day CppCon 2014 was over in a flash. Not only did I have a great time but the conference kept me so busy throughout the week that the days just flew by.

To sum it up in a word: inspiring. If you considered going this year and decided not to, I would recommend it for next year. You can even put it in your calendar right now because CppCon 2015 has already been announced for September 20-25.

Amazingly, I am home here on Wednesday night during the week after and I am still thinking about the conference quite a bit. I’m glad most of the slides are already available because after that whirlwind week, I need to look back to better digest some of the more interesting material.

I could go on and on about the talks, but I particularly liked the keynotes. Having Scott Meyers open the conference and Herb Sutter close it was a perfect way to bookend the week. As someone who loves science, astronomy and C++, I really enjoyed Mark Maimone‘s talk about C++ on Mars. (This guy drives the Curiosity Rover!) Mike Acton gave a good, thought-provoking talk and was a great contrast to the other keynote speakers.

The talk given by Bjarne Stroustrup was particularly notable for me. Not only is he the creator and original implementor of C++, but his talk showed me that the language, even in its modern form, is keeping with his vision. We have a safe, modern C++ that is more welcoming to newcomers than ever and yet is still expert-friendly and delivers better performance than ever.

After Scott’s keynote on Monday, I spotted Bjarne chatting with some other attendees, I joined in, mostly curious about the topic. Before leaving, he was gracious enough to take a picture with me. I don’t care about meeting any particular celebrity, but I was elated to be in his presence. What I forgot to do was specifically thank him for creating a programming language I love to use every day.

In addition to Bjarne Stroustrup, I found that most of the speakers and fellow attendees were approachable and easy to talk to. This was a conference; we were there to talk to each other and I think the atmosphere was perfect for it.

Needless to say, if I have to opportunity to go again next year, I’ll be there in 2015!

 

Posted in C++ | Comments Off

EasyRoute 2.0 is out

Let me start right off by stating that this is a rather anticlimactic 2.0 release. Honestly, I only bumped the major version because I ran out of numbers in the 1.x range!

Anyway, what’s new for this version which is actually 1.9 + 0.1?

Mainly, I added an export to MapMyFitness. EasyRoute already had the ability to send a route pretty much anywhere using the GPX format, but now it has a direct export to a major player in the fitness planning and tracking world.

I added this to address one of the biggest questions/feature requests I get from users: how to actually follow the route after creating it. As a result, I’ve been asked to add tracking to EasyRoute, but I’ve been hesitant to do this with so many activity tracking apps out there already.

The easiest way I know to use the route during an activity is to use Cyclemeter or Runmeter from Abvio. These are terrific free apps that will seamlessly accept routes from EasyRoute and track you while you follow the route. I’ve heard from numerous users who employ this solution and are very happy with it. Also, I’ve exchanged some e-mails with the folks at Abvio and they seem like great people, so I don’t mind sending potential customers their way.

However, I still wanted an easy way to export the route into a major service and MapMyFitness came to the top of the list for a few reasons.

Obviously, they’re popular and well-known, but they also have a great API which made them the easiest service to export to. MapMyFitness also indirectly gives EasyRoute another feature I have been wanting which is to post the route to the web somewhere where it could be seen by anyone. If you export to MapMyFitness, you can mark the route as public, link it, e-mail it around, etc. I figure this could be useful for races where the official website does not have a course map or possibly even for race directors themselves to use to create a link to a course map.

What’s more, I now have a fairly extensible mechanism to add an export to any fitness tracking service out there. MapMyFitness was the first but I hope to include more. As always, your feedback counts, so feel free to contact me to let me know which of your favorite fitness-tracking sites you’d like EasyRoute to export to.

I hope you enjoy the new version and thanks for using EasyRoute!

Posted in EasyRoute | Tagged | Comments Off

EasyRoute Status 1.8.x

So it’s been a rough week or so for EasyRoute.

First, shortly after releasing 1.8, I got a report from a helpful user that it crashed on his iPad. I quickly found the problem and released a fix. Unfortunately, it took 6 days for it to make it through Apple’s review process, which is is one of the longest review times I’ve had for one of the most severe problems I’ve had.

Then, iOS 7.1 was released. While this was not unexpected, it was unannounced and introduced two major problems with EasyRoute. Both problems were easily fixed, and I knew about one of them during the beta period, but, in the past, any problems that EasyRoute has exhibited in beta have disappeared by the time the final version of iOS shipped. Also, developers usually get a GM seed* about a week before the general public.

The GM seed is valuable because I can iron out any last minute problems and make a submission to the App Store ahead of the iOS launch. This time, I got the final version the same day as everyone else, thus anyone who upgraded would suddenly have two major bugs in EasyRoute.

To make matters worse. I had to wait for my aforementioned crash fix to be reviewed before I could submit my iOS 7.1 fixes. I didn’t want to self-reject my crash fix and include the iOS 7.1 fixes and lose my place in the queue. Getting the crash fix out was too important.

For the curious, the two iOS 7.1 problems are gray route lines and a Street View crash. The gray route lines were fixed by Google in their maps library. The StreetView crash occurs inside Apple code but I was able to work around it. I was also able to reproduce the problem with a simple sample app, so I reported the bug to Apple.

The side effect to my workaround is that Street View won’t open and close with a snazzy (and useful, I think) zoom transition to the coordinate being viewed. Hopefully, the problem will be resolved in a future version of iOS and I can restore the zoom transition.

* For those not in the software dev industry. A GM release is a “Golden Master” release. This comes from the days when we shipped software on shiny discs.

Posted in EasyRoute | Tagged | Comments Off

How EasyRoute is always useful to me

I feel compelled to write about this because I take great satisfaction in the fact that I actually use EasyRoute quite regularly almost a year after releasing the first version. In fact, because of all the snow we’ve gotten here in New York, I’ve had to use it quite a bit recently.

You’d think I’d know the distance of every block and every street around my house by now and wouldn’t need a route planner. You’d think with a GPS watch, I could just run down the road till I covered half the day’s distance and then run home to cover the other half. Also, if I stuck with the same routes every week, I would have little need for an app like EasyRoute.

If I’m going out for an easy 3-miler, I have a number of familiar routes to choose from. The same is true for other distances; I have a 6-miler that takes me through a quiet, low-traffic neighborhood and then through a nice park. I prefer it whenever a 6-mile run is required.

I have routine routes around my house for virtually every distance, so how is EasyRoute still useful to me?

Running exclusively outdoors, mother nature often dictates terms and sets limits on where I can go. That 6-miler that takes me through the park? Not going to happen when the paths are blanketed thick with snow. A long run on a bike path? Again snow, but heavy rains can cause flooding and hurricanes like to knock down trees. The obstacles the weather can present can be both surprising and frustrating.

Summer presents challenges as well. I made some new routes over the past year that include as much tree-cover and shade as possible. I find running in extremely hot sunshine harder than bitter cold. You eventually get warmed up on cold days assuming you’ve dressed appropriately, but too much heat will relentlessly beat you down.

Many times it’s not nature’s fault as, inexplicably, the park gates to my favorite running routes are locked with chains and padlocks.

What about when I’m not around my house? I mentioned this on the App Store page, but it is worth mentioning it again. EasyRoute is great for making routes for when you’re away from home. EasyRoute is one less reason to bring a laptop or notebook computer with you since you will probably have your iPhone or iPad anyway. Don’t forget, the satellite view and Street View may help familiarize yourself with the area too.

Additionally, I prefer doing certain types of workouts in particular locations, so I may rule out certain roads or paths. For example, I will usually want to avoid twisty, winding routes if I know I’m going to want to run fast.

One more thing, as a result of my using EasyRoute, I’m always considering ways to improve it. Nothing has been more valuable than the feedback I’ve gotten from my users. It’s been so much fun getting great and constructive comments from people all over the world and using that to help shape EasyRoute into a better program.

So, stay tuned! There’s still a lot in store for EasyRoute and I’m as motivated as ever to keep the improvements coming.

Posted in EasyRoute, Running | Tagged , | Comments Off

A Pneumonia Anniversary

One year ago today, I was diagnosed with pneumonia.

Why mark this anniversary? It ended my first bid to run a marathon pretty early into the training program. After spending many years as a runner with little interest in marathoning, I had somehow come around was very excited about finishing a 26.2-mile race.

I was pretty surprised by the diagnosis since I didn’t really feel that bad and although I figured it meant the end of marathon training, I thought quite a bit about how to salvage it. I did quite a few web searches looking for success stories. After all, I had only begun week 3 of 18 (using a Hal Higdon training plan) if I got back to running within a week or two, could I pick up where I left off?

Recovery took much longer than a week or two. I did not run for 29 days and when I did, it was pretty much a disaster. I felt good at first, but it became very difficult. I held off another two weeks before resuming a semi-regular schedule and the loss of fitness had become apparent.

Missing all those weeks and jumping it when the mileage was getting high would have been pretty reckless despite how badly I wanted to do it. Add in recovery from a pretty major illness such as pneumonia, and resuming the attempt would have been a disaster.

So, I mark the anniversary this year by counting my blessings and celebrating good health. I’m in week 3 and I’m once again very excited about crossing that finish line on May 4th at the Long Island Marathon.

Posted in Running | Comments Off

EasyRoute 1.7 Released

Yesterday, EasyRoute 1.7 was released on the Apple iOS App Store.

First, I went back and changed the way the elevation button behaves. When the elevation view was first under development, I was trying to come up with a good graphic for the button that would indicate what it was for. I made a simple graph icon and it looked good, but I also realized that maybe it should just be the actual elevation graph. So, now it is.

The iPhone version of EasyRoute has a simple arrow button that reveals the map options, I reversed the direction of the arrow to indicate which direction the map options will animate from. This button can be touched or swiped. It’s a minor correction, but it just seems more natural to me.

Finally, I added a zoom animation to Street View. I was experimenting with some new iOS 7 functionality and created the zoom almost by accident. I initially added the zoom while I was experimenting with some new iOS 7 functionality and liked it. I realized that if it zoomed to and from the spot on the map you were viewing, it actually became useful, not just a fancy effect. The zoom effect only appears on iOS 7 (iOS 6 just uses the old transition) but the iOS 7 adoption rate is just insane.

I am planning a another release very soon to address some minor things I noticed over the past week (6 days in review).

Posted in EasyRoute | Comments Off

EasyRoute 1.6 is Available

First, thanks to Apple for getting the release out so fast — I just submitted it last night and here it is already!

I’ve heard that review times can get as high as three weeks right around a major iOS release, so I’m guessing they’re doing everything they can to keep the queue short with this being their crunch time.

Anyway, what did I change? I’m glad you want to know!

First, this update has been “near complete” for a few weeks, but since most of the changes were for iOS 7, I held off on working on a couple of things until the final version was available to me. (It was released to developers after the September 10th event.) When I got it, I made a few final fixes, submitted it to the App Store yesterday and Apple released it today. (Yes, I’m still marveling over that!)

So, on the surface it may seem that EasyRoute simply embraces the iOS 7 look-and-feel, however there are also many under-the-hood changes that better exploit the goodies that the new OS has to offer. Altogether, it’s just a better experience on iOS 7. For example, I made some changes to the map options view to better fit with the new design. It not only looks better on iOS 7, but the cleaner, undecorated style is actually more functional as well.

IOS 6 vs 7

When I first saw iOS back in June, I wasn’t sure the “flat and simple” design was an improvement, but I think these screenshots tell the story pretty well. The iOS 7 version is less distracting and more functional. The plain fact that all the options fit on the screen without scrolling, yet the view is hardly cramped is proof that the design is a major improvement.

Another thing I am impressed with is AirDrop. It works well and is easy to use. Simply bring up the sharing options on a compatible device and you’ll have the option to send a route to someone nearby (also with a compatible device). Just to clarify what I mean by “compatible device”, footnote 3 on that page I linked says, “AirDrop is available on iPhone 5 or later, iPad (4th generation), iPad mini, and iPod touch (5th generation) and requires an iCloud account.”

There are a couple of non-iOS 7 improvements as well…

First, I added a compass to Street View so you know which direction you’re looking in.

Second, I made the route lines a bit thicker and darker. For some reason, these lines were getting thinner and fainter as Google rolled out new versions of the Google Maps SDK for iOS. I beefed them up and restored them so they look like they did when I first released EasyRoute.

I’ve got more things I want to do with iOS 7, but wanted to get the major overhaul done and EasyRoute into the App Store so you could enjoy it when you get iOS 7.

Finally, and I hope this doesn’t inconvenience anyone, but EasyRoute 1.6 drops iOS 5 support. The last graph I saw had its usage share well down into the single-digits, so this change will likely have minimal impact.

Posted in EasyRoute | Comments Off

EasyRoute 1.5 Released

So, I’m a little late with this announcement because I didn’t realize Apple had approved 1.5. I submitted it 8 days ago and haven’t heard anything since then. The Apple developer website was taken down after a security scare, so maybe that had something to do with it.

Anyway, I want to discuss the changes in 1.5…

First, on the iPhone, I moved the map options button off the bottom toolbar and onto the map itself. I did this mostly because I needed room on the toolbar, but I think it works well on the map too.

Second, the map options themselves have been revamped. Before, there were only a few options revealed by curling back the map, now there are many options in their own view. I did this because I needed the flexibility and space for the new features that are available in 1.5. More about the features themselves are on the iTunes page.

Third, the share button has been moved down to the main toolbar. Having it up on top was a little bit unconventional and not completely supported by iOS the way I was doing it. It worked for iOS 6, but didn’t quite hold together when looking at it on iOS 7. (Yes, I’m getting EasyRoute for iOS 7.)

Finally, on the subject of iOS 7: as you can see, Apple is going for a simpler and cleaner look. I applied that thinking to the elevation graph and got rid of the shiny embossed metal look in favor of a simpler, but more colorful style. I liked it, so I left it that way.

Unless a bug pops up that I feel I have to fix, I don’t expect another release until after iOS 7 ships. In addition to iOS 7 enhancements, I have a few more features planned too.

Posted in EasyRoute | Comments Off

EasyRoute 1.4 Released

I’m really happy to announce that EasyRoute 1.4 has hit the App Store!

I’m particularly excited about this release because I feel it is one of the most solid EasyRoute releases so far. I added one major new feature, but made lots of little fixes and enhancements that I think just make the overall experience with the app better.

GPX Import and Export

I said I was going to prioritize features based on user feedback and this feature came directly from a user request. I see two major uses for this feature:

  1. Open a route created with EasyRoute in other apps.
  2. Share routes via e-mail. The recipient can open the GPX file with EasyRoute or a multitude of other mobile, desktop and web apps.

This is why, if you think EasyRoute could be better, you need to contact me. I’m listening.

Tweaked Add Route Process

It just works better and you may not even notice the difference, but I feel like explaining it.

Previously, on the iPhone, when you pressed the Add Route button, it brought up a view with a Cancel and Done button. This was different than the buttons you got when you were editing an existing a route, but I set it up that way because I thought it would be simpler. The route didn’t fully exist until you were finished and hit the Done button, making it easily cancelled. The problem was, it was a little too easily cancelled. I did not get any user complaints about this, but on a few occasions, I personally accidentally hit the cancel button and lost a route I was making.

I patched this by adding a confirmation message, but I don’t like message box-style user interaction and having an explicit save isn’t really preferred on iOS anyway. So now, regardless of how you conclude adding a new route, EasyRoute will do the right thing.

Out and Back and Reverse Crash

I have about a half-dozen people on my TestFlight team look at EasyRoute before it goes to the App Store and I comb through it myself. Even after it is submitted, testing continues in case a bug is discovered during the few days while it is in Apple’s review queue.

So, I was very surprised to discover that these functions caused crashes. The fix was really simple, but still very embarrassing for me. I received no complaints about it, but I still apologize to anyone who may have encountered this problem.

Distance Marker Improvement

This version of EasyRoute shows fewer distance markers in proportion to the map zoom level, so you won’t have dense line of them obscuring your route if you make a long route.

Selection Indicator on iPad Fixed

Since the route list and the map can both be visible at the same time on the iPad, I now ensure the current route is highlighted in the list. This was always the intent, but did not work in all cases previously

No Town Names

Fixes a problem where town names might not appear on the main list.

Route Info

The route info button is now visible even when not editing a route. Now you can view and change the route’s name and notes without having to enter editing mode.

There are still lots of great features coming to EasyRoute. Stay tuned!

Posted in EasyRoute | Tagged | Comments Off

Rolling right along: EasyRoute 1.3 Released!

There is only one new feature, but it is a personal favorite of mine: Street View!

Tap-and-hold on a road to bring up Street View. It’s that simple.

This is something I’ve been looking forward to doing. Before EasyRoute, using web-based route planners, I have had to keep a regular Google Map page open also so I could look around. If I was planning to run along a busy street, is there a sufficient sidewalk or shoulder I can use to avoid being too close to the traffic? Now, I can just bring it up and check it right in EasyRoute.

I’ve already got a major new feature nearly complete for the next release. Stay Tuned…!

Posted in EasyRoute | Tagged | Comments Off