さわらブログ

さわら(@xhiroga)の技術ブログ

brew update したら mongodump/ mongorestore/ etc...が消えた? → brew install mongodb-database-tools しましょう。

TL;DR

mongoDB4.4 では、DB本体とDB周辺ツールを別々にリリースするようになりました。

https://docs.mongodb.com/database-tools/mongorestore/

というわけで、今後 mongorestore したい方は以下の通りにインストールが必要です。

brew tap "mongodb/brew"
brew install mongodb-database-tools

詳細

DB本体と周辺ツールを分けるPR自体は2020年2月に出てるんですね。

github.com

その上で、4.4 の GA に伴ってbrewのインストールするバイナリに mongodb-database-tools が含まれなくなった、ということのようです。

github.com

いやあ、いきなりパスから消えるんだもん。焦った焦った。

Wakatimeでプログラミング言語の内訳が見られない!→使用言語が15を超えると見られません。

Wakatimeが大好きです。

f:id:hiroga_cc:20200723093217p:plain
Wakatime dashboard

特にダッシュボードのプログラミング言語の内訳を見るのが好きです。
ところでこの内訳、見えるときと見られないときがありますよね?

f:id:hiroga_cc:20200723095132j:plain

理由がわからなかったのでWakatimeチームに質問しました。

見えるときと見えない時の違い

Wakatimeチームにご回答いただきました。

The requirement for breakdown legend to be displayed is:
1. Less than 15 editors used in the given time range
2. Less than 15 languages used in the given time range
When both the above are true, the language breakdown legend is displayed. Otherwise, there are too many languages to fit in the available space.

意訳

グラフの横に内訳が表示されるための条件は2つあります。
1. 指定した集計期間に利用したエディタが15未満であること
2. 指定した集計期間に利用した言語が15未満であること
上記の両方を満たす必要があります。そうでないと、グラフの横のスペースでは表示しきれないですからね(なので表示していない)

Wakatimeチーム、ありがとうございました!

2020年前半、マンガ大人買い→PDF化の決算表

外出自粛期間に15万円投じてマンガ300冊購入しPDF化しました。

こちらがその決算表です。 f:id:hiroga_cc:20200719012430p:plain

生データはこちら。
2020-07-18 - マンガ収支 - Google スプレッドシート

購入と電子化について

基本的に中古で全巻セットを購入しています。
メルカリとAmazonで相見積もりして安い方で買ってました。

(鬼滅やチェンソーマンはリアタイで追ってるのでKindleで買ってます。2020年前半のトータル書籍代は20万円を超えそう...)

スキャンは有償の業者を利用しています。
費用は1冊辺り160円+送料って感じでしょうか(当初不要なオプションを付けていたので4月のスキャン単価は高めです)
依頼から電子ファイル納品まで1ヶ月〜2ヶ月かかります。

送料についてはスキャン業者に直接送ることでカットできます。
しかし、メルカリみたいに素人が発送するものを直接スキャン業者に送るのは、届いた・届かないの問題が起きるので(起きたので)オススメしません。

所感

ぶっちゃけKindleの方が楽ですが、若干割安かつPDFが手に入る安心感を重視しているので今後も続けます。

「これもオススメだよ!」というマンガがあれば教えてください〜!

最近GmailのInboxにメールが届かなくなった! → Mailing Listに対するフィルター作成時にGmailが誤ったフィルターを作っているかも?

TL;DR

Mailing Listの名前にハイフンが入っていると、Gmailが自動で作成するフィルターはネガティブ検索として解釈されてしまう。

f:id:hiroga_cc:20200527070856p:plain
メーリングリストの名前にハイフンが入っている。

経緯

2020年の1月頃からなぜか GmailのInboxにメールが届かなくなりました。

面倒でしばらく放置していたのですが、一念発起して調査することに。
まずはGmailでフィルターを全てexportし、メールが受信できるかを確認しました。すると正常にInboxに振り分けられます。

次に、フィルターを全てImportしなおし、下から順番に削除→メール送信を繰り返してみました。するとメールが受信できるように!

悪さをしていたフィルターはコレでした。

f:id:hiroga_cc:20200527071306p:plain
マッチしないもの全てをフィルタリングする

