Well, if you are worried about internet privacy, the first thing to do is:

  1. Use a more private search engine. Looking at google search history is pretty frightening. I’ve been using startpage.com with decent success.
  2. to use a VPN so that your ISP can’t snoop everything. Privateinternetaccess.com seems decent. It has good coverage. They also let you use it on your mobile phone as well with a little configuration.
  3. Don’t use your ISPs DNS server because they can also use DNS queries to determine what you are up to. OpenNIC
  4. Use an encryption scheme on your DNS from OpenDNS (which is a private company btw) called DNSCrypt

Well having the two operate together leaves to some strange conflicts as you might expect. Also I got this strange message having to do with an Icon file which has a carriage return in it. That is a Ctrl-M that really confused Git. But http://stackoverflow.com/questions/24186256/atal-reference-has-invalid-format-refs-icon explains that Apple or Dropbox throws an icon file in which git can’t read with a illegal character for it in the file name. 

The solution is to delete all these icon files with the magic

find . -name “Icon*” -delete


OK, United just announced that you no longer get “miles” in Mileage Plus, instead you get points based on your ticket price, ticket class and level. So according to http://mileageplusupdates.com if you are buying a full fare ticket (I would guess), if you are Premier 1K, you get 11x your purchase price. I would presume there would be steep discounts for discounted tickets. 

But qualification for elite status is still based on the old PQM or miles, PSQ (less important these are segments) with a minimum you fly plus a multiplier plus the dollars you spent (PQD) unless that site hasn’t change quite yet since it gives contradictory information on how many PQMs you earn. These PQM are modified by the price of your ticket and class (so 2x for full fare business or 175% for discounted business JCD and 125% for full fare economy YB and 100% for all those discounted fares I love like M, E, U, H, Q, V, W, S, T, L, K, G, N so for most fliers, you won’t get any business class bonus for say class H).

The third measure is lifetime miles which is based on actual miles flown without a discount.

Wow something like five different measures when flying. I have a headache!

And this is a huge loss for lower cost fares like $362 to cross the US (Forbes) so for a premier it goes from 4,908 points becomes something like 1,810 if you are ordinary (and assuming there is no additional discount for lower fares) to maybe 3,982 assuming again no additional discount for discount fares. So this is something like a 3x devaluation to a 40%. I’d guess it comes out to around a 2x devaluation (so United goes from 2.2% before 2014 to 1.8% per point to probably something more like 0.9%, wow. wow.). It does mean that “old” united award miles are pretty valuable so in some sense it isn’t as bad as the 2014 devaluation, but it means it is really hard to earn points now. 

Net, net, getting to lifetime status isn’t such a bad thing if you can get it, then you get the perks (until that is devalued of course) of say Premier Platinum if you get to 2M miles (wow that is alot!). So I’d say if you can do that, fly on United a bunch to get to 2M miles, then stop and use your “old” miles up and enjoy as them as fast as you can before another devaluation. Finally, it means that the “traditional” programs like American and Alaska are looking pretty good. Or credit cards that get you business class or 1st class domestic (since then you don’t have to have high status to make it through the economy cabin lines).

Well there are some tricks here to make this work right. Hat tip to Rennie on this:

Setting up IOS

Gmail has this notion of labels and always tries to archive vs delete mail so this can be really confusing. But fortunately with iOS, there is a way to fix this. Go to Settings/Mail, Contacts and Calendars. Find your account for Gmail and click on the Account/Advanced and then change Move Discarded Messages Into to Deleted Mailbox. While you are there you can check that the mappings for various folders are correct in the Mailbox Behaviors settings, you want Draft Messages to map to the server side Draft.

Setting up

