GASのgoogle.script.runをPromise化する

GASのgoogle.script.runをPromise化する

GASでクライアント側のJavaScriptから、サーバ側のJavaScriptを呼び出す時、google.script.runを使用する。

ただこれは非同期処理でありながらPromiseを返さず、独自にwithSuccessHandlerwithFailureHandlerにコールバックを設定する必要があるので、ちょっと面倒。

ということで、Promise化するコードを作ってみた(V8エンジン限定)。

2020年03月20日 BRM320近畿600 京都→熊本 あんたがたどこさ

2020年03月20日 BRM320近畿600 京都→熊本 あんたがたどこさ

オダックス近畿のブルベに初参加。

京都から熊本へのワンウェイ600kmに参加。

天気は快晴で素晴らしかったものの、ほぼ全区間を強烈な向かい風が吹き、朝6℃で昼27℃という気温差にも苦しめられた。

「難易度:上級」との表記は偽りなし。

ウェブサイトの差分を検知してメール通知するシェルスクリプト

ウェブサイトの差分を検知してメール通知するシェルスクリプト

2020年は数多くのブルベに参加することになったが、各BRMでウェブサイトの更新を監視するのは辛い。

無料のウェブサービスもあるが、登録件数が不足したり、どこが変更されたのか分からなかったりしたので、 変更を検知したら差分箇所をメールで送信するシェルスクリプトを書いてみた。

2020年02月22日〜23日 BRM222 東京600 とことん沖縄2

2020年02月22日〜23日 BRM222 東京600 とことん沖縄2

2020年最初の600kmはR東京が主催する沖縄の600km。

那覇をスタートして東海岸を北端まで往復し、次の日は西海岸を北端まで往復するコース。

沖縄県を自転車で走るのは今回が初めてで、これで47都道府県を全走破。

2020年02月15日 BRM215 千葉300 佐原

2020年02月15日 BRM215 千葉300 佐原

去年も参加した千葉の300kmブルベに今年も参加。

ずっと雨予報だったのが2日前から良くなり、実際には曇りがちではあったものの雨には降られず。 夜には満天の星空を見ることができた。

将棋倶楽部24をUbuntu + dockerで動かす

将棋倶楽部24をUbuntu + dockerで動かす

将棋倶楽部24は強者が集まるネット将棋として有名だが、残念なことにJava製である。

UbuntuをはじめLinuxではブラウザでJavaプラグインが動作しないようになっているので、ウェブ版は動かない。

アプリ版ももうかなり古くなったJava 8(しかもOpenJDKではなくOracle)を要求するので、そのために古いJavaを今の環境に入れたくない。

なのでdockerでコンテナにして動くようにしてみた。

Ubuntu Server 18.04 + SoftEther VPN + AdGuard Homeで広告ブロック機能付きVPNを構築する

Ubuntu Server 18.04 + SoftEther VPN + AdGuard Homeで広告ブロック機能付きVPNを構築する

どんなWi-Fiネットワークにいるときも広告をブロックしたいので、自前でAdGuard Home(DNSサーバ)とSoftEther VPN Serverを構築した。

しかし、Ubuntuではデフォルトでsystemd-resolvedがDNSサーバとして53/udpをListenしているので、自分で別のDNSコンテンツサーバを立ち上げる際にはこのStub Serverを止める必要がある。

さらにサーバ再起動後、VPNクライアントからのDNSリクエストが来た時、きちんとAdGuard Home DNSサーバに転送してくれないので、追加の設定が必要だった。