RubyWorld Conference 2024に参加してきました!!

RubyWorld Conference 2024に参加してきました!!

みなさん、お久しぶりです! 前回のブログ投稿から3年くらいたっての投稿になります。田中です。 12/5〜12/6に開催されたRubyWorld Conference 2024に参加してきました。 毎年11月の開催だったので、個人的には人生初の12月の島根が楽しみでもありました(笑) 出雲空港に着いてまず思ったのは、とにかく寒い!例年に比べて尋常じゃなく寒かったです。 来年以降のRubyWorld Conferenceへ参加する人達は、**「12月なら厚着」**を徹底してください! 11月の感覚で足を踏み入れた私は、この日から2日間ずっと寒い思いをします。 と、冒頭の話はここらへんにしてRubyWorld Conferenceの話をしたいと思います。 今年のカンファレンスは、Andy Piperさんの基調講演から始まりました。 内容としては、分散型ソーシャルウェブの重要性やどの様に成長してきたか等のお話をしてくださいました。 普段、使うことはしても重要性等は気にしたことがなかった私としては驚きの多いお話でした。 午前中の公演が終わり、WYRD恒例のお蕎麦を食べに行きました。 今年は神代そばへ行きました。 毎年お邪魔しているのですが、個人的にはイチオシなお店なので是非食べに行ってください! (写真撮り忘れたごめんなさい!!!!!!!!) 午後は、出店ブースなどを見たり公演を聴いたり充実したお時間を過ごさせていただきました。 公演に興味がある方は、RubyWorld Conference 2024チャンネルでアーカイブを見てください。 翻訳も用意されているので、英語が苦手な方でも安心して楽しめます。 自分も英語で内容がわからなかった場合は、このチャンネルで聴き直したりしています。 (本当に助かります...感謝) レセプションでは、色々な会社の方と挨拶させていただいたり美味しいお酒を頂きました。 まつもとゆきひろさんともお写真撮らせていただいたり、素敵な時間を過ごしました。 サムネイルに使用している写真もレセプションで撮らせていただきました! しまねっこの登場で会場がさらに和やかな雰囲気になり、みんな笑顔になっていました。 しまねっこはいつ見てもかわいい こんな感じで今年もRubyWorld Conferenceとても素敵なイベントでした! 運営に携わってくださった皆様、本当にお疲れ様でした。 余談 これもせっかくなので書くかという話題なのですが、人生初神有月ではない出雲大社に参拝してきました。 私がそもそも神社に詳しくはないのですが、ここまで大きい神社って出雲大社くらいしか行ったことがないので何回来ても圧倒されます。 毎年のノルマとして良縁を祈り続けているので、今年も達成できてよかったです(笑) あとすごく美味しい松葉蟹をいただきました。 こんな贅沢をして良いのか、って毎年思います。 この感動を与えてくれた松江と、松葉蟹に心から感謝です。Matzさんにも感謝を込めて。

Rackについて学んだこと 〜Kaigi on Railsの「Rackを理解しRailsアプリケーション開発の足腰を鍛えよう」に参加〜

Rackについて学んだこと 〜Kaigi on Railsの「Rackを理解しRailsアプリケーション開発の足腰を鍛えよう」に参加〜

