グーグルスプレッドシートで乗り換え時間をApps Scriptで調べる

乗り換え時間をたくさん調べたかったのでGoogle Apps Scriptを書きました。スプレッドシートのメニューのツール→スクリプト エディタから以下のスクリプトを入力

function getDirectionTimeInSec(origin, destination) {
  var now = new Date();
  var finder = Maps.newDirectionFinder()
    .setOrigin(origin)
    .setDestination(destination)
    .setDepart(now)
    .setMode(Maps.DirectionFinder.Mode.TRANSIT);
  var directions = finder.getDirections();
  if (directions.routes.length == 0) {
    throw "no route";
  }
  var route = directions.routes[0];
  if (route.legs.length == 0) {
    throw "no leg";
  }
  var time = route.legs[0].duration.value;
  Logger.log("time = " + time);
  return time;
}

function getDirectionTimeInMin(origin, destination) {
  return Math.ceil(getDirectionTimeInSec(origin, destination) / 60);
}

function debugGetDirectionTime() {
  return getDirectionTimeInMin("Shibuya", "Shinjuku");
}

スプレッドシートからは以下のように使います

BitnamiのWordPressが起動しなくなった時の話

Google Compute Engineのディスクが足りなくなったので、リサイズして再起動したら、WordPressが立ち上がりませんでした(泣)。

$ sudo /opt/bitnami/ctlscript.sh restart

するとApacheがport 80をlistenできなくて起動できてませんでした。

$ sudo netstat -tulpn

で80をlistenしてるApacheをkillして、もう一度

$ sudo /opt/bitnami/ctlscript.sh restart

したら、無事起動しました。よかった。

IIJmioひかりのIPv6 (IPoE)をGoogle WiFiと使った話

家でIIJmioひかりを使っています。IPv6のオプション(IPv6 IPoE)が今無料で試せるので使ってみたので、まとめました。

結論

速度は速くなった。IPv6にもなったけど、Double-NatではIPv6にならなかった。

詳しい経緯

家ではGoogle WiFiを3台使っています。3台でメッシュネットワークを作ることでWiFiの届かない場所をなくせます。残念ながらGoogle WiFiはIPoEを使えません。そこで、IPoEが使えるルーターを買うことにしました。

長くなるので簡単に書くとNECの PA-WG2600HP3 がおすすめです。もう一台、IO-Dataの WN-AX2033GR2 も試しましたが、PA-WG2600HP3 の方がかなり遅いです。速度は以下の通りです。

IPoEルーターには満足いったのですが、何をどうがんばってもGoogle WiFiにつなげたスマホなどがIPv6で通信できませんでした。ちなみに、以下のようなネットワークになってます。

光モデム -> PA-WG2600HP3 -> Google WiFi -> スマホ

いろいろ調べてたらGoogle WiFiがIPv6を使えるためには64ビット未満のプレフィックスを貰う必要があり、IIJmioはひかり電話の契約なしだと64ビットのプレフィックスになることがわかりました。

ということで、Google WiFiはIPv6になりませんでしたが、速度は速くなったので満足です。

HISの変なSIMのAPN設定で困った話

変なSIMというSIMがHISから売られています。私は、これを買ってオーストラリアに行った際に使ってきました。

1. 説明書通りでは動かなかった

最初のハマりポイントはAPN設定が説明書通りではなかったことです。答えから言うとアプリに表示されているAPNを使えば大丈夫です。

この時のスクリーンショットでは3gnetが正しいです。マニュアルにはchktということになってました。マニュアルが古くなっていたのか、理由は不明ですが、気をつけて下さい。

APN設定が空

私はGoogleのPixel 3を使ってます。OSはAndroid 9 (pie)です。他の環境では違うかもしれませんが、変なSIMを有効化するとAPN設定のページが空になってました。有効化前に設定したものはでてきません。私の今のAPN設定は以下のようになってます。

空ですが慌てずに、変なSIMアプリに表示されるAPNを追加して下さい。上のスクリーンショットのメニューから追加できます。アプリから変なSIMを無効化すると、APNのリストはもとに戻ります。

まとめ

問題はありましたが、結果的には無事接続できました。また使いたいと思います。

XWP, Automatic, Google公式AMP plugin 1.0 beta出たのでいれてみた

Version 0.72のときからインストールしてたんですが、1.0 betaが出たので、早速いれてみました。
リリースノートAMP plugin 1.0 beta

0.72の時にAMPのエラーが出てたので以下を実行しました。

sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1

私はWordPressをGCPBitnamiのパッケージを使って運用していて、BitnamiのバナーがAMP対応してませんでした。
ひょっとすると1.0 betaでは上記のコマンドは不要かもしれません。ちなみに上記のコマンドはStack Overflowが教えてくれました。

Native AMPという実装を選んでいるので、すべてのページのcanonicalがAMPです。パット見、ちゃんと動いているようです。

追記[7/12, 2018]

AMP用にGoogle Analyticsを設定する方法を書きます。WordPressのダッシュボードのAMP->Analyticsに行き、下記のスクリーンショットのように入力してください。
Typeのフィールドは自分のための名前なので何を記入してもいいです。JSON Configurationには以下のコードのUA-1234567-8を自分のグーグルアナリティクスのIDに置き換えて入力します。
{
"vars": {
"account": "UA-1234567-8"
},
"triggers": {
"trackPageview": {
"on": "visible",
"request": "pageview"
}
}
}

グーグルアナリティクスの設定