並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 947件

新着順 人気順

rubyの検索結果41 - 80 件 / 947件

  • Ruby: メモ化のイディオムが現代のRubyパフォーマンスに与える影響(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Performance impact of the memoization idiom on modern Ruby | Rails at Scale 原文公開日: 2024/02/14 原著者: Jean Boussier(byroot) Ruby 3.2における主要な内部変更のひとつに、オブジェクトシェイプ(object shape)の導入があります。 本記事では、オブジェクトシェイプが導入された理由、仕組み、制限事項について解説します。 🔗 オブジェクトのインスタンス変数はどのように保存されるのか Rubyは非常に動的な言語なので、インスタンス変数へのアクセスという単純な操作でも多くの作業を伴います。 Rubyオブジェクトは、ほとんどの場合インスタンス変数を「参照の配列」に保存します。 たとえば、インスタンス変数を2個持つ

      Ruby: メモ化のイディオムが現代のRubyパフォーマンスに与える影響(翻訳)|TechRacho by BPS株式会社
    • いかにして動的型付けのRubyに静的な型検査を持ち込むか? SteepとRBSが目指すもの - Findy Engineer Lab

      Rubyをはじめとする「動的型付け」のプログラミング言語は、ソースコード中に型に関する記述が陽に出てこないことが特徴で、プログラムの実行前に(静的に)型検査をすることはありません。しかし、このようなプログラミング言語においても、大規模な開発における品質の向上や開発体験の改善、実行の高速化のために、静的な解析を活用しようという試みは多くなされてきました。この記事では、動的型付けの言語のための型検査の歴史を簡単に振り返って、現在私が開発しているRuby向けの型検査器Steepとその基盤となっている型記述言語RBSについて説明し、今後の展望を議論します。 著者:松本宗太郎さん(@soutaro) Rubyコミッター。大学院でRubyプログラムの型検査の研究に取り組み、修了後はスタートアップでWebアプリケーションの開発に従事。2017年から型検査ツールSteepの開発を始め、2019年からはRu

        いかにして動的型付けのRubyに静的な型検査を持ち込むか? SteepとRBSが目指すもの - Findy Engineer Lab
      • 「競プロの神」と「Rubyの神」が考える、生成AI時代のエンジニアとプログラミング言語

        2024年春、「競プロの神」と「Rubyの神」がホンネで語り合った。 競プロの神は、日本最大の競技プログラミング(競プロ)サイト「AtCoder」を率いるchokudaiこと高橋直大(たかはし なおひろ)さん。Rubyの神は言うまでもなく、Rubyの開発者である、Matzことまつもとゆきひろさんだ。 神々が対面したのは、学生エンジニアのキャリアや就職活動(就活)を支援する「サポーターズ」が、エンジニアを目指す学生のために開いているオンラインカンファレンス「技育祭2024春」のプログラム「競プロの神とRubyの神のエンジニア対談~神々の一問一答~」。 最初は“神”の呼称に困惑していた2人だが、chokudaiさんは「競技プログラミングサイトで一番はやっているのはAtCoder。僕はそこでユーザーをBANする権限を持っているので神じゃん、と思いました」と納得。まつもとさんは「僕は、Rubyコミ

          「競プロの神」と「Rubyの神」が考える、生成AI時代のエンジニアとプログラミング言語
        • 自作のRubyの動的解析ツールを使って、モジュラーモノリスの境界を試行錯誤している話 - SmartHR Tech Blog

          DPE(Developer Productivity Engineering)ユニットに所属している、alpaca-tcです。 最近モジュラーモノリス化を進めるためにRuby動的解析ツールを作ったので、その話をします。 📝 私事ですが、新潟の佐渡島に移住しました。新潟や佐渡島のRubyistの方がいらっしゃいましたら、ぜひRubyKaigiでお友達になってください! SmartHRではRailsのモジュラーモノリス化を検討をしているよ Railsにおける「モジュラーモノリス」は、アプリケーションを拡張性のある構造にするために、単一プロセスでモノリスアプリケーションを区分されたサブセット(モジュール)に分割するアーキテクチャのことです。 SmartHRでは、コード量が多いプロダクトでモジュラーモノリス化を進めています。 すでに新規機能の開発では導入されていますが、既存コードのモジュラーモノ

            自作のRubyの動的解析ツールを使って、モジュラーモノリスの境界を試行錯誤している話 - SmartHR Tech Blog
          • Ruby公式「Pythonとの違い」から学ぶ、Pythonの「Rubyとの違い」

            はじめに 隔週で開催される社内勉強会で、Python の基本的な言語仕様を紹介するために Ruby 公式の「PythonからRubyへ」というドキュメントを用いた回が意外に盛り上がったので記事にします。 Ruby コミュニティのメンバーによって運営されている Ruby 公式サイトに掲載されているドキュメントで、Python 使いが Ruby と Python の言語仕様の違いを理解するのにぴったりな内容となっています。 今回、こちらのドキュメントの「Python との違い」の章を一部「Ruby との違い」に読み替えて、Ruby 使いに向けた Python との言語仕様の比較を行いたいと思います。 Rubyと違って、Pythonは… Pythonと違って、Rubyは… 引用: PythonからRubyへ 文字列は不変です。 文字列は可変です。 引用: PythonからRubyへ Python

              Ruby公式「Pythonとの違い」から学ぶ、Pythonの「Rubyとの違い」
            • 技術書典15で「AWSとRubyではじめるサーバーレス入門」という本を頒布します!(サークル名: yuuu け09) - .logbook

              11月に開催される技術書典15で「AWSとRubyではじめるサーバーレス入門」という本を頒布します。 techbookfest.org 技術書典15は以下日程で、オンライン・オフライン同時開催です! オンライン: 11月11日(土)〜26日(日) オフライン: 11月12日(日) 11時~17時 techbookfest.org 紹介する本はオンライン・オフライン(ブース: か05)どちらでも頒布いたしますので、興味を持たれた方はぜひご購入ください! 表紙 今回はタイトルの通り、Rubyを使ってAWS上にサーバーアプリケーションを構築する方法を解説しており、ツールとしてAWS SAMを使用しています。 AWS SAMは解説記事によくリスのキャラクターが用いられているので、表紙にもリスを描いてもらいました。 表紙・裏表紙 内容 前述の通り、いわゆる「サーバーレス」なアプリケーションをハンズオ

                技術書典15で「AWSとRubyではじめるサーバーレス入門」という本を頒布します!(サークル名: yuuu け09) - .logbook
              • Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp

                Ruby 3.3リリース! 新機能解説 Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす 2023年12月25日、Ruby 3.3.0がリリースされ、様々な新機能が加えられました。本連載では実際に携わった皆さんにその新しいRubyをご紹介いただきます。 RubyはJust-In-Time(JIT)コンパイラという機能を備えており、これを有効化すると実行時に機械語を生成して様々な最適化が行なわれ、実行が高速になります。Ruby 3.3にはYJITとRJITという2つのJITコンパイラがあり、デフォルトでは無効になっていますが、それぞれ--yjitと--rjitで有効化できます。 この回では、Ruby 3.3でYJITの性能特性が変化した点や、YJITに新たに追加された便利な機能、またRJITはどのように使うものであるかについて解説します。 YJ

                  Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp
                • Ruby on Rails: The Documentary

                  Ruby on Rails has one of the most faithful communities online, it also has one of the most controversial, rabble-rousing creators out there, Danish programmer, David Heinemeier Hansson. Widely known as DHH, David tells us how Rails went from a crazy idea to one of the most talked-about full-stack frameworks over the course of 20 years. Get the whole spill by the people who had a front-row seat t

                    Ruby on Rails: The Documentary
                  • 島根県が使ったドメイン、第三者が再取得で注意喚起 新型コロナやRuby関連事業など

                    島根県は1月15日、県が過去に使用したドメインが、運用停止後にオークションサイトで売買されるなどして第三者に再取得されていることが分かったと発表した。各ドメインにリンクを張っているサイトの管理者に対して、リンクの削除を依頼している。 再取得されていることが分かったのは、「島根県新型コロナ対策認証店認証制度」(shimane-ninsho.jp)、「スモウルビー・プログラミング甲子園開催事業」(smalruby-koshien.jp)、「しまねものづくり人材育成支援 Navi」(shimane-monodukuri.jp)の3ドメイン。 「スモウルビー」とは、島根県松江市を中心に活動する「NPO法人Rubyプログラミング少年団」が開発しているOSS。「スモウルビー・プログラミング甲子園」は、スモウルビーを使った小中学生向けプログラミング競技会として2016年から21年まで開催されていた。

                      島根県が使ったドメイン、第三者が再取得で注意喚起 新型コロナやRuby関連事業など
                    • 品川 いちごスイーツ専門店「Very Ruby Cut(ベリールビーカット)」のいちごミルクサンド

                      「Very Ruby Cut(ベリールビーカット)」いちごより美味しいいちご 「東京ばな奈」「ねんりん家」などを手掛ける 洋菓子製造・販売メーカー「グレープストーン」による いちごスイーツ専門店「Very Ruby Cut(ベリールビーカット)」。 コンセプトは“いちごの魅力を料理する、いちごスイーツ専門店”。 世界中から“おいしい苺”を選りすぐり、さらに美味しく料理して、 “いちごよりおいしい いちごスイーツ” を生み出すのだそう。 連日売り切れの人気商品、 「いちごバターサンド」が欲しかったのだけれど、 一日50個、8時と17時の時間限定販売と言うことで断念。 朝の8時も夕方の5時も、 品川駅って無茶苦茶混んでるじゃない。 50個ってさー、一人5個買ったら先着10人よ。 一体何時から並べば買えるのか。 わたし、基本はテレワークなのだけれど、出勤の時は朝8時には会社についてる。 うちは就

                        品川 いちごスイーツ専門店「Very Ruby Cut(ベリールビーカット)」のいちごミルクサンド
                      • Ruby 3.3.0 リリース

                        Ruby 3.3.0 が公開されました。Ruby 3.3ではPrismという新しいパーサーの追加、新しいパーサージェネレーターであるLramaによるBisonの置き換え、RJITという新たなJITの仕組みを追加、YJITの高速化など様々な改善が行われています。 Prism default gemとしてPrismパーサを導入しました。 Prismは、Ruby言語のためのポータブルで、エラートレラントで、保守可能な再帰下降パーサです。 Prismは本番環境で使用する準備が整っており、積極的にメンテナンスされています。Ripperの代わりに使用することができます。 Prismの使用方法については、詳細なドキュメンテーションがあります。 Prismは、CRubyに内部的に使用されるCライブラリと、Rubyコードを解析する必要がある任意のツールに使用できるRuby gemの2つのコンポーネントを持っ

                        • 技術的負債の借り換え on Ruby and Rails update

                          https://kaigionrails.org/2023/talks/ginkouno/ Kaigi on Rails 2023登壇時の資料です。

                            技術的負債の借り換え on Ruby and Rails update
                          • Debugbar: Powerful devtools for Ruby on Rails

                            Powerful debugbar for Ruby on Rails Get a better understanding of your application performance and behavior with the debugbar.

                              Debugbar: Powerful devtools for Ruby on Rails
                            • 『家族アルバム みてね』はRuby 3.3で動いています

                              こんにちは、みてねプロダクト開発部 プラットフォームグループ SREチームの kohbis です。 『家族アルバム みてね』(以下、みてね)では、ほとんどのサーバーサイドをRuby on Railsアプリケーションで展開しています。 そしてタイトルの通りですが、2024年6月時点でみてねのアプリケーションのすべてにおいてRuby 3.3.3へのアップグレードが完了したので、その結果について紹介したいと思います。 Ruby 3.3アップグレードの結果以下はみてねの主なAPIを提供しているアプリケーションのグラフ(平均)です。 Ruby 3.3リリースのタイミングで大幅にレスポンスタイムが改善していることがわかります🙌 Ruby 3.3へのアップグレードでおおよそ10%の速度改善を得られました。 グラフにはありませんがp95やp99も同様の割合、つまり速度としてはより大幅な速度改善にいたって

                                『家族アルバム みてね』はRuby 3.3で動いています
                              • Ruby 3.3.0+YJIT本番運用カンパニーになりました - Timee Product Team Blog

                                こんにちは。バックエンドエンジニアの須貝(@sugaishun)です。 今回はタイミーが本番運用しているRailsアプリケーションに対してRuby3.3.0へのアップデートを行った(YJITは引き続き有効なまま)のでその結果をご紹介したいと思います。 昨年弊社のid:euglena1215が書いたエントリーのRuby3.3.0版です。 tech.timee.co.jp 前提 タイミーのWebアプリケーションとしての特性は基本的には昨年と変わりありません。ですので、昨年の内容をそのまま引用させてもらいます。 タイミーを支えるバックエンドの Web API は多くのケースで Ruby の実行よりも DB がボトルネックの一般的な Rails アプリケーションです。JSON への serialize は active_model_serializers を利用しています。 今回の集計では API

                                  Ruby 3.3.0+YJIT本番運用カンパニーになりました - Timee Product Team Blog
                                • 大阪Ruby会議03でHotwireを使ったモーダルUIを15分で作ってみました&基調講演裏話 #osrb03 - give IT a try

                                  はじめに 2023年9月9日に開催された大阪Ruby会議03で、基調講演(キーノート)を担当させてもらいました。 regional.rubykaigi.org 当日使った資料はこちらです。 発表のタイトルは"Enjoy Ruby programming, Enjoy Ruby community!"でした。 今回の基調講演ではちょっと攻めた取り組みとして、「Hotwireを使ったモーダルUIを15分で作る」というテーマでライブコーディングもしてみました。 www.youtube.com ライブコーディングには思わぬトラブル付きものですが、今回は何とかノートラブルで実装できました! 時間も15分以内(たぶん12〜13分ぐらい?)に収まりました〜😄 基調講演をするにあたって意識したこと 今回、基調講演を担当するにあたって「IT系カンファレンスの基調講演はどういうものであるべきか」を自分なりに

                                    大阪Ruby会議03でHotwireを使ったモーダルUIを15分で作ってみました&基調講演裏話 #osrb03 - give IT a try
                                  • 【ruby】値オブジェクトを使うと超読みやすくなるケース - Qiita

                                    年月の範囲をDateクラスで扱うのがダルい... 2023年1月、2023年2月...と月単位のラベルを持つグラフを作る 2023年1月号、2023年2月号...と月単位で提供される雑誌を扱う といった、年月を扱うケースでは、ただのDateクラスではちょっと役不足ですよね。例えば以下のようなコードを考えてみます。 require 'date' start_year_month = Date.new(2023, 9, 1) today = Date.today latest_year_month = Date.new(today.year, today.month, 1) # # 期間でループしたいとき # tmp_month = start_year_month while tmp_month <= latest_year_month pp tmp_month.strftime('%Y%m

                                      【ruby】値オブジェクトを使うと超読みやすくなるケース - Qiita
                                    • 「まるで研ぎ澄まされた日本刀のような美しさ」 僕がそれでもJetBrains製のRuby on Rails IDEを使う理由

                                      ソニックガーデンの執行役員兼プログラマーである遠藤大介氏が、JetBrains製のRuby on Rails IDE「RubyMine」の魅力について語りました。全2回。前回の記事はこちら。 Viewにもブレークポイントが張れる 遠藤大介氏(以下、遠藤):これはたまに、驚かれるんだけど。ControllerやModelにブレークポイントが張れるのは、当たり前じゃん。そんなのができなかったら、とりあえずIDEとしてどうよっていう話だから。 なんだけど、RubyMineはぶっ飛んでいて、Viewにもブレークポイントを張れるの。 植木宏氏(以下、植木):Viewに? Viewにブレークポイント? 遠藤:「どういうこと?」って思うじゃん。 植木:(笑)。 遠藤:ERBファイルってあるじゃん。ERBファイルって、「ここまで来た時、どうなってんのかな? なんか表示おかしいんだけど」とか、たまに、ちょっ

                                        「まるで研ぎ澄まされた日本刀のような美しさ」 僕がそれでもJetBrains製のRuby on Rails IDEを使う理由
                                      • サンプルコードでわかる!Ruby 3.3の主な新機能と変更点 - Qiita

                                        はじめに Rubyは毎年12月25日にアップデートされます。 Ruby 3.3は2023年12月25日に正式リリースされました。 この記事ではRuby 3.3で導入された変更点や新機能について、サンプルコード付きでできるだけわかりやすく紹介していきます。 ただし、すべての変更点を網羅しているわけではありません。個人的に「Railsアプリケーションの開発時に役立ちそうだな」と思った内容をピックアップしています。本記事で紹介していない変更点も多数ありますので、以下のような情報源もぜひチェックしてみてください。 動作確認したRubyのバージョン 本記事は以下の環境で実行した結果を記載しています。 フィードバックお待ちしています 本文の説明内容に間違いや不十分な点があった場合はコメント欄から指摘 or 修正をお願いします🙏 それでは以下が本編です! 言語仕様の変更→なし Ruby 3.3では言語

                                          サンプルコードでわかる!Ruby 3.3の主な新機能と変更点 - Qiita
                                        • Ruby フルタイムコミッタの仕事報告 2023年Q2-3 - ANDPAD Tech Blog

                                          こんにちは、hsbt です。前回のエントリからしばらく経ってしまい、引き続き原神や崩壊・スターレイルをプレイしつつ、アサシンクリード・ミラージュやスパイダーマン2など、ホリデーシーズンに向けたゲームラッシュでいよいよ時間がなくなってきました。 今回は RubyKaigi 2023 以降、主に 2023 年の夏から秋にかけての Ruby のフルタイムコミッタの活動についてご紹介します。 Euruko 2023 への登壇 今年の夏は Ruby 本体や RubyGems や Bundler の開発はもちろんのことですが、9月に開催された Euruko 2023 の登壇の準備が中心になりました。Euruko とはどういうカンファレンスなのかを知らない方のために簡単に紹介をします。 Ruby の国際カンファレンスには日本で開催される RubyKaigi 、米国で開催される RubyConf などがあ

                                            Ruby フルタイムコミッタの仕事報告 2023年Q2-3 - ANDPAD Tech Blog
                                          • Ruby知識ゼロから初参加したRubyKaigi 2024レポート - 共沸

                                            TL;DR 楽しかった! 本編 おはようございます。手札事故(twitter:@hand_accident)と申します。 Ruby知識ゼロから初参加したRubyKaigi 2024レポート、略してルゼロ*1という感じでやっていきたいと思います。 < Day 0 自己紹介でもしとくか。生まれ育った愛媛県松山市*2に帰って非IT企業でパソコン係をやっている過程で、すべてが個人開発の労働環境で趣味全ブッパ技術選定をした結果HaskellとNimを書くようになりました。すこしSvelteもします。 Rubyは名前を聞いたことがあるしちょっとニッチなPythonライブラリ探そうとしたら時々検索にgemが引っかかってそちらにはあるのねえという感想を抱くなどしていましたが何の因果か触ってみるには至らず、沖縄に来て初めてコードを見たまであります。 愛媛県松山市で趣味の音楽ゲーム(DDR)に高じていたところ

                                              Ruby知識ゼロから初参加したRubyKaigi 2024レポート - 共沸
                                            • Ruby 3.3(+YJIT)へのアップデートによるパフォーマンス変化の計測 - メドピア開発者ブログ

                                              こんにちは。サーバーサイドエンジニアの @atolix_です。 今回はメドピアで本番運用をしているアプリケーションの1つであるやくばと for Clinicにて、Ruby 3.2からRuby 3.3にアップデートを行った際のパフォーマンスの変化を計測しました。 Ruby 3.3ではYJITの大幅な改善が含まれているので、これによるアプリケーションへの影響を確認していきます。 www.ruby-lang.org gihyo.jp 前提 本記事に記載されたデータは以下の条件で計測をしています。 Rails: 7.1.3.4 YJIT有効化時のオプションは特に付与していない状態(Dockerfileから環境変数を与えて有効化) 3.2.4(+YJIT)から3.3.1(+YJIT)へのアップデート 有効化前後の1週間を比較 パフォーマンスの変化 やくばと for Clinicではモノレポのアプリケ

                                                Ruby 3.3(+YJIT)へのアップデートによるパフォーマンス変化の計測 - メドピア開発者ブログ
                                              • ChatGPT に Ruby など他のプログラミング言語も実行させたい - ブログのおんがえし

                                                ChatGPT はたくさんの種類のプログラミング言語のコードを出力できますが、直接実行できるのは現状 Python のみとなっています。Ruby など他の言語も実行することはできないかと考えていました。 1つのアイデアとして思いついたのは ChatGPT に生成したコードを Ruby on Browser に渡す URL を生成してもらい、それをクリックするだけで実行できるようにするという方法です。これなら他の言語でも URL 経由で実行できる処理系なら応用できそうです。(現状は ChatGPT 4 でのみ実行可能な模様) 下準備 まず Ruby on Browser に URL 経由でコードを渡す方法を用意する必要があります。もともとクエリーパラメータ q= で渡せるのですが、文字数を短くするために lz-string という Javascript のライブラリを使っておりそのエンコーデ

                                                  ChatGPT に Ruby など他のプログラミング言語も実行させたい - ブログのおんがえし
                                                • Why doesn't Ruby have Boolean class?

                                                  https://burikaigi.dev/speakers/004/ This is BuriKaigi, so I talked about "Boolean (Bu-rian)" :)

                                                    Why doesn't Ruby have Boolean class?
                                                  • RubyでSlackのボットを書く方法(なるべく自力で) - まめめも

                                                    RubyでSlackのボットを書くには、slack-ruby-client gemやruboty gemなどを使うのが一般的だと思います。 しかし個人的には、Slackボット程度でgemを使うのは好みでないので、なるべく素のRubyだけで書くようにしています。 その方法をまとめておきます。 Slack appを登録する まず、https://api.slack.com/appsで"Create New App"して、適当に設定をします。 次のYAMLを"App Manifest"に貼ってSave Changesすると一気に設定できます。 display_information: name: Sample Slack App features: bot_user: display_name: Sample Slack App always_online: true oauth_config:

                                                    • Ruby フルタイムコミッタの仕事報告 2023年Q4 - ANDPAD Tech Blog

                                                      こんにちは hsbt です。RubyConf Taiwan 2023 の登壇から帰国して後はバルダーズ・ゲート3をプレイして年を越すのみ...! とは行かず、Ruby 3.3.0 のリリースに向けて最後の準備作業をしている真っ最中です。 さて、今回はANDPAD Advent Calendar 2023の20日目として、今年1年私がプログラミング言語 Ruby の開発のために手を動かしてきた内容の中からテックブログやカンファレンスで発表していない内容をまとめてご紹介します。 default gems から bundled gems への変更の目的 私は数年前から Ruby に元々添付されていたライブラリ(標準添付ライブラリ)を default gems と呼ばれる gem としてもインストールやアップデートができる状態にし、そこからさらに bundled gems と呼ばれる Ruby 本

                                                        Ruby フルタイムコミッタの仕事報告 2023年Q4 - ANDPAD Tech Blog
                                                      • なぜRubyは30年間生き残ることができたのか? まつもとゆきひろ氏が考える、ソフトウェアプロダクトとしての3つの特異性

                                                        「Visionとリーダーシップ」というタイトルで登壇したのは、Ruby開発者のまつもとゆきひろ氏。30年続くRuby開発の中で学んだ「リーダーの役割」を、日本CTO協会主催の「Developer eXperience Day 2023」で発表しました。全3回。1回目は、Rubyが持つ特異性とまつもと氏が「慈悲深き独裁者」でいることで得られたメリット。 日本人で一番有名なプログラマー・まつもとゆきひろ氏 まつもとゆきひろ氏:こんにちは、まつもとゆきひろと申します。今日はですね、DXDカンファレンス(「Developer eXperience Day 2023」)で「Visionとリーダーシップ」というテーマでお話をします。よろしくお願いします。 今日はRubyのカンファレンスではないので、まず自己紹介から始めます。まつもとゆきひろと申します。こんなアイコンで活動していますけども、ふだんはひら

                                                          なぜRubyは30年間生き残ることができたのか? まつもとゆきひろ氏が考える、ソフトウェアプロダクトとしての3つの特異性
                                                        • Ruby の oneshot coverage で本番稼働中の Rails アプリの使用状況を収集して不要なコードを発見するための仕組みを導入した話 - DIGGLE開発者ブログ

                                                          前置き プロダクト開発は人の手によって行われるものですから、開発サイクルの中で不要なコードを削除し忘れる人的なミスはどうしても発生します。 後から不要なコードに気づき削除する際には、慎重にチェックして本当にコードが使用されていないことを確認する必要があります。ただし、削除に自信が持てない場合、本番稼働中の Rails アプリに障害が発生する可能性も考慮しなければならず、何も影響しない場合はそのままにしておくことも多く、削除が難しい状況も少なくないと思います。 上記状況を打破するために DIGGLE では本番稼働中の Rails アプリのコードの使用状況を収集して不要なコードを発見するための仕組みを導入したので共有したいと思います。 前置き 不要なコードをどのように発見するか Ruby で コードカバレッジを計測する 仕組み導入にあたって悩んだポイント YJIT を有効化した状態で動作するの

                                                            Ruby の oneshot coverage で本番稼働中の Rails アプリの使用状況を収集して不要なコードを発見するための仕組みを導入した話 - DIGGLE開発者ブログ
                                                          • 文字ときどきRuby - tmtms のメモ

                                                            これはRubyアドベントカレンダーとSmartHRアドベントカレンダーの17日目の記事です。 qiita.com qiita.com 12/9 に nagano.rb で文字について発表して、同じのを 12/15 に SmartHR 社内で LT しました。 スライドはこちら speakerdeck.com 同じ文字? この2つの文字は同じものに見えますか? 実はこれは同じ文字を異なるフォントで表示したものです。 ゴシック体と明朝体で字体が異なって見えるのと同じことなので、同じ文字と言えるでしょう。 コンピュータで扱う文字は文字ごとに番号(コードポイント)が振られていて、プログラムから見たときには同じコードポイントであれば同じ文字として扱われます。 Ruby で文字のコードポイントを得るには String#ord を使用できます。 '直'.ord.to_s(16) #=> "76f4" '

                                                              文字ときどきRuby - tmtms のメモ
                                                            • Ruby Parser開発日誌 (18) - Rearchitect Ripper - かねこにっき

                                                              Rubyのparserを語る上で忘れてはいけない存在としてRipperというライブラリがあります。 RipperはRubyのコードを構文解析するためのライブラリとしてirbやrdocなどで長く使われてきました。 一方でBug #10436のように長い間未解決のバグがあったり、Bug #18988のようにパーサーと挙動が異なる箇所があったりと完璧でない部分があります。 今回Ripperのアーキテクチャを見直すことでRipperの抱えている問題を解決することができたので、この記事で紹介したいと思います。 関連するPRとticketはそれぞれ以下のとおりです。 github.com bugs.ruby-lang.org Ripperとは RipperはRubyのパーサーライブラリです。入力されたコードに対応するS式を返すRipper.sexpを使ったことがある人もいるのではないでしょうか。 Ri

                                                                Ruby Parser開発日誌 (18) - Rearchitect Ripper - かねこにっき
                                                              • RubyのPolarsでデータサイエンティスト協会の100本ノックやってみた — 1 ~ 15問

                                                                記事の趣旨 本記事では、Rust製の高速データフレームであるPolarsのRuby版を利用して、データサイエンティスト協会の提供する「データサイエンス100本ノック(構造化データ加工編)」をやってみることを目的にしています。 Polarsについては、下記の公式サイトを参照してください。 Ruby版のPolarsは、polars-dfというgem名で開発されています。 Rubyを使用したデータサイエンスライブラリをばりばり開発されているankane(Andrew Kane)さんによるgemです。 深層学習やデータフレーム、LightGBM、ベイズ推定など幅広い用途のRuby用データサイエンスライブラリを開発されているすごい方です。 また、本記事では「データサイエンティスト協会スキル定義委員」の「データサイエンス100本ノック(構造化データ加工編)」を利用しています。 実際のデータサイエンスの

                                                                  RubyのPolarsでデータサイエンティスト協会の100本ノックやってみた — 1 ~ 15問
                                                                • 型を意識した Ruby on Rails 上のモデル - freee Developers Hub

                                                                  こんにちは。freee販売を大阪で開発しております、bucyou (ぶちょー) というものです。 この記事は、freee Developers Advent Calendar 2023 の10日目です。 例によって普段は Ruby on Rails で開発をしておりますが、ここでのアーキテクチャや、モデリングに関する話題は、先日 freee技術の本 に書かせていただきました。 また、先日は TechNight にて、freee販売での取り組みを紹介させていただきました。 この本や、イベントの中で伝えたかったメッセージとしては、以下のようなものでした。 実現したいビジネスを、より適切に表現するためにモデリングを重視していく。 ActiveRecord によって作られたモデルと、ビジネスを表現するためのモデルをしっかり分けていく。 しかし、本はみんなで書いているものだったのでページ数はある程度

                                                                    型を意識した Ruby on Rails 上のモデル - freee Developers Hub
                                                                  • GemfileでのRubyバージョン指定を.ruby-versionから読む - koicの日記

                                                                    Gemfile での Ruby バージョンの指定を、値の直書きではなく .ruby-version からの読み込みに変更する設定です。 https://github.com/rubygems/rubygems/pull/6876 例えば、Rails アプリケーションなんかで Gemfile に .ruby-version と同じ 3.3.0 を指定しているようであれば、以下のように記述できます。 -ruby '3.3.0' +ruby file: '.ruby-version' asdf に類するものを使っているようであれば、ruby file: '.tool-versions' と記します。 https://github.com/rubygems/rubygems/pull/6898 この設定によって Ruby のアップデート時のバージョンの更新ポイントを減らすことができます。 なお、古

                                                                      GemfileでのRubyバージョン指定を.ruby-versionから読む - koicの日記
                                                                    • 改行可能な ruby 要素と CSS ruby-align プロパティ  |  Blog  |  Chrome for Developers

                                                                      HTML の <ruby> 要素は、特に東アジア言語のテキスト表示を改善するための強力なツールです。この要素を使用すると、親文字の上下左右に発音やその他の補足情報を表示できます。Chrome 128 以降では、Ruby 要素が改行可能になり、またruby-align CSS プロパティを使用してルビと親文字の揃え方を設定できるようになります。 <ruby> 要素は 2 つの主要な部分からなります。親文字(メインテキスト)とルビ(アノテーション テキスト)は、<rt> 要素でマークアップされています。ルビは、次の例に示すように、親文字の上または下に表示できます。 <ruby> 絵文字 <rt>emoji</rt> </ruby> 日本語の親文字にルビとして表示される英語の発音。 <ruby style="ruby-position: under;"> 강남대로 <rt>江南大路</rt> <

                                                                        改行可能な ruby 要素と CSS ruby-align プロパティ  |  Blog  |  Chrome for Developers
                                                                      • 「Ruby存続が自社のメリット」、STORESはなぜ著名Ruby開発者を受け入れたのか

                                                                        「笹田さんや遠藤さん(のような突出した能力を持つプログラマー)を雇用できる機会はほとんどない。人類史上数回しかないレベル。これを逃す手はない」。店舗向けデジタルサービスなどを提供するSTORESは、プログラミング言語「Ruby」の処理系を開発している笹田耕一氏と遠藤侑介氏を採用し、両氏は2023年9月1日、同社に入社した。冒頭に挙げたのは、STORESのエンジニア採用の責任者である藤村大介CTO(最高技術責任者)の言葉だ。 両氏は、前の職場であるクックパッドでRuby処理系の開発に専念する「フルタイムコミッター」として働いていた。STORESでも同様にRubyのフルタイムコミッターとして勤務する。 サービスの約6割がRubyを採用 採用の発端になったのは、笹田氏が2023年6月6日に投稿したTwitter(現X)の書き込み。同氏と遠藤氏が勤務先のクックパッドから退職勧奨を受け、転職先を探し

                                                                          「Ruby存続が自社のメリット」、STORESはなぜ著名Ruby開発者を受け入れたのか
                                                                        • 松江の技術者が開発!「Ruby」活用へ 松江市長と意見交換|NHK 島根県のニュース

                                                                          松江市在住の技術者が開発し世界で使われているプログラミング言語「Ruby」の活用をさらに進めて、市民や企業が新しいビジネスを生み出しやすい環境を整えようと、市長と関係者が意見を交わしました。 30日はプログラミング言語「Ruby」を開発した、市内在住のまつもと ゆきひろさんや、市の構想の計画を立てている企業の代表など4人が上定市長を訪ねました。 そして、これまで「Ruby」を通じて行ってきた産業の活性化やエンジニア間の交流をさらに深めながら、起業家の育成や異なる業界の企業との交流、それに、コロナ禍で停滞した海外のIT企業との交流を深めるための施策について意見を交わしました。 この中では、「エンジニアにもビジネスについて知ってもらうことが大事だ」とか「新しいビジネスに失敗しても許容されるような環境整備が必要ではないか」などの意見が出されました。 市は今年度は実証実験を行い、来年度から計画を実

                                                                            松江の技術者が開発!「Ruby」活用へ 松江市長と意見交換|NHK 島根県のニュース
                                                                          • Async Ruby on Rails

                                                                            Async programming can make your apps faster. I’ll share how you can use async in Ruby on Rails to speed up your app. While there are examples in Ruby, the principles apply to any language. I’ll group the examples into two basic principles. Here’s the first one: Don’t do now what you can do later Delay doing stuff as much as possible. Being lazy is not necessarily a bad thing. In practice, that mea

                                                                            • Ruby: a great language for shell scripts!

                                                                              Intro Ruby is so associated with its most famous framework, Rails, that many people forget how amazing this language is. I mean, I know a lot of people who says “I don’t like Ruby” and when I ask why, they say something about Rails. Personally, I consider Ruby one of my favorite programming languages, and the last time I touched any Rails code was 7 years ago… So, if I don’t use Rails anymore, wha

                                                                              • Profiling Python and Ruby using eBPF

                                                                                tl;dr In our continued efforts to expand and improve your profiling experience, we are excited to announce new additions to our language support: Ruby and Python. All the features that are described in this blog post have recently been released as part v0.26.0 of Parca Agent. While currently these language supports are in beta, they can be enabled using the --enable-ruby-unwinding and --enable-pyt

                                                                                  Profiling Python and Ruby using eBPF
                                                                                • Ruby methods are colorless

                                                                                  👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 10 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are colorless Concurrent, colorless Ruby: Part 1, Threads Concurrent, colorless Ruby: Part 2, Fiber a

                                                                                    Ruby methods are colorless