Hello from the SFO Polaris lounge! I’m flying to Japan in ANA First Class tonight thanks to wide-open award space that happened earlier this year. At SFO, the lounges all close by 10 pm (Centurion at 9 pm, KLM at 7:45 pm), but the flight is at 1:45 am, so ANA issues $30 meal vouchers per passenger in the form of a Mastercard Gift Card. Terms state the merchant must be categorized as “food, dining, or restaurant.” It’s the same GC that United, Alaska, and Delta issue (though I hear they are sometimes Discover cards), with the same zip code of 60173. You receive a QR code and the card number, expiration date, CVV, and billing zip code. From some internet sleuthing, I found the entire billing address: 1475 E Woodfield Rd, Schaumburg, IL 60173.
Category: hacks
Prevent airplane mode on Android from turning off WiFi, Bluetooth
With the advent of Bluetooth earphones, and in-flight WiFi, I’ve had multiple experiences of having my music listening and WiFi connection interrupted by switching on airplane mode. Fortunately, there is a trick to keep airplane mode from turning off those services!
Here are the full instructions courtesy of Doug Lynch on XDA Developers, but I’ll summarize the steps.
The setting for which radios turn off in airplane mode is controlled by a global system setting, which can be modified using the Android Debug Bridge, or adb
. To connect to the Android Debug Bridge, you must enable Developer Mode.
Repurposing Amazon Dash buttons to add a line to Google Sheet when pressed
Intro
A lot of us may have a ton of Amazon Dash buttons lying around because back in the day, they used to mean $5 off any product shipped and sold by Amazon. Since then, you may have sold your spent buttons on eBay or harvested them for the Duracell AA battery inside.
But if you still have some left…here’s a fun little beginner’s project where you can repurpose the button to add a line to a Google Sheet whenever you press it. The use case for me today is to record whenever I insert/remove my contact lenses, to track wearing time. I’ve also seen people set one up to record whenever their baby poops and they change the diaper. To each their own…
FYI: these instructions are for Mac OSX. It’s adaptable to other systems, but I won’t go into that today.
Preparation
We’ll be using Nekmo’s amazon-dash script for this project, specifically the instructions for Mac. I’m rewriting the instructions below in a more beginner-friendly language, so hopefully you can do this even if you don’t think you are very tech savvy. Macs come with Python 2.7 installed, and that is what this script runs on. If you run into any errors, it may be due to something wrong with your Python configuration, so we’d have to troubleshoot that separately.
- Open Terminal on Mac.
- To do so, I like to use Spotlight: press Cmd+Spacebar to bring up a little textbox in the middle of your screen. Start typing the word terminal, and press Enter as soon as you see Terminal.app appear.
In Terminal, copy and paste in (press enter after you paste this whole command in): sudo pip install https://github.com/Nekmo/amazon-dash/archive/develop.zip
- It will ask you for your computer password first, so enter that and press enter. You won’t see anything being entered as you type your password. Don’t panic, this is normal. Just type your password, and press enter.
- Now it will download and install the amazon-dash app.
Once installed, copy and paste in (press enter afterwards): sudo amazon-dash discovery
- It should say:
Welcome to Amazon-dash v1.3.1 using Python 2.7.10
The discovery command lists the devices that are connected in your network. Each device will only be listed once. After executing this command wait approximately 10 seconds before pressing the Amazon Dash button. After pressing the button, the Mac address of the button will immediately appear on the screen. Remember the address to be able to create the configuration file.
Wait about 10 seconds, and then press the button on your Dash Button.
- Within a few seconds after your Dash Button fails to buy anything, you will see some magenta text on your screen. It should look something like this “69:55:fd:3e:cf:32 (Amazon Device)“. You may also see other text that don’t say “(Amazon Device)” next to them; you can ignore those. The random gibberish with the semicolons is called the MAC address.
- Copy and paste the MAC address before “(Amazon Device)” and keep it somewhere safe.
Now press Ctrl+C on your keyboard to exit this discovery process.
Set Up IFTTT
- Go to your web browser and navigate to https://ifttt.com/maker_webhooks .
- Set up an IFTTT account if you don’t have one already, then return to this page, enable the webhook, and click on the button in the top right called “Documentation”.
- Copy and paste the alphanumeric key in really big letters to the place where you saved the MAC address of your Dash button.
Still on IFTTT’s website, click in the top right corner on your username, and click “New Applet” on the dropdown menu.
- Click the +this and type in “Webhooks” on the next screen. Select the big blue button that says “Webhooks”.
- On the next screen, click the big blue button again that says “Receive a web request”.
- On the next screen, type in a name you want to give to your button, like “contactlenses” (remember this name for later). Click the Create Trigger button.
- On the next screen, click the +that and type in “Sheets” on the next screen. click on “Google Sheets”. (You may need to connect to your Google Sheets account if you’ve never done this before)
- On the next screen, click the “Add row to spreadsheet” button.
- On the next screen, fill out Spreadsheet Name (i.e. “Contact Lens Wearing Time Log”). You can delete “||| Value 2 ||| Value 3” from the Formatted row, and leave the rest the same. Click “Create action”.
Configuring the script
- Now go back to your Terminal window. Copy and paste this command and press enter: cd /etc
- Copy and paste this command and press enter: sudo nano amazon-dash.yml
- Use your keyboard arrow key to get down to where it says “## Example of how to execute a IFTTT Webhook event”
- Change the text after name: to whatever you want, like “name: contact lens”
- Delete and replace the MAC address that’s already there with the MAC address of the Amazon Dash button you discovered earlier and saved.
- Delete and replace the key after ifttt: with your own IFTTT key.
- Change the name of the event: to the name you had used on the IFTTT applet, such as “contactlenses”.
- After data: {“value1”:, type in what you want to be recorded on the Google Sheet after the date and time. Like “Inserted/Removed” (of contact lenses).
- Once you’re done, delete the “#” symbols from the beginning of each line that you edited. Result should look like this:
Press Ctrl+X to exit, it’ll ask if you want to save, so press Y, and then press Enter to save it as the same filename. You should now be back to the original window.
Finishing up and running the app
- Copy and paste the following commands, pressing Enter after each command:
- chown root amazon-dash.yml
- sudo chmod 600 amazon-dash.yml (may require computer password)
- sudo amazon-dash (may require computer password)
If all was successful, you should see the following message pop up:
Welcome to Amazon-dash v1.3.1 using Python 2.7.10
Listening for events. Amazon-dash will execute the events associated with the registered buttons.Press your Dash button. The window won’t seem to do anything or say anything, but go to your Google Drive and see if you see a new row. If you did, congratulations! You successfully hacked your Dash button!!
You’ll need to leave this window running, so best to set this up on a computer or device that is always on.Let me know in the comments if you have success with these instructions, or if you have another project you would like to share with us! If you have any suggestions on how I can improve my circles and arrows, let me know as well. Enjoy!
Similar Projects
https://blog.cloudstitch.com/how-i-hacked-amazon-s-5-wifi-button-to-track-baby-data-794214b0bdd8
https://alexmeub.com/hacking-amazon-dash-buttons/
https://www.hackster.io/ravi-sawhney/amazon-dash-reminder-app-79e6bb
T-Mobile vs. Google Fi, and how to use Google Fi on an iPhone
I’ve been on a few trips now where I bring two phones — my iPhone 6S Plus personal phone on T-Mobile, and my Nexus 6P work phone on Verizon. Last year, there was a deal I saw on Slickdeals to get a discounted Nexus 6P phone with the activation of a Google Fi plan. I decided to jump on it even though I figured that I already had international data included with my T-Mobile plan. Having options is always nice when you’re traveling!
For the most part, T-Mobile is fine while traveling – for maps, directions, texts, and other tasks that are not too graphic-intensive. But sometimes T-Mobile 2G feels SOOOOOO frustratingly slow, particularly when you’re trying to find a restaurant to go to or are wondering what you should order at a restaurant you’re already at, and the photos are loading at a snail’s pace. Not good when you and your companions are hungry. 😉 It’s particularly deceptive because your phone will still say “LTE” but it’s actually loading at 2G. When I get really frustrated, I bust out my Google Fi sim card and unpause the service. I also give my husband the sim card whenever he travels, since he has an iPhone on AT&T, which does not include free international data.
Costs
My T-Mobile plan is a Simple Choice plan for $120/month for 4 lines, each with 6 GB LTE, which includes unlimited 2G data in 140+ countries (click here for the list). Remember that even though your phone may say “LTE” on it when you’re in Spain, it’s actually throttled to 2G (128 kbps). There is an option to upgrade your line to 256 kbps speeds at $15/month (per line) for T-Mobile ONE Plus. This is a really great deal if you travel frequently, especially because it also includes free in-flight wi-fi on Gogo-enabled flights.
However, I don’t really travel internationally THAT often, so I wanted something I could easily turn on and off, and that’s why I jumped on that Nexus 6P Slickdeal. Here is the list of Google Fi’s supported countries. Google Fi charges $20/month for the base service, then $10 per GB of unthrottled data on top of that. It’s important to note that these charges are PRORATED down to the hour of service and tenth of a MB of data used, so you only pay for exactly what you used. As an example, my husband used Google Fi for our trip to the Bahamas, and despite frequently reading on his phone (and even using remote desktop a few times), our total bill for January was $4.87, which even included a few short phone calls (charged at $0.20/min). Here’s the breakdown:
For maybe one short international trip per month (or not even), this makes more sense for me than paying $15/month for the ONE Plus (which requires a T-Mobile ONE subscription in the first place, which is also more expensive than my current plan).
How to Use Google Fi with an iPhone
Google Fi is only supported on one of the supported Google phones. However, it can be used with other phones easily. Let me show you how on an iPhone!
This only works on an unlocked iPhone. If your phone has not been carrier-unlocked, you will need to google the instructions for how to unlock your phone. For AT&T, follow the instructions on this page. Some Verizon iPhones (depending on model) already come factory-unlocked.
There and Back Again (and again, and again, and again, and again)
It’s pretty evident why this would be the case for someone. Once you have built up miles and points balances through credit card signups and manufactured spending, means are less of a bottleneck. Traditional award charts offer fixed miles prices for flights irrespective of the cash price, which means that (assuming you can find availability), a $500 flight to a random U.S. city near a national park costs you the same as a $200 ticket between two major domestic hubs. For premium cabins, the value proposition can be even greater, because the miles prices are typically marked up 50-150% relative to coach, whereas cash prices can differ by up to a factor of ten.
Therefore, last year saw me travel to a bunch of places I had been dying to visit — Australia and New Zealand with Esther and Michael, Milan and the south of France with my sister, and Cambodia and Hong Kong with my friend Jacob.
Of all my “planned” trips last year, however, the ones that were the least expected and also the most difficult to arrange were my visits to Dublin. My partner moved to Ireland for a year, and since my job offers me the flexibility to work from nearly anywhere (incidentally, we have an office in Dublin), we decided that it would be easier for me to trek there than vice-versa. All told, I will have made five trips to visit, and the process of booking those flights allowed me to explore a lot of different facets of travel hacking and flight booking that hopefully will open up other options down the line.
Since writing things down helps me remember them, I decided to do a write-up of my experience booking each of my five trips:
Trip 1: Easy mode
What I spent:
Travel Hacking, for Normal People
As weird as we are, we get it. This is not for everyone. I’ve spent a bit of time writing about things that are more accessible to the average person, like earning cash back instead of miles or reducing hotel costs by buying loyalty points at a hotel chain. If that’s too much for you, even learning how to use Google Flights or some of the other tools we recommend can get you on the path to savings.
What if that’s still too much? Well then, this post is for you.
Travel Hacking Is a Way of Life
Travel hacking roughly boils down to strategically taking advantage of deals and loyalty programs to get as big a discount off the retail price of travel as possible. Who’s to say this can’t apply to other goods and services? As with travel hacking, it’s all about knowing your tools…
Tool #1: Signup Bonuses
Sound familiar? Obviously, sign-up bonuses for credit cards are about as lucrative as they get, but many companies will happily offer you $10 or $20 to try out their product. Since the idea of a sign-up bonus is to get you to try out the service and hopefully use it long-term, you want to find products or services that you would be paying for anyway. If you don’t watch TV, don’t sign up for a Netflix subscription, even if they give you a few months free. That’s just asking for a recurring charge that you forget about.
Tool #2: Rebates and Special Offers
Be loyal only to those who give you the best deal.
While this is terrible advice for (most) relationships, in the supplier-saturated world of the internet and mobile phones, it’s pretty easy to find product or services that are fungible with one another. Uber too expensive? Try Lyft. Amazon Prime not cutting it for you? Try Google Express. Everyone wants your business and will offer you promotions that compete with each other. Use this to your advantage.
Moreover, just as the retention call (threatening to cancel in hopes of having an annual fee waived) can is useful in mitigating the cost of credit card annual fees, so too can they be useful for utilities or other recurring services. I have countless friends who have saved hundreds of dollars a month by threatening to cancel their service and having their introductory promotions renewed. Try it some time (and be ready to actually cancel).
Tool #3: Rewards Programs
Did You Know? Bank of America Preferred Rewards Edition
This has been scrutinized pretty heavily because it’s a lot of money to park somewhere, and for the most part the conclusion is that as long as you don’t have a 401k or IRA or investment account that you can roll into Merrill Edge to hit the thresholds, it’s NOT worth pursuing the bonuses. Here’s a particularly scathing (though mathematically on point) perspective:
Consumer Watchdog: Bank of America Preferred Rewards can cost you $600+ a year
(Side note: I’m trying out a new link/embed format; let me know if you’d prefer them inline instead).
Given that I don’t have enough savings to hit any of these thresholds (whether or not I include investments), I decided to pass, but as I was poking around the Bank of America site, I noticed something interesting (emphasis mine):
You are eligible to enroll in the Preferred Rewards program if you have an active, eligible Bank of America® personal checking account and maintain a 3-month average combined balance in your qualifying Bank of America deposit accounts and/or your qualifying Merrill Edge® and Merrill Lynch® investment accounts of at least $20,000 for the Gold tier, $50,000 for the Platinum tier, or $100,000 for the Platinum Honors tier. The combined balance is calculated based on your average daily balance for a three calendar month period.
How we Hacked Fiji
Before I go on, let me share with you exactly what I’m looking at right now:
How did we get to stay at such an amazing property as the Intercontinental (IC) Fiji with such an amazing view? On points, of course. 30,000 IHG points per night, to be exact. Given that rooms start at around $350/night, it’s a pretty ludicrous award redemption (you can typically expect to get around 0.6-0.8 cents per point), although as I explained a few weeks ago, you should never be paying more than $210 for a hotel of this category.
That said, this hotel and in general, Fiji (and other island/resort-based destinations) are not without a glaring flaw. You are entirely resort-captive.
What do I mean by that? Basically, it’s very difficult to do anything without shelling out a hefty chunk of change because there is nowhere else for you to go (unless you happen to have a car). Resorts have wide ranges of activities, some of which are free, but as a rule of thumb, the nicer the hotel, the fewer the free activities and the more the paid ones will cost. To put it in perspective, the resort we stayed at two nights ago, the Naviti Resort, offered kayaks, snorkeling gear, and paddleboards for free, whereas the IC Fiji charges anywhere from 10-30 USD for the privilege of renting them for a few hours.
On top of that, meals are obscenely expensive (anything that could remotely be considered a main course started at 20 USD), and the one place you can buy food on the property doesn’t stock any food other than chips and ice cream.
The travel hackers that we are, we were not going to stand for this, so we got a bit creative. At Naviti, where our breakfast was included, we went on the later side of it, had our meals, and made sandwiches that we brought back to our rooms to eat for lunch. Here at the IC, for the first night, we snagged some pizza at the end of lunch hours (before prices increased for dinner) and then shared it later. In general, if you can get yourselves on a two meal schedule, you can save some serious change.
Activities-wise, we loaded up on every single free activity the IC offered, from an introductory scuba diving lesson in a special dive pool, to, a yoga class, to evening music performances and fire shows. We checked out neighboring hotels (which were nowhere near within walking distance, but just a $10 cab ride away) and perused their event and meal offerings and partook when they were appealing.
Basically, we thought outside the box (well, resort). Even better then, when Esther and I stumbled on a set of local villagers who had set up shop not too far from the resort to offer massages, tours and sundries “at local prices.” I’m sure they weren’t exactly what a local would pay, but when we found out it would only cost 10 USD for a specially-prepared four-person lunch, you can be damn sure we asked them to bring us some food. On top of it all, it was really nice to talk and get to know the locals, because resorts can be isolating (personally, they drive me insane, but that’s probably just because I can’t sit still 😉 ), and we came all this way for more than just the scenery.
Long story short — just because you’re at an expensive resort doesn’t mean you can’t have a trip that doesn’t break the bank.
Happy travels!
The Case Against Mileage Running
For some context, see my post on The Case for Mileage Running, in which I outlined my initial rationale for spending three nights on a plane for no purpose other than to get on a plane in the opposite direction two hours later. For those new to travel hacking, also see here for a description of the difference between redeemable miles and elite qualifying miles.
What did I omit?
Often, either in comments or in person, people will point out that “[I] didn’t take into account XXX.” With very few exceptions (and usually I’ll amend the post in the case of one), it’s intentional. Removing variables allows me to focus on the parts of the problem/hack that I find interesting or worthy of explanation, and it simplifies the discussion. That said, for something like mileage running, there’s a huge, clear time cost and impact on my physical well-being. So how do I justify them?
Qualifying for status does matter to me.
My initial argument focused solely on earning airline miles and weighing that against the cash cost of the flight. However, there is also the benefit that these flights will help me re-qualify for Alaska MVP Gold status. As I mentioned at the beginning of the year, the bonus mileage earning (for flights I would have taken anyway, which excludes mileage runs) and seat upgrade benefits have some tangible benefit to me. The problem is that, not having actually held the status for a full year, it’s hard for me to put an actual dollar value on it (and indirectly, on the value of an elite qualifying mile). Nonetheless, it does tip the equation in favor of mileage running.
It’s a social activity.
The other thing I omitted was that I mileage run because it makes for a good story (to an extent). I get to explore a part of my travel hacking hobby that can’t be captured solely by reading, and then I get to write about it.
Moreover, I did two of the three runs with my friend (who is a far more experienced travel hacker than I). Since we don’t otherwise get to see each other much, it’s been a nice way to hang out, and some day I’ll look back at how moronic we were on it and smile. That’s worth a lot.
Is it actually a good idea?
I was talking to a friend yesterday whose first introduction to travel hacking was my mileage run post, and she raised a few points, but the most poignant one was the following. For context, I had just explained that a business class redemption is worthwhile to me for some (non-full price) cost over economy because it means I’ll actually be able to enjoy the first day or two of the trip rather than being crippled by jet-lag:
“So you’re okay with “losing” a night of sleep going to Dallas but not on your first day of travel?”
In even starker terms, to earn the difference in miles between an economy and business class redemption, I’d be spending THIRTY hours (five SFO-DFW round trips) ‘sleeping’ on a plane/in an airport in order to gain one day of functioning during my recreational travel.
Well, when you put it that way…
I know plenty of people who mileage run, but they do so only in premium cabins (which earn bonuses for both redeemable and elite qualifying miles). For a marginally higher dollar cost per mile, they get a significantly better return on their time. If I’m really serious about my argument that my time is valuable above all else (my one counter-argument is that since my SFO-DFW runs are overnight, I don’t actually sacrifice anything but quality of sleep), I should probably do the same. But that doesn’t make it any easier to justify a $1,200 fare to nowhere, no matter how many miles I’d be earning. Call me a hypocrite, but my rationalism only extends so far.
So, how far will I run?
As long as I have a friend who wants to join, I’ll probably go for it; otherwise, I’ll pass. Either way, I have to throw away all pretenses of it being ‘worth it’ and concede that it’s for amusement, because, well, that’s what I tell myself as I stumble, bleary-eyed between gates at DFW and again while I down coffee after getting into work in the morning. Or for views like this:
Happy hacking!
The Case for Mileage Running
Hello from the Centurion Lounge at San Francisco International Airport, which has been my temporary home for three of the past four Tuesday nights before a series of mileage runs to Dallas!
Yep, you read that correctly (although despite the fancy shoes, mileage running has nothing to do with actual running).
I write a lot about how I approach travel hacking, which is largely based on evaluating the (opportunity) costs of taking advantage of a particular hack and comparing it to the rewards I reap from it. So it may come as a surprise to hear that I have (not once, not twice, but thrice) opted to pay money to take an overnight flight to Dallas only to turn right around once I get there and arrive in San Francisco before it’s time to head into work.
Mileage running is one of the oldest hacks in the book, precisely because it neither involves looking sideways at rules nor relying on a particularly friendly customer service representative to help you get something your were (probably not) otherwise entitled to. Quite simply, you pay for a flight, take it, and then receive the rewards of redeemable miles (RDMs) or status that you earn from flying a certain distance with the airline. In the ideal case, the cost you pay for the flight is incredibly small (perhaps due to a sale) relative to the reward you receive, although some people see benefit in running even when the marginal cost is high.
Although mileage running for RDMs has begun to disappear with the introduction of revenue-based mileage earning, there are a few airlines and programs for which it is alive and well. Alaska Airlines Mileage Plan (AS) is one of those programs, and it just so happens that it is one in which I hold status.
My status (MVP Gold) offers me complimentary upgrades on Alaska Airlines as well as extra legroom seats on American Airlines (and to a lesser extent, Delta). Critically, however, it also offers an 100% bonus on RDMs earned for a given flight. Combine this with the fact that I can earn 1 AS mile per mile flown with American (because they are partners), and you end up with me going to Dallas three times without actually exiting security.
But why? Math, of course.
For whatever reason, American has continued to offer tickets between San Francisco and Dallas for a round trip price of $100.60. After factoring in credit card rewards, the net cost to me is around $95.
For my $95, I get a lovely bed economy class seat to sleep in for three hours at a time, as well as the 5,856 RDMs per round trip I fly. That works out to me ‘buying’ miles at a cost of 1.62 cents a piece.
As it turns out, this is cheaper than I can possibly purchase Alaska Airlines miles, whether it be indirectly through credit card spending or directly during one of their frequent mileage purchasing sales. However, just because it’s cheap(er) doesn’t make it worthwhile. How am I actually using the miles?
For business class tickets on Alaska’s partners. This is the key piece. If I turned around and redeemed the miles I earned from my flight for economy tickets, I would be pretty hard pressed to get a better ratio than 1.5 or 1.6 cents per point. In that case, I’d be better of keeping my cash, because the cash would be strictly better than the miles. However, when redeeming for business class tickets, I typically get 4 to 5 cents of value per point I’m earning from my runs to Dallas.
Does that mean I’m ‘earning’ over $150 per flight I fly ($250 of value less the $95 I pay)?
Not even remotely, because I would never pay the full cash cost of a business class ticket. What I’m earning is a bit more subtle — the opportunity to purchase a business class ticket at a discount. The lower the purchase price of my miles, the greater the discount. In my case, assuming I got 4 cents of ‘value’ from my miles, that discount would be around 60% (1 – 1.6/4). So in exchange for the reduced flexibility of my $95 (because they are being ‘banked’ as Alaska miles), I get to fly business class when visiting my sister in Europe. I still retain the option to redeem for coach, of course, but then my choice to spend time on a plane (and lose sleep) would be as crazy as my friends try to convince me it is*.
Speaking of which, I should load up on booze before heading out of here, so gotta run 😉
Happy hacking!
*Except when I convince them to join me as well 😛