けんちゃんくんさんのWeb日記
2023/6/21

聖誕祭2023

今年もやってまいりました!ミッフィーとウィリアム王子と私と息子の誕生日!

息子の部活の都合もあり、前夜祭として昨日焼肉一心たん助の有楽町に牛タンを食べに行ってきた。

最初の牛タン4種

最初の4種類は説明をしながらお店の人が焼いてくれて、それを食べきってから食べ放題のスタート。切り方?部位によってかなり食感がかわるものなんだなぁと思ったし、牛タン以外の普通の肉もおいしかった。食べ放題中も通りすがりの定員さんが焼いたり切り分けたりしてくれるし、網やおしぼりの交換もいいかんじに声をかけてくれるのもよかった。

仕事では、来月からはじめる新しいチャレンジの事務手続きを進めて、帰り際になかなか難しい問題がおきたので考えをめぐらせる。「もし」や「たられば」は沢山あるが、まずはここからできることをやっていこう。

さて、そんな私を応援・祝福してくれる方向けの便利なリンクを置いておきます: くんさんの欲しいものリスト

created_at: 2023-06-21 11:59:43 +0900
updated_at: 2023-06-21 11:59:43 +0900
2023/6/1

2023-06-01: Off Topicの163回がよかった

ついに6月、Juneになってしまった……

今日は珍しくミーティングが午前に2つ合計1時間だけだったので、午後は集中して進めることをいくつか進めることができたのでよかった。

お昼御飯のあと、散歩中に#163 セカンドブレインとAIアシスタント - Off Topic // オフトピック | Podcast on Spotifyを聞いていた。自分もいろいろメモアプリを使っているし、セカンドブレインと呼ばれるツールも使っているが、いまでもメモがうまくとれないと感じることばかり。その理由の一つとして、メモするときに重要だと思ったことと後で必要だと感じることが違うからという話がされていて非常に興味深かった。 また、その解決の一つとして全てのデータをバックグラウンドでとっておけばいいという発想と、それを実装しきってしまったRewindはすごい。Macを使っていないので使えるようになるのはまだまだ先だろうが、いつか使ってみたいところ。

また、サティアナデラが「これまでのAIはAutopilotであり、これからのAIはCopilotである」という話をされていたというのは知らなかったのだが、とてもいい表現でよいなぁと思った。

そういう考えで自分たちのサービスを見ると、また違った発送がうまれるかもしれない。

created_at: 2023-06-01 15:19:29 +0900
updated_at: 2023-06-01 15:19:29 +0900
2023/5/23

やんちゃハウスのすゝめ

RubyKaigiなどRubyの大規模カンファレンスの際に、やんちゃさんが主催する短期シェアハウス「やんちゃハウス」がある。◯◯ハウスはやんちゃハウス以外にもあってそれぞれ特徴があるが、こと「治安」についてはいろいろな噂があり初心者(?)を寄せつけない魔力があるように思う。私は、福岡と松本の2回ほどやんちゃハウスの住人となったので、いち参加者としてやんちゃハウスの実態について書いておこうと思う。

今年は会社のSlackでもやんちゃハウスの宣伝をしていたのだが、その時は次のような説明をしていた。

  • 共同生活の経験(部活の合宿など)があり、人の気配がしても寝れる人ならオススメ。
  • 社外の人と知り合う良いきっかけになる。
  • やんちゃさんはちょっと珍しい箱を選ぶのでそれだけでも楽しめる。
  • みんなそれなりに”大人”になったので、たぶん破滅的なことにはならない。(が、最悪のケースは想定しておいて損はないだろう……)

ハウスの治安についてよく言われるが、今回の松本はド健全だっただろう(一方で、福岡はまぁまぁだったと思う。それ以前よりはだいぶ良かったという噂もあるが)。酒を呑みたければ呑めばいいし、呑まないで話だけしててもなにも問題ない。好きなときに寝ればいい。

また、共同生活の良いポイントとして、一人ではできないことができるというのもあるだろう。福岡では他の人の技術的な悩みにみんなでわいわいディスカッションしていたし、松本では永和さんのノベルティのRubyメソッドかるたを高難易度形式(取札無しの早押しクイズ形式)でやったり、キューブを回したり、キューブを回したりできる。

