A Few Pointless Thoughts

State of the Union

I'm sure bad at this blogging thing. Since I first set out in — technically, July 2013, but let's say August — I've only gotten one week into my journey before hanging up. I'd like to see if I can try again, perhaps this time with a little more success.

Right now, I'm writing this from Dublin, Ireland. In the interim, since my last entry from an actual city, I've visited Vancouver, Toronto, Montreal, Quebec City, New York, Boston, Philadelphia, Chicago, New Orleans, Austin, Los Angeles, Barcelona, Paris, London, Cornwall, Bath, Oxford, Cambridge, York, Newcastle, Edinburgh, Amsterdam, Luxembourg, Prague, Berlin, Vienna, Ljubljana, Zagreb, Split, Bologna, Modena, Milan, Florence, Rome, and Turin — plus a number of smaller towns along the way. That's more than a dozen different countries over the course of the past two years. To the person first setting out on this trip — the person who expected to arrive in London and cautiously venture to other countries only on rare occasion — this list would have been unimaginable. I was nervous. I'd never been alone in a place where the primary language wasn't English. I wasn't sure about the logistics. I didn't even know if I'd be able to tinker with my projects in peace.

But it's all worked out. I've cracked the code. With some trial and error, I've figured out how to live affordably and comfortably in different cities around the world. I've gotten a lot more bold about venturing to places where I have to resort to broken apologetic phrases in a new language. I've discovered many breathtaking sights, incredible architectural wonders, and fascinating local tastes. I've pared my belongings down to a bare minimum appropriate for most climates. I've worked in many lovely cafés, bars, and apartments. I feel like I understand so much more about the world than when I started.

On the other hand, I've also had to face certain facets of myself head-on, with uncertain results. I've learned that my impression of different cities around the world was heavily painted by my childhood imagination. The places I'd hoped would bring my soul some peace — a magical sort of quality that I faintly recall in cities like London, Barcelona, and Rome from when I was little — were found to be fairly ordinary in contrast. I've found it disheartening to overwrite so much impressionistic imagery in my head with reality — because I know those feelings will never be back. I've learned that no matter how lonely I might get at times, there is still no part of me that will seek out others for company. I've learned that I can swallow up entire months at a time and wake up on the other end a good chunk older, but with nothing to show for it. All the attributes I hated about myself as a young teen are still there, entrenched, and at this point as much a part of my personality as anything else. I've learned that there are parts of me that I constantly have to fight, lest I end up old, unfulfilled, and alone.

I've also learned that time moves quickly, and that it's easy to get stuck in a simple routine. I've developed a great, burning fear that prods me almost every waking minute. The fear of aging. The fear of death. The fear of it "being too late". Every day, I count the fractions of my age. 26 point 0. Point 25. Point 3, repeating. Every day that I'm not doing something productive — which is most days, to be honest — I feel like I'm actively destroying my potential. Other dates have been creeping into my head, too. How old is too old to live in a house with other people? How old is too old to get married? To have kids, if I decide to have them? To have a nice house, friendly neighbors, warm dinner parties? When I was in college, I half-jokingly feared that my study habits — put it off, put it off, then half-ass it on the last day — would translate in broader strokes to the rest of my life. But now I see that this was no joke. This is exactly what happens when you let a negative aspect of your personality fester for years and years.

But these dark thoughts are not a reflection on travel. My journey has neither been a negative experience nor an entirely positive one. I see it as just another page in the book of my life: many new and interesting inputs from the environment feeding into the black box of my mind, allowing me to discover new truths about the world and myself.

So that's what's going on in my head on this day, January the 31st, 2015, in the city of Dublin. And now, let's step back into the past, to Vancouver, as it was during the last few weeks of August of 2013 ...

(Technical note: from this point on, I will be posting all my blog entries on the beta-blog subdomain of my website. They will be linked from the main site, but I highly suggest reading on beta-blog instead. Eventually, the main site — hosted on Squarespace — will be removed, and the beta-blog page — hosted on Github Pages using a static site generator — will replace it. I will backport all the existing entries before I do that, and all the links should still hopefully work.)


So how's programming on a cruise ship, anyway?

First of all, you can't count on the internet out at sea. That's not to say it's unusable: I saw speeds as high as 15Mbit/sec down, though they usually hovered around 1Mbit/sec or less. (Ping was atrocious, of course.) However, at almost a dollar per minute during regular hours, it was hard to justify. One deal that my particular cruise offered was half-price internet from 11pm to 5am, giving me a rate of $0.37/minute. (This was actually better than most of the package deals and allowed me pay à la carte.) Having mentally allotted $50 for internet use, this meant that I could only use about 10 minutes per day, or 20 if I went once every 2 days. For the most part, I spent these periods rapidly opening a bunch of tabs to Gmail, Feedbin, and Hacker News, loading any new articles I needed since the last internet checkpoint, disconnecting to write any replies, and reconnecting one final time to send them out. It was basic, but it kept me content. (All logging in and logging out was done through an atrocious web interface, while the charges could be verified through an equally despicable account navigator on the cabin television.)

