なんか書いていこうぜー .com

Let's write something good

Kanazawa.rb meetup#117 に参加した

2022-05-22
  • Share on Facebook
  • Tweet
  • Add to Pocket

Kanazawa.rb の 117 回目の meetup 「意識高いもくもく会 - オフライン」 に参加してきた。

2 年ちょいぶりにオフライン開催するとのことで、おでかけして参加してきた。

会場のルールで、入り口で体温計測とアルコール消毒、名簿への記載を済ませた後、間隔を空けて着席し、窓開けて換気十分の中でもくもく会が開催された。

もくもく会

Kanazawa.rb のもくもく会は、最初に自己紹介と今時点でこの時間で何をするつもりなのかを宣言して、作業を開始するルールになっている。私は「Goならわかるシステムプログラミング」の続きを読むことと、疲れたらエディタの設定を見直す、と宣言して作業を開始した。

他のメンバーは読書する人もいれば、後でLTするのでその資料作成する人、コード書く人、発見した問題をissueとして報告しようとする人、コミュニティ運営に必要なツールやサービスの調査・検討する人もいて、やることは多岐に渡っていた。

私のもくもく会の成果としては、13章「シグナルによるプロセス間通信」を読むことができたことと、fzf の活用を考えて、fzf.vim の設定を見直して :Files のショートカットを作成し、検索時のオプションが :Files の結果に悪影響を与えていたので修正して .vimrc に反映した。

ちなみに fzf.vim は ripgrep コマンドを使う例を提示していたが、私は普段 ag コマンドを愛用しているので、そちらを使うような設定にしている。

運営ブレスト

オフラインの参加に対する感想や、メリット・デメリットを話し合った。結論としては、どちらもそれぞれよさがあるので、Kanazawa.rb としては今後両方やっていこうという話になった。次回はオンライン開催になったはず(うろ覚え)

都度判断で翌月開催の場所を確保するというのも簡単にはいかない、オンライン開催したことによって遠隔にいる人も参加しているのでその機会を奪いたくない、オフライン開催は施設の設備に引っ張られることなく開催できる容易性もあるので捨てがたい、あたりの意見が出ていた。

参加しての感想

「音の振動を耳以外から感じる」が最初の感想だった。オフラインはやはり情報量が多い。久しぶりに会う人もいて、生存確認もできてよかった。

2 年 3 ヶ月ぶりともなると、オフライン開催に必要なもの(電源タップ、HDMI接続数ためのハブ etc) やプロジェクターの色味等、気を回す必要のあるものを忘れているな、ということも皆で認識できたのもよかった。

LT の発表も 2 つあり、普段触れていない技術の話や参加者と発表者の議論もあり、できすぎているくらいよい回だったと思う。

各自帰ってから Zoom で雑談して、今回は終了した。お疲れさまでした。

Mac で使う yabai の設定

2022-03-13
  • Share on Facebook
  • Tweet
  • Add to Pocket

使っている Mac には、yabai を導入して、Linux Desktop で使っている i3 の使用感に寄せている。現時点の設定をまとめてみる。

インストール

Disabling System Integrity Protection と、Installing yabai を見て作業し、導入した。 Big Sur の手順が書かれているが、Monterey でも同様の手順で大丈夫だったはず。

WikiのHome にあるように、ショートカットで操作するためには、skhd が必要なので、こちらもインストールする。

設定

設定ファイル: .yabairc

設定ファイル: .skhdrc

yabai 自体の設定はそんなに触っておらず、skhd のほうは前述のとおり i3 に設定を寄せている。

使ってみての感想

全画面と元に戻すことが容易なこと、ウインドウサイズを均等割り付けだけではなくリサイズすることもできるし、それをいい感じのバランスにすることもショートカットでできることがとても気に入っている。

アプリや Finder を起動したときにウインドウが重なることがないため、いちいちどかす作業が発生しないのはかなりストレスが減った。

サンプルがあるとはいえ、最初にショートカットの組み合わせを考えて設定に落とし込む必要があり、更にそれに慣れる必要があるため、使いこなすまでに時間がかかることが難点ではある。

今の課題

外付けディスプレイをつなげて使う場合は仮想デスクトップを使わないので、skhdの仮想デスクトップに関する設定 については普段はコメントアウトしている。