こんにちは、山屋です! 先日のKaigi on RailsにてRackを理解しRailsアプリケーション開発の足腰を鍛えようというワークショップに参加しました! ワークショップについてと、Rackについて学んだことをまとめました。 ワークショップ参加のきっかけ 業務でRackミドルウェアに関するプルリクエストのレビューをする機会がありました。 Rackについてうっすら知識はあったものの、「なんかピンと来ていない…」という印象をRackに抱いてしまいました。 そんな折にRackのワークショップが開催されるということを知ったので参加を決意しました。 ワークショップの内容 こちらがワークショップの内容です。 1日目にRackアプリケーションとRackミドルウェアの作成を、2日目にRackサーバーの作成を行いました。 私はワークショップ中にRackサーバーの作成までは終了できなかったのですが、実際に手を動かしたことでRackの理解が深まりました。 終始和やかな雰囲気で、スピーカーのhogelogさんは「ここにいる全員と話すつもりで来ました」と仰っており、楽しく進めることができました。もちろん私もお話しさせていただきました! Rackについて学んだこと Rackの概要 RackはWebアプリケーションサーバーとWebアプリケーションフレームワーク間の標準仕様です。 Rackがなかった頃は特定のアプリケーションサーバーとフレームワークの組み合わせでないと動作しない…ということが発生していたようです。RailsはRackアプリであるのでUnicornやPumaなど様々なWebアプリケーションサーバー上で動作します。 Rackアプリケーションの基礎 callメソッドを定義しているものが最低限のRackアプリケーションです。 callメソッドでは[status, headers, body]の形式でレスポンスを返す、という決まりごとになっています。 レスポンスは必ずこの形式なので、役割がはっきりしていますね。 コード例はこちらです。 Rackミドルウェア 資料からRackミドルウェアの概要を引用します。 Rackミドルウェアは、Rackアプリケーションのリクエストとレスポンスの間に介在し、リクエストを加工したり、レスポンスに処理を加えたりするコンポーネントです。ミドルウェアをチェーンのようにつなげることで、複雑な処理をシンプルに組み立てることができます。 すなわち、自身のcallメソッドで加工を行いつつ、他のRackミドルウェアやRackアプリケーションのcallメソッドを呼び出して処理を続けていくことができます。 用意する必要があるメソッドはcallとinitializeメソッドの2つです。 コード例では、initializeメソッドで引数を受け取り、ミドルウェアのcallメソッドの「status, headers, body = @app.call(env)」でAppクラスのcallメソッドを呼び出しています。 その後、callメソッド内でリクエストやレスポンスを加工することができます。 (ちなみに私がレビューしたコードではcallメソッドでUser Agent文字列の加工を行っていました) Rackサーバー 重ねてですが、資料からRackサーバーの役割を引用します。 大まかに言うとクライアントからHTTPリクエストを受け取り、Rackプロトコルで定まった値を詰め込んだ env ハッシュを作成してRackアプリケーションに渡し、Rackアプリケーションから帰ってきた配列を元にクライアントにHTTPレスポンスを返すのがRackサーバの仕事です。 Rackミドルウェアにstartメソッドを追加して、サーバーの処理を記述しているようです。 ソケット通信などあまり知識がないものも多く、正直なところ、サーバーはこんなことをしているんだという大雑把な理解となってしまいました。 ただこの内容はRailsを理解する上で重要なことだと思うので、機会を作ってまた深掘りしていきたいなと思いました。 学んでみてどうだったか 今まではRackについて「サーバーと何かしらやりとりをしている。ミドルウェアを作れる。RailsはRackアプリである」くらいの認識しかなかったのですが、解像度が上がったと感じました。 改めてレビューしたプルリクエストを見返してみたところ、どんな処理なのかスッと頭に入ってきました。 手を動かして学んだことにより、理解が深まったなと感じました。 自分から積極的に学ぶにはハードルが高い分野だったので、ワークショップを開催していただけてとてもありがたかったです! 同時に知識が足りていない部分も浮き彫りになったと思います。(サーバーが何をしているのか、サーバーの違いは何なのか、Railsに他にどんなライブラリが使われているのか、などなど…) Kaigi on Railsで「Rails wayに乗りましょう」という話をいろんな方が仰っていましたし、少しずつRailsが何をしているのか学んでいこうと思います。 最後になりましたが、ワークショップを開催してくださったhogelogさん、本当にありがとうございました! 参考資料 Railsの練習帳 Chapter 09 [Rails基礎] RackとRackミドルウェア パーフェクトRuby on Rails 【増補改訂版】 3-2 RackとRailsの関係

Ruby World Conference2024のノベルティ紹介

Ruby World Conference2024のノベルティ紹介

みなさん、こんにちは。 小林です。 今年もRubyWorld Conferenceの季節がやってきました!! 弊社は2014年からスポンサーとして、このイベントを継続的に応援し続けており、今年もGoldスポンサーとして参加しております。 https://2024.rubyworld-conf.org/ja/ さて、この記事を見ているということは、 皆さんの興味はウィルドの今年のノベルティは何なのか、ということですよね? あまり読者をお待たせしても仕方がないので、早速紹介していきましょう!! キーボードブラシです。 弊社は東京都台東区に本社があるのですが、同じ台東区にあるかなや刷子様とコラボレーションしました。 かなや刷子様は大正時代から続く老舗企業です。 ご近所ということでお店の方に足を運んだこともあるのですが、本当に色々な種類の刷毛・ブラシが店頭に並んでおり圧巻でした。 そして、作成していただいたブラシですが、刷毛の部分には化学繊維ではなく馬毛を使用しています。 馬毛は非常に繊維が細く、化学繊維に比べて静電気がおきにくいとのことです。(FILC○様談) まさにキーボードブラシにはうってつけの素材とも言えます。 実はこのブラシはRWC2023のノベルティとして作成する予定だったのですが、材料となる木地が不足しており、間に合わなかったのです。 満を持してのお披露目となりますので、ぜひお手に取ってみてください。 (お一人様一個まで) 余談 ブラシを指でつまめるオブジェクトがあったら面白いよね、と社内で雑談をしていた際に、 はっ!!3Dプリンタで印刷をすればよいのでは!! と天啓を得ました。 実は弊社のオフィスには3Dプリンタがあるのですが、私はすっかり虜になり、休日も会社に遊びに来て印刷をするくらいです。 (弊社に3Dプリンタがある経緯はこちらの記事を読んでみてください) そうして出来上がったのがこちらになります。 まさか、日々の遊びの中で磨いたスキルがこんな所で役に立つとは! ぜひ実物をご覧ください。

