私が歌川です

@utgwkk が書いている

日記

久しぶりにマスクをせずに外出した。といっても自宅とコンビニを往復しただけだが……。

<お知らせ> これまで屋外では、マスク着用は原則不要、屋内では原則着用としていましたが 令和5年3月13日以降、マスクの着用は、個人の主体的な選択を尊重し、個人の判断が基本となりました。 本人の意思に反してマスクの着脱を強いることがないよう、ご配慮をお願いします。

www.mhlw.go.jp

linterを導入していなかったプロジェクトにlinterを導入しようとするときにまずやること

今どきlinterを使っていないプロジェクトなんて、と思われるあるかもしれませんが、歴史の長いプロジェクトだとそういうこともあるでしょうし、あるいは一部のDSLやスキーマ*1に対してのみlinterを走らせたいということもあるでしょう。

そういったプロジェクトに対してlinterを導入する前に、デフォルト設定でlinterを走らせたときにどういう出力になるのかを一通り眺める、というのをやっています。

どういうエラーがどこで何件出ているのか、warningなのかerrorなのか、linterのルールがプロジェクトにとって妥当なのか、一通り吟味した上で設定を調整してからlinterを導入するようにしています。なぜなら、linterのノイズが多いとlinterの言うことに従うモチベーションが下がる (と自分では思っている) からです。

最初からlinterが入っているなら、とりあえずlinterの言う通りにする (あるいは設定を変える) ことはできると思いますが、途中からlinterを導入するとプロジェクトのこれまでのコードとlinterの出力が噛み合わないこともあると思います。linterの噛み合わせをよくする*2のがよいと考えています。

具体例として、Perlプロジェクトに対してperlcriticを導入するときにやったことをまとめた記事を紹介します。

blog.utgw.net

心構えの話をしておこうという気持ちに急になったので記事にしました。

*1:たとえばDBスキーマやGraphQLスキーマ

*2:この表現は今考えた

RubyKaigi 2023に参加した #rubykaigi

RubyKaigi 2023に参加しました。

トーク

印象に残ったトークについて簡単な感想を書きます。

The future vision of Ruby Parser

Rubyには4種類の do がある、という話がおもしろかったです。

Fix SQL N+1 queries with RuboCop

RuboCopにN+1クエリを自動修正させる、というなかなか野心的な取り組みの話でした。最近だとChatGPTにコードを修正させるという向きもあると思うのですが、今後どうなるのかが気になります。

Splitting: the Crucial Optimization for Ruby Blocks

TruffleRubyの最適化手法の話でした。けっこうアグレッシブに最適化しているけど、最適化フェーズに必要な計算資源がけっこうありそう? というのが気になりました。

Ruby Committers and The World

今年はYJITなど言語処理系内部の話題が多かったように感じました。型注釈の話は意見がそこそこ割れていそう? 自分も型が書けるなら書きたい (補助輪が欲しい) 側なので、うまく表現できるとよさそうに思います。

Build Your Own SQLite3

自作キーボードの中でSQLite3が動き、キータイプの統計情報から最強のキー配列を作った結果hjklが人差し指に来る、というオチになったのがとてもおもしろかったです。File.open をSQLite3に使わせるためになかなか力いっぱいなことをしているという印象でした。

NOC

今年はNOCとして参加しました。会場のあちこちにケーブルを引きまくる、ねじりっこを切る、迷子になる*1など活動は多岐にわたります。前日にまる一日かけて準備をして、最終日の午後になったら順に撤収していく、などでけっこう動き回っていました。

あとで聞いた感じだと、大きなネットワークの不調もなかったようで快適にWi-Fiを使ってもらえたのではないでしょうか。NOCとして参加すると、NOCやってますという話ができる (ネットワークの設定の話はそんなにできない) という点がお得だと思います。

次回の課題は、ケーブルを引くよりも高度な活動を行う*2、迷子にならないように気をつける、などがありそうです。Webアプリケーションより後ろ (後ろってどっち??) の話にまだついて行けていないので、もうちょっと解像度が上がると話について行けるようになるのではないか。

よいとき

今回は飲酒する前によいときを飲むようにしました。その結果、ほとんど二日酔いになることがありませんでした。20粒ぐらい持ち込んでいたはずだけど、2粒以上飲むなどしているうちにRubyKaigiが終わる頃には無くなっていました。すごいね~

次回は沖縄開催ということで、泡盛を飲みすぎても破滅しないように引き続き飲酒補助アイテムについて検討しようと思います。ミラグレーンが手に入るといいけど……

オフライン

去年に引き続きオフライン参加して、なかなか人が多かったな~という印象でした。ツイッターでしか見たことのない人と話すこともできてよかったと思います。

アイコンのステッカー入りの名札を持参していたのですが、次回は名札に貼れるような小さいステッカーを用意したいですね。GMOペパボさんのブースで作ったステッカーぐらいのものが欲しいです。

でかいステッカーでよければSUZURIで販売しています。

suzuri.jp

治水

長野県の治水について学びました。

味噌川ダム

円筒分水の写真

おわりに

今年もにぎやかな感じでよかったと思います。オーガナイザーの皆様、スタッフの皆様、日本Rubyの会の皆様、参加者の皆様ありがとうございました。もうちょっとRubyを書いたほうがいいかな? という気がしてきたので来年のRubyKaigiまでに考えることを今後の課題とすることにします。

*1:トランシーバを持っていた方は迷子の様子を聞いていたかもしれません

*2:ネットワーク機器や各種サーバーの設定をする

GW日記2

blog.utgw.net

5/5

マリオの映画を見た。マリオが動きまわっていてよかった。

5/6

スーパー銭湯のビールイベントに参加して飲酒した。

5/7

RubyKaigiに備えて荷物の準備をしていた。あとスプラトゥーン3のフェスをちょっとやった。力パワーを見たので満足。

GW日記

4/29

無限に寝ていたような気がする。

4/30

飲みに行った。

5/1

奈良に行った。アパホテルを取って1泊することに決める。

5/2

奈良でビールを飲んでいた。

5/3

飲みに行った。

5/4

爆走を見ていた。