山溜穿石

覚書

福岡Rubyist会議05に参加しました

福岡市赤煉瓦文化館
福岡市赤煉瓦文化館

regional.rubykaigi.org

2/28に開催された福岡Rubyist会議05に参加しました。初めての地域Ruby会議でしたが、RubyKaigiやKaigi on Railsとは違う雰囲気で、お久しぶりの方や初めましての方ともゆっくりお話しできて楽しめました。

セッションの感想

  • スポンサートーク①:るりまの話
    • Rubyの公式リファレンスマニュアルのメンテナンスについての話でした
    • 以前、簡単なリンク修正のPRを出したことがあったので、少し身近に感じながら聞けた
    • Markdown対応できるようにしたいとのこと
    • ドキュメントを生成する仕組みが面白かった
    • ローカルでの環境構築については、bitclustのセットアップがうまくいかず断念したことがあるのでもう一度チャレンジしてみたい
  • Panel Discussion:「コミュニティの垣根を越えよう」
    • 今回参加しようと思ったきっかけのひとつだったので楽しみにしていた
    • PHPコミュニティの事例や言語を限定しない福岡のコミュニティの事例が聞けて興味深かった
    • どこも新しい人(初参加の人?)に来てもらうのに苦戦しているように感じた
    • 私自身はFBC経由で紹介してもらうこともあり、Rubyコミュニティは新しい人でも参加しやすい雰囲気だと思っていたけど、主催者側はまた違うように感じているのかも
  • Keynote:mruby in the 8 bit world: mruby VM on Zilog Z80
    • ゲームに詳しくないのであまり凄さが分かっていない気がするけど、見てるだけでも楽しめました
    • 動作環境を考慮して代替機をしっかり用意されていたので、次々と初めて見る機器が出てきて面白かった
    • 文字数を抑えるために表現も考え抜かれていて、製作者の工夫と情熱で成り立ってるんだなと感じた

懇親会・Tea Time

  • 普段はリモートワークなこともありオフラインで話す機会があまりないため、色々な人と話せてとても刺激をもらえた
  • Tea Time では、美味しい八女茶もいただけて最高でした
  • FBCの卒業生と他社の様子やお仕事の状況について話ができて、自分も頑張ろうと元気をもらえました

おわりに

  • Keynote以外でも自作のプレゼンテーションツールやテキストエディタを作っている方がいたり、開発を楽しんでいる様子が伝わってきて良かった
  • 今回、Ruby以外の言語をメインにした話を聞けて、言語を限定しないコミュニティの良さを感じられた
    • Rubyコミュニティにしか参加したことがなかったので、違う言語分野の話が興味深かった
    • いままで当たり前に感じていたことも色々とRubyならではのことがあったりするのかも
    • るりまの話を聞いて、他のプログラミング言語のリファレンスやドキュメントはどう作られているのか気になった
  • 定期的に発表を聞いたり色々な方と話をできる機会があるのはいいなと思った
    • お話ししてくださった方、運営のみなさまもありがとうございました!
  • 今後も行けるときは積極的に参加していきたい!!

RubyKaigi 2025に参加しました。

RubyKaigi 2025 入り口の暖簾
RubyKaigi 2025の暖簾

rubykaigi.org

4/16-18に開催されたRubyKaigi 2025に参加しました。昨年ぶり2回目の参加でしたが、初めてオフィシャルパーティーにも参加することができました。ライトアップされた松山城を見ながらごはんを食べるという面白い体験ができてとても楽しめました。初めて藁焼きを食べましたが、めちゃくちゃ美味しかったです!運営のみなさま本当にありがとうございました。

また、参加にあたり会社から様々なサポートもいただけて本当に感謝しています。昨年はまだ学習中で就職していない状況での参加でしたが、今年は就職して参加できて本当に嬉しいです。就職についての相談や面接練習でお世話になった方々にも改めて就職できたことを直接ご報告できてよかったです。

印象に残ったセッション