(キューブ、しかもミラーキューブ!とけん玉が備品としてあってすごかった)

そして、ハウスで共同生活をしよういう人はやっぱりどこか変わっているのでみんな面白い。今回、どんな話がされたのかはやんちゃさんの記録を参照のこと。

ただ、共同生活で睡眠がうまく取れない人はいるのでそこだけ注意が必要だと思う。私は周りで酒盛りがされていても寝れたという福岡での実績があるので、安心して(?)ハウスに参加している。

ここまではほとんどがいい話だが、辛いところもある。

気になるところは人それぞれあるだろうが、自分にとっては湯に浸かることがむずかしい可能性があるというのはけっこう辛いところ。今回のハウスもシャワーのみだった。ただ、RubyKaigiを開催できるような都市は銭湯なり温泉なりがあると思われるので、そういったものを使えばよいだろう。福岡のときは温泉に行ったし、今回も2日目に銭湯に行ってきた。

いち参加者からみたやんちゃハウスはこんな印象である。ホストのやんちゃさんが知人であるというバイアスはあるが、RubyKaigiというお祭りを楽しむ一つの方法として、ハウスを利用するというのはよい選択肢だと思う。

これを読んでハウスに興味もった方がいたら やんちゃハウス2024の事前登録(!?)が始まっているようなので、ぜひやんちゃさんに声をかけてみるといいだろう。ちなみに、自分まだ迷っているので年末くらいにどうするか決めようと思う。

created_at: 2023-05-23 15:30:36 +0900
updated_at: 2023-05-23 15:36:14 +0900
2023/5/22

2023-05-22

RubyKaigi 2023から戻ってきてから発熱と喉の痛み、咳などアレっぽい症状がずっと続いていたのだが、ようやく残るは少しの咳だけになってきた。子供と奥さんにもうつってしまい、先週はけっこう大変だったのだけど、自分は家にある抗原検査キットで陰性、奥さんは病院の検査で陰性だったのでアレに似た症状の風邪だったんだろう。

やんちゃハウスでミラーキューブができるようになったので、そろそろギシギシキューブを卒業してもいいかと思い、TORIBOストア / TORIBO スタートセット の「RS3 M 2020」のセットを購入した。

ギシギシキューブだと回し方もへんな癖がつくし、思うようにまわらないしといいことないので、これくらいのキューブからはじめるのがよさそうだと思った。先人に聞くと、どうせ最後はフラグシップを買うことになるから最初からそれを買えと言ってくるけど、心を強く持ってこれくらいに抑えたのはえらい。

以前のキューブではだいたい2分くらいで揃えられるようになっていたけど、キューブを変えただけで1分30秒くらいにはなった。まずは1分くらいを目標に小手先で早くなりそうなことをやっていこうとおもう。

created_at: 2023-05-22 14:45:29 +0900
updated_at: 2023-05-22 14:45:29 +0900
2023/5/21

RubyKaigi 2023に参加してきた

2023-05-10から2025-05-13まで長野県松本市で開催されたRubyKaigi2023に参加した。

昨年から二年連続での会場での参加だったが、ほぼCOVID-19前のRubyKaigiが戻ってきたような感じで、とても充実した3日を過ごすことができた。

オーガナイザーやヘルパーをはじめとしたスタッフのみなさん、本当にありがとうございました。

今年は、スポンサーブースでの対応と、カンファレンス筋の衰えによって、すべての時間のトークを聞くことはできなかったのだけど、聞いたトークについての感想をまとめていく。

Matz Keynote

今年のMatzのKeynoteはRubyの歴史をふりかえる内容。最近はよくこういう話をされているように思うが、何度聞いても言語デザイナーとしての意思決定や、その結果のふりかえりは勉強になる。これからもう30年残る言語の特徴として「簡潔で読みやすく拡張性が高い」ということを上げていたが、これと3日目のRuby Committers and The Worldでの話を聞いて、今後のRubyという言語について自分のできることは何だろうと考えさせられた。

