SmartHR Tech Blog

SmartHR 開発者ブログ

RubyKaigi 2024参加レポート

こんにちは、SmartHRプロダクトエンジニアの@marietty、@neko@mktakuya、@yorimitsuです。
SmartHRでは、那覇文化芸術劇場 なはーとで開催されたRubyKaigi 2024に約40名で現地参加しました。

Scheduler & Drinkup Sponsorをしました!

今年は、Scheduler & Drinkup Sponsor として協賛しました。

公式スケジュールアプリのSchedule.selectを大幅にアップデート

tech.smarthr.jp

昨年もたくさんの方にスケジュールアプリを利用していただきましたが、 今年はチーム機能とフレンド機能の2つを追加して、よりRubyKaigiを便利に楽しめるようにしました。

「SmartHR Drink Up at RubyKaigi 2024」を開催

smarthr.connpass.com

2日目の夜に会場近くのお店を貸し切って、DrinkUpを開催しました。 沖縄のおいしい料理と民謡ライブを楽しみながら、75名のRubyistと交流を深めることができました。
参加できなかったセッションの話や、個人開発の話など様々なことを聞いて、あっという間に終わってしまいました。
3日間の思い出もまたお話ししたいですね。

スポンサーブースも出展

ブースでは、「人労打バトル大会」を開催しました。詳しくは下記のブログ記事を見てください! tech.smarthr.jp

現地参加したメンバーに感想を聞いてみよう

現地参加したエンジニアの中から、RubyKaigi 2024 の感想を聞いてみましょう! 以降では、RubyKaigiが初参加のメンバーや様々な経歴のメンバーが、印象に残ったセッションと、全体の感想を書いていきます。

初めての現地参加@marietty

SmartHRに入社して3年目に最近突入しました。Ruby暦は2年です。
普段は、バックエンドとフロントエンドを書きながらデザインの勉強をしています。
甘くて茶色くてカロリーが高いものが全て好きです。

RubyKaigiは、オンラインで1度参加したことがありますが、オフラインでの参加は今回が初めてです。

印象に残ったセッション

「Exploring Reline: Enhancing Command Line Usability」(Mari Imaizumi)

発表資料:https://speakerdeck.com/ima1zumi/exploring-reline-enhancing-command-line-usability

GNU Readlineの機能や、Relineがどのように実装されているかの話でした。

ReadlineやRelineについて知識がない状態だったので、セッションを聞きに行きました。
Relineは、Ruby 2.7からRubyに同梱されているbundled gemであり、IRBで矢印キーが動く機能はRelineがあるからだと知りました。実は使ってましたね。

セッションの後半では、Relineの紹介と機能の実装方法について、Undo機能を題材に丁寧に説明されていていました。 利用していた機能がどのように実装されているのか知ることができて、とてもワクワクしました。
基本的な操作以外にもこれからもどんどん機能が充実していくようなので、今後も楽しみですね。

「Porting mruby/c for the SNES (Super Famicom)」(Ryota Egusa)

発表資料:https://speakerdeck.com/gedorinku/c-for-the-snes-super-famicom-rubykaigi-2024

mruby/cというRubyの軽量な実装を利用して、スーパーファミコンを動かした話でした。

これまでゲームの開発に携わったことがなかったので、セッションが始まる前から楽しみにしていました。 mruby/cについても知識がない状態だったので、事前に調べてIoTデバイスなどの開発にも利用されていることを知りました。Ruby言語はいろいろな開発で利用されているのですね。

mruby/cを動かすために工夫された点や、mruby/c以外の画面を描画するための実装なども詳しく語られていていました。スーパーファミコンの実機を使ったデモを見た時は、感動してしまいました。

業務でRuby言語を利用していますが、趣味や何か好きなものを動かすためにRuby言語を使って開発してみたいなという気持ちになりました。

まとめ

初のオフライン参加でしたが、とても楽しい3日間でした。

Ruby言語の最新の開発や技術をキャッチアップでき、たくさんのRubyistと交流を深めることができました。

セッションの合間にブースを回っていたのですが「サービスを導入して良かったです!」「労務が喜んでいます!」など、SmartHRを使ってくれている方からたくさん声をかけていただきました。これからもRuby言語を利用してサービスの開発をしていきたいです。

RubyKaigi初参加@neko

こんにちは!
2024年4月にSmartHRへ入社したnekoです!(執筆時点ではまだ2ヶ月半くらいですね。)
Ruby歴は3年ほどで、大半の時間はRailsを書いてきています。