Ruby Taught Me About Encoding Under the Hood

好きではないけど興味がある、面白いからやっている、といったことを話されていたことがとても印象に残りました。業務外でも開発している方は、好きで楽しいからやっているというイメージがあったので驚きがありました。家族の絵文字がきっかけという話を聞いたことはありましたが、どうして分裂してしまうのか、仕組みやIRBがクラッシュしてしまう原因を丁寧に解説されていて分かりやすかったです。

Goodbye fat gem 2025

普段gemをありがたく使わせてもらってる身だけど、安定して供給されるのが当たり前すぎてバージョンアップやバグ対応など更新されるのが当たり前になっているかもしれないなと思いました。今回メンテナンスについて知ることができたので少しずつ気に掛ける範囲を広げていけるようになりたいです。

Ruby's Line Breaks

【RubyKaigi2025予習ブログ】Rubyのパーサーを基礎から学ぶ - RAKSUL TechBlog を読んで、パーサー何もワカラン状態から、単語は知ってる/ 聞いたことあるという状態で聞けたので、内容が少しわかって嬉しかったです。ひとつずつ手順を追って説明されていて、発表が丁寧でとても分かりやすかったです。

dRuby on Browser Again!

デモが大変そうでしたが面白かったです。2人で分けて発表する形式もあるんだな〜と新鮮でした。それに近い内容でも異なるアプローチを見ることができてより分かりやすいように感じました。

TRICK 2025: Episode I

不思議体験でした。自分だけでコードを読んでも絶対に分からないと思うので、丁寧に解説してくれてありがたかったです。それぞれの作品に色んな仕込みがあって謎解きみたいで面白かったです。まさか音が出てくるとは思わなかったので、波の音がするコードがとても興味深かったです。出来るか分からない状態から、設計して作っていくという話を聞いて、本当に凄いことをされているんだなと思いました。

Making TCPSocket.new "Happy"!

コミッターになったことから、Ruby3.4でリリースできるようにするための開発が臨場感たっぷりで伝わってきてドキドキしながら聞けて面白かったです。

Analyzing Ruby Code in IRB

普段あまり意識できてなかったけど、IRBも人の手で作られているんだと感じました。個人的に色が付いたことでかなり読みやすくなったなと思っていたので、実現するための工夫などが聞けて面白かったです。

全体をふりかえって

昨年も感じましたが、Rubyというプログラミング言語は本当に人の手で作られているんだな〜と改めて実感しました。今後もより使いやすくするために改善していたり、互換性をきちんと考えて更新されていたり、色々な人の手を介して作られたRubyをいま使えていることに感動しました。

ブースもそれぞれ特色があり色々と楽しんで回りました。あの蛇口からオレンジジュース体験ができたのは嬉しかったです。いままではほぼネットでしか技術書を買ってこなかったので、本屋さんで色々な本を実際に手に取れたのも良い体験でした。思っていたより本が分厚かったり、実際に著者の方に会えたり、サイン会が盛り上がっていたりと楽しかったです。

会社のOB/OGの方にもご挨拶できて嬉しかったです。所属が変わってもこうしてイベントで再会できるのもコミュニティならではなのかなと思いました。 初めての松山でしたが、天気もよく素敵な3日間を過ごせました。来年はもう少し内容を理解できるように頑張っていきたいです。

RubyWorld Conference 2024に参加しました。

RubyWorld Conference 2024のフラッグ
RubyWorld Conference 2024のフラッグ

2024.rubyworld-conf.org

12/5-12/6に開催されたRubyWorld Conference 2024に参加してきました。Rubyのパパのまつもとさん(Matz)にご挨拶させていただいたり、Rubyistの方とお話することもできとても満喫できました!

今回も会社からチケットやその他諸々を支援していただきました。ありがとうございます!お昼もお蕎麦屋さんに連れて行っていただき、出雲そばを食べることができました。初めてお蕎麦を打ってるところも見れて嬉しかったです!

