Trip Sync

Mauna Kea Summit

You might think that keeping things in sync would be fairly simple. It’s just copying data around, right? But no.

What makes it difficult is handling conflicts. Just like in the real world, we’d have fewer problems if we all just got along. But like a programmatic Middle East, some data synchronization conflicts are simply intractable. In the abstract, there’s no right answer. Just, if we’re lucky, a compromise that all parties can agree to.

But we’re just a humble software program. The only game we know is abstraction, and we’re not invited to any of the good parties.

So we do our best, but even when we do everything right there are cases where the result is wrong. We don’t even know why, but we end up accused of corruption. There is no trial. We’re uninstalled. Game over.

Next time around we have a thought. Spending some time in the real world always brings inspiration and, sometimes, solutions. This one is simple, and it seems to work for almost everyone in this day and age: what if we hand off all of our externalities to someone else?

It turns out we’re not really in the data synchronization business at all. Instead, we simply provide a conduit for data to be synced. A higher authority can decide what’s right and what’s wrong, and worry about who killed who. We’re just a data-agnostic platform, a neutral happy medium without a message, an arms dealer to good guys with trips to sync up and down. If we had a business model, it would be keeping our hands clean.

One question remains unanswered. To whom shall we externalize the problems that weigh so deeply on our souls? Well, dear user, if you don’t know the answer to that, then it’s probably you.

Which brings us to our latest Backroads premium feature. As of version 2.0.0, you can now use your OneDrive account to sync trips between your devices. And when we say sync, what we mean is that we give you upload and download buttons on your trips and you decide when to press them. The app will warn you if you’re about to overwrite local changes, or about to upload an older version to the cloud.

It works quite well, and we think you’ll really like the feature. We think there’s at least one more fun thing we can do with cloud storage, so this isn’t the end of the story. And maybe this cloud thing will catch on after all.

I Sync, Therefore I Am

Utah 476

A few years ago, back in the late Cretaceous, programming was a lot simpler than it is now.

In a nutshell, the bar was lower. Users had lower expectations. Software didn’t do all that much, and it was perceived as a minor miracle when it actually worked. Shrines would be erected, candles lit, flowers arranged. Celebrations might continue until the IT guys got tired, sent everyone home, and finally got some sleep.

Most of our recent work on Backroads has focused on improving the tracking experience. Of course, someone interested in travel is probably also going to be interested in recording their travel locations. And yet, we released many versions of the app without any support whatsoever. Intolerable, for the world’s best travel companion app™.

However, even with world-class support for tracking, it still seemed like something was missing. In our dreams we were haunted by Zawinski’s law, feverishly tearing open fractal matryoshkas of envelopes with no underlying message to be found. We’d awake sweating under rumpled sheets, hoping it was just the head cold.

Clearly we needed something more. These days, if an app can’t successfully impersonate you on social media and overthrow foreign governments with carefully crafted fake news, it’s barely considered sentient. Three stars at best. Your minimum viable product is viable no longer.

But deep down, we didn’t want to read anyone else’s email. Nor did we want to add to the noise on Facebook and Twitter with travel-related spam. There’s quite enough of that already, and election interference really isn’t our forte.

As we tossed and turned, we remembered that computing, at its core, used to mostly be about copying things around. Registers to cache to memory to disk and then back again, until CPUs got so complicated that even the bus you take to work is now mostly speculative. The same principle can still be seen in modern computing, which at its core is about making permanent copies, surveilling them, and then selling you ads. One might call it standing on the shoulders of giants, except the giants are probably robots.

Then it hit us. Just like the embarrassing social media posts that will follow you around forever, what if we synced copies of your tracks around to every device you own? The future is now, and it’s an indelible data stream that can’t be turned off. Why wouldn’t we want to participate in that? And as of Backroads 1.1.4, you can too.

Now all we need is a blockchain and a neural network.

Android adventures

Leprechaun Canyon

Well, our secret is out.

We’ve ported the Backroads app to Android and released it to the masses as a Beta. You can now get it from the Play Store for free for Android 4.0.3 and above.

In case you’re curious, we used Xamarin Forms to create the Android app, allowing us to share our core business logic with the Windows version. Startup times are a bit long and the app is a little sluggish, but it’s a minor miracle that you can even write a decent Android app in C#.

A shortcut we chose is to only expose the trip companion aspects of the app in the Android version. Trip planning is a fairly involved activity, requiring substantial amounts of user input, and is best done with a keyboard, mouse, and monitor. So the recommended workflow is to plan your trip on your Windows PC, export the trip to your Android device, and follow the day-to-day of the trip on that device. If there’s something you would really like to do on your phone, but can’t, please let us know.

One thing to note is that Google Maps needs a network connection once in the lifetime of the app before it will work. So make sure you run the app and enter a page containing a map before you disappear into the hinterlands and run the app for the first time offline. Otherwise, mapping functionality won’t work at all. Thanks, Google.

There’s also no system-wide support for offline maps in Android, so don’t expect to see any map markings while your device is offline. Your GPX tracks, will of course be rendered as you’d expect. So make sure any waypoints you care about are present in your tracks.