RubyKaigiは今年が初参加で、ドキドキで一杯でした...!
弊社で開催したRubyKaigi 2024事前勉強会で「わからないを楽しもう!」というお話を頂いていたので、今のスキルで分からないセッションは分からないなりに全力で楽しむことが出来たと思っています。

印象に残ったセッション

「The grand strategy of Ruby Parser」(Yuichiro Kaneko)

発表資料:https://speakerdeck.com/yui_knk/the-grand-strategy-of-ruby-parser

kanekoさんによるパーサーのセッションでした。
kanekoさんはRubyコミッターでLALRパーサージェネレーター Lramaの作者です。

事前勉強会でkanekoさんとお話することができて、パーサーとレキサーの関係や、パーサージェネレーターとはなんぞやというお話をしていただき、事前に予習をしてからの聴講だったので、難しい内容でしたがある程度理解できたかなと思っております...!(kanekoさんありがとうございました。)

パーサージェネレーターを使うことで文法のコンフリクトを報告してくれるので、文法に対するLinterのような役割をしてくれるということや、PEGは曖昧な解釈が存在せずシンタックスエラーを作ることが難しいこと、LSP等々他のツールにとっても使いやすいASTを作ることで周辺ツールとのインテーグレーションを進めたいというお話でfmfmと思いながら楽しく視聴してました。

Rubyの裏側を少しでも理解できた感動と、より良くするためにRubyコミュニティの皆様が動いてくださっているということを改めて実感できました。
本当にありがとうございます...!!!

また、一部業務でPEGを利用した開発を行うこともあるので、PEGとBNFの違いなどなど大変参考になりました!
是非、このセッションで得られたことを活かして開発を出来たらなと思っております。

「An adventure of Happy Eyeballs」(Misaki Shioi)

発表資料:https://speakerdeck.com/coe401_/an-adventure-of-happy-eyeballs

IPv6のトピックキタ!と思いながら楽しく視聴させて頂きました。
RubyのSocketライブラリで、インターネットに接続できないグローバルユニキャストIPv6アドレスが割り当てられていた時に、早くかつIPv6を優先してコネクションを確立できるようにするという話でした。

状態がかなり多く、その上で遷移が複雑なのですごく苦労しながら実装されたんだなと考えながら視聴しておりました。

もともとインフラ側が好きだったので、聴いていてこれがリリースされたら長い目で結構嬉しいのかなぁなんて想像を膨らませておりました。
国内だとNTTさんのNext Generation Network(NGN)網におけるIPv6フォールバック問題の解決ができるだろうなという観点だったり、PPPoEを用いたIPv4トラフィック輻輳問題もIPv6が優先されることである程度緩和されるのではないかなと思っています。

感想の最後に、Happy Eyeballsに対応したSocketライブラリのリリースを心待ちにしてます!!

まとめ

初めての参加&沖縄だったので最初は不安で一杯でしたが、最後まで楽しく過ごすことが出来ました。
普段聞けないような話やRubyに携わっている方々とお会いできて大変良い経験が出来たと感じています。

JITやパーサーなど、知らなかった内容をたくさん知ることが出来て、Rubyを書く上で見える世界が変わったと実感しています。
これからも、RubyKaigiで得た知見を活かしながら日々Rubyを書いていきたいと思います!

久しぶりのRubyKaigi参加でした!@yorimitsu

はじめまして!私は去年の3月にSmartHRに入社して、入社2年目です。沖縄に住んでおり、普段はフルリモート勤務でRailsやReactを書いたりしています。
Ruby歴は13年で、RubyKaigiのオフラインでの参加は13年ぶりになります。前回のオフライン参加は2011年の練馬開催でしたが、その後沖縄へ引っ越し、さらに出産育児もあり、しばらくは参加が難しい状況が続いていました。ここ数年はオンラインでの参加を続けていましたが、今年は久しぶりに現地での参加ができ、とても楽しかったです!

印象に残ったセッション

「Writing Weird Code」(Tomoya Ishida)

発表資料:https://drive.google.com/file/d/1Dkx15u_5UAGoFqJHCeAuj2FXS-z_U7EE/view
コード: https://github.com/tompng/selftrick2024

石垣島出身の PEN さんによる、day1のキーノートです。
このセッションでは、普段あまり見慣れない「奇妙なコード」を通して、Rubyという言語の奥深さや楽しさを再認識することができました。

