こんにちは、ujihisa といいます。現在スタディサプリのProduct Platform Team で Product Platform Engineerとして仕事を行っています。 Ruby 3.2 3ヶ月ちょっと前の2022-12-25 (JST) に、Ruby 3.2.0がリリース されました。2023-03-05現在の最新安定版はRuby 3.2.1です。 スタディサプリではRailsなどのwebアプリケーションが26個あり、それ以外も含めると全部で29個のRubyのプロジェクトがあります。記事執筆現在、これらの中で最も古いRubyバージョンは3.0.4です。 一般に、プロジェクトでは常に最新のバージョンのRubyが使えるべきで、当たり前ですが最新バージョンの新機能をうまく使っていって仕事を進めることができるのはとても気持ちいいですよね。逆に、最新バージョンが使えないならば、今後
Rails(というかActiveRecord)に型を付けるのは大変だが、Railsが絡まないrubygemにはそんなに苦労なく型が書けるので、これからgemを書く時には型を書きたいという人向けに今のところオススメの設定を紹介します。 というか自分が忘れるのでまとめておきます。 現状とはsteep-1.3.1, rbs-2.8.4を指します。 rbsは既に3系が出ていますが、一般利用者が型検査に利用する場合はsteepを使うはずで、steepはまだrbsの3系に対応していません。また、rbs-3.0で多少変わっているところもあるので、割と寿命が短い話かもしれません。 設定例 とりあえず結論から。Steepfileとrbs_collection.yamlを修正します。 Steepfile: D = Steep::Diagnostic target :lib do signature "sig"
Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。monochrome氏は、Ruby処理系「monoruby」について発表しました。 高速な実行が可能なRuby処理系「monoruby」monochrome氏(以下、monochrome):monochromeといいます。今日は「機械語で書くRuby処理系のその後」ということで、前回の発表のその後を報告いたします。 自己紹介です。monochromeといいます。(スライドを示して)Twitterはこれです。最近、Twitterは治安が悪いので、Mastodonにアカウントを作りました。RustでRubyの処理系を作っています。プログラミング処理系、言語処理系が好きな人の集まりのSlackとか、最近はこの「Zulip」というアプリに移動して、こち
前回のあらすじ Ruby Parser開発日誌 (4) - かねこにっき Error Recoveryに関する理解も深まり、Rubyのparserへ実装するために3つの実装方法を検討しましたが、どれもあまり簡単な方法ではありませんでした。この問題を解決するためにLALR parser generatorを実装したので今回はその紹介をしたいとおもいます。 Lrama LALR (1) parser generator github.com 前回検討したとおりBisonを使ってError RecoveryをRubyに実装していくのは困難を伴います。これを解決するために自前でparser generatorを実装し、generatorおよびtemplateの両方を自分で管理するという方法を思いついたので実装しました。 名前の由来 Lramaでリャマと読みます。LALR parser genera
Rubyist Hotlinksにインスパイアされて始まったイベント『Rubyistめぐり』。第1回は高橋征義さんをゲストに迎えて、お話を聞きました。 パーソナルコンピュータとの出会い 藤村:こんばんは、藤村と申します。STORES のCTOをやっています。Rubyist Hotlinksをプログラミングを始めた頃にめっちゃ読んでて。 高橋:あれいいですよね。 藤村:いい。プログラマがどういう人たちなのか、なんとなくわかるみたいな、めっちゃ好きなコンテンツだったんですよ。で、ある日、これをもっとやった方がいいと思ったので、弊社でもやってみようとなったのがこのRubyistめぐりですね。ということで第一回は高橋会長に来ていただきました。なぜかというと、この STORES を手伝ってくださっているからというところでございます。 高橋:その話はあんまり外でしてないので、あらかじめお話しておきます
I’m Takashi Kokubun (@k0kubun), a Staff Developer at Shopify who works on optimizing YJIT full-time, which is Ruby’s production-grade JIT compiler written in Rust. While I work solely on YJIT during my work hours, I’ve also maintained another JIT in Ruby, MJIT, in my spare time. This year, I proposed to change the MJIT’s design to simplify the Ruby VM, which will ultimately make the YJIT developme
full diff1: 55367b3...22d944c Description This PR replaces the current implementation of MJIT with a new JIT called "RJIT" 2. RJIT uses a pure-Ruby assembler to generate native code MJIT requires a C compiler at runtime. YJIT requires a Rust compiler at build time. RJIT doesn't require them. This means that RJIT's warmup could be slower than YJIT, but it's still much faster than MJIT's. The code g
おはようございます こんにちは こんばんは。 UUUMのシステムユニットのmatsumotoです。 先日、RubyCriticという静的解析ツールを導入しましたので紹介します。 RubyCriticとは? RubyCriticはrubyコードを静的解析するツールです。rubygemで提供されています。 ファイル毎の複雑度や重複した記述などを指摘してくれます。 解析結果はブラウザ上で確認できます。 導入に至った経緯 自分が担当しているシステムには既にメジャーな静的解析ツールであるRubocopが導入されており、コーディング規約に準拠してるかのチェックは行えていました。 しかし、より可読性、保守性が高いコードを書くためにもコーディング規約のチェックに加え、ファイル毎の複雑度や重複箇所などもチェックされるようになると良いと思いました。 また、RubyCriticを導入する事によってレビュー前にコ
はじめに Ruby on Rails (以下Rails) でバックグラウンドジョブを実行する際に一番よく使われているのGemである、Sidekiqのバージョン7.0(以下Sidekiq 7)が2022年10月にリリースされました。 このバージョンでは、管理画面へのメトリクスの追加、Pumaなどのプロセスへの埋め込み、キュー毎の同時実行数を制限するカプセルなど、以前よりも大きな機能追加が行われています。 本記事では、Sidekiqの公式サイトの記事や、GitHubの公式プロジェクトの内容を元に、Sidekiq 7の新機能や変更点の解説を行います。 注意点 本記事で取り扱うエディション 本記事ではGitHubで公開しているOSS版のSidekiqについて記述しています。Pro / Enterprise版を使用している場合は、公式サイト(英語)を参考にしてください。 サポートされるRails /
こんにちは、CTOの @harukasan です。2023/02/24をもってプログラミング言語Rubyが30周年を迎えたとのこと、大変おめでとうございます。 Rubyに支えられている企業の一社として感謝を示したいと思い、この記事を書くことにしました。 ピクシブとRuby ピクシブでは多くのサービスでRuby on Railsを利用しています。2012年にリリースされた国際版pixiv β(現在は提供終了)を皮切りに、pixivコミック、BOOTH、pixiv FACTORY、pixiv Sketch、Palcy、VRoid Hub、pixiv Adsと数々のプロダクトでRuby on Railsが採用されてきました。 2012年6月にリリースされたpixivコミックはRails 3.2でリリースされ10年以上にわたり同じコードベースで開発が続けられています。余談ですが、pixivコミック
Ruby 3 の静的型解析について 私が業務で Ruby を書いていた時期は数年前で最近の Ruby についてキャットアップが遅れていました。 最近は Go・TypeScript など型を書くことがほとんどなので Ruby 3 系で導入された型解析について気になっていました。 Ruby って型が無いよねと肩身が狭い生活をしているので(型だけに)、Ruby でも出来らあっ!というところを見せたいと考え書いてみることにしました。 作るもの HackerNews API を利用して HackerNews の API Client を作ります。要件は以下です。 gem として実装する これはなんやかんやで私が gem を書いたことがないので勉強の一環です。特に gem で書く必要はありません rake タスクを実行すると Hacker News のトップページに相当する情報(タイトル, point
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: New in Ruby 3.2 - Data.define - DEV Community 👩💻👨💻 原文公開日: 2022/10/06 原著者: Brandon Weaver 参考: class Data (Ruby 3.2 リファレンスマニュアル) Victor ShepelevことZverokが、RubyにData.defineという実に便利な機能をもたらしました。以下はマージ済みのプルリクです。 PR Add Data class implementation: Simple immutable value object by zverok · Pull Request #6353 · ruby/ruby Rubyでの議論は以下です。 issue: Feature #16122: Data: simple im
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Gemfile of dreams: the libraries we use to build Rails apps—Martian Chronicles, Evil Martians’ team blog 原文更新日: 2024/05/28 原著者: Vladimir Dementyev(首席バックエンドエンジニア)、Travis Turner(技術記事編集者) サイト: Evil Martians -- ニューヨークやロシアを中心に拠点を構えるRuby on Rails開発会社です。良質のブログ記事を多数公開し、多くのgemのスポンサーでもあります。 日本語ブログ: 合同会社イービルマーシャンズ - Qiita 日本語タイトルは内容に即したものにしました。また、gemごとにGitHubリポジトリへのリンクカードも追加してあ
最近Rubyを学び直したり、アルゴリズムの基礎練をしたりしているのだが、debug.gemおよびvscode-rdbgが便利すぎるので紹介。 debug.gemやvscode-rdbgとは debug.gem( https://github.com/ruby/debug )とは最近のRubyのモダンなdebugger。これまでlib/debug.rbやbyebug、debaseなどがあったが、それらのいくつかの課題を解決したdebuggerとなっている。Ruby 3.1 の debug.gem を自慢したい - クックパッド開発者ブログ に背景や基本的な使い方が詳しく載っている。 またRubyKaigi 2022のruby/debug - The best investment for your productivity - RubyKaigi 2022でも紹介された。Scriptable
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く