それにしても、こんなフィルターいつ作られたんだ?
調べてみると、Adobe XDのMailing Listから送信されているメールの送信元アドレスに問題があるっぽい。

f:id:hiroga_cc:20200527070856p:plain
メーリングリストの名前にハイフンが入っている。

この neolaneというのは、2013年にAdobeに買収されて Adobe Campaginになった企業ですね。
このメールに対して Filter messages from this mailing list を実行すると、以下のようにネガティブ検索を含むフィルターが作成されてしまう、というわけ。

f:id:hiroga_cc:20200527071219p:plain
ネガティブ検索として解釈されるフィルター

まとめ

Gmailのフィルター作成機能は便利だけど、どんなフィルターが作られるかは目検でチェックしよう。
もしおかしいと思ったら、exportでバックアップして新しいのから順番に消してみる。

iPhoneのGoogle Meetで画面共有する手順

iPhoneの画面をハングアウトしている相手とリアルタイムで共有できるようになりました。

f:id:hiroga_cc:20200518120346p:plain

手順

  1. Google Meetで会議に参加する
  2. 画面集力を長押し or 強押しして、画面のブロードキャストをするアプリを選択する
  3. 画面がGoogle Meetで共有される

詳細

1. Google Meetで会議に参加する

f:id:hiroga_cc:20200518115939p:plain

特に説明することはないですね。

2. 画面集力を長押し or 強押しして、画面のブロードキャストをするアプリを選択する

f:id:hiroga_cc:20200518120217p:plain

画面収録ボタンを長押しすると、アプリの選択画面に移ります。
ここで画面収録ボタンがない場合は、 設定 > コントロールパネル からコントロールパネルの表示内容をカスタマイズしてください。

f:id:hiroga_cc:20200518120252p:plain

以上です。

IntelliJのプロジェクトテンプレートの仕様のまとめ

いつもGradleプロジェクトのセットアップに難儀しているので、プロジェクトテンプレートの利用を検討しました。

www.jetbrains.com

テンプレート作成時

作成したテンプレートは、私の環境では /Users/{USER}/Library/Application Support/JetBrains/IdeaIC2020.1/projectTemplates にありました。例えば、 excel という名前のテンプレートは excel.zip として保存されています。

f:id:hiroga_cc:20200428080559p:plain

IntelliJの新規プロジェクトメニューは、テンプレートが一つも保存されていない状態だと表示されないようです。

f:id:hiroga_cc:20200428080704p:plain
プロジェクト作成メニュー

IntelliJはprojectTemplateのZIPファイルを再帰的に探索し、そこで見つかったものをプロジェクトテンプレートの候補として表示するようです。試しにzipファイルを消したらプロジェクトテンプレートも消えました。また、projectTemplate 内に適当なフォルダを作ってそこにZIPを移動してもテンプレートとして表示されるようです。

ただ、 projectTemplate フォルダを直接編集するとプロジェクトの作成時に失敗するようになるかもしれません。

2020-04-30 追記: ソースコードのファイルがひとつもないモジュールを含むプロジェクトをテンプレート化すると、プロジェクト作成時に失敗します。IntelliJのバグと思われます。

テンプレート使用時

User-defined から利用したいプロジェクトを選択します。

f:id:hiroga_cc:20200428082358p:plain

作成失敗時、特に画面上にエラーは表示されないので気づきづらいのですが、 idea.logを見るとしっかり表示されています。

f:id:hiroga_cc:20200428081112p:plain
直接プロジェクトテンプレートのフォルダを編集した後のログ

idea.log は私の環境だと/Users/{USER}/Library/Logs/JetBrains/IdeaIC2020.1/idea.log です。

作成されたプロジェクトは、元のテンプレートの値が置換される箇所とそうでない箇所があるようです。例えばMakefile内のアプリケーション名は置換されませんでした。

2020-05-03 追記: gradleプロジェクトをテンプレート化すると、 ./gradlew でコメント行がエスケープされる上にパーミッションが初期化されて実行できなくなります。直せばいいとはいえ、うーん。

まとめ

細かいバグはありそうですが、都度Gradleの設定をコピらなくていいのは嬉しいので活用していきたいですね。