The future vision of Ruby Parser

金子さんがここ数年取り組んできたRubyのパーサーについての集大成のようなトークでとてもよかった。「Rubyをキメると気持ちいい」のは、プログラマが書きたいように書いたコードがそのまま動くからで、そのキマってるコードが動く最初の入口がパーサーなんだよね。これまでも「こんなコードも動くんですよ」という紹介が何度もあったけど、それらを制限するんじゃなくて、動くままパーサーをよりメンテナブルにするという偉業を成し遂げたのは本当にすごかった。会期中にRuby本体にマージされたようなので、今年のRubyKaigiのヒーローだと思う。

Lightning Talks

@kokuyouwindさんの型をLLMに推論させようというトークと、@asonasさんのテスト実行時間を短縮する仕組み、@sora_hさんのIdPの話がよかった。rspec-daemonは手元にcloneしたけどまだ読めてないのでコードを読んでいこうと思う。

Fix SQL N+1 queries with RuboCop

Shibuya.rbでも今回のトークの概要を解説をしてくれた@sue445さん。仕事としての開発現場ではRuboCopにevalされたら困るだろうが、環境を限定したらそのほうが効率がよいという発想は新しい視点でとてもよかっった。

The Resurrection of the Fast Parallel Test Runner

多数のOSSのメンテナである@koicさんの新しいメンテナンスGem、test-queueの話。test-queueがメンテナンスされていたころは何度か使った記憶があるくらいだったが、テストを並列実行するアーキテクチャから、test-queueでの実装までとてもよくわかるトークだった。

また、トーク後半からエンジンがかかってきて早口になって身振りが大きくなる”いつもの@koic”をひさしぶりに見ることができたのが本当によかった。

Optimizing YJIT’s Performance, from Inception to Production

YJITの話は理解するのが難しいのだけど、Shopifyという世界でもトップレベルのトラフィックを受けるRubyアプリケーションを開発・運用しているからこそ、処理系のパフォーマンスがビジネスにも大きなインパクトを与えられるわけで、そこに対して真剣に取り組んで成果をだしているのがほんとうに凄いの一言。私達はその恩恵を受けるだけの側ではあるけど、トークの中でもあったようにまずは使うというのが最初の貢献でもあるので、プロダクションにYJITを入れるぞという気持ちが強くなった。

Ruby Committers and The World

今年はShopifyがホストということもあり、基本英語で、これまでとはやや雰囲気の違うセッションとなったが、それぞれのコミッタが今考えて取り組んでいることがわかってとてもよい時間だったように思う。

Ruby JIT Hacking Guide

本当にすごいことをやっているk0kubunさんが、いつもどおり楽しそうに発表する姿を見れて今年もよかったなぁと思ってしまった。内容も本当におもしろくて、「もしかしたら本当にJITがかけるかも?」と一瞬だけ思ってしまう魔力があった。紹介されていた参照実装をとりあえず眺めるくらいからはじめてみよう。

Parsing RBS

型定義ファイルに文法エラーがあると、それを使った支援ができないという問題から、文法エラーのケースでもASTを取得できるようにしたという内容。で、文法エラーがあるということは当然だが正解のコードがわからないという状態なのだが、現実的におきうるエラーをどのように扱うというのを具体的なケースをあげて説明していて、どれもなるほどと思うものばかりだった。毎年RubyKaigiの後は「RBS入れるぞ!」と思って帰路につくのだけど、今年もそう思えるようなすばらしいクロージングキーノートだった。

スポンサーブース

GMOインターネットグループは、今年もVideoスポンサーとして協力している。また、スポンサーブースでは、ノベルティの配布やSUZURIのグッズ展示していたのと、今年の新しい取り組としてTwitterアイコンやQRコードのシールをオンデマンド印刷で提供していた。これは、ペパボのDevRelチームが機材の準備からデザインまで取りまとめてくれたのだが、会期中だんだんと口コミで広がってとてもいい取り組みになったと思う。

authorsrb

