Google My Maps to Galileo Offline Maps

As I mentioned in a previous post, I’m using Google My Maps as my primary tool for creating my map for Te Araroa, mapping estimated day stopping points, resupply points, etc. This tool has been invaluable for this purpose. It’s very easy to use, allows me to add custom icons to the points on the map to differentiate huts and resupply points and everything else, and, most importantly, it has the ability to export KML.

On the trail itself I’ll be using Galileo Offline Maps as my primary navigation tool. This app has the ability to download vector maps of all of New Zealand, import KML to display on the map, and allows for custom raster map tile sources. Sadly, but understandably, it won’t download the entire set of topo maps for the whole country in one shot, but what it does do is have a cache that can be used offline, so I just need to make sure I have the maps I need to get me to the next place I’ll have internet in my cache, and I’m set. This is easily done by simply looking at the map and sliding around, picking up the tiles I need and caching them in the process. I can then flip to airplane mode, verify I still have the tiles I need, and I’m set.

A problem I ran into is that while Galileo also supports customizing the icons or “Category” thats get displayed for a “Bookmark” (their name for what KML calls a Placemark), it doesn’t support the ones exported by Google Maps. Fortunately, it does support its own categories. As in, I can create some bookmarks, export the KML, import that same KML, and the categories are preserved. This means I should be able to convert the KML from Google Maps into something Galileo can use.

So I wrote a script which does just that. One of the things I noticed in my experimenting with the KML I’m importing into Galileo is that it actually doesn’t seem to care about any of the Style information in the file, it just looks at the styleUrl on the Placemark and uses that to determine which category to apply to the bookmark. This allowed me to quick-and-dirty modify each Placemark and import it into Galileo.

This allows me to turn this:

Into this:

And this:

Right now this is super super hacky. It uses a static mapping of icons from Google Maps to Galileo (including colors), because I’d like to be able to convert back to Google Maps from Galileo, so I came up with a mapping from Galileo’s icons to a subset of Google Maps icons. It’s not perfect, but it works.

It also only touches the styleUrl contents on each Placemark. This means the file is actually completely broken for any other purpose than using it with Galileo. I’d like to change that so it converts it to something closer to what Galileo itself exports.

This is a huge step, though. It means I can now, with minimal fuss, export my Google Map to my phone and use it offline. Something that is going to be incredibly valuable to me on the trail!

Signing bonuses are bullshit

Signing bonuses are bullshit. They masquerade as an incentive to join, but in actuality they are a guaranteed pay cut at best, and at worst a way to lock you in to staying at a job, or put you in a really bad financial spot if you need to leave earlier than expected.

Scenario

You’ve just finished the interview process for a new employer and they’ve given you an offer! Awesome! Congratulations! I knew you could do it!

Here’s the details of the offer:

  • Salary: $100000
  • Equity: 5000 options at $.50 strike price 4yr/1yr cliff
  • Signing Bonus: $5000

You think to yourself: “Wow! $5000 just to get started? I can pay off that bill I have laying around!”

But I’m here to tell you that you shouldn’t pay off that bill just yet, and that the signing bonus is not as great as it seems on the surface.

Why not?

Most signing bonuses aren’t just cash in your hand. If they were, people would start jobs, work for a day, and collect their signing bonus on their way out the door. Over and over and over again. So it makes sense that businesses will want to try to prevent that from happening.

A typical signing bonus has a 1 year vesting schedule, vesting daily. If you leave on day 36 of your employment, you need to return 329 days worth of your signing bonus to the company. Seems reasonable.

Except you just used that signing bonus to pay a bill. Oops. Guess you’re stuck at that job for 329 more days. Or now you have to take out a loan to pay your signing bonus back. Or … something. Not a situation I’d want to be in.

Additionally, depending on the wording of the signing bonus agreement, you might have to pay back the pre-tax amount, which means now you’re out the taxes that were withheld until April comes around again…

But what about…

If you’ve got a decent handle on your financial situation, one thing you could do is set that money aside, and only taking out / using the money that is “yours”. That’s a reasonable approach, to be sure. That’s what I do. And that’s what you should do, if you want to make sure you don’t get stuck in a bad situation regarding the signing bonus.

But let’s think about that for a minute. Say you give yourself 14 days worth of your signing bonus every 2 weeks, just to make the accounting easier. Maybe even on payday.

How is this any different from making $105000 instead of $100000 + $5000 signing bonus?

It’s not, really. And, if you want to be safe with your money, this is exactly how you should look at it.

But let’s think about that for a minute. Are you going to get another $5000 bonus at the end of your first year? The second? The third? The fourth? Is that going to be in addition to any sort of raise you might be eligible for? Probably not on all counts. And your raise will almost certainly be based on that $100000 base salary.

