2021年9月26日日曜日

Sequelerのebuildファイル(Gentoo用パッケージ)を作った

SequelerというLinux用のDBクライアントがあります。名前が似ていますがmacOS用のSequel ProとかSequel Aceとは別物です。

Linux用のツールですが、Gentoo用のリポジトリーに入っていなかったので自前でebuildファイルを作りました

サクッと作って終わり!というわけではなかったので、ちょっと苦労話でも語らせてもらいます。興味のない方はebuildファイルだけパクってトンズラこいても大丈夫です。

2021年9月19日日曜日

Jestで特定のファイルのみテストができなかった問題

 Jestで特定のテストだけ実行したい場合ってあるじゃないですか。

ここに書いてあるとおりjest path/to/my-test.jsのように実行したんですがNo tests found, exiting with code 1というメッセージが出て何もテストできずに終了。テスト対象のファイルもちゃんと存在してるし意味がわからない。

しばらく悩んでも答えが出なかったので放置していたんですが、ある日こんな指摘をもらいました。

「Jestの引数はファイルのパスじゃなくて正規表現パターンだよ!」

どれどれ。。。

引数を付けてjestコマンドを実行した場合、その引数はプロジェクト配下のファイルを照合する正規表現として扱われます。

ほんまや。

それが何か関係あるの?と思った方。実は、テスト対象のファイルには$が含まれていたために正規表現のパターンとしてちゃんとマッチングしなかったようです。

解決方法は2つ。要はメタ文字を無効化すればいいので、

  • $[$]で置き換える
  • $\\$で置き換える

このどちらか。後者は単に\$だとバックスラッシュがシェルに吸収されてしまい、Jestにはただの$が渡されます。

偉そうに解説していますが、アホらしいミスをやらかしました。。。

2021年9月12日日曜日

Drone CIでRedisクラスターを使う・改

 半年以上前にDroneでRedisクラスターを使う記事を書きましたが、localhostでしか動かないRedisクラスターはテスト用とはいえ使い物にならないので、まともに動くようにしてみました。

結論から言うと、横着せずにちゃんと3台以上でクラスター作れよってことです。

2021年9月5日日曜日

Chromiumビルド中にマシンが落ちる

 タイトルのとおりなんですが、GentooでChromiumをビルドしていると急にマシン自体が落ちました。ビルドエラーが起きたとかビルドプロセスが落ちたとかじゃなくてマシン自体が落ちました

何が起きたんだと思って再起動すると、「CPUが熱暴走したからマシン落としたよ」的なメッセージが。マジか。

まあ確かにChromiumはビルドするファイルも多いし時間もかかるけど、今までこんなことなかったのになぁ。ちなみにビルド時のnice値(PORTAGE_NICENESS)は15。とってもナイスな値なんですがそれでも熱暴走しました。

結局どうしたかというと、Chromiumビルド中は扇風機で風を送り込むという極めてアナログ&原始的な方法で解決しました。もしかしたら並行処理の数を減らしてもよかったかも。