Offline programming might sound daunting (the old-timers are laughing at me now), but it's really not so bad. No, not because you're supposed to be good enough to program without an online reference. It's because you can cheat and download the entire StackExchange data dump for only 20GB of your hard drive space (circa January 2014)! Even more spoilingly, a wonderful developer named Samuel Lai has created a local web app called stackdump that lets you browse and search this entire archive using a beautifully-designed interface that almost rivals StackExchange itself. (Seriously, I could see myself paying $100 for this product.) Stackdump copies the XML data to a local database, so it requires a good chunk of extra space: I have it showing about 20GB for StackOverflow alone. Furthermore, the initial copy takes about 7-8 hours on a top-of-the-line machine, and could potentially take much longer on a slower one. If you only figure this out in the middle of your trip, you might be in for a bad time. My advice is to clear up 50-100GB of your hard drive space and run the script locally (read: not on an external drive), since you'll be able to suspend and resume your machine without interrupting the indexing. Fortunately, after the initial hump, it's all smooth sailing! (So to speak.)

In addition to this little ace up my sleeve, I downloaded local copies of the documentation for all the platforms, libraries, and frameworks I intended to use during my trip. (These included iOS and OSX, Python, and Cocos2d.) Xcode's local documentation browser was my most used resource by far, with stackdump serving as a secondary reference for some of my more esoteric questions.

One cache that I would have benefitted from having, but unfortunately forgot to bring, was the Wikipedia data dump. It didn't really cross my mind when I was preparing for my trip, but Wikipedia has some great high-level overviews of CS concepts and programming languages/features. The total compressed size is about 40GB: not bad for a first-order approximation of the sum total of human knowledge!

Before leaving, I made sure to test all my tools in offline mode, just to make sure I didn't miss anything. Turns out it was a good hunch: I almost left without renewing my Apple developer certificate, which would have prevented me from testing on my device!

Having prepared ahead of time, I found working on the boat to be a wonderful experience. The ship offered many comfortable and scenic places to set up. I preferred sitting outside in the aft café during the day and in my cabin at night. My room had a wide, comfortable desk with plenty of power outlets, and the indirect sunlight from the porthole made the space feel cozy and relaxing. Despite my initial fears, I found myself barely missing the internet at all.

Programming is unfortunately an activity that tends to isolate us in quiet, poorly-lit spaces, so it was wonderful to work out in the open ocean air for a change! Now that I'm back on land, I may have to find some work-friendly parks to recreate that experience.

Gathering the Goods, Take 2

Passengers on the Allure of the Seas wave goodbye to their fellow ship.

My first run at a packing list was suprisingly solid: everything worked pretty much as intended and there wasn't anything I desparately missed or needed during my US trip. However, I misjudged the needs of my travel bag:

  • I very rarely used my Silver Streak bag as a backpack, and when I did, it was just too heavy for prolonged use. (The total weight of all my equipment was almost 50 pounds.) As a result, I mostly ended up detatching the backpack and carrying the main bag on a shoulder strap, which was very uncomfortable.
  • All my important equipment rarely left my backpack. I hardly ever used the expanded compartment in the main bag for anything other than a few spare parts, souvenirs, and my Wacom tablet.
  • I gathered a lot of food ingredients during my travels, and to avoid a mess, I carried them in a separate cloth bag. There was never any need to store perishables in the main bag.