印象に残ったセッション

Day1

オープニングセレモニー

RubyWorld Conferenceは出張として来れるカンファレンスとのことで、RubyKaigiやKaigi on Railsとはまた雰囲気が違うように感じました。学生の団体も参加されていたり、市や県をあげてRubyのまちづくりに力を入れているのも感じられ、本当にRubyが身近なまちだと感じました。

ファミコン meets Ruby

当時はRubyがなかったので、ファミコンアセンブラで書かれていて、Rubyで書くにはメモリ不足でむずかしいとのことでした。そもそもファミコンをあまり知らないのですが、そんな少ないメモリでもちゃんと動いてゲームができていることがまずすごい技術だなと思いました。スポンサーブースで遊ばせてもらいましたが、あの少ないコードでもちゃんと動いていて、なんかとにかくすごかったです。またひとつ知らない世界を体験できました。

Ruby合宿をはじめとしたプログラミング教育を受けたプログラマは、15年後どう成長したか

RubyRailsと出会う機会がたくさんあって本当にRubyが身近な環境なんだと感じました。憧れの人と再会できたり、人とのつながりを大切にしてその後に繋がったり、コミュニティって素敵だなと思いました。

Rubyプログラミングスクールからの採用と育成

Rubyistならではの価値観や習慣がある話にとても共感しました。私もスクール時代からコミュニティに参加することをおすすめしてもらい価値観や振る舞いを学べました。いままで参加してきたRubyのコミュニティやイベントは新しい人たち大歓迎〜!みたいな雰囲気があるので初めてでも安心して参加できたと思います。

Ruby on Browser

とても楽しくRubyを書いていることが伝わってきました。別に誰のためにもならなくていい、車輪の再発明も楽しい、というお話にとても共感しました!JavaScriptデバッグがとても大変そうで、Rubyは本当に書きやすいんだなと思いました。

Day2

基調講演 Better Ruby

Ruby is Greatから始まる基調講演でした。せっかく作ったのでお裾分けとしてインターネットに公開しようという心意気が素敵だなと感じました。この”お裾分け”という雰囲気は、Rubyコミュニティからも感じるのでとてもいいなと思います。プログラミングを学ぶには英語を避けては通れないですが、Rubyは日本語の情報にたくさんアクセスできて、母国語で情報が得られるというのは本当に素晴らしい環境だと実感しました。

Ruby City MATSUE 2.0 記念講演 島根県出身エンジニアによる「スモールビジネスを、世界の主役に。」への挑戦

楽器を使ったことない人が、楽器を作れるはずがないという言葉がとても響きました。まだまだ使ったことのないものがたくさんあるので、これからはいろいろなサービスも技術も積極的に使ってみようと思います!

テストも国際化も!小中高生クリエータ支援プログラム『未踏ジュニア』を支える Ruby 徹底活用法

RubyフレームワークといえばRailsになりがちなので、Jekyllの活用術を知ることができて興味深かったです。プログラミングを知らない人でもGUI上から操作できるように工夫されていて、次のアクションなども分かりやすく、とても丁寧で親切な設計だなと感じました。

chocoZAPにおける1年間の高速化とリファクタリングの実践

技術的なことはあまり理解できませんでしたが、結構根性で乗り越えていてとても大変だったことは感じられました。やはりちゃんとRails Wayに乗るように開発することが大事なんだなと思いました。

全体をふりかえって

RubyWorld Conferenceは育成関係の話が多く、共感できる部分がたくさんありました。RubyKaigiやKaigi on Railsとは雰囲気が違っていて、それぞれのカンファレンスならではの色があって面白いなと思います。

クロージングセレモニーでは、協賛の会社や団体名をひとつずつ読み上げていたり、スタッフとして関わったみなさまを紹介していて、これまでも大切に作り上げてきているのが感じられてとても素敵でした。松江までの移動は大変でしたが、思い切って現地で参加してみてよかったなと思います。そして、大変お世話になったフィヨルドブートキャンプがRuby Prizeのクリエイティブ賞を受賞していて嬉しくなりました。はじめましての方にご挨拶させていただいた際にもフィヨルドブートキャンプ卒業生ということで話が弾んだりしたので影響力がすごいと思いました。

