以下の内容はhttps://tech.andpad.co.jp/entry/2025/01/31/100000より取得しました。


楽しかった 東京Ruby会議12 の前夜祭と本編とスポンサーブースをふりかえり

大盛況に 東京Ruby会議12 が終わりましたね ! アンドパッドも前夜祭と本編、スポンサーと、十分に楽しんできました ! 東京Ruby会議12 チームの皆さま、ありがとうございました !!

その楽しかった東京Ruby会議12 を、前夜祭の模様 (id:sezemi) ・前夜祭での発表 (@makicamel@ydah) ・当日のブースの様子 (@hsbt) ・本編のトーク (@youchan) のパートに分け、ふりかえりました。

東京Ruby会議12 前夜祭の模様

rails stats 2024 をスマートバンクさんと共催したこ゚縁で @osyoyu さんから打診があり、前夜祭の会場をアンドパッドでホストすることになりました。 ありがたい限りです。 このパートでは、採用広報の id:sezemi がその前夜祭の模様をお届けします。

東京Ruby会議12 の前夜祭の構成はとてもユニークで、第 1 部は @chobishiba さんを講師としてお迎えし、クリエイティブコーディングのワークショップを行いました。 続いて第 2 部は開催会場が鶴見ということもあり、年始恒例の箱根駅伝の鶴見中継所になぞらえ、アンドパッド 9F をスタート地点として 10 人の発表者が 10 区までタスキを繋ぐ駅伝トークを行いました。

#tokyorubykaigi が賑わわないほど夢中になるクリエイティブコーディング

まず始めに @chobishiba さんからクリエイティブコーディングの基本となる、円や四角形、三角形などの図形を装飾、動かし方をレクチャーいただきました。

x.com

詳しい模様は @chobishiba さんがご自身の記事で書かれていますので、ぜひご覧ください。

note.com

そのレクチャー後、参加者が思い思いにコーディングしたのですが、とても熱心に取り組むあまり、 #tokyorubykaigi のハッシュタグにまったくポストされない状態になりました。 面白いワークショップになればなるほど、ワイガヤしないのですよね。

それだけ熱中したこともあり、各参加者の作品のクオリティが非常に高かったです。 ここでは @youchan の作品を紹介します !

x.com

駅伝トーク完走 !!

第 1 部も申込者を上回る (!!) Rubyist が参加されましたが、第 2 部の参加率 (参加者 ÷ 申込者) も半端ありませんでした。 通常、こういったイベントの参加率は 80% いけば、万々歳というものですが、恐らく申込者が全員来ていたと思います。 すごいぞ、東京Ruby会議12。

そして、なんとクラフトビールサーバが会場にデプロイされ、クラフトビール好きな私は 2 周してしまいました。

x.com

その駅伝トークでは、発表者が発表時間に間に合わないというハプニングがありつつも、タスキを全発表者がつなぎ、完走しました !! どのトークも "Ruby と暮らす" というテーマに沿ったものでしたが、 JSON 、組織開発な話や WASM 、鯖缶、組込み、 Rails などなど、どれ一つとして同じカテゴリの発表がなく、飽きること無く楽しめました。

その中でも、私が採用広報という立場なので、 @alpaca-tc さんの「Rubyと暮らし、OSSに貢献し、登壇する ── 半年間続けた「OSSやっていきの集い」の成果と学び」はとても参考になりました。 紹介されたコントリビュートレポートはテックブログのネタにもなりそう and エンジニアの雰囲気がわかりそうで、とてもマネしたいものでした。

そんな盛り上がった前夜祭もお開きとなり、最後は東京Ruby会議12チームをパチリ。 とてもいいチーム !! アンドパッドを前夜祭の会場に選んでいただき、ありがとうございました !!

x.com

前夜祭で発表したこと

ErdMap: Thinking about a map for Rails applications @makicamel

こんにちは、@makicamel です。東京 Ruby 会議 12 前夜祭に採択頂き、Rails アプリケーションの「地図」について考え、Rails アプリの ER 図をブラウザで可視化する ErdMap という gem を作ったお話をしました。

github.com

speakerdeck.com

ANDPAD のメイン Rails アプリには 2025 年 1 月現在約1,4001 個のモデルがあります。わたしたちはそれらすべてを理解したいわけではありませんが、どのモデルが重要なのか、どのように関連しあっているかには関心があります。モデルファイルから関連を読み解くことはできますが、一つひとつ関連を追うのは億劫ですし、「重要」なモデルをファイル名の一覧から見出すのは大変です。