今年も熊手を買ってきました!

今年も熊手を買ってきました!

こんにちは、代表の大越です。 今年も浅草鷲神社で行われた酉の市で、恒例の熊手を購入してきました。2008年に初めて熊手を手にしてから、今年で17回目となります。毎年この時期になると「もうそんな季節か」と思いながら、熊手を手にするたびに「また1年頑張ろう!」と決意を新たにする大切な行事です。 今回は、熊手を買い始めたきっかけや、酉の市の魅力、そして今年購入した熊手に込めた想いをお話します。 熊手との出会い 熊手を初めて購入したのは、2008年11月のことでした。当時はリーマンショックの影響で経済が不安定になり、私たちWYRDの仕事も大変厳しい状況にありました。受注が細り、不安が募る中で「何とか流れを変えたい」という思いで、浅草鷲神社で開催されている酉の市に足を運んでみました。 参拝後、たくさんの熊手屋さんを見て回り、一番お客さんが集まっていた「福田屋」さんを訪れ、そこで初めて熊手を購入しました。最初の熊手は小さなものでしたが、当時手にした時はとても大きく感じ、不思議な力をもらった気がしました。それ以来、熊手を購入することが弊社の年末の恒例行事となり、今年で17年目を迎えます。 酉の市とは 酉の市(とりのいち)は、毎年11月の酉の日に開催される伝統行事で、商売繁盛や開運を祈願する場として多くの人が訪れます。酉の市の会場では、「福をかき集める」とされる縁起物の熊手が無数に並びます。その熊手には、稲穂や小判、招き猫、七福神などが華やかに飾られ、商売繁盛を象徴するデザインが施されています。購入する際には、店主や職人さんたちが商売繁盛の掛け声とともに手締めを行い、一層の縁起を担いでくれます。この活気あふれる雰囲気が、酉の市の大きな魅力です。 東京では浅草の鷲神社や、新宿の花園神社、目黒の大鳥神社などで酉の市が開催されています。2024年は一の酉(11/5)、二の酉(11/17)、三の酉(11/29)が開催日となります。 WYRDでの17年間の熊手購入の歴史 私たちWYRDでは、初めて熊手を購入した2008年から「福田屋」さん一筋で毎年熊手を購入しています。熊手は一般的に、前年より少し大きなものを購入することで商売の成長を願う風習があります。しかし、熊手はサイズが大きくなるとその分飾るスペースが必要になるため、2014年に購入したサイズが会社に飾る大きさの限界となり、それ以降は毎年同じサイズを購入しています。 ただ、サイズが変わらないことで商売が停滞するのは縁起が悪いので、福田屋さんに渡すご祝儀を毎年少しずつ増やすようにしています。ご祝儀を多くお渡しすることで、福田屋さんがより一層盛大な掛け声をかけてくださり、縁起の良い雰囲気を全員で共有しています。 今年の熊手は赤神輿 今年の熊手は、弊社の企業カラーである赤を基調とした華やかなデザインで、中央には3基の赤神輿が飾られています。この赤神輿には「皆で力を合わせて挑戦する」という想いを込めています。 福田屋さんからは「今年の熊手は一層の繁盛を祈って特別に豪華に仕上げました」との言葉をいただき、今年も素晴らしい熊手を迎えることができました。熊手はオフィスのエントランスに飾っていますので、出社の度にパワーを頂いています! 最後に この記事を読んで、「熊手ってどんなものだろう?」と思われた方は、ぜひ浅草鷲神社の酉の市を訪れてみてください。きっとその賑やかな雰囲気と熊手の魅力に引き込まれることと思います! 最後までお読みいただき、ありがとうございました。

Kaigi on Rails 2024に参加してみた〜当日編Day1〜