スポンサーブースではいままで知らなかった会社やサービスと出会えて、Rubyが広く使われていることを実感しました。また、レセプションでは美味しい松江の料理やお酒をいただけたり、くじ引きで盛り上がったり、スペシャルゲストのしまねっこが来てくれたり、とても楽しい時間を過ごすことができました。しまねっこに会えると思っていなかったので嬉しいサプライズでした。また来年も参加できるように頑張っていきたいです!

島根県観光キャラクター しまねっこ

Kaigi on Rails 2024に参加しました。

Kaigi on Rails 2024のフォトスポットパネル
Kaigi on Rails 2024のフォトスポットパネル

kaigionrails.org

10/25-10/26に開催されたKaigi on Rails 2024に参加しました。初めての現地参加でしたがとても楽しめました!お世話になった方々にも直接ご挨拶できてよかったです。

今回、現地参加ということで会社からもチケットやその他諸々を支援いただきました。本当にありがとうございます!

また、お昼休憩のためにお弁当の用意があったり、一息入れたいときは淹れたての美味しい珈琲が飲めたり、疲れたらもくもく部屋やわいわい部屋で休憩ができたのもとてもよい体験でした。運営のみなさま本当にありがとうございました!

印象に残ったセッション

Day1

基調講演 | Kaigi on Rails 2024

Extend Rails is instead of melting it with something else. という言葉がとても印象に残りました。gemを色々追加したらやりたいことができるかもしれないけど、Rails Wayから外れていかないようにうまく拡張できるようになりたいなと思いました。

Railsの仕組みを理解してモデルを上手に育てる - モデルを見つける、モデルを分割する良いタイミング - | Kaigi on Rails 2024

基調講演から話が繋がる部分もあってとても勉強になりました。どこからがFatモデルと呼ばれるようになるのかがよく分かっていなかったので、判断基準を知ることができてよかったです。いままでもたくさんお世話になっていましたが、これからもRailsの練習帳を参考に学習していきたいと思います!

推し活としてのrails new | Kaigi on Rails 2024

仕事を趣味にも活かせていて本当に素敵だな〜と思いました。趣味だからこそ頑張らないという判断ができるのも、いままで培ってきた経験値があるからこそ出来ることだと思ったので、コードを書ける人は本当にすごいしカッコいいなと思いました。

デプロイを任されたので、教わった通りにデプロイしたら障害になった件 〜俺のやらかしを越えてゆけ〜 | Kaigi on Rails 2024

とにかく発表がうまくて、とても話に惹き込まれました。原因を調査していく過程が丁寧で分かりやすかったです。問題が一旦解決した後もそのままにするのではなく、しっかり原因を調査したり技術検証している姿勢は見習いたいと思いました。

Day2

作って理解する RDBMSのしくみ | Kaigi on Rails 2024

RDBMSって自分で作れるんだというのが最初の感想でした。技術そのものを自分で作っている方々は本当にすごいと思います。範囲検索や順次アクセスなど知らない単語ばかりでしたが、ひとつずつ丁寧に解説していて内部構造や仕組みを知ることができて興味深かったです。

ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4) | Kaigi on Rails 2024

ちょうどSQLについて学んだところだったのでとても面白かったです。RailsがどのようにSQLインジェクションを防いでいるのかの仕組みなども興味深く、発表を聞いて深掘りしてみたくなりました。

基調講演 | Kaigi on Rails 2024

締めの発表だったからなのか、ほかの発表とは雰囲気が違ってほっこりあたたかい空気感だったように感じました。これまで先人たちが作り上げてきた積み重ねがあるからこそ、いまこうして初学者や未経験から学び始めた人もRailsを楽しめる環境があるんだなと思いました。これからもRailsを楽しんでいきたいです!