鳥井さんが企画したRubyist Book Authors Stamp Rallyがとてもよかったので、会場で売っている物理本を買ってサインをもらったり、fluentd実践入門を持っていってハウスでモリスさんにサインを貰うなどした。うなすけファンブックはする完売だろうと諦めていたのだが、もう少し早くハンコを貰いに行けば買えたっぽいので残念。

スタンプはけっこう集めたほうじゃないだろうか。

このおかげで、Jeremy Evansさんに直接Polished Rubyがとてもすばらしいと伝えることができてよかった。そういえば、RubyKaigi2019では、当時とある事情でsequelを使っていたのでその感謝を伝えることができて嬉しかったのを思いだした。

RubyKaigiは、読んでよかった本や、使っているライブラリの作者(特に海外の方)に直接御礼を言える数少ないチャンスなんだよな。本当にありがたい。

朝食、ランチ

朝食は、初日はやんちゃハウスメンバーで栞日でトースト、2日目は@katsyoshiさんと珈琲喫茶かめのやへ。

3日目は松本城の開店待ちをしたかったのでコンビニのサンドイッチだった。

松本はカフェ文化があっていい喫茶店が多いという話を聞いてはいたが、本当によい喫茶店が沢山あってとてもよい街だと思った。ただ、さすがにRubyKaigi参加者の人数はきびしかったですね。モーニングでワンオペのお店のみなさん、本当にありがとうございました。

ランチは、初日は会場の奥にデプロイされていたお弁当、2日目は時間をずらしてイオンのフードコートのお蕎麦、3日目はjune29に車(通称:くるみ)をだしてもらってペパボや元ペパボメンバーで松本メーヤウでカレーを食べた。

ドリンクアップなど

初日はオフィシャルパーティー、その後はペパボっぽいメンバーでアジアのキッチン小吃で二次会。オフィシャルパーティーは食べ物もおいしかったし、ひさしぶりの人たちと沢山話ができてよかった。

二日目はドリンクアップの申し込みに乗り遅れたのと、疲労がやばかったので塩井乃湯に行ってゆっくりお湯につかってから麺匠佐蔵でラーメン。その後はやめにハウスに戻ってきたメンバーとRubyとかソフトウェアエンジニアとして働くことについて話したりしていた。

3日目は、終あずさで帰宅予定だったので駅前でなにか食べようと歩いていたら、野生の@koicさんとたまたま遭遇し、@yahondaさんとおなじく終あずさで帰る@kamipoさんとご飯をたべるというのでご一緒させてもらうことにした。Rails開発者の二人と、Railsもまた人が作っているんだよなと思えるいい話がきけたし、koicと「コードの一行、血の一滴」の話ができてよかった。これを書きながら、小バエを叩いていたらビールを盛大に倒してkamipoさんにかけてしまったことを思いだしました。その際はご迷惑おかけしました :pray:

観光

当初の予定では土曜日までいて少し観光して帰ろうと思っていたのだけど、GWの新潟旅行のダメージも残っていたのではやく帰ることにしたためあまり観光らしいことはできなかった。

それでも松本城だけは上ろうと、3日目の朝の開店(開城?)にあわせて行ってきた。朝一だと、城の上り下りの待ち時間もほとんどなく、30分くらいで一周できたので、最初のセッションにも間に合って丁度よかった。

宿

福岡に続いて二度目のやんちゃハウスのメンバーになった。○○ハウスについてはいろいろな噂もあるので、別のエントリにする。

おわりに

最近は仕事でRubyを書くこともめっきり減ってしまった私だが、今年もまたRuby(やRubyist)が好きなんだよなと再確認できた3日間だった。362日のRubyistとして沖縄に胸をはっていけるようにやっていこう。

最後にあらためて、スタッフのみなさん本当にありがとうございました。

created_at: 2023-05-21 12:42:12 +0900
updated_at: 2023-05-22 05:19:39 +0900
2023/4/6

AURにfrgmとkagianaを登録した

仕事用のPCを新しくするにあたり、WSLのディストリビューションも使ったことがないものを使ってみようとArch Linuxに変更した。なお、systemdをしゅっと動かしたかったのでメタディストリビューションとしてDistrodを引き続き使っている。

