Software カテゴリのアーカイブ

コストを掛けずにBigQueryを使い倒す会

Software

BigQueryを使い倒す会代表のkyontanです.今回は実用性低めな分野で BigQuery を1万倍有効活用する方法……ではなく延々とBigQueryがお得だという話をします.

今回ご紹介するテクニックを意味不明に活用することで,18.2GBのスキャン(10円程度)で2301億行の一時テーブルを作って集計することが可能です.便利ですね.ちなみに私は12桁の数字を突然見て混乱しました.COUNT(*)の結果が2301億ちなみに上のクエリは37.5秒で帰ってきましたが,内部では4時間52分のCPU時間を使用したようです.つまり,単純に計算すると約500スレッドが並列して走っていたようです.すごいですね……

(注: この記事は実用性皆無です.ごく一部を除き,一般の分析用途でBigQueryを使用するユーザにはなんの利もありません)

 

read more »

YubiKey 5C を買ったので ECDSA鍵で ssh した

Infrastructure Software

こんにちは。唐突に YubiKey が欲しくなったので買いました。こんなことをやっている場合ではない……

正確には、Amazon.co.jp を見たら異常に高くてそりゃ転売したら儲かるな、という気持ちになったので、適当に人を募って Amazon.com (US) で共同購入しました。
関税や送料を足した結果、YubiKey 5 NFC が5500円, YubiKey 5C が6100円ぐらいで買えました。良かったですね。

YubiKey といえばそもそも OTP が出てくるキーボードとして認識されるデバイスですが、最近だと WebAuthn で使えたりしますね。あとは PKCS#11 の署名用や適当な鍵を登録できたりします。

雑に手元の macOS でssh するぞ、と思ったら地味にハマってしまったのでいろいろやった結果動くようになったのでメモ

手順だけ分かればおっけー!という方は Gist にパッチ等まとめたので、そちらを参照してください: https://gist.github.com/kyontan/763952e7be68a2e96d5c3f0ad0d3bce8

read more »

macOS Mojave へ VirtualBox をインストールする

Software 雑記

月末金曜日なので研究から逃げようとしたところハマってしまった。タイトルからしてmacOS初心者感がつよい。

環境は macOS Mojave (10.14.1), Oracle VM VirtualBox のバージョンは 6.0.0 (5.2.22 でも再現)

macOS へ VirtualBox のインストールを試行してエラーになっている様子

結論から言うと「システム環境設定」-「セキュリティとプライバシー」-「一般」-「ダウンロードしたアプリケーションの実行許可」 で Oracle America, Inc かそれっぽいのを許可する。既に許可してしまったのでボタンが消えているが下の図の枠で囲った位置にボタンが出てくる。それっぽいエラーを何もユーザーへ提示せずに死ぬのでハマった。ちなみに macOS のインストーラはエラーログとかを /var/log/install.log に吐くのでそれを見ると何で落ちたのかは分かる。

ところで結局これでWindowsを起動したところで目的は達成できずに負けました。完全敗北

tmux でも Touch ID で sudo を使う

Software お役立ち情報

Touch ID が搭載された MacBook Air を買いました。MacBook Air に欲しかった機能の8つ中8つが実現されたので買いました。1つ10点としたら10^8 で1億点だね、という話をしたら首を傾げられました。

Touch ID が sudo でもパスワードを入力する代わりに使えそうだな、と思ったので調べてみたらどうやら pam_tid.so という PAMモジュールが用意されており、コンフィグを弄ることで使えるようです。具体的には /etc/pam.d/sudoauth sufficient pam_tid.so を追記するだけです。簡単ですね。

しかし、tmux のようなターミナルマルチプレクサを使用している場合にはこれだけではうまく動作せず、sudoコマンドを用いても普通にパスワードを求められてしまいます。
(これは各ユーザごとに存在する bootstrap namespace に tmux が存在しないこと? が原因のようです。詳しくは当該リポジトリに説明と詳細へのリンクがあります。)

これに対処するために pam_reattach という PAMモジュールを書いた人がいて、これが使えます。

fabianishere/pam_reattach: A pluggable authentication module that reattaches to the user’s GUI (Aqua) session on macOS

参考にした元の記事やこのリポジトリの README.md には何事もなく以下のようにやれば入ると書いてありますが、これは失敗します。

$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr
$ make
$ sudo make install

これは最近の macOS の保護機能の1つである System Integrity Protection が有効になっているためで、rootであっても / 配下のほとんどが書き込み不可能になっています。つまり /usr/lib/pam にビルドされた pam_reattach.so をコピーすることができず失敗します。
多分これを開発するような人は無効にしてるんじゃないでしょうか……

実は/usr/lib/pam/usr/local/lib/pamで代替できます。というわけでそうします。具体的には以下のように PREFIX を変えるだけです。

$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local
$ make
$ sudo make install

それではよい tmux life をお過ごしください。