久しぶりにRuboCop拡張を作ってみた。ほとんど思いつきみたいなものなので、うまく使えるものなのかはよくわからない。
このgemの開発は、Steepを使って型がついた状態で開発をしてみた。まあまあ体験が良い。Steepのdevバージョンを使っているので、わりとバグを踏んだりしてちょっと大変だった。
久しぶりにRuboCop拡張を作ってみた。ほとんど思いつきみたいなものなので、うまく使えるものなのかはよくわからない。
このgemの開発は、Steepを使って型がついた状態で開発をしてみた。まあまあ体験が良い。Steepのdevバージョンを使っているので、わりとバグを踏んだりしてちょっと大変だった。
twitter.comぜんぜんわからない、俺たちは雰囲気で英語をやっている pic.twitter.com/j8nAdBZMxC
— 🎹 (@p_ck_) March 1, 2023
TOEICを受験して、880点の結果となった。会社で3ヶ月ほど受けていた英語研修が一旦終わり、その効果を見るための受験だった。
スコアは680点(L320, R360, 2022-04) → 795点(L430, R365, 2022-11) → 880点(L430, R450 2023-03)と推移していた。1年弱で200点伸びたことになる。
実際業務での会話やドキュメント読み書きがスムーズになったかと言うと、あんまりわからんですねという気持ち…。正直これだけ取れても英語がスラスラ読めたりするのには程遠いし、まだまだ先は長いなと感じる。
ずっと英語に苦手意識があったので、ある程度の点数が出たのは嬉しい。
高校英語も大学受験も通って来なかったから結構コンプレックスがあった。今の英語力の下地は、2018年頃に1年ちょっとぐらいマンツーマン英会話教室に通っていたのと、OSSを中心に英語でテキストコミュニケーションする機会が多かったのに支えられていそう。
反面まともに英語教育を受けてこなかったのもあり、構文などは未だに怪しい。コミュニケーションできることを優先してきたから、すべてを雰囲気で理解している。自分の中では野生児と呼んでいる。
今回の研修でも知らない構文がちょいちょい出てきた。(使役動詞ってなに、とか、提案のあとでは動詞の原形になるとか)
未だにちゃんと理解できていないのを感じる。このあたりは引き続き勉強していきたい。
英会話教室に通っていた頃からの目標の1つに、カンファレンスで英語で登壇することがあった。どうやら今年の5月に松本で英語で登壇することになりそうです。
福岡Rubyist会議に参加していた。登壇報告ブログは別に書いたので、こっちでは参加報告を書く。夜遅くなってしまったので、てきとーに書いていく。
そもそも今回の登壇をしようと思ったのは、キーノートスピーカーが魅力的だったからだった。sorahさんとぺんさんがキーノートスピーカーというのが発表されて、めちゃくちゃワクワクしたのを覚えている。sorahさんの発表はあまり聞く機会が今までなかったし、ぺんさんがtrickで異次元の強さを見せつけて優勝したのは記憶に新しく、それらの発表をどうしても見たい気持ちになった。ということで、絶対に発表を見に行くぞと言うつもりでプロポーザルを出した。落ちても1参加者として見に行くつもりだった。
実際、キーノートはとても良かった。とくにぺんさんの発表良かったですね、よかった…。あれは生の発表で聞いてあのめちゃくちゃさをリアルタイムで感じることができたのは本当に幸せなことだと思う。
他の人の発表だと、安川さんの発表はタイムテーブルが出たときからとても気になっていた。安川さんの発表は以前にもほかのカンファレンスで何度か見ているのだけど、どの発表も「安川さんだからできる発表」だなあと強く感じる。今回もそれが感じられる発表で、聞けてよかった。配信チャレンジしてみたいなあ。
質疑応答で松田さんがbefore_all
について突っ込んでいたり、Rubyist Hotlinks について議論が盛り上がったり、これはオフラインだからこその体験だなあと思ってみていた。こういう議論の深まりが表れるのがすごくいい。
久しぶりに会えていなかった知り合いとお話できたのも良かった。みなさんありがとうございました
夜は主催者の甚六さんなどと一緒にご飯に行った。こうやって食事に行って会話をするのもすごく懐かしい体験で、良いですね‥。ごはんも美味しかった。
今私が所属しているマネーフォワードは福岡にも拠点があり、そこの拠点の人々とも話せたりご飯に行けたりしたのも良かった。Slackではいつも話しているのだけど、やっと実在を確認できた。
defined?
の中で代入をすると、バイトコードには変数定義が現れないけれど、変数が定義されると知った。
$ ruby --dump=insns -e 'defined? a=1; p a' == disasm: #<ISeq:<main>@-e:1 (1,0)-(1,17)> (catch: false) local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) [ 1] a@0 0000 putself ( 1)[Li] 0001 getlocal_WC_0 a@0 0003 opt_send_without_block <calldata!mid:p, argc:1, FCALL|ARGS_SIMPLE> 0005 leave # 変数定義はしっかりある $ ruby -e 'defined? a=1; p a; p binding.local_variables' nil [:a]
ruby-jpで「特定のローカル変数への代入がバイトコード上にあらわれないもの」は何があるか、という質問がしばらく前にあったので、それを思い出して挙動を眺めていた。
↑を思い出したきっかけが、コードを読んでいてdefined? yield
があり、「yieldという名前のメソッドが定義されているかどうかをdefined?
で検査できないのでは…?」と思いついたからだった。
これをきっかけにdefined?
のドキュメントを読んでいて、ローカル変数のことに思い至った。
福岡Rubyist会議03の資料を作っている。
twitter.com買っちった pic.twitter.com/CIKqVu8TCU
— 🎹 (@p_ck_) February 11, 2023
グヤバノジュース(ジュースではない)が美味しかったのでAmazonで箱で買った。
合わせて読みたい
twitter.comMy new gear... pic.twitter.com/qPeL9yr86b
— 🎹 (@p_ck_) February 11, 2023
社で「記念日ごとに眼鏡を買っている」という話を聞いて、記念日(誕生日)なので眼鏡を買ってみた。
rbs collectionのlocal sourceを実装していた。大体動くようになったのだけど、GHAからubuntuのarchiveにアクセスするのが不調で一回休み。
GraphQL関連の新しいgemがリリースされたようなのでちょっと眺めていた。
なんでgraphql gemじゃなくてこれを作りたかったのかよくわからない。名前からしてRailsと密結合にしたいのだろうけど、嬉しいのかな… subscriptionを有効活用したいと嬉しいかな。知らんけど。
パーサをCで書き直しているようですごい。あまり真面目にGraphQLのパーサって考えたことがなかったけど、どれくらい簡単なのかな。 しかしパーサってgraphql-rubyでもそこまでボトルネックじゃなかった気もするし、速度影響どれくらいあるのかなあ。
DSLはなんかちょっとうーんという感じで、あんまり魅力的じゃなかった。