As a result, I have replaced my Silver Streak with an Eagle Creek Switchback 22 (on sale). The Switchback does almost everything the Silver Streak does, but adds one vital feature for city use: wheels! Contrary to most of the advice I found on travel blogs, I desparately wished for wheels many times during my trip. (Maybe this would be different if I were spending long miles walking on unpaved roads, but the fact is that most of my traveling happens in modern cities and not the countryside.) The backpack half of the bag now serves as the store for all my tech equipment, while the main bag keeps all my clothes and accessories. Among other things, this consolidation means that I no longer have to move things from bag to bag when I'm leaving the main bag in a locker or on a bus/train/plane. Space is more tight than in the Silver Streak, but everything still fits. (At the moment, I've decided to roll up my jacket and clip it onto the handle, since cramming it in takes a bit too much effort.) The Switchback offers great flexibility in regards to transport: backpack zipped onto the main bag, backpack threaded onto the carrying handle, or backpack and main bag separate. (So far, I've found the most convenient option to be zipping the backpack onto the main bag and using the wheels. You can walk many miles like this without a problem.) There are many other details that make the Switchback feel like a high quality product, from the multipurpose outside straps to the secondary handle position all the way down to the stitching. It's clear that a lot of thought was put into the design. One minor annoynace is that the backpack straps have to be taken off the backpack to be used with the main bag, but since I'm mostly set on using the wheels, this isn't a big deal for me. Before I settled on the Switchback, I also tried the Osprey Meridian, but I was simply not able cram all my stuff in!

I also made a few other changes:

  • An Eider Roc de Chere jacket in blue (also on sale). I made a bad call on my previous jacket: it was cold, scratchy, and most definitely not waterproof. I briefly considered applying more wax, which is what you're supposed to do to make a waxed cotton jacket more water resistant, but I decided it wasn't worth my time. Instead, I set out to find a no-compromise jacket this time around: waterproof, warm, comfortable, usable in all cold weather conditions, featuring a detatchable hood, and not horrendously ugly. (Most of the widely-recommended technical jackets and rain shells fell into that category for me.) I tried on a large number of different jackets from REI, Nau, Carhartt, Patagonia, Marmot, Eider, and Helly Hahn. Close contenders were the REI Montour (green is not my favorite color), the Carhartt Grayling (fit perfectly, but material felt plasticky), and the Nau Temp (super comfy, but too warm and the fit wasn't right around the waist). The Roc de Chere's material is light enough for use even in warm-ish weather, and the color and material are fairly unique. Still, I wish it had buttons down the front! Is jacket envy a thing?
  • A pair of Adidas Duramo slides. The Nike Benassis I had earlier were very comfortable, but the mesh lining took forever to dry out, to the point where, one, I simply couldn't shower in them if I had to leave the next day, and two, they actually had a propensity to mold! Their everlasting wetness also ensured that they could never double as slippers. Despite being made of a plastic-like material, my new Duramos are shockingly comfortable and dry out pretty much immediately. Somebody on the internet described them as "prison sandals", but no worries: all you have to do is lower your standards and you'll be going out in public in no time!
  • Two cloth bags: one for food (as mentioned earlier) and one for carrying dirty laundry around. They barely take up any space.
  • A very small tea cup from DAVID's Tea. I keep it in the same bag as my socks and glasses. Purchased in Toronto!
  • An Anker Astro E5 battery charger. Way too often, I would leave my house without having charged my phone and then end up desparately looking for a power outlet by the end of the day. With this device, I always have some extra charge on me. (Quite a bit of extra charge, actually.) It's also useful for charging all my small electronics when I'm too far from an outlet, or when I want to keep my belongings close to me in a hostel. An essential gadget.
  • A tiny Lightning cable for my keychain. It bends in a way that allows me to hook up my iPhone to the aformentioned battery charger in my jacket pocket without having to deal with cable spaghetti.
  • A small multitool, consisting mostly of pliers and screwdrivers. No knives, so it's (nominally) TSA-safe.
  • A ShedRain Windjammer umbrella, based on last year's recommendation on The Wirecutter. London Fog's umbrella was awful and broke after about a week of use.
  • A long stainless steel mesh tea infuser. Aside from a little metal tag which I bent out of the way, this thing fits perfectly into my Klean Kanteen and allows me to brew loose-leaf tea with plenty of room for leaf expansion. It's the only one of its kind that I was able to find! Every other teaball is either tiny or doesn't fit into the Kleen Kanteen.
  • A Logitech G602 wireless mouse. It works well enough and eliminates an annoying stretch of cable. Sensitivity, tracking, and latency are great for gaming use. (In fact, I saw some measurements that put the latency on par with wired mice!) Battery lasts a month. Range is really iffy, but I'm only planning to use it next to my computer, so that's not really an issue.
  • A set of collapsible compact chopsticks. I occasionally find myself in situations where I could really use some sort of utensil, and these chopsticks get the job done in most situations. (Plus, they're great for munching on small, greasy foods like popcorn or chips!)
  • A Pilot Metropolitan fountain pen — just because it's sweet. :)

Already, HoboPack Mark II feels so much more useful and refined. Onward to more adventures!

Airbnb Tip Fest 2000

A quiet day on the fifth floor of Sants, Barcelona.

I've come to the conclusion that if you're doing the work-travel thing, you always need to have a reliable, quiet place nearby to retreat to. Most hostels just don't offer that level of privacy, while hotels are too expensive. Coworking spaces would be great, except they cost an extra $10-$30 per day. (Except the gratis Wix Lounge in New York, but there's no privacy there to speak of.)

Aside from finding rooms to rent or sublet (which can be tricky in a foreign country), the best solution I've been able to find so far is Airbnb. (Sign up with my referral link to earn us both credit, I think!) Per day, Airbnb listings tend to be roughly on par with hostels in terms of price; per month, they're more expensive than the local rental rate, but not astronomically.1 And for the extra cost, you get your own room (often with a window and desk), one or more locals to chat with, a fantastic communication and creditibility channel, and a neat little paper trail of all the places you've been to. Plus, you get to experience life in a foregin city as a local! If you've ever been to Europe, tell me you've never walked down the twisted cobblestone streets and wondered what life was like in those arborial, patchwork buildings...

Here are a few tips for finding great Airbnb rentals:

  • Check the owner's profile first and foremost. Do they have reviews and references? Do they have photos of themselves out in the real world? Do they sound like an actual human being in their writing? Does their listing have personality?2
  • This applies to you as well! The owner can reject your request for any reason, so get some good photos, write up a friendly description, and add as many verifications as possible.
  • Does the owner have several places listed in different parts of the city? (That is, are they "playing landlord"?) Look for people renting out rooms in the same house they're living in. One, this tends to be more legal, and two, you can be sure that people who rent where they live care a whole lot more about the state of their accommodations.
  • Are some of the listing photos labeled with "Airbnb.com Verified Photo"? Listings that have these photos have been visited by an official Airbnb photographer, which gives them a bit more credibility. Stay away from listings with lots of touristy photos: you want as many good photos of the interior as possible.
  • Does the listing have House Rules? When I see House Rules, I feel more confident that I'm going to be living in an actual house with real people instead of some derelict tourist pad.
  • Are there going to be other Airbnb guests in the house? Remember: Airbnb rentals usually don't have safes, so you have to trust the people you're staying with. On your end, hosts have a paper trail; other guests do not. (On the other hand, I had a very enjoyable time with two fellow Airbnb guests during my first booking. I imagine that, on average, they're a more interesting breed of traveller than hostel dwellers, at least for mid-twenties folks such as myself!)
  • Some Airbnb listings are actually hostel listings, which becomes clear when you see a bunch of bunk beds in the photos. I highly recommend booking through an actual hostel site (HostelWorld, HostelBookers) if you want to go that route. It's not really what Airbnb is for.
  • Instead of doing meticulous research and trying to reserve the one place you like, get a list of 2-10 places you think might work for you and send a message to each of the hosts via the "Contact Me" button. Ask them a few simple questions. Is the room available during this time? Do you get your own key? The reason you want to do this is that more often than not, even when you're just reaching out to to get some information, the hosts will pre-approve you for a short period of time to expedite the booking process. This means that after everyone responds to you, you'll get your pick of several places that are a guaranteed approval. (Warning: multiple guests can be pre-approved at once, so if you get pre-approaved for a listing you like, don't dawdle!) What's more, the calendars for many listings are hopelessly out of date: even when they're marked green, there's a good chance they'll be unavailable simply because the host never bothered to update their calendar.
  • Airbnb has the ability to offer different pricing for weekly and monthly rentals, and monthly prices in particular can be drastically cheaper than daily rates. If you're traveling for a while, try moving the date slider forward a bit. Additionally, even when it looks like a city is all booked out, checking for monthly rentals might yield a few more results since those places tend to be more expensive on a daily basis. (Note that even if a place is available for monthly rental, it's by no means assured that the host will go for it. It's best to contact them and ask if the dates are available.)
  • Airbnb offers a currency conversion option by default. Don't use this. If your credit card currency differs from the local currency, you'll be hit with a 3% surcharge. On the payment screen, there's a drop-down menu for your country right above the credit card picker. Select the country that you're currently in and make sure the pricing caption in the lower-right corner doesn't say anything about currency conversion or surcharges. (I don't think you can do this in the mobile app.)
  • Although this happens rarely, hosts can cancel a reservation some days in advance. Make sure you're aware of your other options if this happens.
  • It's not a huge issue, but it's worth Googling to see if the city you're travelling to has a problem with Airbnb rentals. For example, New York (until recently?) has been pretty strict about it. You don't want to risk getting evicted because the owner never bothered to read up on the local laws!
  • Finally, be sure to leave reviews! Reviews are Airbnb's capital. It's what makes the whole thing tick. Unfortunately, judging by the number of reservations compared to the number of reviews for the average listing, it sure seems that most people don't bother. If you do it, not only will you help out your host in a big way, but you'll make it more likely for the host to leave a review for you as well.

  1. Airbnb has got me looking at rental prices in the places I'm travelling to. (Numbeo is a good site for this, though I can't speak to its accuracy.) Unfortunately, compared to local prices, daily Airbnb prices are still significantly pricier than rent. For example, in Barcelona, a cheap-ish room in a shared house can go for $35 a day, whereas if you're paying rent, you can get a flat all to yourself close to the center of town for just $30 a day, or $13 a day with roomates. (Plus utilities, internet, etc.)
  2. AKA, "how not to get scammed on Craigslist or eBay 101". Asking for hosts to show a little personality might seem a little... entitled?, but it's the most sure-fire way to tell the difference between a genuine person and someone out for a quick buck. I've always adhered to this principle when buying or selling on eBay and Craigslist and never had a problem.