Beyond that… as mentioned, the app is still in Beta. We’ve dogfooded it quite a bit, but it still isn’t quite as battle-tested as the Windows app. We also haven’t run it on that many Android devices, so we’re looking forward to your feedback on how it works for you. Enjoy the app, and stay safe!

Alternate realities

Kanarra Creek Canyon

Every generation has a world view. It’s not a consensus but an aggregation: the epistemic closure of all extant ideas of the world, plus dusty notions found in books and charts or obtained by parental contagion.

World views provide meaning. An impossibly complex reality that probably actually exists is sampled through our senses, experience by experience, made simple and limited by our own limitations. This data stream is transformed and made intelligible us as it filters through the preconceptions and optimizations that comprise our world view. The final product is raw metaphor, disconnected from its origins but representing them in ways that hopefully are conducive to our survival.

The final form of a metaphor is often based on a generation’s favorite technologies and tools. When we build something, it shapes our understanding of everything.

An example: this process, executed collaboratively by all of us together, is really just the universe’s ways of executing a massively parallel computation, rendering an unknowable world into discrete shared polygons of artificial reality. We live in our own simulation. (And now you know what our favorite tool is.)

In the nineteenth century, medicine conceived of the body as an industrial machine, built from pneumatic tubes shuttling various types of humors and vapors from one place to another. The twentieth century brought us cars and airplanes, and doctors went from being magicians to being mechanics, making house calls to tune up our bodies. Turing and von Neumann brought us computation, code and data, at which point our minds transformed into computers. We developed drugs to poke our memory banks, and psychotherapy to reboot our subconscious systems or flash our firmware.

This generation? Its metaphors are software.

Our minds became tangles of layered, conflicting subroutines, our bodies generic algorithms executed from gestation onwards. While dating remains a linear search that resists optimization, everything else is now indexed by user reviews and delivered to us on the next business day. Life itself is blockchain: the only part of our constructed reality that resists our newfound ability to undo, to CTRL-Z and forget it ever happened.

In many ways, this is a profound evolution. Like software, this generation is more flexible than any before it. It can operate on parallel tracks, focus on multiple goals simultaneously, and change itself while effecting change. This generation demands personalization and settings. With freedom to act, it will re-skin our reality.

And so for the humble trip planning software behind this blog, the mechanistic thinking of the past is no longer sufficient. Travel plans can change along the way, and our users now expect the ability to rectify and undo. And while we can’t actually reverse the blockchain of your life, we can at least help you find alternatives, allowing some sort of compensatory forward motion towards a better place. The past may have progressed linearly, but your future should offer you multiple choices.

Without further ado, we present a new Backroads feature: alternative days. They’re like real days, only alternative. You can have as many schedules as you want for a given day, planned separately based on some pivot. It might rain. You might be tired from yesterday’s hike. Road conditions to your preferred destination might not be conducive to survival. And so parallel universes must be available to you.

Now they are. As of version 1.0.22.

The Uncharted

Little Finland

It really should be fairly simple. On a dark and stormy night the muses come calling, and leave a great new idea in your mind. Brick by imperative brick you design and implement a new feature, test it with care, ship it on tenterhooks, gather feedback, maybe fix some bugs… and you’re done. Time to move on to the next thing on your list.

Except that’s not quite what happens. You ship a new feature and now Heraclitus tells you the app is no longer the same. The equilibrium has been disturbed. Something has changed.

To be precise, the way people use it has changed. If the new feature was any good, then by adding it you enabled a new set of scenarios, new ways for people to use the software. You didn’t just write some code, you engaged in casual world building. There is now new land to explore and settle, towards which the wagon trains are already shambling. Far beyond the manicured horizons of solid code, at the very limits of the tested scenario map, they will surely encounter a few krakens.

On a good day, you the creator will have explored this space in your mind, perhaps even in the holy writ of specifications. Your code may this have already covered up the more dangerous of pitfalls. Your people will not lose themselves in the desert on your watch. But your users… your users are interesting people. You can always count on them to explore the uncharted edges of your world in unexpected ways.

Hopefully nobody will get hurt.

This is where we’ve been in recent weeks with Backroads. With the release of 1.0.19, we’ve largely finished enabling some great in-app tracking scenarios. You can track your location on a map, alongside an existing track file if you wish. You can save everyday tracks without even having to create a trip; they’ll automatically be stored in a calendar-like view available from the tracking page. You can also import and export these tracks, in case you want to accumulate them on a single device, or simply back them up. You can view charts showing elevation and velocity over time. You can even see your track’s elevation gain and loss, although those calculations tend to be affected by GPS noise.

The one thing you can’t do yet is share a track on Facebook. Maybe someday, when we’re all just a little bit older.

Even with all this, we’re sure we’ve missed some key scenarios and we’re looking forward to your feedback. So if you find the land falling away, universal laws failing, yourself staring into the abyss with only a GPX track to guide you back, be sure to let us know.