Arch Linuxと言えば、AURがとても充実していることがメリットの1つだと思うのだけど、タイトルの2つのツールは登録されていなかったので、折角なので登録してみた。

作成から公開までの流れは Arch User Repository - ArchWiki やここからリンクされてるリソースでほぼ網羅されてるので本当に便利。これでAURヘルパーを使えば1コマンドでインストールできるようになったのでよかったよかった(例: paru frgm)。

created_at: 2023-04-06 13:03:28 +0900
updated_at: 2023-04-06 13:03:28 +0900
2023/2/27

2023-02-27

Ossan.fm、ゆとたわ、てくてくラジオといつも流れで聞いていたところ、71. 時間との向き合い方 作成者:てくてくラジオ は自分とは違う感覚の話だったので興味深かった。Podcastの内容をどこまで文章にしてよいものかは悩ましいところなので、自分の気持ちだけを書いておく。

「X(やりたいこと)はT(時間)までにできますか?」という質問、自分は大歓迎である。なぜなら、その人は「やってほしいこと」と、それを「いつまでにやってほしいか」という2つの情報を提示してくれているからだ。そうじゃない例を考えてみる。「Xはいつまでにできますか?」といわれれると、Xがいつまでにできるかだけを考えることになる(それはそう)。あるいは「なぜXをしたいんですか?」というような質問を返すこともあるだろう。一方で「Tまでにできるか?」という情報が追加されていると「XはおわらないけどYなら終わるがどうだろう」という代案を考えることが、Xだけを提示されたときよりも早くできるようになるのではないだろうか。どちらも「それをやりたい理由はZである」という一番大事な情報がかけているのだが、いずれにしても物事を決めるにあたっては情報が多いほうがよいと考えている。なので、XだけではなくTを提示してくれるのは、それがどんなに短い時間であっても対話の切っ掛けになるので大歓迎ということだ。スーパー便利ページ共感、理解、尊重の円 - 29boxにあてはめると、二人の感覚は理解できるが、共感はできないものかもしれないと思ったのだった。

そんなこんなで会社に行き、仕事をしていると、夕方に奥さんから糖尿病の猫がぐったりしていて意識がないので病院にいくという電話。丁度ミーティングの合間だったので、残りの予定をキャンセルさせてもらって、帰りながら学校に電話。部活が終わった息子を預かっていてもらいたいとお願いし、急いで学校に迎えに行って帰宅。しばらくして奥さんも帰ってきて、一命はとりとめたとのこと。よかったよかった。

そんなこんなで夜は時間をとれなかったので英語の勉強は二日目にして一日お休み。Web日記の改善は、エントリの上に日付を入れるようにした。

created_at: 2023-02-27 14:49:41 +0900
updated_at: 2023-02-27 15:10:58 +0900
2023/2/27

asdfからrtxへ移行した

rtxを使ってstarship+asdfのプロンプトの表示が遅くなる問題を解決する - ぶていのログでぶログ を見て、プロンプトの遅さが気になるほどではなかったが、Rustで書かれたツールは正義なので入れることにした。

書かれているrtx globalの挙動など、細いところがasdfよりも使いやすくなっていてよいし、早いような気もするのでうれしい。

移行にあたっては、たしかにasdfのディレクトリをそのままもっていっても有効なランタイムとして認識されないので調べていると、READMEのRuntime Cacheのところに答えが書かれていた。言語毎の固有の設定をバージョンのディレクトリ配下にMessagePack形式で保存していて、有効なランタイムかどうはこれがあるかどうかをチェックしているようだ。

❯ pwd
/home/kenchan/.local/share/rtx/installs/ruby/3.2.1

❯ ls .rtxconf.msgpack
.rtxconf.msgpack

試しにこのファイルを同じように作ってみると有効なランタイムとして認識されたので、えいっと作ってまわるとそのまま移行できそうな予感。ただ、rtxconf.msgpackの中身はrtxで使われてるランタイムプラグインに依存していそうなので、rtxを経由しないで作るのはちょっと微妙かなぁ。