そこで ErdMap ではモデルを重要度ごとに並び替え、最初は最も重要な 3 つのモデルのみを表示し、ズームインすると次に重要なモデルを追加表示する、といったようにインタラクティブに操作できるようにしました。イメージは Google マップの操作感です。
また概念が近しいモデルを「コミュニティ」としてグルーピングし、色分けをしました。これは、単純な association のつながりではなく、近しい概念をまとめた、地図でいう「市」のような単位でモデルを分類するイメージです。

重要度の判定やコミュニティ分割にはネットワーク分析を使っていて、トークではこのアルゴリズムの解説と組み込みの方法をご紹介しました。

アイディアは @youchan さんのもの、またネットワーク分析を教えてくれたのも @youchan さんです。ありがとうございます。もっといいものにしていきたいです。

ErdMap、ぜひ使ってみて、重要度やコミュニティ分割に違和感があるとか、フィードバックを頂けるとうれしいです。

Rubyでつくるパケットキャプチャツール @ydah

こんにちは、大阪の鶴見から来ました @ydah です。東京 Ruby 会議 12 前夜祭にて、Ruby でパケットキャプチャツールを作るというテーマで発表しました。

github.com

speakerdeck.com

「なんだこのydahってやつはパーサージェネレーターを作っていたりRDBMSを作っていたり何してるんだ」と思われるかもしれませんが、私自身もそう思っています。不思議ですね。「何してるんだ」と思われた方はおそらくその感情は正しいとおもいます。

今回はLTだったので発表時間が限られているにもかかわらず、関西Ruby会議08の宣伝は入れたいし、トークとして必要な話には一通り触れたいし、さらには川崎から秋葉原に向かっていたら気がついたら磯子駅にいるし...2磯子駅ですよ...3本当にお騒がせしました...登壇の時間を調整していただいてありがとうございます...、で気がついたら前提となる話をぶっ飛ばしてしまっていた(ぶっ飛ばすしかなかったとも言います)ので、その辺りの話を補足します。

私が今回パケットキャプチャツールを題材にしたのは、知っている方は知っているかもしれませんが私は前職はほとんどWebサービスを作ってはいなくて、そのほとんどの時間をネットワークを制御するシステムをCやC++で書いていたわけです。そのため、この手のソフトウェアは私にとっては馴染み深いもので、その時の知識を使って何か動くものを書いてみようかなと思ったからです。そして、プロポーザルを考えていたタイミングで「なるほどTCPソケット Rubyで学ぶソケットプログラミングの基礎」が9月に公開されていたということもあり、ソケットプログラミングやネットワークプログラミングに興味を持たれる方も多いのではないかと思っていました。また、技術自体は昔からあるものですが、自作することで理解が深まることもあるので、その辺りを意識してパケットキャプチャツールを題材として選びました。

元々多分20〜30分話せるトークだったので、なんでこれをLTで話そうと思ったのかと思った方いらっしゃるとおもいます。その感覚は全く間違っていなくて、前夜祭でLT枠で話してくださいというオファーをいただいて、「やります!」と返事した後にゆっくりと、「あ、5分か、そうか5分か、いや...5分か.....」とどんどん絶望が広がっていって、何を削って何を話そうかというところが今回のトークの構成を考える中で一番大変だったところです。とはいえ、話したいことは盛り込んで話せた(本当に?)ので、よかったなと思っています。

会場に着くまでの敵は京浜東北線でしたが、会場についてからの一番の敵は会場で提供されていたクラフトビール4でした。決して飲みすぎないようにしないと早口が求められるのに呂律が回らないのは致命的だったので、そこの調整が何よりもの戦いでした。さて、内容としてはLinux上で動作するパケットキャプチャツールを作るために必要な情報は網羅できたと思います。今回の話を踏まえて、私が作成したツールのコードを読んでいただければ、スムーズに理解できるのではないでしょうか。このトークをきっかけに、ネットワークプログラミングに興味を持っていただけたら嬉しいです。パケットキャプチャツールは題材としても手頃ですので、ぜひ一家に一台、自作のパケットキャプチャツールを作ってみてください。

