雑記帳

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

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

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

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

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

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

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

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

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

将棋倶楽部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サーバに転送してくれないので、追加の設定が必要だった。

Ubuntu 18.04でActive DirectoryへのOpenLDAPプロキシを構築

Ubuntu 18.04でActive DirectoryへのOpenLDAPプロキシを構築

Active Directoryのあるネットワークとは別のネットワークにある機器(具体的には電子黒板)から、LDAPでADユーザ情報を検索したいという要件が。

VPNなどの設定もできないので、DMZにOpenLDAPによるLDAP用のプロキシサーバを立ててみた。