What a signing bonus actually is, is a guaranteed pay cut after your first year.

So, what do I do?

If your offer contains a signing bonus, try to negotiate it away. If they won’t, then maybe ask for a higher base salary anyways. Or just think of it as a pay cut. It’s not great, but it could be worse. Also, make sure to discuss this as part of raise negotiations in the future.

Do not be fooled into thinking that you asked for $105000 and they gave you $100000 + $5000 and it’s the same thing. It’s not. Your salary is $100000. That $5000 is not factored into anyone’s numbers but the IRS.

Don’t be fooled into thinking that you can go off and spend that money right out of the gate, unless you have a strong enough handle on your finances to be able to pay it back out of other places if you need to leave. Even then I would say don’t, because leaving the company costs you money. Maybe money that you had when you spent the signing bonus, but Shit Happened™ and now you don’t. If you pretend that money isn’t yours to begin with, you’ll be fine.

But mine is different!

Sure! I would love to hear about other signing bonus structures that people have encountered. Assuming they’re not just differences in the vesting schedule and term, unless the vesting is somehow non-linear over time. RSUs and other such equity things are also separate from this discussion, as you can’t sell those before you have vested them, meaning you can’t spend the proceeds until the money is really yours.

Preparing my navigation tools for Te Araroa

As I mentioned in my previous post, I’m using Google Maps’ My Maps feature to create a map of the route, accomodations (read: huts) along the way, things to be on the look out for, etc. This has been immensely useful.

However, there’s no way to get this information in the Google Maps app when you are offline. Google Maps does have an offline download feature, but it doesn’t work for the “my places” part of the app. Additionally, the only base maps available are ones that Google provides, which are good, to be sure, but they aren’t NZ Topo Maps good. Between these two faults, using Google Maps as my primary on-the-trail navigation aid was not possible. I did it in Japan, but I also had cell reception probably 95% of the time I was on the trail in Japan. I won’t have that luxury in NZ. I’d be surprised if I had cell reception 20% of the time. This isn’t to say anything bad about NZ, more that I’m going to be in some pretty remote areas, and NZ is really sparsely populated as it is.

So I went searching for mapping apps I could use on my phone. Ideal candidates had to support importing KML, which is what My Maps exports, they had to support custom base maps so I could add the NZ Topo Maps, and they had to be able to be usable with airplane mode enabled. They did not need to have any points of interest or anything already in them, available for offline use, but if they did, bonus. Other available map layers would also be very useful, but not necessary.

There are a lot of mapping apps on iOS, but in almost all cases they fell flat. ArcGIS Explorer seemed at first like a very plausible app. It even allows for freehand drawing on the map itself, which could be handy for on the fly handwritten notes or freehand plotting of a diversion course. Sadly, this does not seem to be usable offline, at least not without a costly subscription to ArcGIS online services, and even then I’m not entirely certain about it.

Another app I came across, with strong recommendations (sorry, I don’t have a source for those) was iHikeGPS-NZ. At first this seemed really reasonable. And the price was pretty good. But after trying and failing to get it to show me any maps for several days, I started looking elsewhere. I did eventually manage to get it to show me maps, though. I had set it to download maps for me which was great, but I couldn’t figure out how to get the map display to actually show me New Zealand at all. Eventually I decided to try importing a KML file anyways, which worked! I could pull up a way point that I’d loaded in from the KML and have it show me on the map! From there I could slide the map around and look at surrounding areas, zoom in and out, everything I needed. There were 2 problems though: first, it was incredibly slow. In fairness, this probably has more to do with the fact that I told it to download the maps for the entire South Island, which are probably very large, and it was probably decompressing them on the fly. This told me, though, that it was probably consuming a large amount of CPU to do this, which would eat my battery life. The second problem was the KML file I imported, none of the custom icons made it over. The UI was also really strange, and overall the app didn’t really do it for me.

I spent a lot of time looking through the app store, searching the internet, and didn’t really find anything I felt confident plunking down the money for. Side note: please please please, Apple, won’t you give us the ability to have a trial period for apps? I don’t mind spending $50 for a quality app if it’s what I need, but I do not want to do that not knowing at all what I’m getting. Screenshots don’t tell me enough, I need to actually use it. Anywho, eventually I discovered Galileo Offline Maps. I wish I could tell you how I found it, but I can’t, so I’ll just have to recommend it! They have 2 versions, a free, in-app-purchases version, which appears to have all of the functionality of the “pro” version, but unlockable via in-app purchases, and the paid “pro” version which has everything already unlocked. Either way it was $3, so I went with the one without in-app purchases! This app is nearly exactly what I’ve been looking for!