今の課題は、私の設定が i3 のショートカットに寄せる余り、仮想デスクトップ周りの設定が Mac OS のもつスクリーンショット系のショートカットを潰してしまっていることで、これには OS のキーボード設定で都度回避している。滅多にノートPC単独で使うことがないので今は許容しているが、なんとかしたい問題ではある。

その他今の設定の制限としては、アプリ等のウインドウが存在しない仮想デスクトップにはショートカットでは移動できないっぽいので、そういう場面では Ctrl + 右、Ctrl _+ 左で移動する必要がある。これはあまり不便には感じていないので、気にしていない。

まとめ

導入までには少し手間がかかるものの、ウインドウが重ならない、リサイズが容易であること、i3 に設定を寄せることができることができるため、yabai + skhd は大変気に入っている。

個人的に課題を抱えているものの、特定の場面でしか影響していないためあまり気にならない。

私の中では、yabai + skhd は今ではないと困るアプリになっている。

最近追加した Vim のプラグイン

2021-10-17
  • Share on Facebook
  • Tweet
  • Add to Pocket

普通にテキスト書けるくらいのプラグインのみ残して削除していたのだが、最近もうちょっと効率化したいという意欲が高まったので、効率化されそうと思ったプラグインをいくつか導入したので記録として残しておく。

導入したプラグイン

詳細は後で書くとして、導入したものは以下のとおり。

ctrlp.vim, vim-quickhl

vim-quickhl はカーソル下のワードをハイライトしてくれるプラグインだ。通常の検索と違い、複数のワードをそれぞれハイライトしてくれる。

検索でハイライトされるのはいいのであるが、カーソルが移動されると元いた位置に戻ってこないといけないので、カーソルを移動させずにどこで使われているかを確認するために導入してみた。

CtrlP は正確に言えば以前から導入していたが、私の設定が悪く、ファイルの多いプロジェクトだと検索が重くてほぼ使っていなかった。

CtrlP に出戻りした にある ctrlp-matchfuzzy の部分を見て ctrlp-matchfuzzy を導入し、Vim の CtrlP が動かなくなっていたので設定を見直した の .gitignore に指定したファイルを一覧から除外する にあった検索対象となるファイルを絞る設定を導入したことでかなり高速化したので、今は常用している。

indentLine, tagbar

indentLine はインデントを特定の文字列でガイドしてくれるプラグイン。 README にある文字列を指定すると、マルチバイト文字でズレることもあるので、| のみ指定している。

tagbar は ctags を利用して、class やメソッドのアウトラインを表示、ガイドしてくれるプラグイン。~/.ctags に設定を書かない状態だと、RSpec のファイルをアウトライン表示してくれないので、 https://gist.github.com/diegotoral/ce58679a2d80ecc1419767c773ec808a を参考に書き込んで ctags を生成と describe, context, it が表示されるようになった。

RSpec のアウトラインは表示されるものの、並び順はコードの順番とは異なるのでこれが解決できればもっといいな、という感じだが、定義には随分楽に飛べるようになった。

vim-test

特にコマンドの設定等しなくてもテストが実行できるプラグイン。vim でテストが記述されているファイルを開き、README にある呼び出しショートカットキーを設定して実行すればテストが実行されるので、今回書いているもので一番便利に使わせてもらっている。

今は vimterminal でテストが実行されるように設定しており、実行時に開かれるバッファ内で結果を確認したり、デバッグしたりしている。

ale, vim-lsp-ale

vim-lsp と asyncomplete で補完をしている。この LSP が動作する状態で ale を導入すると、LSP のチェックのみがバッファ上に表示されて ale の警告が表示されなかったため、制御するために vim-lsp-ale を導入した。

VIMのaleでのrubocopを軽快に の設定を参考に以下のようなテキトーな設定を書いて、bundle exec rubocop されるようにした。

let g:ale_fix_on_save = 1
let g:ale_lint_on_insert_leave = 1
let g:ale_lint_on_enter = 0
let g:ale_lint_on_text_change = 0

let g:ale_set_quickfix = 1
let g:ale_set_loclist = 0
let g:ale_open_list = 1
let g:alg_keep_list_window_open = 0
let g:ale_list_window_size = 10

let g:ale_sign_column_always = 1
let g:ale_sign_error = '=='
let g:ale_sign_warning = '--'

" LSPのチェックでなく、RuboCop を使う
let g:ale_linters = {
    \   'ruby': ['rubocop'],
    \ }

