おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

Kaigi on Rails 2024で Sidekiq vs Solid Queueというタイトルで発表した

表題の通り、発表してきました。 Sidekiq vs Solid Queue | Kaigi on Rails 2024 スライドはこちら。 発表に至るまでの道のり イベントの懇親会などでエンジニアの人と話しているときに「最近気になっているgemあります?」のような質問に「Solid Queueです…

ginza.rb 第83回を開催してRails7.2のマイナーフィーチャーを学んだ

Ginza.rb 第83回 - Rails7.2のマイナーフィーチャーを学ぶぞ - connpass 第83回のお題は第82回に引き続いてRails7.2。メジャーフィーチャー以外の気になった変更についてgistにまとめたものを見ながらみんなで「これはいいですねえ」とか「これはどうなんだ…

大阪Ruby会議04でRailsの関連について話してきました

表題の通り、先日開催された大阪Ruby会議04で「どうしてこうなった?から理解するActive Recordの関連の裏側」というタイトルで登壇させていただきました。 スライドはこちら。 登壇するまで 僕は常々なにかしらRails関連のテックな話がしたいな〜と思ってい…

ginza.rb 第82回を開催した

Ginza.rb 第82回 - connpass 第82回のお題はもうじきリリースされるはずのRails7.2。やぎぬまさんがRails7.2メジャーフィーチャについてのスライドを作ってくれていたのでこれに沿ってワイワイしました。 メジャーフィーチャーという建付けだけど機能という…

ginza.rb 第81回を開催した

コロナ禍から休止状態だったginza.rbを4年ぶりに復活させました。 Ginza.rb 第81回 - connpass コロナ禍以降リモートで働くひとが増えたので都内でオフラインミートアップをしても集まらないんじゃないかな?と思っていたのですが、蓋を開けてみたら定員オー…

savanna.io をRails 7.2にアップグレードした

お仕事SNSsavanna.ioの開発を空いた時間でやっています。先日Rails 7.2のbetaが出たので試しにCIを回してみたらそれほど問題なくアップグレードできそうなのでサッと対応してアップグレードしました。以下対応した内容を書いています。 bulletを外す bullet…

RubyKaigi 2024に行ってきました

ちゃんと書こうとすると一生書けなさそうなのでざっくりとまとめています めっちゃ楽しかったです 5/11~19まで沖縄を満喫しました 前入りで旅行をしてからRubyKaigiに臨むと体力が0に近い状態からのスタートになるので、懇親会は欲張らずに1次会だけの参加に…

gimei v1.5.0をリリースしました

先月にgimei のv1.4.0を、昨日にv.1.5.0をリリースしていました。それぞれの変更についてまとめてみます。 v1.4.0 gimeiはランダムに生成した名前を返すライブラリです。姓や名だけがほしいときはそれぞれ次のようにlastメソッドとfirstメソッドが使えます。…

15年ぶりにTOEICを受けた

前回のエントリはこちら(15年前!) TOEIC伸びない - おもしろwebサービス開発日記 n回目の英語勉強するぞ期の中で、英語学習のモチベーションを上げるためになにか試験でも受けてみようかなとなり、とりあえずやり方のわかっているTOEICから始めてみました。 …

ファイバーストレージの紹介と注意点

以前のエントリで、スレッドローカル変数とファイバーローカル変数について解説しました。このエントリはその続きになります。 ファイバーストレージとは スレッドローカル変数やファイバーローカル変数を使うと複数(スレッド|ファイバー)環境で固有の値を持…

ci_loggerのv0.9.0をリリースしました

Release v0.9.0 · willnet/ci_logger 次の二点の変更が入っています。 Rails6.0以上のサポートを終了して、Ruby3.3のサポートを追加しました Rails7.1で追加されたActiveSupport::BroadcastLoggerの対応を入れました ActiveSupport::BroadcastLoggerとは? A…

committee-rails v0.8.0をリリースしました

Release v0.8.0 · willnet/committee-rails Railsでinteragent/committee: A collection of Rack middleware to support JSON Schema.のテスト用ヘルパを簡単に使うためのgemとしてcommittee-railsというのを作りメンテしています。てっきりこのブログでも紹…

gimeiに型をつけた話

僕はRailsアプリケーション開発者としてはなるべく型は書きたくない派閥に属しています。でもライブラリ作者としては型をつけておくと利用者が嬉しいだろう、という気持ちがあります。 そんな折gimeiにPRがきたので、重い腰を上げて型を導入したときのメモを…

gimeiのv1.3.0をリリースしました

Release v1.3.0 · willnet/gimei 特に機能面の追加はありません。 @greendropさんのPRにより型を導入した Ruby3.3のサポート この2つがメインの修正です。型の導入は思ったより大変でしたが、お陰でRBSによる型づけについての理解が深まりました*1。 どうぞ…

Railsの設定をアップグレードしていく技術

このエントリは SmartHR Advent Calendar 2023の21日目の記事です。 Railsのバージョンを上げる作業は、単に新しいバージョンのgemをインストールするだけでは終わりません。Railsの新しいバージョンに沿った設定項目を確認し、適宜適用していく必要がありま…