First of all, it has support for importing KML. Many of the apps I looked at only supported GPX imports, which wasn’t all that useful to me. It even preserves the “folders” that KML supports, and allows you to organize your tracks and “bookmarks” as they call them, all within the app. There’s a flaw with the out-of-the-box usage of the app with importing KML, and that’s that custom marker icons (“categories” in the app) are lost upon importing KML. I mentioned this as a fatal flaw with one of the other apps I tried. The difference was, in this app, I could still add my own custom icons after the import, which lead to believe that I could probably figure out a way to get custom icons imported. Spoiler alert: I can. I am working on some tooling which will convert the output from Google Maps to the correct inputs to Galileo. Once I have this going, I’ll write up a post documenting that.

It does do offline maps, as per the name, but I think it has had some of that functionality disabled since the review I read (sorry, no link, don’t remember it) had been written, and now the app only supports downloading a limited selection of vector maps for offline consumption. I have a feeling this is in large part due to space concerns, and of course impact on the tile provider while it downloads everything. There’s probably also some copyright / licensing issues (despite the fact that NZ Topo Maps are CC licensed). However, there are 2 ways you can get custom raster tiles into the app. It supports a mapsource file which has some metadata about upstream map tile providers. It also has support for bulk importing custom map databases that you provide, built using third party tools. The mapsource file doesn’t make it so you can download the tiles for the whole country at once, but the app does cache any tiles it downloads, and in the limited experience I’ve had using the app, this functionality is enough to give me what I need in an offline experience. I just have to make sure before I leave the internet that I’ve seen the entire map of the section I need, at both resolutions supported by the NZ Topo Maps, and the cache will take care of making them available offline for me. Fortunately, I have plenty of time to play around with this feature before I get too deep into the sticks, and I can always fall back to the vector maps if necessary. Also, if I have some extra time, I’ll look into creating a custom map database that I can import into the app with the tiles I’ll want for the trip, to then worry less about the faux offline mode. The cache settings seem to only care about the size of the cache, not the age of the items in the cache, so I feel pretty confident I’ll be able to rely upon that functionality while on the trail.

It should go without saying that I am not, however, going to rely on this as my sole navigational aid for the trail.

A friend of mine is letting me borrow her Garmin InReach Explorer, which is a handheld GPS device. I’ll load some maps that I can find, along with at the very least the GPX version of the route map, if not my full KML version from Google Maps. This will be a backup navigation aid, however, as it also doubles as my emergency help summoning tool. It is connected to the Iridium satellite communications network which will allow me to summon assistance as well as do some basic (but very expensive) communication while off the grid, so long as I have battery and a view of the sky. I’ll use this also for on demand weather reports for sections of the trail that are particularly weather sensitive. In sections where I’m at risk of losing my pack (river crossings, in particular), I’ll be sure to carry the Garmin attached to me, and not to my pack, and if possible, do the same with my phone. While my phone is water resistant, it’s also my primary navigation tool, among other things, so I’ll probably keep it in a small dry bag (read: ziplock) during river crossings, just in case.

I’ll also be bringing paper maps of the longer, more remote stretches of the trail. Ones where running out of battery is a real possibility, or where a broken navigation device could leave me lost without much of a clue as to where to go. For shorter legs I won’t bother with the paper maps, as I am not going to be very far from a road, and there’s really only one route to follow, so getting lost would be much harder to do. Another thing I want the paper maps for is if I need to divert around an impassible section of the route (weather, landslide, improper gear, etc), I’ll be able to look at them and see what other tracks are in my vicinity, to either route around the obstacle, or at the very least get me to the nearest road where I can attempt to hitch a ride back to a safe place. I’ll of course be carrying a compass as well!

With Galileo Offline Maps, the Garmin, and paper maps / compass, I am confident I’ll be able to find my way along the trail, no matter what happens along the way.

I would like to call out something I wish I had seen sooner, but in hindsight am actually happy I didn’t see sooner, and that is Guthook (via reddit). This seems to have nearly everything I’d want. Offline access to NZ Topo maps. The route itself. Huts and other important places along the way. It even does cool things like telling you how far to the next hut, next water, notes from other users of the app, elevation profiles, etc. It seems very cool, and I may actually pick it up, but I’m glad I did the work of creating my own map anyways, since it has significantly increased my familiarity with the trail, and increased my confidence in being able to do this. I know where my food is coming from, at the very least!

Te Araroa planning

I’ve spent the last week or so obsessing over trail notes, maps, and brochures relevant to Te Araroa. I’ve been doing other things related to being out of the country for 3 months, but primarily I’ve been working on the notes and map for the actual route.