function! s:set_ale_ruby_rubocop_executable()
  let b:ale_ruby_rubocop_executable = 'bundle'
endfunction

augroup my_ale_ruby_rubocop_setting
  au!
  au FileType ruby :call s:set_ale_ruby_rubocop_executable()
augroup END

あまり実行回数が増えないように save 時にのみ実行する、警告が出た箇所に出る記号を gitgutter のものとわかりやすく区別する等の設定を入れている。

さいごに

最近追加した Vim プラグインの記録を書いた。特に vim-test と ale が非常に便利で、これらがないと効率がガタ落ちするくらいに馴染んでいる。

ちょこちょこプラグイン探したり、設定見直したりしているので、大きな変更があればまた記録しよう。

Kanazawa.rb meetup#108 に参加した

2021-08-28
  • Share on Facebook
  • Tweet
  • Add to Pocket

Kanazawa.rb の 108 回目の meetup 「祝9周年 LT大会 - オンライン」 に参加してきた。

イベント内容

毎年、この月は LT 大会になっており、参加者がそれぞれ LT をする。聴くだけの参加も OK だと思われるが、スライドなしの LT 、2 つ以上 LT、プログラムやソフトウェア開発関係ないネタでの LT ありと、フリースタイルな感じになっている。

私の発表

先月のつづき として、最近お仕事の開発環境が Mac になったので、Mac 用に開発環境を整えた話で一本、懇親会用にと思っていたが時間があったので、本編時間内でデスク周りの新しい道具についてほぼ画像だけで LT した。

.zshrc や .tmux.conf の環境特有の設定を分岐して、ファイルをわけないように記述したことについて話した。環境ごとにわけてもいいのだが、あっちの環境にはあるけどこっちにはないというのをなるべくなくしたい、どうせ設定ファイルいじるならやってしまおうとなって分岐を足している。

その他

軽いノリであることと、テーマを絞っていないため、幅広い話を聴くことができた。たまに開発関係でない話や、急に王道の開発ネタが入ってきてなかなかおもしろかった。

RSpec の軽めの話があったので、気になった。今のメインストリームはそうなんだな、と思いつつ、その気持ちもわかるんだけど、自分の中で整理がついていないので、終始心乱れたまま話を聴いてしまった。

次回はもくもく会だったような気がするので、もくもくするネタを考えておかないとな。

Kanazawa.rb meetup#107 に参加した

2021-07-18
  • Share on Facebook
  • Tweet
  • Add to Pocket

Kanazawa.rb の 107 回目の meetup 「開発環境&shell(CLI)芸晒す会 - オンライン」 に参加してきた。

イベント内容

個々人の開発している環境(空間、機器、ツール)や、PC 内での開発環境、使っているものや自作のスクリプト等について、自慢する回で、形式としては、参加者が持ち寄った発表を発表時間を申告して発表する形式で行われた。

私の発表

普段私は Desktop Linux 使っているが、そういう人は多分いても少ないだろうということで、より一般的な dotfiles の管理をメインに、メモの運用について話した。

daily-memo.sh は便利に使っていて、検索が愛用の ag コマンドなので、高速なことが気に入っている。また、何も考えずにコマンド打てばファイルができて同日なら重複したファイルができないので、何も考えなくてよいのがよい。

Obsidian は専用アプリがあり、vim キーバインドに対応していたので試したが、思ったより手になじまなかったのと、ドキュメント同士のリンクをしなかったのでこれである必要はないかな……となって元に戻った。 また、Slack での times 運用はお金払わないと履歴が古いものから消えていくのと、ちょっとしたテキストの塊を入力しようとしたときにテキストエリアは領域が狭くなってしまうことがあるので辞めたのであった。

その他

今回は本編だけでなく、終わった後のオンライン飲み会でも LT 発表が 2 本あり、なかなか趣味に振り切ったもので楽しかった。

また、とんとさんと kzrb.org と meetup.kzrb.org の修正をあの場でできたのがよかった。時間を共有しつつ作業すると反映までが早いので、スピード感を感じられていいね。

SUZURI のアイテムを表示している URL がこちらの期待と違う動きをしていたので、こちら側では回避するようなコードに修正しつつ、問い合わせをしておいた。「誰も消防車を呼んでいないのである」 にならないようにね。

次回は 9 周年記念 LT 大会になる予定なので、LT のネタを仕込まねば。