ひとまず、必要なランタイムは必要になったときに入れることにして移行はおわり。移行作業でのdotfilesやセットアップスクリプトの変更点、ついでにつくったスニペットを置いておく。

created_at: 2023-02-26 15:15:26 +0900
updated_at: 2023-02-27 02:29:46 +0900
2023/2/26

2023-02-26

朝から4回目接種の副反応で苦しむ一日。昨夜の寝る前から微熱と腕の痛みがでてきていたのだが、朝起きても変わず辛かったので昼くらいまで寝て過ごすことに。お昼に起きてもまだイマイチだったのでロキソニンを飲だところ、だいぶ調子は戻ってきた。午後からは習い事で子供と奥さんが外にでていたので、その間に部屋と猫のトイレの掃除をしたり、晩御飯の準備をしたり。

1~3回目はモデルナで、今回はファイザーだったのだけど、ファイザーの方が副反応が少ないと聞いていたがたしかにそうかもしれない。n回目によっても違うだろうし、自分の体がなれてきただけかもしれないけど、これまでほどの辛さはなかったような気がする。

夜は大分調子がよくなってきたので、Web日記のフッターにソーシャルメディアへのリンクを置いてみたり、ABC291に出てみたり。C問題まではさっと解けたけど、Dがわからんなーとなったので途中で離脱した。やはりD解けるようになるはアルゴリズムの基礎力的なものが足りないのだよなぁ。

最近、英語の勉強(Duolingo以外)をさぼっていたので、今日からGrammer in use 5thを開始。ebookで音声をシャドーイングしたあと、問題を解くというかんじでUnit 3までやった。現在形や現在進行形なんてとくにつまることもないと思っていたのだが、always dobe always doing は全然わかってないことがわかったので、一旦ここまでで明日復習。

明日から4連休明け&2月最後の2日なので仕事もがんばっていこう。

created_at: 2023-02-26 15:05:43 +0900
updated_at: 2023-02-26 15:05:43 +0900
2023/2/25

2023-02-25

朝から、新型コロナワクチンの4回目接種と、副反応がでる前に猫のワクチンと健康診断へ。自分のワクチンは、本当は1月に打つつもりだったのだけどうっかり別の予定をいれてしまいこの時期に。1月の予約のときはBA.1対応だった気がしたのだけど、いってみたらBA.4-5対応型だったのでラッキー(?)。帰ってきてからその足ですぐに動物病院へ行き、無事今年のワクチンは二匹ともおわり。

プログラミング言語Ruby30周年記念イベントを視聴

午後からはプログラミング言語Ruby30周年記念イベントを家で視聴。どの発表もその人にしかできないような発表でとてもすばらしかったが、kazuhoさんの発表は圧巻だった。Rubyでルーターを自作して「Rubyは早い!」と言えてしまうのほんとうにすごい。まつもとさんの基調講演は、いままで色々な裏話や昔話をしてくれていたのにまだそんな秘話が残っていたのかとびっくりしたし、「夢を叶えた」とおっしゃっていたのが、最近ブルーロックを見ているのもあってとても印象に残っている。

Software Design 202303

夜になったら徐々に体調がわるくなってきたので、ごろごろしながらSoftware Design 202303を読む。特集1は「序章」というところで内容の紹介をかねて、Q&A的に読むべき章を紹介しているのがとてもよかった。章のタイトルでも内容がわかることもおおいのだけど、こういうかたちでまとめてくれるとすごく助かるように思った。 特集2はどれもよかったのだけど、とくに伊藤淳一さんの文章がよかった。

  • 「熟練者のようにエラーに立ち向かう」で具体的な行動が示されてる
  • おすすめのアウトプットは自分の経験をアウトプットであると述べた上で、文章の組み立て方が紹介されている
  • フロー状態にはいれるかは、課題の難易度と、自分のスキルのバランスがとれいている必要があるという説明。

このあたりが言語化されて記事に載ったのはとてもありがたい。

created_at: 2023-02-25 14:07:54 +0900
updated_at: 2023-02-25 14:10:44 +0900
古い記事へ