I’m really glad I did this. This is only the third backpacking trip I’ve done. About a year ago I was in New Zealand on vacation and spent 4 days on the Banks Peninsula Track. It was incredibly lovely, I had a really great time, and it made me want to pursue backpacking more. Earlier this year, I spent 9 trail days walking on the Tokai Nature Trail in Japan. But this trip is significantly harder than either of those, and significantly longer.

When I was on the Banks Track, the only thing I really needed to worry about was food. Accommodation (including hot showers and electricity), the trail, transport to the start of the trail, all was taken care of. I just needed to walk between huts. And the days weren’t long.

When I was in Japan, I was much more on my own. There is very little in the way of English language information about the trail, other than the copious amounts of signage along the route (at least on the section I walked). I had a map and some basic information, but I was mostly relying on Google Maps to tell me about resources along the trail like food sources, etc. I learned very quickly that wasn’t much to go by, and I learned very quickly that Google Maps in Japan is not at all reliable. Unless you’re talking about using it for most transit directions, then it’s 100% spot on, but I feel like that says more about Japanese transit systems than Google Maps. However, I still successfully didn’t starve or die of thirst, and I never got lost anywhere. It turned out just fine!

When I started looking into Te Araroa, I was running under the assumption that there would be copious amounts of services along the trail. It’s New Zealand, after all. Tramping is what they do. So I loaded up the trail route in Google Maps and said “this is fine”. Fast forward a few months when I’m actually starting to plan for it, I pull up the trail notes and very quickly notice that this is a very different ball game.

For instance: on Google Maps there are a lot of names along the trail. I was running under the assumption that these were towns. Small towns, sure, but towns. And in those towns I could find food, maybe a restaurant, and a refill of my water.

Nope.

Most of those are “stations”. As far as I can tell, “station” is the Kiwi word for “big-ass[1] sheep farm”. So, no shops. No restaurants. And probably no water, at least not publicly accessible.

Then I noticed that there were sections of the notes talking about “5-7 days”. I looked more into it and noticed that, yes, they mean 5-7 days from when you leave a school camp in the middle of nowhere until you get to the next town. Oh, and that town is super tiny and the local shop is probably not going to have what you need for the next stretch which is 10 (!!) days! And along the way there are no services. Your water sources are all going to be wild (read: rivers, streams, lakes), or rain tanks at the various huts along the trail. You have to carry in all of your food. All of it. For 7 days. There’s no electricity. There’s zero cell service. No wifi. No vending machines. Nothing. Just you, the trail, and whatever weather conditions your dice roll got you. Sounds amazing. However, that’s not what I was expecting to be dealing with.

So I dove head first into figuring out as much as I could about the route. Where was I going to get water? Where were my overnight stops? Do I really need 10 days worth of food on that one section? Where am I going to get my food?

The end result of this is a map I’ve created using Google’s My Maps feature. On it is nearly every accomodation along the route, huts, “official” campsites, places where I’ll be staying in towns (and therefore a hotel, hostel, B&B, something). I went through and made notes for, at the start, every single day, and near the end, just the long sections, with estimated overnight stops, places I might have trouble finding water, where I was going to get food, etc.

I’m incredibly happy I did this. When it first hit me just how monumental an undertaking this trip is going to be, I was really scared. Now I’m only slightly terrified, but not that I’m going to starve, die of thirst, head down paths I’m literally not equipped to handle, etc. I feel like I already know the trail, just by poring over the topo maps (which are seriously fantastic), the satellite maps on Google Maps, and writing up all of my notes about the various sections. I’m even fairly confident I can handle the really hard sections, or if I can’t, I know when I’ll be deciding if I’m going forward or going back, and not walking blindly into the unknown. The only thing I’m really worried about at this point is “did I forget something?” or getting injured, burning out early on, whatever. Fortunately, those are things I won’t know until I hit the trail, and they’re all things I will deal with if they arise.

And yes, I really do have to carry 10 days worth of food in one section. Fortunately, by the time I get there I’ll probably have lost more weight than the total weight of the food I’ll be carrying, so it’ll be like I’m carrying less than nothing 😉 And I am actually pretty worried about carrying that much food. When I was in Japan I tried to at one point carry 2 days worth of food (and 5L of water, I’ll write up that day one of these days) and it was unbearable. But I was not carrying the right food, because I wasn’t prepared. I feel confident now that I am going to land in New Zealand armed with the information I need to make this a successful trip, and this map and the notes that go along with it are an excellent first step in that direction.

I’ve got some more work to do on the map (I may be done with it by the time I actually publish this post), but once that’s done it’s on to the next challenge: get it onto my phone so I can have it offline on the trail. I am making significant progress on that front, too, and I’ll have some things to share about that when I am happy with the state I’ve gotten it to (which should be in the next couple of days).