最後に、この素晴らしいカンファレンスで話す機会をいただいた主催者の皆様、そして前夜祭にて話を聞いてくださった皆様、また会期中にお話しさせていただいた皆様に感謝申し上げます。ありがとうございました。

当日のブースの様子

東京Ruby会議12当日、アンドパッドはブースを出展しました。ブースでは、アンドパッドのプロダクトでの Ruby の活用事例として SVG を用いた施工画像のアップロードと、SVG の利用によってもたらされる建設業界へのメリットについてご紹介しました。

建設業界において、電子データとして SVG が利用可能になったのは2023年3月、国土交通省が「デジタル写真管理情報基準」を改定したことがきっかけです。これにより、施工図面や施工画像において改ざん検知が可能となるなど活用の幅が広がっています。ブースでは、この SVG の利用に関連したクイズ形式のアンケートを実施し、アンドパッドオリジナルのノベルティもプレゼントしました。

プロダクトの活用やアンドパッドの事業の説明を通して、多くの方々と交流を深めることができましたが、立ち止まっていただけた方全てに対応できなかったのが今回の反省点です。次回以降のブース企画ではより多くの方に建設業界におけるプロダクト開発の魅力や Ruby だからこそ可能な課題解決についての紹介をできるようにアップデートしていこうと思います。見かけた際には是非お立ち寄りください。

印象に残ったトーク

@youchan です。東京Ruby会議12で印象に残ったトークについて書きます。

前夜祭も含めると、@makicamelや@ydahのトークもとても印象に残って良いトークだったのですが、ここでは本編で最も印象に残ったトークについて書かせていただきます。

それは、ぺんさん(@tompng)の「全てが同期する!Railsとフロントエンドのシームレスな連携の再考」でした。 いつも奇妙なコードで皆を驚かせるぺんさんですが、今回はリアルな課題を解決する実用的なコードの話でびっくりです。

課題はリアルタイムでデータの更新のあるWebアプリケーションをどう上手くやるかということです。ユースケースとしてはリアルタイムチャットやオンラインコラボレーションツールなどです。 もちろん、Railsでやることが前提です。ActiveRecordは便利ですからねー。

本トークではリアルタイムでデータの更新するのに以下のようなアプローチをしています。

  • データのフローを一方向にする
  • 木構造のデータを丸ごとリアルタイム同期する

この2つの要点はとてもシンプルでかつ課題の本質をついているなと感じました。

また、木構造のデータのリアルタイム同期に対して以下のように課題を分析していました。

  • ActiveRecordのデータは木構造ではないので親子関係を別途宣言すること
  • 木構造のどのノードでイベントをサブスクライブするのか
    • 木のrootかnodeか
  • イベントを受けとった後の更新内容の取得
    • Payloadに含めるのか、別途Fetchするか

これらのことをActiveRecordのモデルに宣言的に書けるスマートで現実的なソリューションを提示されていました。

https://github.com/tompng/ar_sync として実装されているそうなので参考にしてみてください。

ぺんさんの今回の話はとても難しい課題を整理して分かりやすく噛みくだいてくれました。いつも難解なコードばかりなので新鮮でした。どんなに難解なコードもぺんさんの頭のなかでは綺麗に整理されているのかもしれませんね。

さいごに

この記事では、アンドパッドが東京Ruby会議12の振り返りをお届けしました。 東京Ruby会議12にご参加いただき、また弊社ブースにお立ち寄りいただき、誠にありがとうございました!

最後に、アンドパッドでは、「幸せを築く人を、幸せに。」というミッションの実現に向けて、ともに働く仲間を募集しています。 アンドパッドにご興味をお持ちいただけましたら、以下のページよりご応募ください。カジュアル面談も随時実施していますので、ぜひお気軽にご相談ください!

hrmos.co


  1. rails stats なので PORO やモジュール数を含みます
  2. 何度だって言いますが「大船」行きと「大宮」行きが存在する京浜東北線 is 罠でした
  3. 磯子駅に着く前に気づくのではないかと思われるかもしれませんが、スライドを最終の手直しに集中してたんです.....
  4. クラフトビールとても美味しかったです。あの5tapを前夜祭でトークを聴きながら飲めるという体験は本当に最高でした。本当にありがとうございました。VERTEREのCommelinaとLet's Beer WorksのWonton Hazy IPAが好みに刺さっていました。いやぁ美味しかったです。



以上の内容はhttps://tech.andpad.co.jp/entry/2025/01/31/100000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14