It is a little trickier getting Apple Mail on OS X to cooperate, normally it just works if you use the Google option in System Preferences/Internet Accounts, but you have the same issue with archive vs. Delete. So here are the steps to check:

  1. Logon to Gmail. Click on the Gear icon on the upper left and choose Settings/Labels. This shows how google maps its general label scheme to IMAP folders. Gmail is quite different than most other mail system. It always wants to archive and it doesn’t have folders. It uses labels instead, so you want to make sure the mapping between its labels and the IMAP folders makes sense. So on the Labels page, it shows you what labels convert to IMAP folders with the `Show in IMAP` button on the right. Make sure the Trash, Sent Messages and so forth work. You need All Messages by the way. This is the default that is used for all mail.
  2. You will also see lots of labels that may be junk. Kerio creates a bunch as artifacts for instance, you can delete those and make sure show in IMAP doesn’t show on the rest.
  3. One problem is the naming of Trash, for google it is `Trash` but for other clients it is `Deleted Messages`. The same for `Sent Messages` vs `Sent Mail`. Just settle on one and then in IOS and on Mac Mail make sure it points to the same folder. Since you are using Google Mail, you probably want to convert to its defaults which are `Sent Mail` and `Trash`, so in the client you just drag and drop all the Sent Messages and Deleted Messages into Sent Mail and Trash respectively.
  4. Finally, to get Google to actually delete instead of archive (what this means is an archive means it loses all its labels and you can only see it with  All Messages label). To change this to really delete where the semantics are it gets a Trash label and then is deleted after 30 days, you have to go to `Forwarding and POP/Imap` and take Auto Expunge off and choose `Move messages to Trash`

OK, here are the tips, tricks and traps so far…

  1. IMAP Migration is a little complicated. You can do this as an administrator but need the user to give you type their password in. It is setup in the administration windows
  2. Google Sheets don’t work well in Safari. Seems to work fine in Chrome, but I can’t seem to use the the menus, it gets stuck on “working”. Not clear what is wrong, but have lots of ad blockers that I have. So it seems like Chrome is the choice, but I haven’t tried Firefox.
  3. Routing. This is complicated. The important thing is to make sure that routing includes both recognized and unrecognized addresses. The default seems to be unrecognized and then it doesn’t work.

I haven’t spent much time optimizing car rentals and rewards because they haven’t seemed that interesting. But now Hertz and United are doing triple points so it is good to understand. In the old world, 75 United points weren’t super interesting (at 1.8 cents/point). But the latest promotion is 1,250 points per rental plus 50 points/day (1.8 cents = $20 or so). They also charge you for airline points, so this is realy worthwhile if you’ve got lots of status on United, but with their partnership it’s way more lucrative. Note also that this is for each rental no matter how long. Lots of incentive for us short renters with United and Hertz:

  • 1,250 miles – MileagePlus Global Services, Premier 1K and Premier Platinum members; Hertz President’s Club
  • 1,000 miles – MileagePlus Premier Gold and Premier Silver members; Hertz’s Five Star
  • 750 miles – Primary cardmembers of MileagePlus credit cards from Chase
  • 500 miles – MileagePlus general members.

There is also a special CDP 62455 that you can try. This is in addition to the paltry 50 points/day for less than four days and 500 points for five days or more. 

However Hertz Rewards is also doing triple points as well, so this is per dollar spent. So at 675 per weekday points or 550 for a whole weekend for say a weekend rental, you need to calculate what that actually costs. It is worth way less in easy cities vs hard cities (NYC a rental like that costs $140 per day, so you are doing really well and can get lots of cents). Some folks at Flyertalk say it is about 1.6 cents per mile, but I don’t know how they calculate that at 

Right now though with triple points on United, it sure does seem like an easy value to understand since airfare is way more useful for most of us than car rental points.

Well week 3 of intensive Mac Excel hacking, so learning lots of new handy shortcuts.

The mouse is slow when you are doing a lot of Exceling:

CMD-T Paste Format

CMD-V Paste Value

CMD-F Paste Formula

FN-F9 Evaluate the highlighted part of a formula (great for debugging)


Then for formatting:

CTRL-I Insert rows

CTRL-(dash) Delete rows


For hiding:

CTRL-0 Hide column