I’ll also be publishing the notes at some point, but because I’m using Dropbox Paper to put them together (they have nice WYSIWYG markdown-ish formatting and offline support), I don’t think I can share them publicly without exporting them somehow, so I’ll do that when I’m good and done modifying them, which may be after I get home!

I plan to write a bit about the tools I’m using to help plan this trip and the tools I’ll be using on the trail. Yes, including gear. So stay tuned!

I’m getting really excited about this trip!

1: relevant XKCD

Farewell, Stripe. Kia ora, Te Araroa

Wednesday was my last day working at Stripe. It’s definitely a sadness that I’m no longer there. But I think it is for the better, in many ways, so there’s that silver lining, at least!

One of the things I’ve been wanting to do for a very long time is a cross country bike trip. It started as me and a coworker planning a 6 week tour for 2012, and ended with neither of us being in a situation to be able to do it. I have had 2 gaps in employment since I left DreamHost in 2011, one of 5 months and one of 3. Both of these gaps I had plenty of excuses as to why I couldn’t, or why it wouldn’t work or what about my animals, etc. This time is different. I have a lot less “local commitments” than I have previously. I am in a better financial situation. I have a strong want to do something. So I’m going to take advantage of this opportunity and do something!

Last November, almost a year ago to this day, I went on my first backpacking trip ever. I traveled to New Zealand for a vacation, and one of the things I did was to walk the Banks Peninsula Track outside of Christchurch. I had an extremely good time. The trip itself was pretty pampered. Well marked trails, huts with hot showers, comfortable beds, cooking equipment for every night, and if one wanted, pack haulage between overnight spots. Also the days were very short, the longest day being about 12 miles and that was with lots of extra credit, the shortest being 6 miles. Still, it infected me. I loved most every minute of the trip, and at the time I was describing it as the best 4 days of my life to that point. Even in spite of the fact that it coincided with Election Day…

I got back home and immediately started researching where I was going next. After much searching around, I settled on Japan, where I would hike part of the Tokai Nature Trail that stretches between Tokyo and Osaka. That trip, too, was an amazing experience. It was significantly more difficult in nearly every way than the trip I had done in New Zealand, but the experiences and the memories made it all well worth it, and I look very much forward to the day I finish the rest of that trail, and perhaps a thru-hike of the entire country!

Now, I’m facing another gap in employment. I could go find work immediately, and I do intend to do some job searching before I venture off into the unknown, but I feel like the time is ripe for me to take on some of the longer term adventuring I’ve been so desperately wanting to do for the last 6+ years. So I’m going to.

Te Araroa, The Long Pathway, is a 3000km route that traverses the entire lengths of both of New Zealand’s main islands. It’s too late in the year to start and attempt a full thru-hike, but it’s not too late to get started on a partial trip. I’ve spent the last several days poring over any information I can find about the trail, like where resupply points are, difficulties of sections, what gear and skills I’ll need to bring or develop, etc.

Since I’m only going to have limited time on the trail, I have decided that I’ll be starting from the southern terminus of the route, Bluff, and traveling northbound until I stop or run out of time. I’m going to shoot for 3 months in country, with probably a week on the front end doing some sight seeing, exploration, and preparation in Wellington and Auckland prior to hitting the trail. Start date is still tbd but shooting for the first or second week of January, coming back to the states in time to determine what I’m doing with my apartment. My lease is up at the end of March but I’m going to try to extend it by a month.

I’ve been a bit hesitant to do any part of the trail because I feel like I want to do the full thing in one shot to experience it all with fresh eyes, which has had me searching all over both New Zealand and other countries (Argentina, Chile, Australia, and Taiwan, primarily) for other hikes I could do with that amount of time. New Zealand has a LOT of trails, but many are rather disjointed and some that I’ve seen that people have done are less trails and more “I managed to figure out how to get through here”, which feels like is a bit above my skill set to try to take on. The disjointedness is fine, as well, but it makes planning a lot harder and I’d probably end up spending more miles walking roads or hitching than on the trail.

But I’ve mostly gotten over that. After reading some notes from other hikers, it seems that starting from the south end of the South Island and going north offers the best gradient of difficulty, and given that much of the trail is pretty difficult, with several stretches of 7+ days without resupply, it’s probably best for me to start a bit easier, given that I basically only have 12 days on the trail worth of experience, and much of that was fairly easy and plenty within reach of towns and resupply points and such.

In the mean time, I’m going to first spend some time taking a load off. I’m also going to look for work, of course, and try to find something that will line up with a mid April or June start date (I have a 3 week trip planned for May-June), but not stress too much about finding work. And finally, I’m going to work on this website, so I can do the fun mapping stuff I’ve been wanting, where I can lay a gpx track on a map, along with blog posts, photos, and other stuff to roll up into daily, weekly, or full trip write ups. As part of this, I’ll also be finally getting my cat map online. I have all of the data gathered, I just need to get the site up and running and get the data imported in. Since it’s effectively a blog with a map and photos and “encounter” write ups, most of the work I do on it should be able to be integrated into this site for the mapping functionality I want here!