wkhtmltopdf_binary_gemのdebian12対応をしました

wkhtmltopdfの次どうするか問題 の余談でwkhtmltopdf_binary_gemにM1 mac対応のPR出しましたという内容を書きましたが、現時点でまだマージされる気配はありません。 そんな中、debian12(bookworm)がリリースされてDocker Hubのruby公式イメージでも使われる…

Kaigi on Rails2023で例外について発表してきました

Kaigi on Rails初のオフライン開催であるKaigi on Rails 2023で登壇する機会をいただけました。 例外は遅い 資料と動画は こちら から辿れます。 ちょっと間が空いてしまいましたが、以下登壇に関連してつらつら思いついたことを書いています。 なんでこの題…

ci_loggerのv0.7.0をリリースしました

Release v0.7.0 · willnet/ci_logger これまではRails.loggerだけが対象だったのですが、v0.7.0からは次のように、任意のloggerをラップできるようになりました。 your_logger = CiLogger.new(your_logger) your_logger.debug('debug!') # これはテストが失…

大阪Ruby会議03でflaky testについて話してきました

前回の大阪RubyKaigi02に続き、大阪RubyKaigi03でも登壇機会をいただけました。 スライドはこちら。 感想 自分含めみんなflaky testで疲弊しているので、それを仕組みで解決したいぞ、みんなで仕組みを作っていこうぜという発表でした。10分の発表は思ってい…

ci_loggerのv0.6.0をリリースしました

失敗したテストのログだけを出力するぞ - おもしろwebサービス開発日記で 現時点(v0.3.0)ではRSpecのみに対応しています。minitestで使いたい人はPRお願いします :pray: と書きましたがv0.6.0ではminitest対応を入れました。minitest派の方もどうぞご利用く…

Active Recordで関連先を保存するときに気をつけること

先日、仕事でRails(Active Record)の難しい仕様に遭遇したので共有するためにエントリをしたためました。似たようなケースに遭遇した人の手助けになれば幸いです(\( ⁰⊖⁰)/) 対応Railsバージョンと設定 Rails6.1以上 config.active_record.has_many_inversing…

TokyuRuby会議14でmrskについてLTしました

TokyuRuby会議14に参加してLTしてきました。 スライドはこちら。 発表について mrskは個人的にかなり推しているプロダクトで、これの存在により仕事でも個人でも今より安いインフラを活用する選択肢を取りやすくなったと感じています。とりあえず僕が今運用…

Rails 7.0.5以降におけるcreate_associationメソッドの挙動変更についてまとめ

この件、関連するPRやIssueが複数あってコメントも分散しており、人に説明するのがややこしいのでブログとしてまとめたものになります。間違いや意見などあったらコメントください! 追記(2023/08/02) 7-0-stableブランチに今回の変更をrevertするコミットが…

gimei 1.2.0をリリースした

久しぶりに新しいPRがきたので、確認ついでにGitHub Actionsなどの設定も見直して1.2.0としてリリースしました。やっぱり長く運用しているリポジトリだと定期的に見直しが必要ですね…。

株式会社ウィルネットは設立6周年を迎えました

2月21日は弊社の設立記念日です。6周年あっという間ですね。 今日は弊社の設立記念日なのでケーキでも食べたいな、と思ってコンビニに来たがいい感じのものがなかった。来年はケーキ屋で予約でもしようかなあ— willnet (@netwillnet) February 21, 2023 おお…

miucheeをサービス終了します

10年ほど前にサービス開始したmiucheeですが、この度Twitter API有料化を受けてサービス終了することにしました。 10年前はぼくの両親の携帯電話はガラケーでしたが、今となっては二人ともスマホを使うようになり、みてね 経由で孫の写真を共有したり、facet…

wkhtmltopdfの次どうするか問題

wkhtmltopdfというライブラリは、HTMLからPDFを生成してくれるライブラリです。Rubyからだとwicked_pdfや pdfkit 経由で使われることが多いです。 さてそんなwkhtmltopdfですが、GitHubリポジトリ を見るとわかるようにアーカイブされてしまっています。公式…

失敗したテストのログだけを出力するぞ

表題の通りのことができるgem、CiLoggerが便利ですよという話です。 私達は大量のテストをCI上で実行しています。テスト結果を見れば失敗理由が自明なものもありますが、E2Eテストなどでよく起きる「たまに失敗するテスト」の調査はログやスクリーンショット…

iCARE Dev Meetup #34で登壇しました

【iCARE Dev Meetup #34】10年続くRailsアプリ開発のために大事なこと - connpass 所感 長期間アプリケーションを無理なく運用していくには内部品質を一定以上に保つ必要があり、それに注力するためには発表で話した「ふつうのこと」に対するエンジニアをは…

`Thread.current[:hoge]`はスレッドローカル変数を参照していると思いきや実際はファイバーローカル変数だった

このエントリはSmartHR Advent Calendar 2021の23日目の記事です。 SmartHRでは毎週「Rubyist@SmartHR(仮)」という名の定例ミーティング*1が行われています。このミーティングはバックエンドエンジニアが集まり、チームをまたいだ情報共有や相談をすること…