Kaigi on Rails 2024に参加してみた〜当日編Day1〜

みなさん、こんにちは。 小林です。 10/25〜26に開催されたKaigi on Ruby2024に参加して来ましたので、前回に引き続き、そのことについて書いていこうと思います。 前回の記事はこちら↓ Kaigi on Rails 2024に参加してみた〜事前イベント編〜 残念ながら、私は26日は予定がすでに入っていたため、Day1のみの参加になります。 会期中に使えるWebアプリケーションがあったのですが、運営スタッフたちがRailsで開発したとのことでした。 しかも最近、Rails8にアップデートしたとのことで、こういうのはエンジニアとしてはニヤッとしてしまいますよね。(実際に会場は大盛り上がりでした。) アプリケーション上でプロフィールを作成して、交換をしたり(する機会はありませんでしたが)、運営からの連絡を受信できるようにしてありました。 https://github.com/kaigionrails/conference-app あとでゆっくりコードを読んでみようと思います。 それでは、イベントの内容に関して紹介していきたいと思います。 セッション 私が参加したセッションは以下ですが、 RailsのPull requestsのレビューの時に私が考えていること そのカラム追加、ちょっと待って!カラム追加で増えるActiveRecordのメモリサイズ、イメージできますか? モノリスでも使える!OpenTelemetryでRailsアプリのパフォーマンス分析を始めてみよう Rails APIモードのためのシンプルで効果的なCSRF対策 現実のRuby/Railsアップグレード Hotwire or React? 〜Reactの録画機能をHotwireに置き換えて得られた知見〜 この中でも特に気になっていた講演を紹介します。 RailsのPull requestsのレビューの時に私が考えていること 私が一番聴きたかったセッションがこちらです。 yahondaさんがRailsのコミッターとしてrails/railsプロジェクトのレビュー時に意識していることの紹介でした。 railsプロジェクト固有の話でありましたが、その中にも業務に活かせるものはないかと気になっていました。 https://speakerdeck.com/yahonda/railsnopull-requestsnorebiyunoshi-nisi-gakao-eteirukoto 特に活かせそうだなと思ったのが、バグなどの報告時の書き方に関してです。 Issues: Expected behavior あなたの望む動作を書く 過去のバージョンでどう動いていたか 私は「望む動作」は記載しますが、「過去にどうだったか」を書くことがほとんどありませんでした。 しかし、これを書くことによって、過去の事実として客観的な情報を伝えることができるので、実践していきたいと思います。 Issues: Actual behavior 再現ケースで実際の動作を肯定文で書く これは「肯定文」で記載することが大切だそうです。 言われてみればその通りで、以下の2点を踏まえると「〇〇(望む動作)をしない」と記載してしまうと情報が一切増えないので、書く意味がありません。 (ISSUEを起票している時点で)問題が起きていること 「望む動作」を記載していること 私自身、このような書き方はしていない(つもり)ですが、改めて意識していこうと思いました。 懇親会 懇親会では、小さなテーブルがたくさん用意されており、4〜5人集まり、親睦を深めるという感じでした。 みなさん、頻繁にテーブルを移動するようで、多くの方と会話することができました。 会話の内容としては、業務を絡めたRailsの話題だったり、今日のセッションの深掘りだったり、最近のトレンド等だったりと、かなり盛り上がり楽しむことができました。 私はもともとJavaで仕事をしていたのですが、そんな境遇の方が何人かおられて、 最近のJava界隈の話をしたり、Javaで使用するフレームワークとRailsの違いや共通点の議論をしたりしてきました。 運営スタッフさんとも同じテーブルになったのですが、その際にも技術的な話題で盛り上がってしまいました。 冒頭のWebアプリケーションのことやスピーカーの選定に関する裏話を聞く貴重なチャンスだったのにそれを活かすことができませんでした。 次回、参加する機会がありましたら、忘れずに聞いてみようと思います。 まとめ 参加してみての感想は、 初心者に対しては、登壇しているスピーカーの方々に経験年数の少ない方も多く励みとなり 中級者に対しては、理解はできるがまだまだ学ばなければならないことが多いことを自覚させられ 上級者に対しては、より深い領域で刺激しあえる イベントの趣旨にある通り、だれでも楽しめるイベントであったと思います。 私自身は中級者と自負しておりますが、上級者になるためにはまだまだ先は長いことを再認識させられ、改めて努力し続けるモチベーションを得ることができました!! 講演の内容はYouTubeで公開されていますので、興味があれば見てみてください。 https://www.youtube.com/c/kaigionrails