I feel like this is a possible turning point in the journey of my life, which is both exciting and terrifying. I feel incredibly fortunate that I’ve had the opportunities so far in my life that have led me to this point. The friends who have helped me. The companies I’ve worked for. My family for laying the foundation.

Tokai Nature Trail Quick Summary!

If you follow me on twitter you probably know that I spent a couple of weeks in Japan recently, and as part of that trip I hiked part of the Tokai Nature Trail [official? Japanese site, wikipedia]

before

In doing my research for this trip, I discovered the trail itself and got lots of great information from Nomadic Tom’s blog about the trail, including GPX tracks of his walk, links to GPX tracks from someone else who had hiked the trail, etc.

On the third day on the trail, I discovered that in Shizuoka Prefecture there was a bypass course option, which, according to the sign board talking about it, included ropeways, ocean views, and other things. Since I hadn’t seen anything online about it (including on what I think is the official website for the trail), I thought I’d check it out, as it sounded pretty fun, and hopefully cut out the huge climbs I had been dreading looking forward to for a couple of days. It would also give me an opportunity to document the bypass course for others to be able to use later!

So I did. And I ran into some problems. I aim to have a more thorough writeup of the trip, especially the bypass course, but I thought I’d try to get the route information I have online sooner rather than later so others can benefit from it.

I spent a total of 9 days hiking, but the third day is split into 2 sections, mostly because I had almost given up and gone home that day, so I stopped Strava, but when I gave up further and decided to go back to the trail, I started it back up.

after

After I switched into “must document the route for others” mode, I tried to be as true to the trail as possible, and I intend to fix some of the mistakes later and publish a more accurate version of the routes, but this is what I walked, and it’s pretty close most of the time. The bypass course starts around mile 4 on the Day 3, part 1 segment, on the eastern end of Lake Tanuki, and continues until the end of day 9, when I meet up again with the main trail in Kurata, Fujieda City.

I recorded these with Strava on my iPhone, but have downloaded the GPX files and am hosting them locally if you don’t have a Strava account or Strava disappears or whatever.

Notable departures from the official route are mostly on day 8. I got off the train at Mochimune and there was no indication as to where the trail was. There were a couple of signboards outside the station with maps on them, but they didn’t look like the official trail signboards I’d been seeing for days, and they were in Japanese, so I couldn’t read them, and I knew where the route was further down, so I just kinda wandered toward it. The official route either goes straight to the coast from the train station, or *starts* there, as you can see what looks to be an official route sign on street view. Additionally, later in that day, when approaching Gyokuro-no-sato, the signage just disappears. Earlier in that day the signage changed slightly to fit in with the local trail network, but it had changed back to normal signage prior to disappearing. Fortunately, it was all along roads, so I was able to blaze my own trail fairly easily, but I feel like I missed out a bit! This is something I hope to call out explicitly in my detailed write-up, and hopefully adjust things to make it match the ‘official’ route at some point!

There are also a couple of options on the Day 5 track which take you down to stations on the Tokaido Main Line, which could easily be done without missing much of the “main” bypass course, or turned into a long day hike or a nice overnight trip starting from one station and walking to the other. In my more thorough writeup I’ll call out where these are and post photos I took of the signboards that mentioned them. I didn’t hike them, in large part because as of the split for the first option there had been no mention at all of any way to return to the main bypass course other than hiking down to the station and back up. Heading westbound on the trail here I often “ran out of map”, which was frustrating for planning as I only had a vague idea of where the trail was headed. Hopefully this information will help others who are on this section so they can enjoy their trip as much as I did!

If you use the information here, I’d really love to hear about it! If you have any information about course corrections or whatever, I’d also love very much to hear about it. I hope to start compiling information about not only the bypass course but the entire route to have a resource for English speakers about the trail.

Quick license note: everything published on my site including these GPX tracks are copyright me, and licensed as CC-BY-SA unless otherwise noted, and I’d *really* love to hear if you use any of this to assist with planning or execution of your own hike!

Over a year!

Oops, it’s been over a year since my last post! Oh, well!