セッションの前半では、Quineと呼ばれる自己自身のソースコードを出力するプログラムや、普段書かないような「奇妙な」Rubyのコードが紹介されていました。
後半はQuineの実例のデモと解説でした。その中で特に印象に残ったのは、「Most Floral」と呼ばれていたコードです。一見するときれいなユリの花が海辺に咲いている写真なのですが、実はBMPファイルかつ、同時にRubyスクリプトとしても実行可能なQuineでした。このBMPファイルをRubyで実行すると、風に揺れるユリのアニメーションと共に「RubyKaigi 2024」の文字が表示されるというもので、まるでアート作品のようでした。

このセッションを通じて、Rubyという言語が持つパワーと面白さを改めて感じました。

「Lightning Talks: Enjoy Creative Coding with Ruby」(Miyuki Koshiba)

発表資料:https://speakerdeck.com/chobishiba/enjoy-creative-coding-with-ruby-rubykaigi2024

ライトニングトークでは、クリエイティブコーディングの魅力が紹介されました。クリエイティブコーディングとは、コードを使ってアート作品を作ることです。通常のソフトウェア開発では冪等性が求められますが、クリエイティブコーディングでは偶然性を積極的に取り入れていくとのことで、「自分が楽しむためのプログラミング」という言葉が特に印象に残りました。

トークの最後にはQRコードが表示され、スマホで読み取ることで、RubyKaigi 2024のために作成された作品を見ることができました。アクセスする度に画像が少しだけ変わるようになっていて、X(旧Twitter)のタイムラインが、自分のスマホに表示された画像とは違うスクリーンショットで埋め尽くされており、圧巻でした。

まとめ

久しぶりのオフライン参加でしたが、本当に楽しかったです。今年のRubyKaigiは、特に以下の点が印象に残りました。

Rubyが大好きな人たちの話をたくさん聞けたこと

パーサーやRubyVMの話など、普段の開発で間接的に恩恵を受けている部分についての話をたくさん聞けました。正直すべて理解したとは言えないのですが、皆さんがRubyを心から愛しているのはしっかり伝わってきて、ほっこりとした気持ちになりました。

懐かしい人・お世話になった人と再会できたこと

10年ぶりに会えた人や、以前リモートで一緒のプロジェクトに参加していたけれど対面では初めて会う人とお話しすることができました。懐かしい話や昔のプロジェクトを思い出し、とても感慨深かったです。こういった出会いがあるのは、やはりこういったイベントならではの魅力だと思います。

モチベーションが大きく向上したこと

さまざまな人と交流し、発表を聞くことで、開発に対するモチベーションが非常に高まりました。日々の忙しさでつい忘れてしまいがちな「Rubyを書いていて楽しい〜!」という気持ちも改めて確認できた気がします。これからも、いいものを楽しくRubyで作っていきたいなと思っています。

来年の松山での開催にもぜひ参加したいと思っています。次回もまた、たくさんの刺激を受けて、自分自身の成長にも繋げていけることを楽しみにしています。

6年ぶり2回目の参加! @mktakuya

2024年5月からSmartHRに入社した @mktakuya です。
Ruby/Rails歴は10年ほど。RubyKaigiは2018年の仙台以降2回目の参加です。
今回は入社直後の自分も、なんと他の社員と同じ扱いで参加させてもらえました!
いい会社ですね!!!一生着いて行きます!!!

印象に残ったセッション

聞いたセッションについては、下記の個人ブログに記載してありますのでよければどうぞ。

blog.m6a.jp

まとめ

SmartHRのプロダクトエンジニア組織はフルリモート就業のため、なかなか同僚のみなさんにお会いできる機会がありません。
今回は「東京の会社であるSmartHRの同僚と、沖縄ではじめまして」という貴重な経験をすることができました。
みんな青いアロハシャツを着て、大好きなRubyのお祭りに一緒に参加して仲良くなって……。
入社直後の自分にとって、これ以上ない最高のオンボーディングとなりました。

社外のRubyistのみなさまともたくさんお話させていただきました。 前職や地域コミュニティなどでお世話になった方や、インターネットでは関わりがあったけどリアルでははじめましてな方、そして今回はじめて知り合った方たち。 たくさんの人とハッシュタグ #rubyfriends を合言葉に交流することが出来ました。

Rubyプログラマ・Rubyコミュニティの一員として、とても楽しく刺激を受けることが出来た最高の3日間でした。 来年も松山でお会いしましょう!

採用しています!

SmartHRでは一緒にSmartHRを作りあげていくRubyistを募集中です!
まずは、カジュアル面談で色々とお話できればと思います!

hello-world.smarthr.co.jp