このブラウザ バージョンのサポートは終了しました。サポートされているブラウザにアップグレードしてください。
The Ruby Compiler Survey is a project cataloguing, preserving, and dissecting compilers for the Ruby programming language. In this context, a compiler is something that eventually produces machine code from Ruby code, whether that’s ahead-of-time or just-in-time. There are a surprisingly large number of attempts to write compilers for Ruby, using very varied approaches, so a comparative study is i
こんにちは、ydahです。 2021年の12月から株式会社アンドパッドでソフトウェアエンジニアとしてANDPAD検査の開発に携わっています。 昨年、息子が生まれてから夜更かしすることがなくなり、早朝に起きては軽くジョギングをしてから、OSSプログラミングにいそしむのが朝のルーティンになった今日このごろです。 さて本稿では、Rubyの例外処理を眺めていたらrescueがグローバルなオブジェクトを破壊するケースがあったんですよという話と、その対策について話したいと思います。 発生していたケースについて 突然ではありますが以下のコードをご覧ください。 この中にグローバルなオブジェクトを壊してしまうrescueがいます。 # 1 begin raise 'foo' rescue ArgumentError end # 2 begin raise 'foo' rescue => ArgumentEr
This book is an up-to-date, well-organized knowledge base for anyone dealing with CSV files as a Ruby developer. From simple actions like reading and creating CSV files to processing CSV with Rails, parsing large files, and using advanced preprocessors, this book will be your companion. This is a book by Paweł Dąbrowski, creator of the Long Live Ruby blog. I have been working with CSV and Ruby for
週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Ruby 🔗 procとlambdaの違い(Ruby Weeklyより) 元記事: The difference between procs and l
Ruby向けに、vscode-ruby-lightというVSCode拡張をつくっています。この拡張は、利用者に特にRubyのインストール要求することなく、シンタックスハイライトやカーソル操作など、VSCode標準の機能よりちょっと良い編集体験を提供しようという目的の拡張です。 最初は「メソッドやブロックをもう少し上手く選択できるようにしたい」というモチベーションで調べ始めたのですが、気付けば色々な機能を持つVSCode拡張が出来上がっていました。この記事では、幾つかの機能を紹介しながら、関連する話を書いていこうと思います。 Selection Range VSCodeにはExpand Selectionというコマンドがあり、選択範囲を拡大したり狭くしたりできます。このコマンドには、例えばWindowsであればデフォルトでShift + Alt + →にショートカットキーが割り当てられていま
estie でソフトウェアエンジニアをしている徳永(@yTo_9)です。 estie では Ruby を書いたりTypeScriptを書いたりしています! estie 夏のブログ祭りにかこつけて、せっかくなら普段は追わない部分だけど、気になっていたYJITなるものを深掘りしてみようと思い、「YJITがなぜRailsアプリケーションの高速化を実現できたのか」を調べてみたので紹介したいと思います。 「どうせ難しいんでしょ?」と思いながら調べてみたのですが、講演や論文の説明がわかりやすく、意外に概要を把握することは難しくありませんでした。 YJIT の核となっているのは Lazy Basic Block Versioning (LBBV) という手法で、これはRubyだけに限らず動的言語全般に適用可能な強力なアプローチであることがわかりました。 「あるタイプの条件分岐は、ほとんどの場合で片側しか
Ruby Gems で Rust が Native として利用可能になった のでとりあえず UUIDv4 を生成してみた。 リポジトリ 準備 Ruby 側の gem に Rust を利用する準備として rb_sys と rake-compiler を利用します。この二つの gem は native compile するためにインストールしておきます。 Rust 側から Ruby へ関数を公開するために rb-sys と magnus を利用します。 gem install とりあえず cargo で Rust のパッケージを作って Rust を書いてみます。 > bundle gem rust_uuid --mit --ext rust_uuid # --ext を指定してnative build する gem を作成 > cd rust_uuid # 作成した gem のディレクトリへ移
(This is Part II of the Faster Ruby posts, which started with a retrospective on Ruby+OMR, a Ruby JIT compiler I worked on five years ago) As someone who comes from a compiler background, when asked to make a language fast, I’m sympathetic to the reaction: “Just throw a compiler at it!”. However, working on SpiderMonkey, I’ve come to the conclusion that a fast language implementation has many movi
世は Ruby 3.x で RBS わっしょい時代ですが、あえて今 YARD と Solargrpah の話。 目的Ruby の開発でも JavaScript 並とは言わないまでもある程度カジュアルにエディタ / IDE の補完を利用し、TypeScript 並とは言わないまでも静的型の恩恵に与った、フィードバックが早くて安心感のある開発を行いたい。 結論YARD + Solargraph ( + LSP ) でそれなりに快適になるのですぐやるべき。 案Ruby で静的な型チェックを行う方法はいくつかあるが、今回は以下の二つを試した。 RBS + SteepYARD + Solargraph今回は RBI + Sorbet は試していない。これは以前(だいぶ前)試した1 時に native extension の挙動が変だった記憶があってちょっと苦手意識があるのと、RBI か RBS かで
概要 旧redis gemの課題 増え続けるコマンドのサポート負荷 RESP2しか対応できていない 新redis-client / redis-cluster-client gemsによる解決 新規コマンド対応の柔軟化 RESP3のサポート その他の背景 redis-rbとしてGitHubのOrganizationを新規に作成した理由 新redis-client gemと新redis-cluster-client gemとを分けた理由 旧redis gemの今後 最後に 概要 インフラストラクチャーグループの春日です。 Ruby で Redis を扱う際は redis gem がよく使われてきました。 しかし色々と課題が出てきたため、それらを解決すべくRedisのバージョン6以上に対応した redis-client gem が作られた話をします。 Gem 説明 メンテナー redis 長年
去年のやつ 今年参加するためにやったこと 作ったもの一覧 rubocop-isucon mysql2-nested_hash_bind datadog_thread_tracer itamae-plugin-recipe-rust itamae-plugin-recipe-datadog isucon-snippets チェックリスト Datadog Datadogでalpを実装した。 Datadogダッシュボード ISUCON数日前にDatadogのダッシュボードがバグって困った ISUCON12の予選問題 自分が予選当日に書いたコード プロビジョニング用のItamae 競技用コード スコア用issue PRベースで振り返り 初期セットアップ (3035 -> 1297) rubocopでauto correct (1297 -> 1757) Docker剥がし (1757 -> 153
(🇯🇵 Japanese translation thanks to @hachi8833) (🇰🇷 Korean translation thanks to @heka1024) I recently created a new Ruby gem: the gvl-tracing gem. This gem can be used to generate a visualization of what your Ruby threads are up to: Click Open Example 1 to explore this example. Alternatively, download example1.json.gz and open it with the Perfetto UI. Example code is from example1.rb. Interest
霧矢あおい(KOBA789)です。 タイトルのとおり、ISUCON12予選に Ruby で出場して8位で予選通過しました。最終スコアは34635(ベストと等しい)です。 本戦出場は ISUCON9 ぶり2回目です。 チーム「ソレイユ」 今年は私の多忙もあってチーム解散の危機だったんですが(チームメイトにはご迷惑をおかけしました)、無事いつものチームで出場することができました。 ひとりチームからソレイユへの移籍に際して運営さんにお手伝いいただき、無事移籍を成功させたときの様子。 というわけでメンバーは以下: 星宮いちご(osyoyu id:tomo_ari) 霧矢あおい(KOBA789 id:koba789) 紫吹蘭(s4ichi id:everysick) アイカツ劇場版公開おめでとうございます。忙しくてまだ観られていません。 たたかいのきろく うちのチームは例によって Git をほぼ使っ
こんにちは、ujihisa といいます。現在スタディサプリのProduct Platform の Software engineerとしての仕事を行っています。先月から社内留学で、開発支援チームからコーチングチームに一時的に移籍して、そちらの仕事をやっています。 Rubyのコードの書き方 まずは全体的なコーディングスタイルなどについて。 現在社内で統一的に使用しているコーディングスタイルの標準化などはとくに行われておりません。各チームごとに、それぞれのチームが開発運用している (= ownershipをもっている) コンポーネントそれぞれに対して個別のRuboCop設定などはあります。また、複数のチームの境界にある、歴史的な共有サービスに関しては (そう、まだあります、そしてこれは今後もかなり長いあいだ付き合っていくことになるでしょう) testdouble/standard というTes
はじめに ruby-jpのSlackで以下のような質問が投稿されていました。 クラスメソッドとインスタンスメソッドの具体的な違いがわかりません。 現状「クラスメソッドはクラスから実行でき全体に関する処理を書くときによく使うもの。インスタンスメソッドはインスタンスから実行でき、個別具体的な処理を書くときに使うもの。」という理解をしています。そして実装の際に「これはクラスメソッドとインスタンスメソッドどちらで書くべきなのか」悩むケースが多いです。 上記を踏まえて質問です。 クラスメソッドとインスタンスメソッドの具体的な違いを皆さんはどのように定義しているか どこからがクラスメソッドでどこからがインスタンスメソッドなのかの境目はどのあたりにあるか をお伺いしたいです! クラスメソッドとインスタンスメソッドの使い分けは僕がメンターをやっているフィヨルドブートキャンプでもよく見かける質問です。 そこ
Ruby Evolution A very brief list of new significant features that emerged in Ruby programming language since version 2.0 (2013). It is intended as a “bird eye view” that might be of interest for Ruby novices and experts alike, as well as for curious users of other technologies. It is part of a bigger Ruby Changes effort, which provides a detailed explanations and justifications on what happens to
pixiv事業本部の丸山(alitaso)です。 ピクシブは『中高生国際Rubyプログラミングコンテスト2022 in Mitaka』に Platinum スポンサーとして協賛します。昨年の2021年大会に続いて2度目のスポンサーシップになります。 中高生国際Rubyプログラミングコンテストとは https://www.ruby-procon.net/ 中高生国際Rubyプログラミングコンテストは、子どもたちがプログラミングを学び、 自分でコンピューターを動かしたときの感動やつくった作品を発表する経験を通して、 新しい世界への興味や関心を呼び起こし、将来への夢をはぐくむことを目的に実施します。 今回で12回目となる本大会は中高生を対象にRubyプログラミングで開発した作品を発表する場として根付いています。昨年の2021年大会は約100名の学生さんから応募がありました。 なぜピクシブがスポン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く