Some things I’ve done since the last post:

  • Bike camping trip to Nestucca River Road and Willamette Mission State Park [days: 1, 2, 3]
  • Volunteering for Cycle Oregon’s Joy Ride and Weekend Ride
  • Volunteering for PDX World Naked Bike Ride
  • I climbed Mount Tabor on a big, heavy, orange bike.
  • Volunteering for Bridge Pedal
  • I bought a new bike!
  • Bike camping trip Salem -> Breitenbush -> Milo McIver State Park [days: 1, 2, 3]
  • Rode Cycle Oregon’s Week Ride
  • Spent 2 weeks in New Zealand, including a 4 day backpacking trip on Banks Peninsula [days: 1, 2, 3, 4]
  • Participated in the Portland Women’s March
  • I moved. Partially by bike. During the week we had 10 inches of snow on the ground. Studded tires are awesome.
  • Volunteering for the Worst Day of the Year ride
  • Bike camping (probably illegal camping, oops!) out at Molalla River Recreation Area [days: 1, 2]
  • Aborted bike camping trip to Gaston, OR and beyond.
  • Spent 2.5 weeks in Japan, including 10 days of backpacking (9 days on the trail and a rest day) [quick summary post coming soon]

Despite how I feel, it’s been a busy year!

Current status is that I’m trying to get psyched to work on a WordPress plugin to layer posts on a map. So something like post which embeds a map which embeds other posts (photos, videos, text entries, and, importantly, gpx/kml/whatever tracks), which is something I want for ride reports. I recently heard an episode of the Sprocket Podcast talking about RideWithGPS’s new ride report feature which sounds very much like what I want, but I want to own the data and everything, so I may take inspiration from that feature, but would prefer to host it myself.

Probably see you again in a year! But hopefully before then!

DreamHost, rvm, capistrano, fun!

I recently started setting up ktc.hn as a url shortener for my blog. I decided to make it a little Sinatra app, which meant I got to play with my standard box of tools for deploying Ruby applications: rvm, capistrano, and passenger. Since things weren’t super straightforward, I figured I’d write up this post to share what I ended up with, things I ran into, and things I’m hoping to improve upon.

The Setup

RVM

I use rvm, if for no other reason than it’s what I’m familiar with. It makes it really easy to install and manage multiple rubies, manage gems with bundler, it’s well maintained, and I can do it locally on my laptop as well as remotely on my deployment targets.

Capistrano

Capistrano is an ssh-based deployment tool, useful for deploying applications to remote servers. I like it because, while it has great integrations for ruby projects, it can also be used to deploy pretty much any software. I’ve used it for PHP as well as golang projects, rails and non-rails ruby projects, whatever. I’ve also used its sshkit library for automating tasks via ssh.

Passenger

DreamHost supports running ruby applications using Phusion Passenger. The details of how this all works are outside of the scope of this post, but it’s similar to running an application using FCGI. You point passenger at the ‘public’ directory of your application, and it goes looking for your config.ru file, which is the interface defined by rack, which Passenger is an implementation of, fires up the app, and starts sending HTTP requests to it.

Configuration

After installing rvm locally, I drop a .ruby-version file in my project root, and a .ruby-gemset file as well. This makes my zsh shell integration do the thing it needs to do to select the correct ruby version and gemset. Note that since I’m using Bundler to manage my gem dependencies, I don’t really need to specify a different gemset, but it’s nice to have so I don’t have to constantly re-run bundle install every time I switch between projects.

Since I’m deploying using capistrano, and want to use rvm on the remote side to manage my ruby install, I need to add a couple of gems to my Gemfile: capistrano  rvm1-capistrano3

Then I run cap installto “capify” (that actually used to be the command to run to do this) my project. This installs the following files:

  • Capfile
  • config/deploy.rb
  • config/deploy/production.rb
  • config/deploy/staging.rb