全体をふりかえって

いままではシステムと現実世界があまりリンクしていなかったのですが、登壇者の会社紹介やスポンサーブースなどのサービス紹介でRailsと自分の生活との関わりを実感できてよかったです。使ったことのあるサービスやいつも売り場で見かけている商品など、こんなに身近なところにもRailsがたくさん関わっているというのを知って感動しました。

公式のグッズがとてもかわいくて、駅の広告や会場の案内、ロゴが入ったボックスなどを見てるだけでイベントのワクワク感が伝わってきて楽しかったです。Tシャツの背面がクリエイティブコーディングになっているのもおしゃれで遊び心があってとても素敵なデザインでした!

これまでYouTube Liveやアーカイブ動画で発表を聞いたことはありましたが、やはり生で聞くのとでは入ってくる情報量が圧倒的に違うと感じました。その場で発表の感想や登壇者の解説が聞けることも現地参加ならではの醍醐味なのかな〜と思いました。本当に現地参加できてよかったです。また来年も参加できるように頑張っていきたいです!

Ruby技術者認定試験Silverに合格しました。

この記事は フィヨルドブートキャンプ Part 2 Advent Calendar 2023 3日目の記事です。

先日、Ruby技術者認定試験Silverに合格したので振り返りメモです。 www.ruby.or.jp

試験を受けた理由

フィヨルドブートキャンプを卒業してしばらくRubyを書いていなかったので復習も兼ねて受験しました。結構忘れていて大変でした。継続は力…

やったこと

  1. REx - Ruby Examination
  2. [改訂2版]Ruby技術者認定試験合格教本(Silver/Gold対応)Ruby公式資格教科書
  3. Ruby技術者認定試験Silver模擬問題

1→2→3の順で進めていきました。いつもお世話になっているよかじさん、はるまきさんからたくさんアドバイスをいただき学習に取り組むことができたので心強かったです!

REx

  • 試験の雰囲気をつかむ

最初に解いたときは36点でした。合格教本をメインでやることにしたので結局2、3回しかやりませんでした。

Ruby技術者認定試験合格教本

  • RubySilver基礎力確認問題で実力を確認

自信をもって答えられるのは3割くらいでした。

  • Silverに必要なセクションを読む

正規表現オブジェクト指向など苦手な部分は別の書籍で基本から復習しました。曖昧だったところや使ったことのないメソッド等も学べてよかったです。

  • RubySilver模擬試験を解く

間違えた問題や自信のなかった箇所は復習して解き直しました。

Ruby技術者認定試験Silver模擬問題

  • 試験前に解いて最終確認

正解を選べるだけでなく、なぜその選択肢を選ばなかったのか理由まで説明できるとなおよし

やってよかったこと

公式リファレンスを読む

まずは読み方を知ると効果的です。

zenn.dev

以下とくに読んだページ(メソッド以外)

docs.ruby-lang.org

docs.ruby-lang.org

docs.ruby-lang.org

String/Array/Hashクラスのメソッドは重点的に学習

String#deleteArray#deleteなど異なるクラスの同名メソッドがあるので返り値や引数が混乱しないように気を付けました。

文字列・配列・ハッシュはよく出てくるので合格教本に出てきたメソッドを公式リファレンスで調べて自分なりにまとめると覚えやすかったです。

コードを実際に動かす

解説を読んだだけでは分からない部分もターミナルなどで実際に動かすことでかなり理解しやすくなりました。特にDir/File/IO/Timeクラスはどのような結果になるかが分かってよかったです。

苦手なところは基本から復習

オブジェクト指向正規表現があやふやだったので復習しました。

gihyo.jp

gihyo.jp

大変だったこと

基本的にターミナルで動かしてみればいける!というスタンスでやってきたためメソッドや返り値、引数を覚えるのが本当に大変でした。

