並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 110件

新着順 人気順

rubyの検索結果1 - 40 件 / 110件

  • MySQL 8.0アップグレード後に性能劣化したクエリ: セミジョイン編 - inSmartBank

    データベースアップグレード後の性能劣化、イヤですよね。 去る2023年某日、弊社ではAmazon Aurora MySQL 互換エディション 2 (MySQL 5.7 互換) から Aurora MySQL 互換エディション 3 (MySQL 8.0 互換) にアップグレードしました。当時の背景やアップグレードに関する知見は以下の記事をぜひ読んでみてください。 blog.smartbank.co.jp ソフトウェアバージョンアップをするとき、旧バージョンが抱えていた問題の解決などの恩恵を我々は期待します。しかし時には予期せぬデグレーションに遭遇することもあります。我々のMySQL 8.0へのアップグレード前後においてもいくつかの問題に遭遇しました。 本記事ではそんな問題の一つ、MySQL 8.0のオプティマイザが選択したセミジョイン最適化が性能劣化を引き起こした事例と解決方法について紹介し

      MySQL 8.0アップグレード後に性能劣化したクエリ: セミジョイン編 - inSmartBank
    • Zennへのスパム投稿が急増したのでLLMでなんとかした話

      はじめに Zennチームの吉川(dyoshikawa)です。 2024年6月頃より、Zennにいわゆるスパム投稿が急増したため、LLM(生成AI)を活用してのスパム投稿自動検出の仕組みを構築しました。 目的の性質上、あまり詳細については開示できないのですが、技術的な知見の共有のため、そして可能な限りコミュニティへ運営チームの取り組みをオープンにしたいという思いがあり本件の概要を紹介したいと思います。 課題 2024年6月頃より、Zennにスパム投稿が急増しました。それに伴いユーザの違反報告が増加したことで我々Zennの運営メンバーも事態を認識することになりました。 スパム投稿が読者の目に触れることが定常化することは避けたいですし、その都度違反報告をしてくださるユーザの負担も大きなものだろうという思いがあり、対策を進めることになりました。 解決策 この状況に対して、ある程度自動でスパム投稿を

        Zennへのスパム投稿が急増したのでLLMでなんとかした話
      • システムを脳に収める技術(公開版) | ドクセル

        スライド概要 2024-08-01に「10年超えRails開発の振り返りと未来 - 持続可能な開発の具体策」で発表させて頂いた資料です。 https://pieceofcake.connpass.com/event/324722/

          システムを脳に収める技術(公開版) | ドクセル
        • 食べログのモジュラモノリス化戦略

          「10年超えRails開発の振り返りと未来 - 持続可能な開発の具体策」の発表資料です https://pieceofcake.connpass.com/event/324722/

            食べログのモジュラモノリス化戦略
          • 500万人が利用する「友達と遊べるたまり場アプリ パラレル」におけるデータベース基盤の継続的改善

            SRE NEXT 2024 の発表資料です。 https://sre-next.dev/2024/schedule/#jp041 『友達と遊べるたまり場アプリ パラレル』では、クラウドベンダーによる不定期メンテナンスや季節イベントによるアクセス急増によってデータベースが不安定になり、最終的にサー…

              500万人が利用する「友達と遊べるたまり場アプリ パラレル」におけるデータベース基盤の継続的改善
            • 継続的にRailsアプリを開発する上で早めにやっておきたいこと

              https://gitlab.com/gitlab-org/gitlab/-/tree/master/rubocop/cop https://postd.cc/how-dhh-organizes-his-rails-controllers

                継続的にRailsアプリを開発する上で早めにやっておきたいこと
              • 技術コミュニティの活動を通して人生に整合性がとれた ─ 未経験30代がRubyのコア実装に挑むようになるまで - Findy Engineer Lab

                高校を卒業した後、コールセンターでの派遣業務や非正規の事務職といった経歴から、33歳でまったく異なるソフトウェア開発の世界に飛び込んだ塩井美咲(@coe401_)さん。短期間でプログラミングのスキルを学び職業プログラマーへの転身を果たしただけではなく、プログラミング言語Ruby自体の開発をテーマとする国際カンファレンスRubyKaigiでも4年続けて発表するほどになっています。 キャリアチェンジの経緯やプログラマーとしての歩みについて塩井さんに伺うと、むしろ技術コミュニティとの出会いと積極的な参加があったからこそ、エンジニアとして多くの成長があったことが分かります。その熱意のベースには、何のためにソフトウェア開発者を志すかという思いがありました。 ▲ 松本市で開催されたRubyKaigi 2023に登壇する塩井美咲さん ソケットライブラリの改善にRubyの開発助成で取り組む 世の中をよくす

                  技術コミュニティの活動を通して人生に整合性がとれた ─ 未経験30代がRubyのコア実装に挑むようになるまで - Findy Engineer Lab
                • Rails の非同期処理を Sidekiq から Cloud Tasks にリプレイスして Cloud Run のコストが6分の1になった話

                  成果 最終的に、Cloud Run のコストが$6/day前後から$1/day前後に! ちなみに、Cloud Tasks は1ヶ月あたり最初の100万回のオペレーションまで無料なので余裕で収まっています。 モチベーション 今回リプレイスを検討したシステムは軽量な非同期処理が大半で、もともと絶対に Sidekiq でないと困るということが少なかった Sidekiq は Redis をポーリングしてジョブを取得する方式なので、Cloud Run で実行するには min-instances を1以上にしなければいけない 何もジョブがない状態が続いてインスタンスが0になると起こしてくれる人がいないので... 絶対に Sidekiq でないと困らないなら Cloud Tasksにして、非同期処理がない時は寝ていても良いようにしたい => コストダウン! Pub/Sub との比較検討もしましたが今回は

                    Rails の非同期処理を Sidekiq から Cloud Tasks にリプレイスして Cloud Run のコストが6分の1になった話
                  • もしもいま、Ruby/Railsをイチから学び直すとしたら? Ruby技術書著者・五十嵐 邦明さんに聞いた学習ロードマップ - Findy Engineer Lab

                    めまぐるしく変化するテックの世界。技術を身に着けるうえで学ぶべきポイントや学習環境なども年々変わっています。 そこで「もしもいまの環境で、テックのことをイチから学び直すことになったら、自分はどんな風に勉強したいか」というIFストーリーを通じて、技術との向き合い方を考え直してみる企画「テック転生」。 今回お話を伺ったのは、Ruby・Rails関連の技術書を数多く上梓し、学習環境の充実化やエンジニア育成に尽力されてきた五十嵐邦明さん(@igaiga555)。“自分だったらこう進めたい、Ruby・Ruby on Railsの学習ロードマップ”を伺いました。 初心者に向けて執筆した『ゼロからわかる Ruby超入門』が最適 ――五十嵐さんがいま、イチからRuby・Railsを学び直すとしたら、何から始めますか? もしも私がこれから学び直すとしたら、自分が執筆した『ゼロからわかる Ruby超入門』を使

                      もしもいま、Ruby/Railsをイチから学び直すとしたら? Ruby技術書著者・五十嵐 邦明さんに聞いた学習ロードマップ - Findy Engineer Lab
                    • 『Ruby on Railsパフォーマンスアポクリファ』 - snoozer05's blog

                      翻訳を担当した電子書籍『Ruby on Rails パフォーマンスアポクリファ』が発売となりました。 書籍は以下から購入できます。 Ruby on Rails パフォーマンスアポクリファ 本書は、2020年に出版されたNate Berkopec著『The Ruby on Rails Performance Apocrypha』の全訳です。原書は訳書と同様、著者の販売サイトで自主出版の電子書籍として出版され、現在はKindleストアでも販売されています。 The Ruby on Rails Performance Apocrypha The Ruby on Rails Performance Apocrypha: A starter guide to making Rails apps faster and more scalable (English Edition) 作者:Berkope

                        『Ruby on Railsパフォーマンスアポクリファ』 - snoozer05's blog
                      • Rails: HotwireとSPAを比較するなら実装コストの違いに注意(翻訳)|TechRacho by BPS株式会社

                        概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: The popover drama 原文公開日: 2024/06/02 原著者: Jorge Manrubia 日本語タイトルは内容に即したものにしました。 インターネット接続が遅い環境でHEYカレンダーのポップオーバーの読み込みが遅くなる様子が以下でツイートされたことがきっかけで、ポップオーバーのドラマが幕を開けました。その後、無慈悲で辛辣な書き込みやプロの荒らしの出現など、最もSNSらしい形で議論がヒートアップしました。 If you want to know why an app *needs* JavaScript on the client and can’t just do it all on the server, just look at Hey or any other Hotwrite app pic.twit

                          Rails: HotwireとSPAを比較するなら実装コストの違いに注意(翻訳)|TechRacho by BPS株式会社
                        • MVCをレストランに例えてみた - Qiita

                          はじめに 今回はRubyonRailsなどで用いられているMVCというものについて解説していきたいと思います。Railsをはじめ、MVCを採用しているフレームワークは多くあると思います。RailsにおいてはRailsチュートリアルやProgateでも初めの方で解説していることからこの構造を理解しておくことは非常に重要です。今まであまり考えずに使用してきたのであれば、この際詳しく知っておくと良いでしょう。 MVCとは ソースコードをそれぞれ ・モデル(Model) ・コントローラー(Controller) ・ビュー(View) の3つに分割して管理しようという考え方の1つです。それぞれの頭文字を取ってMVCとなっています。 モデル(Model) 例えば投稿した人の名前や投稿したテキストなどを保存する際などにデータベースとのやりとりをします。データの登録・更新・削除などの処理を行います。 コン

                            MVCをレストランに例えてみた - 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を使う理由
                            • Rails is Good Enough

                              The first time I watched the infamous “build a blog in 15 mins” video, Dreamweaver was a thing, Flash was owned by Macromedia, and Twitter did not exist. 20 years later, Rails is alive and well. While it has never been the the most popular kid on the block by any means, it remains widely used by bootstrapped founders, large tech companies and everyone in between. Learning programming after 40 with

                                Rails is Good Enough
                              • HTTP API Clientライブラリの自作を手助けするGemを公開しました - メドピア開発者ブログ

                                こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 育休明け早々猛暑の熱気にやられ部屋に閉じこもっています。 今回はとあるGemを作成したので、そちらの紹介をさせていただきます。 目次 前フリ Gemの概要 カスタマイズ性について まとめ おまけ 前フリ Webアプリケーションを開発されている皆さん。 外部のHTTP APIを呼び出すような要件が発生したらどのように実装されますか? まずはHTTP Clientライブラリ(Gem)の選定からですよね。 無難なところでfaraday、最近?だとhttpなんかも選択肢にありますし、Gemを利用せずにRuby標準の Net::HTTP を直接使うなんてこともありますよね。 これらのいずれかを採用した後はどのような実装をされますか? お行儀が良い方は以下のような形で、専用のHTTP API Clientクラスを作成しその中に

                                  HTTP API Clientライブラリの自作を手助けするGemを公開しました - メドピア開発者ブログ
                                • Ruby コードレシピ集

                                  2024年8月26日紙版発売 山本浩平,下重博資,板倉悠太 著 A5判/672ページ 定価3,740円(本体3,400円+税10%) ISBN 978-4-297-14403-6 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Amazon Kindle honto この本の概要 最新Ruby 3.3に対応。Rubyでやりたいことがすぐにわかる,逆引きレシピ集の決定版。 Rubyの基礎知識や実践ですぐに役立つテクニックを,目的別にまとめた逆引きレシピ集です。文法/データ操作/正規表現/文字列操作/テスト/エラー処理といったRubyの基本から,RubyGems/データベース操作/データ処理といった実践的な開発に役立つテクニックまで,やりたいことをすぐに逆引きできるように整理しました。繰り返し参照しやすい形式で構文やコードをわかりやすく掲載。

                                    Ruby コードレシピ集
                                  • 改行可能な 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
                                    • バージョンアップ対応に苦労した過去の自分に送りたい7つの心得

                                      こんにちは。 株式会社ココナラでバックエンド開発に従事するRKと申します。 みなさまはシステムのバージョンアップ対応をした経験はありますでしょうか? システムの安定稼働に配慮して一定期間で実施している場合もあれば、利用しているライブラリや開発言語そのものの End Of Life(以降、EOL) によってバージョンアップを余儀なくされて実施した場合もあるでしょう。 どちらにせよ、ユーザーの皆様に安心してシステムをご利用いただくためにも、バージョンアップ対応はとても大事な作業の1つとなります。 弊社ココナラでも、もう少しでEOLを迎える/迎えた開発言語や環境を持つシステムは存在します。 本記事では、ココナラのとあるシステムのバージョンアップ作業対応を実施した際の私自身のふりかえり内容を記載します。 本当にこの記事を過去の自分に送って読ませたい。 なお、弊社ではすでにバージョンアップに関連する

                                        バージョンアップ対応に苦労した過去の自分に送りたい7つの心得
                                      • Railsのアップグレードを成功させるための知見リスト(翻訳)|TechRacho by BPS株式会社

                                        概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Smooth Ruby and Rails upgrades | Arkency Blog 原文公開日: 2024/07/01 原著者: Posts by Piotr Jurewicz 日本語タイトルは内容に即したものにしました。 参考: Rails アップグレードガイド - Railsガイド 最近、私たちは年季の入ったさまざまなプロジェクトでコンサルティングやアップデート作業を行っていました。どのプロジェクトもproductionで運用されていてビジネスを回していますが、長年アップグレードされないまま放置されていました。 こうしたプロジェクトでの経験を活かして、アップグレード作業をスムーズにするための知見を本記事でいくつか共有したいと思います。 🔗 アップグレード前にやるべき作業 🔗 依存関係をできるだけ減らしておく 作業

                                          Railsのアップグレードを成功させるための知見リスト(翻訳)|TechRacho by BPS株式会社
                                        • Steepのメモリ使用量を改善するつもりが、実行速度の改善をしていた - Money Forward Developers Blog

                                          こんにちは。id:Pocke です。 私は最近、Steep のメモリ使用量の改善に取り組んでいます。その過程で(意図せず) Steep の実行速度の改善に成功しました。 その中で行った、メモリ使用量の調査や、結果として実行速度が改善されたことは自分にとって中々楽しい体験でした。この記事では実行速度の改善に至るまでの経緯を紹介します。 記事中のソフトウェアは、執筆時点で最新のものを使用しています。具体的なバージョンは以下の通りです。 Ruby: 3.3.4 MemoryProfiler: 1.0.2 Steep: 1.8.0.dev.1 TL;DR メモリ使用量の調査のために、memory_profiler gem を使った それだけだと不十分なので、Ruby にパッチを当てた上で計測をした 結果としてsteep checkの解析対象ファイル数が多い場合に速度が遅くなることが分かり、改善した

                                            Steepのメモリ使用量を改善するつもりが、実行速度の改善をしていた - Money Forward Developers Blog
                                          • 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
                                            • Ruby: 最近傍法による推奨アルゴリズムを実装する(翻訳)|TechRacho by BPS株式会社

                                              概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Implementing Nearest-Neighbour Recommendations in Ruby 原文公開日: 2023/08/28 原著者: Domhnall Murphy 日本語タイトルは内容に即したものにしました。 参考: 最近傍法 - Wikipedia Webのユーザーに関連度の高いコンテンツを自動的におすすめする機能は、Webの多くの機能を成功に導くうえで欠かせません。そのために多種多様な手法が利用されており、最大規模のWebサイトや企業では、非常に高度な技術を取り入れて推奨機能を最適化しています。本記事では、基本原理に基づいた効果的な推奨システムをRubyで構築する方法について解説します。 🔗 はじめに 以前の記事では、距離測定を導入してRubyで実装する方法を紹介しました。そのときに、それらの距離測

                                                Ruby: 最近傍法による推奨アルゴリズムを実装する(翻訳)|TechRacho by BPS株式会社
                                              • HTML用ERBファイルのフォーマットを統一した話 - Sansan Tech Blog

                                                こんにちは。 名刺アプリ「Eight」でエンジニアをしている鳥山(@pvcresin)です。 最近、ミスタードーナツのミニオンコラボの商品を食べたのですが、 どれも美味しくて見た目もかわいいので最高でした。 特にポン・デ・リングベースのものは、表面のキャンディが口の中でパチパチと弾けて楽しいのでオススメです。 さて今回は、RailsのViewで使う、HTML用ERBファイルのフォーマットを統一した話をします。 ERBとは ERB(eRuby、embedded Ruby)はテキストにRubyのコードを埋め込むための仕様です。 Railsでは特にViewの部分のHTML生成によく利用されます(拡張子は.erb)。 ERBでは、以下のような記法でRubyのコードを埋め込めます。 <ul> <% @features.each do |f| %> <li><%= f %></li> <% end %

                                                  HTML用ERBファイルのフォーマットを統一した話 - Sansan Tech Blog
                                                • Datadog Continuous Profiler を用いて、ボトルネックが Ruby の GVL であることを発見した

                                                  Datadog Continuous Profiler を用いて、ボトルネックが Ruby の GVL であることを発見した こんにちは、terandard です。 弊社では Datadog を用いてアプリケーションやサーバーの監視を行っています。 以前からリクエストがスパイクした際にアプリケーション全体が遅延する問題があったので、Datadog Continuous Profiler を使用して調査したことについて紹介します。 背景 リクエストがスパイクするとアプリケーション全体が遅延する問題がありました。 リクエスト全体のリクエスト数とレイテンシー 特に処理に時間がかかっていたリクエストについて Datadog APM で状況を確認すると、下図のように空白期間があったり mysql2 や faraday の実行時間が長いことがわかりました。 例1: 謎の空白期間がある 例2: mysq

                                                    Datadog Continuous Profiler を用いて、ボトルネックが Ruby の GVL であることを発見した
                                                  • 『Rubyコードレシピ集』はどういう本か - kymmt

                                                    共著で書いた『Rubyコードレシピ集』が2024-08-26に出るので、どういう本か説明します。 Ruby コードレシピ集 作者:山本 浩平,下重 博資,板倉 悠太技術評論社Amazon レシピ集とは この本は技術評論社さんが出しているレシピ集シリーズの一つです。レシピ集シリーズは、いわゆるクックブックの形式でプログラミング言語やその他ソフトウェアの活用方法を実例を示しながら解説していく体裁のものです。今回は、そのレシピ集シリーズの新作として、Rubyにフォーカスした本を出版することになりました。 対象読者 この本は次のような読者に読まれることを想定して書きました(もちろん、この条件に当てはまらない方にも読んでいただきたいです)。 Rubyの入門は簡単に済ませている初心者 他言語の経験者で新しくRubyに来た人 この本はクックブック形式ですが、章立ては基礎から応用の順にしてあります。入門者

                                                      『Rubyコードレシピ集』はどういう本か - kymmt
                                                    • Ruby: 機械学習などで使われる距離測定アルゴリズムをRubyで実装する(翻訳)|TechRacho by BPS株式会社

                                                      概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Common Distance Metrics Implemented in Ruby 原文公開日: 2023/07/22 原著者: Domhnall Murphy 日本語タイトルは内容に即したものにしました。 metricsの訳語は原則として「測定」としています。 機械学習や人工知能の分野は、基本的に2点間の距離(distance)を測定する機能に依存しています。本記事では、よく用いられる測定方法のいくつかを紹介し、それらの解釈について説明するとともにRubyで実装する方法を示します。 🔗 はじめに 機械学習がらみのタスクの多くは、エンティティを「特徴(features)のセット」という観点で記述することから始まります。 たとえばテキストベースの学習タスクであれば、おそらく語(word)ごとの出現頻度が特徴となるでしょうし、

                                                        Ruby: 機械学習などで使われる距離測定アルゴリズムをRubyで実装する(翻訳)|TechRacho by BPS株式会社
                                                      • Rubyのパフォーマンスプロファイリングの改善 / Enhancing performance profiling for Ruby

                                                        Ruby Association Activity Report https://www.ruby.or.jp/ja/news/20240520_2 https://osyoyu.com/blog/2024/07/18/213247

                                                          Rubyのパフォーマンスプロファイリングの改善 / Enhancing performance profiling for Ruby
                                                        • Namespace on read

                                                          Ruby Association Grant Project "Namespace on read" Report at Ruby Association Activity Report 2024

                                                            Namespace on read
                                                          • Why CTOs are choosing Hotwire and Ruby on Rails

                                                            thoughtbot had the pleasure of partnering with Clara on a recent project. thoughtbot’s deep expertise in Ruby on Rails and Hotwire made us a great match as Clara’s technology partner. We sat down with Ian Gillis, the CTO and Co-founder of Clara to learn more about the company and what led them to choose Hotwire. What is Clara and what stage is the company in? Clara is a marketplace for in-home sen

                                                              Why CTOs are choosing Hotwire and Ruby on Rails
                                                            • 福岡Rubyist会議04、やりますよ!|Uchio Kondo

                                                              9月7日にやります。もうすぐあと一ヶ月! まず、本イベント自体の紹介の前に、福岡でRubyのイベントを―カンファレンスをやるということに関するナラティブを形成したいのでそれを書きます。 §1. 独断と偏見による福岡でのRubyコミュニティの流れまとめ福岡県は行政としてRubyでの開発や創業に力を入れていることは知られていますが、市井のRubyistとして、プログラマとしてRubyのことを話そうじゃないかという流れのコミュニティイベントも粛々とやっていっておりました。 (もちろん福岡県/福岡市ともにRuby関連のコミュニティ行事に多大な協力を継続的にいただいていますが、それはそれとして俺たちはボトムアップでもやってる感を出していきたい) 福岡ではRails Girlsも3回(北九州も含めば福岡県で4回!)開催、またFukuoka.rbのようなコミュニティミートアップもなんとか途切れずやってき

                                                                福岡Rubyist会議04、やりますよ!|Uchio Kondo
                                                              • Ruby は String をメモリ上でどのように扱っているのか? | IIJ Engineers Blog

                                                                電子メール、ネットワーク機器集中管理、異常検知、分散処理、クラウド基盤などのシステム開発に従事。古代Rubyist。 先日、 Ruby (CRuby) が String をメモリ上でどのように扱っているのか気になって調べていました。そこで String の構造体やメモリの扱いとその変遷が興味深いと思ったので、ちょっとまとめてみました。 Ruby のオブジェクトのデータ構造 まず前提知識として、そもそも Ruby が C の世界でオブジェクトをどのようなデータ構造で持っているかをざっくりおさらいします。 VALUE 型 Ruby の内部ではオブジェクトを VALUE 型という型の変数で取り扱っています。 // include/ruby/internal/value.h typedef unsigned long VALUE; 宣言の通り VALUE 型の実体は unsigned long で

                                                                  Ruby は String をメモリ上でどのように扱っているのか? | IIJ Engineers Blog
                                                                • Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library

                                                                  Ruby Association Activity Report 「socketライブラリへのHappy Eyeballs Version 2 (RFC8305)の導入」報告資料 参考資料:HEv2の状態を洗い出すために作成した疑似コード https://gist.github.com/shi…

                                                                    Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
                                                                  • Ruby言語の進化を追いかけて意外な構文機能を発見した話(翻訳)|TechRacho by BPS株式会社

                                                                    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Vignettes on language evolution: discovering an old syntax feature history 原文公開日: 2024/07/01 原著者: zverok 日本語タイトルは内容に即したものにしました。 私がこれまでまったく気づいていなかった、ある構文機能がRubyに存在します。 Rubyの進化をテーマにした前回記事を書きつつ(かつ今後出版する書籍の形式を構想しつつ)、私はRuby言語の歴史をどこまでも深く掘り下げ始めています。同時に他の言語についても調べ、あるソリューションが業界で広まったのがいつだったのか、逆にある手法が流行らなくなったのはいつだったのかを理解しようとしています。 Rubyについては、NEWSやChangelogファイルに目を通したり、変更された時期を独自に構

                                                                      Ruby言語の進化を追いかけて意外な構文機能を発見した話(翻訳)|TechRacho by BPS株式会社
                                                                    • Sonic Pi: Ruby as a Composition Tool

                                                                      Like the blip of an intro on the front page says, my degree was originally in music. My running joke as a web dev is that neither has meaningfully required me to count past 32. And while my main concentration was vocals, I've since realized I should probably stop strictly calling this a nontechnical field, because my actual major was recording — even if I did primarily branch out into this for the

                                                                      • Rails 7.2 - Slidev

                                                                        • Ruby on Rails パフォーマンス アポクリファ

                                                                          Nate Berkopec 著 | 島田 浩二 訳 | 笹田耕一 序文 アポクリファ(名詞):教会用ラテン語に由来する。聖書の正典に含まれない、聖書またはそれに関連する書物。 この 4 年間、私はニュースレターで多くの記事を公開してきました。それらの記事は、ニュースレターを購読していないと読めないものでした。本書が出るまでは。 本書は、ニュースレターに公開してきた記事をまとめたものです。主に扱っているのは、私が注力し続けている Ruby on Rails アプリケーションの パフォーマンスやスケーリングの話題ですが、ソフトウェアパフォーマンスの一般原則や、時にはパフォーマンスとは関係ない Ruby の考え方にも触れています。 私は本書を「アポクリファ」と名付けました。なぜなら、私の Rails パフォーマンス指導の「本流」、つまり正統な「聖典」は、私の Rails パフォー マンスワークシ

                                                                            Ruby on Rails パフォーマンス アポクリファ
                                                                          • Mastering Ruby Code Navigation: Major Ruby LSP Enhancements in the First Half of 2024

                                                                            In the first half of 2024, Ruby LSP has seen significant enhancements, particularly in the area of code navigation, thanks to the advancement of its indexer. In this post, we’ll dive into the major code navigation enhancements that have been made to Ruby LSP. We’ll also touch on some experimental features that are on the horizon. NOTE While the Ruby LSP server (ruby-lsp gem) can be integrated with

                                                                              Mastering Ruby Code Navigation: Major Ruby LSP Enhancements in the First Half of 2024
                                                                            • Ruby: IRBとRailsコンソールで強化された機能: 2024年上半期(翻訳)|TechRacho by BPS株式会社

                                                                              🔗 1: ヘルプコマンドとヘルプメッセージの改善 🔗 全般的な改善点 ヘルプ機能の良さは、使い勝手を左右する大事な決め手です。IRBのheopコマンドが今回大幅に強化されました。 変更前の振る舞い RubyのAPIドキュメントを探索するには、別途riコンソールを開く必要がありました。 最新の振る舞い ユーザーからの要望を反映して、riコンソールを開かなくてもIRB自身でヘルプメッセージを表示できるようになりました。 APIドキュメント IRBでshow_docを実行することでAPIドキュメントを検索できるようになりました。 🔗 コマンドを指定して詳細なヘルプを表示 新しいhelp コマンド名機能を用いてツールの利用法を詳しく表示できるようになり、機能を探しやすくなりました。 🔗 実行例 irb(main):001> help edit Usage: edit [FILE or co

                                                                                Ruby: IRBとRailsコンソールで強化された機能: 2024年上半期(翻訳)|TechRacho by BPS株式会社
                                                                              • Rubyのバージョンを最新版にアップグレードした話 - YOUTRUST Tech Blog

                                                                                こんにちは、YOUTRUST Webエンジニアの寺井(YOUTRUST/X)です。 今回、YOUTRUSTで使っているRubyのバージョンを 3.2.4 から 3.3.4 (執筆当時の最新版)にアップグレードしたので、その過程を記事にしたいと思います。 1. 非互換な変更点の確認 まずは、Ruby 3.2 から Ruby 3.3 への変更点を調べました。 Ruby 3.3.0 リリース プロと読み解くRuby 3.3 NEWS サンプルコードでわかる!Ruby 3.3の主な新機能と変更点 主に上記の記事を参考にして、互換性に関する変更点について、YOUTRUSTのプロダクションコードで影響がないかを確認していきました。 1.1 it という名前のメソッド呼び出しが行われていないこと Ruby 3.4 ではデフォルトのブロックパラメータにitが導入される予定のため、Ruby 3.3 でitと

                                                                                  Rubyのバージョンを最新版にアップグレードした話 - YOUTRUST Tech Blog
                                                                                • How it became like this? Ruby Range class

                                                                                  Understanding the core class design and usage via its evolution Years ago, my studies into the Ruby Evolution started with the persuasion that mastering the programming language to express one’s intentions clearly and efficiently may grow significantly by understanding how it evolved and what intentions were put behind its various elements. Moving back through the history of a change of some eleme

                                                                                    How it became like this? Ruby Range class