The main purpose of the Capfile is to load in gem-based plugins for capistrano. The config/deploy.rb file is for global configuration of capistrano, such as declaring new tasks, configuring the source control repository, and other things. Overrides or stage-specific settings go into the config/deploy/*.rb files, with each file declaring a different stage capistrano can deploy.

Capfile

Since I’m using the rvm1-capistrano3 gem, I need to load it by adding a line to the Capfile:

This loads up all of the tasks in the plugin, sets some of them up to be executed, and defines others to be used by the user of the plugin. I’ll be using some of those later.

Note: the gem is called rvm1-capistrano3, but you need to require rvm1/capistrano3, this is because gem names can’t contain slashes, but require is working with filesystem paths and the file being loaded is lib/rvm1/capistrano3.rb. Fun!

config/deploy.rb

In config/deploy.rb I set the name of the application, which is really pretty arbitrary, but should be unique, as this is used in temporary directories and such.

I also need to set the path to the git repo where the code to be deployed is stored.

Capistrano supports several different source control systems, but git is the default, and it’s where my application’s code is stored.

For various historical reasons, I like my application’s tmp directory to be shared amongst all deployments. This also seems to play a little easier with the tmp/restart.txt functionality passenger provides to allow the user to restart the application on demand (such as when new code is deployed).

Two things to note here:

  1. The linked directory will be created by capistrano in the deploy path and symlinked into the release path.
  2. The reason to use fetch() here is to not stomp on :linked_dirs settings declared elsewhere in the capistrano configuration (e.g., a deploy stage configuration file, or by a plugin)

Since ideally I’m installing onto a clean slate, and want to have capistrano managing the entirety of the installation, I set up some of the tasks from rvm1-capistrano3 to be run during deployments automatically:

Here’s where I ran into some trouble. Previously, I was using the capistrano-bundler gem, which will run bundle install to install your gems, among other things. The problem here is that bundler is no longer installed by default alongside ruby, so when the plugin goes to run bundle install, it does so using the system’s /usr/bin/bundle, which on DreamHost (at least my server, a VPS, at time of writing) is running against ruby version 1.8.7. My Gemfile apparently isn’t loved by that version of bundler, so what happened is the bundle install command took a long time, ended up consuming all of the memory on my instance, and caused it to get rebooted by DreamHost. Oops.

The fix here appears to be to not use bundler for deployment and instead use the deploy task provided by rvm1-capistrano3 to install the required gems:

The reason I can’t just gem install bundler is because the capistrano-bundler gem wraps any gem command with bundle exec so there’s a bit of a chicken and egg problem. This approach seems to work, however, so I’m going to stick with it for now.

In the DreamHost control panel, I ticked the boxes next to Passenger and RVM and supplied the path to rvm:

Screen Shot 2016-05-14 at 11.20.56 PM

The ‘ktchn’ in that path is an rvm alias set up for me in capistrano. I do this so I don’t have to hardcode the ruby version and gemset name into the path in DreamHost’s configuration.

Sadly, there appears to be a bug in the rvm1-capistrano3 gem, or perhaps rvm itself, that makes it not alias the version of ruby in the specified path when setting up an alias, so I also had to explicitly set the ruby version here, which I don’t like, as it’s redundant, and buried in a config file.

Since I’m running on a managed DreamHost VPS, I don’t have root, and rvm install fails because it tries to use sudo to check for and install library dependencies. Fortunately, they seem to have installed them already, so I just disable the autolibs functionality:

And finally, to tell Passenger to restart the app after deployment, I touch tmp/restart.txt:

config/deploy/production.rb

Finally, the deploy stage. Capistrano does a great job of making this pretty straightforward.

The fun part here was the :tmp_dir thing. DreamHost’s VPS product mounts /tmp (which is the default tmp dir in capistrano) as noexec, which capistrano doesn’t like, as it uses that directory for a couple of things and needs to execute at least one of them!

Issues

There are 2 major unresolved issues I have with this setup.

First is not being able to use bundler for managing my gems on the remote server. I am not certain if the correct versions are being installed by the rvm1:install:gems task. I feel like this is not an insurmountable task, I just need to poke around a bit in capistrano to see how I can do it!

The other is having to hardcode the ruby version into my config/deploy.rb file for the rvm1:alias:create command to work. The default for :rvm1_ruby_version is ., which is causing it to run rvm alias create ktchn . which rvm isn’t very happy about. I’m sure this is also something fairly easy to fix!

Taking the weekend off

I’ve been trying pretty hard to get out of the house, especially on nice days, and especially on weekends. For the past several weekends, I’ve done a pretty good job of doing it. Two weeks ago I went bike camping with Ted, last weekend I was out at Filmed By Bike and getting my new wheels and a bunch of other stuff.

However, all of this “leaving the house” stuff has left my house in a pretty rough state. I’ve been trying really hard lately to keep up with some basic housekeeping tasks and my busy weekends have been making it difficult to do.

So this weekend I’m taking the weekend off. I am giving myself permission to do absolutely nothing. I have a few small things at home I want to do (and, I do *really* want to do them) but if I stay in all weekend and read, then I’ve accomplished what I set out to do.

This all ties in with some stuff I’m working on around “intent”, and I hope to have some more to say about that soon. This weekend I’m giving myself permission to stay inside. It certainly doesn’t hurt that it’s supposed to rain all weekend!

Kickoff Entries

A thing I’ve been doing in my journal is what I call a “kickoff entry”. If I take on a new thing, or add something to my routine, I’ll write a little blurb about what, why, goals, and some thoughts about what conditions I may decide to end the experiment.

These really help to solidify the intent around the action, and help me be realistic about what I want to get out of it. Also, as someone who frequently jumps from one new thing to the next, it helps me pace myself a bit. If I sit down and write an entry, I get an opportunity to ask “do I really want this?” And “what am I sacrificing to make this happen.

I have a tendency to be very “oh this is going to be awesome!” And 3 weeks later have totally forgotten about things. This has been helping with that, some. It’s definitely fun, at the very least!