ケアレスミスに気を付けること。〜でないものを選ぶ、複数選択、破壊的メソッドなど。見直しはできれば時間の許す限りやったほうがいいと思います。メソッドチェーンだと思ってたらぼっち演算子&.)だったことに気付かず答えたときはめちゃくちゃショックでした…

試験を終えて

Rubyと少し仲良くなれた気がします。Rubyたのしい😊

AtCoderが以前より解きやすくなりました。いままではどのメソッドが使えそうか調べるところからでしたが、あのメソッドが使えそうとイメージできるようになったので問題を解くのが楽しいです。メソッドの返り値を考えるようになったのでどこでミスしているのか気付くのが早くなりました。以前は苦手意識があった正規表現もいまでは積極的に使っています。

感想

75/100点が合格のボーダーラインで、結果は92点でした。合格するまで緊張の日々だったのでとにかくほっとしました。また忘れてしまわないように、今も少しずつ学習を続けています。Rubyを書くのがもっと楽しくなったので、大変でしたが受験してよかったです。

irb上でprivateメソッドを呼び出したい

irb上で簡単なメソッドを実行しようとして困ったのでメモ。

解決策

  • instance_evalメソッドを使う
  • sendメソッドを使う

ほかにも方法はあるがとりあえず2つだけ…

irb上でprivateメソッドを呼び出そうとするとNoMethodErrorが発生する

def foo
  self + 2
end
=> :foo

1.foo
=> `<main>': private method `foo' called for 1:Integer (NoMethodError)

instance_evalメソッドを使う

def foo
  self + 2
end
=> :foo

1.instance_eval{foo}
=> 3

docs.ruby-lang.org

sendメソッドを使う

def foo
  self + 2
end
=> :foo

1.send(:foo)
=> 3

docs.ruby-lang.org

📝 参考

docs.ruby-lang.org

zenn.dev

qiita.com

RubyKaigi 2023 にバーチャル参加しました。

5/11 - 5/13 に開催された RubyKaigi 2023 にバーチャル参加(オンライン視聴)しました。

rubykaigi.org

”アウトプットは雑でいい”というツイートを見かけたので、覚えていることを雑にメモしておきます。

予習会

オフラインで開催されている前夜祭イベントの様子がとても楽しそうだったので、本編の前に予習会に参加してみました。

hey.connpass.com

はじめて参加しましたが、予習会に参加したおかげで分からないを楽しむ姿勢でのぞむことができたと思います。

発表内容について予習するのもいいけれど、登壇者について事前に調べておくのもおすすめという話がとても心に残っています。

感想

3日間とても楽しかったです。キーノートでRubyのはじまりから現在に至るまでの道のりを聞けて、やっぱりRubyが好きだしもっとRubyのことを知りたいという気持ちになりました。

楽しそうに発表している登壇者や楽しそうに拍手などの合いの手(?)を入れているオーディエンスのオフラインならではの一体感が感じられてよかったです。オンライン視聴でしたが、会場の楽しそうな雰囲気が伝わってきて一緒に楽しめました。

英語の発表が多かったですが、今回は主に日本語の発表を視聴しました。初学者でも内容を理解できるか不安でしたが、タッチパッド機能をDIYした話やChromeのエクステンションを開発した話などの”つくってみた系”の発表は、内容を知らなくても実際に動いているところを目にするだけでとても感動しました。

LTではタイマーのカウントダウンが徐々に減っていく様子にドキドキしたり、時間ピッタリで終える発表に思わず拍手したりと楽しかったです。時間がオーバーしてしまったときの銅鑼によるタイムアップのお知らせも趣きがあってよかったです。開始前に流れるCMはどれもユーモアがあり、とくにラップのインパクトがすごくて忘れられません。

来年は…

オンライン視聴でも十分楽しめましたが、来年はオフラインで参加してみたいなと思いました。ヘルパー参加もちょっと気になっています…!

オーガナイザーや運営スタッフ、配信スタッフのみなさまに本当に感謝です。ありがとうございました!