CTRL-9 Hide rows

CTRL-SHIFT-0 Unhide column

CTRL-SHIFT-9 Unhide row

F4 Toggle from relative to absolute cell reference

CMD-SHIFT-T Autosum selected cells


The borders:

CMD-OPT-0 Border the selected cells

CMD-OPT-{Left, Up, Down, Right Arrows} Border on the left, up, dorwn and right

CMD-OPT-_ Remove all borders


Then for formatting:

CTRL-SHIFT-~ General format

CTRL-SHIFT-$ Currency

CTRL-SHIFT-% Percentages

CTRL-SHIFT-# Date format

CTRL-SHIFT-! Number format

F4 REapply the last format

CMD-M Add an indent in the cell

CMD-SHIFT-M Remove indent

CMD-E Align center

CMD-L Align left

CMD-R Align right


Fill down

CTRL-D Fill down

CTRL-R Fill right

CTRL-SHIFT-” Fill from above



SHIFT-{Right, left, up, down}  Arrow Extend right, left, up, down

OK, I’ve been battling this for a while and haven’t seen many posts on it, but here is what has happened and the best explanation seems to be a combination of iCloud sharing issues and this new “automatically maintain settings” in Apple Mail

  1. Mail interacts strangely with iCloud Keychain and Internet Accounts. Zombie accounts I’ve deleted keep coming back across all machines.
  2. Google additions don’t seem to work if you have a previous imap setting so when you are say migrating to Google Apps, you get messages like can’t find server when you are looking for the google server. You can use contacts, etc, but not notes and mail. Then if you wait a while it all works again. Strange!
  3. SMTP servers seem to lose their passwords and connection with accounts, it gets all scrambled. Again as if some sort of server master is overwriting local
  4. When you add a regular SMTP server, it forgets where the Trash is and you get messages like “Can’t move message to (null)” there is a Mailbox command and you have to manually set “Use Mailbox For” to get this working.

I have almost forgotten how to use Ghost. It was a great experiment in building something with node.js on digital ocean and figuring nginx. Kind of proud it all actually works. Now its time to do some site validation and I need to be able to put a static page up there.

This is a little more complicated than wordpress on bluehost. You can’t just stick a page up there. Instead, you need to hack at the nginx configuration files to allow this. Basically, ghost is set to handle everything that. That is what the ‘/’ means and then the ~ means handle a specific page.

To get nginx to serve serve static content use the syntax, which means declare a virtual server and set the root to the file system location /www/data and if you see a tilde, then do a match for the regular expression. Here, it says that all *.mp3 and *.mp4 should be found at /www/media while locations like / and /images use the root defined above:

server {
    root /www/data;
    location / {
    location /images/ {
    location ~ \.(mp3|mp4) {
        root /www/media;

As another example, this says that anytime you see /sitemap.xml, find this static file /var/www. This is useful for things like statics that you need at the top for things like verification. So if you want to do this

location ~ ^/(sitemap.xml) {
     root /var/www;

The key to understanding this is the Nginx Location Directive tutorial which is actually pretty tricky and hard to read so some examples because this is basically a funky regular expression locator (see documentation). Basically, Nginx searches through these looking for prefix strings to do matches, so it is looking for the start of things:

This matches only a search for root like http://www.tongfamily.com/ and says look for the current active root
location = / { }
This matches anything because all web requests being with a starting slash
location / { }
This matches are strings that start with img so anything that looks like http://www.tongfamily.com/img/
location /img/ { }

After doing this match, it then tries regular expressions which are denotes by a tilde

The caret tilde means means search and stop matching, so this looks for any string with a /img/ so all image assets live here
location ^~ /img/ { root /www/images/ }
The tilde means do case sensitive matching so this means look for things like http://tongfamily.com/data/
location ~ /data/ { }
It there is ~* it means case insensitive matching so this will match IMG or img or Img
location ~* /img/ { }
Finally you can use a complex regex to look for things like text files
location ~ \.txt$ { }