並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 119件

新着順 人気順

"Ruby gems"の検索結果1 - 40 件 / 119件

  • 政治的問題のためRuby GemsとGitHubからChef関連の諸々が消えた件について

    アメリカ合衆国のとある政府機関への抗議のため、Chef関連のGemやGitHub上のソースコードを作者が削除した。 雇用期間に業務にてGemが作成されていたため、Chef SoftwareがGemの所有権を主張してGemを復活させた。 最終的には抗議行動に対してChef Softwareが折れることで決着が付いた。 現在Chef界隈が混乱している。 どうやら政治的問題のためにRuby Gemsに登録されたGemやGitHub上のソースコードが消されたらしい。 なかなか興味深い出来事で、なおかつ日本語圏に情報が出ていないので適当に記録しておく。 用語 Ruby:プログラミング言語の1種。日本においては超広範囲で使用されている超メジャーな言語。 RubyGems:Rubyにおけるパッケージシステム。他人のRubyプログラムやライブラリを簡単に取り込むことができる。 Chef: 構成管理ツールの

      政治的問題のためRuby GemsとGitHubからChef関連の諸々が消えた件について
    • SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる

      最近SELECT ... FOR UPDATEでデッドロックする話を何度かしたので。 前職のときにUPDATE同士がデッドロックしてたときに、SELECT ... FOR UPDATEで排他ロックを取ってからUPDATEしてデッドロックを防ぎますってPRをレビューしてたときのことで、複数レコードの排他ロックは一瞬ですべてのレコードのロックを取れるわけではなく、ロックを取る順番が揃っていないと簡単にデッドロックしますよという話です。 https://gist.github.com/kamipo/0bb4e37d58ba18a8cefb8aa02f778231 # frozen_string_literal: true require "mysql2" def client Mysql2::Client.new( host: "localhost", username: "root", dat

        SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる
      • 至極の難問YAMLクイズ - くりにっき

        前置き 練習問題 問題1 問題2 問題3 問題4 参考文献 おまけ:LT直後のみんなの反応 前置き 社内勉強会のLTで発表したら好評だったので投下 自称YAMLエンジニアのsue445が今まで踏んだ罠をクイズにしました Ruby 3.0.0の Psych で動作確認していますが他言語での挙動は調べていません Psychがlibyamlベースなので他の言語のパーサでもだいたい同じ挙動をすると思うけど 練習問題 Q: 出力されるものは? yaml = <<YAML a: 1 YAML YAML.load(yaml) #=> ? {"a"=>"1"} {"a"=>1} シンタックスエラー その他 回答 2 YAMLの数字っぽい文字列はその言語の数字の型(Rubyだと Integer )として解釈されます。 文字列として解釈させたい場合は "1" (ダブルクオーテーション)や '1' (シングルク

          至極の難問YAMLクイズ - くりにっき
        • Modern web apps without JavaScript bundling or transpiling

          August 12, 2021 Modern web apps without JavaScript bundling or transpiling I didn't much care for vanilla JavaScript prior to ES6. Through all of the 2000s, I chased different approaches to avoid writing too much of it. First there was RJS (Ruby-to-JavaScript). Then there was CoffeeScript. Both transpiling approaches that turned more enjoyable-to-write source code into the kind of JavaScript that

            Modern web apps without JavaScript bundling or transpiling
          • UTF-8で動くRailsがShift_JISな外部システムと通信する方法 - BOOK☆WALKER inside

            こんにちは。 メディアサービス開発部Webアプリケーション開発課のフサギコ(髙﨑)です。部署名が変わりました。 Ruby on Railsによるバックエンドの実装運用と、AWSによるサービスインフラの設計構築を中心とした、いわゆるテックリードのような立ち位置で働いています。 本記事では、UTF-8環境下で動くRailsがShift_JISな外部APIと通信する方法についてお話しします。 前提知識 文字コード UTF-8環境下で動くRailsがShift_JISな外部システムと通信するには Shift_JISな外部APIに対してPOSTリクエストする べた書きとしては Railsにおいては Shift_JISで使用できない文字が混ざっていないかをバリデーションする Shift_JISな外部システムからPOSTリクエストを受ける おまけ: ユーザのブラウザにShift_JISでPOSTさせる

              UTF-8で動くRailsがShift_JISな外部システムと通信する方法 - BOOK☆WALKER inside
            • Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい - GMOインターネットグループ グループ研究開発本部

              2023.01.11 Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい Amazon Aurora MySQLでテーブルの再構築を伴う操作を行うと,Readerインスタンスで瞬間的に対象のテーブルが見えなくなる場合があるので,オペレーションの実行タイミングに気をけましょう,というお話です。再構築を伴う操作には,一部のALTER TABLEやOPTIMIZE TABLEが含まれます。 こんにちは,S.T.です。Amazon Aurora MySQLで少し気になる現象を見かけたので紹介します。この現象を知っていれば回避できるので,クリティカルな影響があるということではないですが,将来直ってくれると嬉しいですね。 1.Amazon Aurora MySQLとは Amazon Aurora MySQLはAWSで利用できるマネージドのRDBです。コ

                Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい - GMOインターネットグループ グループ研究開発本部
              • 我々はフリーソフトウェアの定義を再考すべきなのだろうか? - YAMDAS現更新履歴

                mjg59 | Do we need to rethink what free software is? GNOME や Debian 界隈、あと Linux カーネルなど幅広いフリーソフトウェアの開発者として知られ、フリーソフトウェア財団(FSF)が選ぶ Free Software Award の2014年の受賞者でもある Matthew Garrett が、我々はフリーソフトウェアの定義を再考すべきなのか、と問うている。 ライセンスこそがフリーソフトウェアの目標達成に欠かせないツールであり、特にコピーレフトのライセンスは意図的にその利用者が必然的にフリーソフトウェアの四つの基本的な自由を実行する立場になるよう著作権というものを利用してきたとギャレットは話を始める。 そして最近、既存のライセンスに対する2つの懸念とそれを救済するために新たな種類のライセンスを模索する動きがあって、この2つ

                  我々はフリーソフトウェアの定義を再考すべきなのだろうか? - YAMDAS現更新履歴
                • AWS LambdaでSeleniumとActiveRecordを扱う · フロッピーディスクの残骸

                  気付いたらもう9月ですね。 最近、AWS Lambdaでいろいろと遊ぶ機会があったのでメモとして残します。 はじめに とあるセキュリティゲームの運営用に、SeleniumでWebスクレイピングをやっているRubyのスクリプトをEC2で運用していたのですが、Headless Chromeを扱うため大量に起動するとメモリ食っちゃうし、スケールしようにもEC2インスタンスのAutoScaling組むのもちょっとなあ。とか、インスタンスの起動まで待ってられないからある程度多めにインスタンスを実行したりするのも余分にコストが。。。 1実行に15分もかからないスクリプトだし、ということでLambdaに移行することにしました。 Lambda Layerについて Headless Chromeを扱う場合、単純にFunctionのデプロイパッケージにバイナリを含めると50MBを超えてしまうため、Lambda

                  • GitHub Appを使ってDependabotが作るpull requestを自動マージさせる - inSmartBank

                    こんにちは。皆さんは自身がメンテナンスするソフトウェアが依存するパッケージの更新、いわゆるdependency updateをどのような形で行っていますか? SmartBankが提供するサービスB/43の開発では主にGitHubのDependabot version updates機能を用いて定期的なdependency updateを行っています*1。これは簡単にいえばGitHub repositoryにYAMLファイルを置いておくだけで自動的かつ定期的にversion updateのpull requestを作ってくれる便利なやつです。 便利ではあるのですが、アプリケーション規模やチーム体制によっては日々作成されるpull requestをさばくのに苦労することがあります。本記事ではそのような運用課題を解決するために導入した、GitHub Appを使った自動マージについて解説します。

                      GitHub Appを使ってDependabotが作るpull requestを自動マージさせる - inSmartBank
                    • Ruby 3.3’s YJIT Runs Shopify’s Production Code 15% Faster

                      Ruby 3.2 YJIT is Battle-Tested Shopify deploys YJIT on business-critical services in production, such as Storefront Renderer, the software that powers all online storefronts on Shopify’s platform, and Shopify’s Monolith. As of the Ruby 3.2 release, YJIT sped up our Storefront Renderer by 10% on average. Storefront Renderer is a complex application. Your more reasonable-sized app might get better/w

                        Ruby 3.3’s YJIT Runs Shopify’s Production Code 15% Faster
                      • AWS Lambda でコンテナに入れた Sinatra を動かす - id:onk のはてなブログ

                        何番煎じか分からないけど、最近やったので。 前提知識 AWS Lambda + Amazon API Gateway で HTTP リクエストを受け付けることができる AWS Lambda ではコンテナイメージを動かせる New for AWS Lambda – Container Image Support | AWS News Blog AWS Lambda で Sinatra アプリを動かすための公式サンプルがある https://github.com/aws-samples/serverless-sinatra-sample つまりコンテナ化した Sinatra アプリを Lambda 上にデプロイして HTTP リクエストを受け付けることができる。 動かす準備はもう全部整っていて、お手軽そうですね。 Ruby アプリを Lambda で動かすコンテナイメージを作る Sinatra

                          AWS Lambda でコンテナに入れた Sinatra を動かす - id:onk のはてなブログ
                        • Railsクイズ、何問解けるかな? - SmartHR Tech Blog

                          こんにちは。SmartHRでRails顧問業をしています @willnetです。最近は主にリファクタリングをしています。 SmartHRでは毎週「Rubyist@SmartHR(仮)」という名の定例ミーティング*1が行われています。このミーティングはバックエンドエンジニアが集まり、チームをまたいだ情報共有や相談をすることを目的としています。その中では僕がTipsなどを共有する「willnetさんのありがたいお言葉」というコーナーが常設されています。 「willnetさんのありがたいお言葉」のコーナーではRailsの最新動向に関する話をすることが多いのですが、最近はRailsの各種機能がどのように動くのかをクイズ形式にして共有しています。これがなかなか好評なので今回テックブログにしてみた次第です。みんな全問正解できるかな? ちなみにこんな感じでやってます まず問題と回答の選択肢を見せてからs

                            Railsクイズ、何問解けるかな? - SmartHR Tech Blog
                          • Ruby gem で Rust をつかって爆速にしたい!!!!!!11

                            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 のディレクトリへ移

                            • Hashicorp の新しいCD ツール "Waypoint" を試してみる - y-ohgi's blog

                              TL;DR hashicorp がリリースしたCD ツールの hashicorp/waypoint を試してみる記事 サーバーを立ち上げてデプロイx2をしてみた(感動的に楽) 個人的にECS を運用するときはまっさきに検討したいツール version waypoint v0.1.3 試す 公式のGet Started を参考にためしてみる。 https://learn.hashicorp.com/collections/waypoint/get-started-docker Install 各種OS に対応している。とりあえず今回はMacを選択。 https://learn.hashicorp.com/tutorials/waypoint/get-started-install?in=waypoint/get-started-docker brew からサクッと入る $ brew tap

                                Hashicorp の新しいCD ツール "Waypoint" を試してみる - y-ohgi's blog
                              • お財布に優しいCI改善小ネタ集 - メドピア開発者ブログ

                                こんにちは。サーバーサイドエンジニアの三村(@t_mimura)です。 主に保険薬局と患者さまを繋ぐ「かかりつけ薬局」化支援アプリ kakariのサーバーサイド開発(Ruby on Rails)を担当しています。 今回はRailsシステムのCI時間をコスト追加なしで半減した話をします。 目次 前提 対象プロジェクト CIの状況 改善結果 改善内容 前提知識: CIのキャッシュ機能 webpack buildのキャッシュを活用 RuboCopのキャッシュを活用 ESLintのキャッシュを活用 Jestのキャッシュを活用 RSpec Jobをテスト特性ごとに分割 CircleCIのリソースクラスと並列数の最適化 採用しなかった・見送った改善候補 HAML-Lint, Fasterer, Brakemanのキャッシュを活用 Stylelintのキャッシュを活用 bootsnapを活用 Jestの

                                  お財布に優しいCI改善小ネタ集 - メドピア開発者ブログ
                                • エンジニア募集にかける思い (selfree) - ボクココ

                                  ども、@kimihom です。 いよいよ弊社で "必要な方を採用して共に働こう" ということで、エンジニア募集をかけている。公式ページは以下となっている。 www.selfree.co.jp 以下の記事は、私の個人的な意見である。 会社や技術的なところを紹介し、どんな方に来て欲しいのかを記す。近い将来、来てくれる "あなた" のために。 会社の特徴 まずは技術以外の部分で、弊社を簡単に紹介する。 とりわけ特徴として大きいのが、資金、人数、働き方だ。 資金 まず、弊社は一切外部から資金を受け取っていない完全自己資本の SaaS 企業である。 そのため、最終的に上場したり、外部から買収されるなど "課された"目標 が存在しない。投資家ではなく、常に顧客と向き合うことができる。自分たちが掲げた目標に対し、働き続けられる自由と責任がある。 詳細は公式ページ先の資料に書いてあるが、そんな自己資本 S

                                    エンジニア募集にかける思い (selfree) - ボクココ
                                  • YJIT: Building a New JIT Compiler for CRuby - Shopify

                                    YJIT: Building a New JIT Compiler for CRubyA team of skilled engineers from Shopify and GitHub on YJIT, a new Just-in-time (JIT) compiler built inside CRuby. The 1980s and 1990s saw the genesis of Perl, Ruby, Python, PHP, and JavaScript: interpreted, dynamically-typed programming languages which favored ease of use and flexibility over performance. In many ways, these programming languages are a p

                                      YJIT: Building a New JIT Compiler for CRuby - Shopify
                                    • Gemfile of dreams: the libraries we use to build Rails apps—Martian Chronicles, Evil Martians’ team blog

                                      Gemfile of dreams: the libraries we use to build Rails appsMay 28, 2024 From time immemorial, the Evil Martians team has worked on dozens of Ruby on Rails projects every year. Naturally, this process involves a lot of Ruby gems. Some reflect our desire to be cutting-edge and to use modern tools (or build our own!) Other gems are so flexible they’ve been used in most of our projects. Our developmen

                                        Gemfile of dreams: the libraries we use to build Rails apps—Martian Chronicles, Evil Martians’ team blog
                                      • Embulk v0.11 / v1.0 に向けて: プラグイン開発者の皆様へ

                                        プラグイン型バルク・データ・ローダーの Embulk をメンテナンスしている @dmikurube です。 今後の Embulk のロードマップについて、一年ほど前に、記事を (英語ですが) 出したり、ミートアップで話したりしていました。その内容は、開発版 (非安定版) として Embulk v0.10 でしばらく大改造を行い、そこから次期安定版の v0.11 を経て v1.0 を出しますよ、というものでした。 Embulk v0.10 series, which is a milestone to v1.0 More detailed plan of Embulk v0.10, v0.11, and v1 -- Meetup! Java plugins to catch up with Embulk v0.10 from v0.9 それから一年経ち、その v0.11.0 のリリースがいよ

                                          Embulk v0.11 / v1.0 に向けて: プラグイン開発者の皆様へ
                                        • Async Ruby - Bruno Sutic

                                          Ruby has an Async implementation! It's available today, it's production-ready, and it's probably the most awesome thing that's happened to Ruby in the last decade, if not longer. Async Ruby adds new concurrency features to the language; you can think of it as "threads with none of the downsides". It's been in the making for a couple of years, and with Ruby 3.0, it's finally ready for prime time. I

                                          • 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
                                            • Kaigi on Railsに「Rubyで書かれたソースコードを読む技術」というタイトルで登壇しました - ロコガイド テックブログ

                                              こんにちは、技術部の深谷(@fukajun)です。 先日(2020年10月3日)行われたKaigi on Railsにて、「Rubyで書かれたソースコードを読む技術」というタイトルで発表しました。 発表した内容について 仕事やプライベートではメインのRubyも含めていくつかの言語にふれていますが、Rubyで書かれたコードは非常に読みやすいと日々感じています。 基本的には、Ruby/Railsのコードは複雑なロジックでもすんなり理解できることが多いです。 とはいえ、なかなか動きがわからないコードに出会うこともあります。 今回は、そういった場合に自分がやっていることを中心に紹介しました。 発表資料 当日、使用した発表資料です。 発表動画 Rubyで書かれたソースコードを読む技術 / fukajun 発表に含めることができなかった内容について ここからは、時間の都合で本編に盛り込めなかった内容を

                                                Kaigi on Railsに「Rubyで書かれたソースコードを読む技術」というタイトルで登壇しました - ロコガイド テックブログ
                                              • create_or_find_byでcreateもfind_byも失敗させる - かみぽわーる

                                                Active Recordの話です。 create_or_find_byの実装はcreateしてみてユニーク制約に引っかかったらfind_byしてみるなので、ふつうに考えるとfind_byは成功しそうに見えます。 def create_or_find_by(attributes, &block) transaction(requires_new: true) { create(attributes, &block) } rescue ActiveRecord::RecordNotUnique find_by!(attributes) end ですが、以下のスクリプトを実行するとcreate_or_find_byはcreateがRecordNotUnique例外を吐いたあと、find_byもRecordNotFound例外を吐いてレコードを見つけられずに死にます。 ちょっと今から会食なので原

                                                  create_or_find_byでcreateもfind_byも失敗させる - かみぽわーる
                                                • RESP3対応版のRedis用Ruby Gems(redis-client/redis-cluster-client)のご紹介 - LIVESENSE ENGINEER BLOG

                                                  概要 旧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 長年

                                                    RESP3対応版のRedis用Ruby Gems(redis-client/redis-cluster-client)のご紹介 - LIVESENSE ENGINEER BLOG
                                                  • 【再掲】新米エンジニアがRailsにコントリビュートした話 - 模索中

                                                    本記事は7年前の2015年1月、私が前職の技術ブログに投稿した記事の再掲版となります。 元のブログが閉鎖していたのでこちらに移します。 前職の会社が買収された後、文章は取っておいたのですが、特に読まれることもなかろうと下書きで放置していました。 この度伊藤さんのtweetをきっかけに再掲することにしました。 久々にこの記事を読もうと思ったんですが、もうアクセスできなくなっちゃってますね。。 南谷さんの個人ブログに転載できたりしないかな〜?— Junichi Ito (伊藤淳一) (@jnchito) 2022年1月10日 伊藤さん、掘り起こしありがとうございました。 初めての技術ブログに思っていた以上に反響があって当時はとても嬉しかったのをよく覚えています。 b.hatena.ne.jp 改めて読み返してみると苦笑いが浮かんで書き直したい衝動にかられますが、無効なリンクを削除した以外は原文

                                                      【再掲】新米エンジニアがRailsにコントリビュートした話 - 模索中
                                                    • DynamoDBでサポートされたPartiQLをRubySDKで利用する - dely Tech Blog

                                                      こんにちは。開発部の高橋です。 本記事はdely #1 Advent Calendarの11日目の記事です。 adventar.org dely #2もあるのでこちらもどうぞ。 adventar.org 昨日はうっくんさんの「UIデザイナーがSwiftを学んでUIを実装したら生産性が爆上がりした」でした。 note.com 先月末、DynamoDBがSQL互換言語であるPartiQLに対応しました。 aws.amazon.com PartiQLとはSQL互換のクエリ言語で、PartiQLから出力される中間表現を各サービスが対応することによって様々なサービスがSQLライクに操作できるようになります。 aws.amazon.com 今回の対応で、DynamoDBのGetItemやPutItemといった操作をSQLライクに実行できるようになりました。 また、それに合わせてRubySDKの方でも早

                                                        DynamoDBでサポートされたPartiQLをRubySDKで利用する - dely Tech Blog
                                                      • Gem in a BoxでプライベートなRubyGemsをDockerで簡単に構築する - YOMON8.NET

                                                        Gem in a Boxを使って、Dockerでローカル環境にRubyGemsを構築して、Gemをアップロードするところまで書きます。 github.com Gem in a Boxは公式でも以下の RUNNING GEM IN A BOX の項目で紹介されてます。 Run your own gem server - RubyGems Guides 作業前提 Dockerfile作成 設定ファイル準備(config.ru) 設定ファイル準備(Gemfile) Dockerイメージのビルド Gem in a Boxの起動 テスト用のGemを作成してアップロードしてみる Bundlerでテンプレート出力 テンプレート調整 Gemのビルドとアップロード Gemのアップロード Gemを利用してみる 作業前提 この手順を実行するために必要なのは、DockerとGitだけです。 Docker Git

                                                          Gem in a BoxでプライベートなRubyGemsをDockerで簡単に構築する - YOMON8.NET
                                                        • プロパティベーステスト (Property Based Testing) を Ruby で書き雰囲気を味わう - DIGGLE開発者ブログ

                                                          2023 年 10 月 30 日に『実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう』(以下 実践プロパティベーステスト本)という本が出版されました。 プロパティベーステストというのは、テストの一手法なのですが、これまでとは違う範囲をカバーするテストです。 今回はそれを Ruby に適用するとどうなるか検証、また似ている既知との概念と対比して理解を深めました。 これは Ruby Advent Calendar 2023 15 日目の記事です。 プロパティベーステストとはどのような形式か 既知の概念との対比 普段書いているテストと、プロパティベーステスト データ(テーブル)駆動テストと、プロパティベーステスト ファジングと、プロパティベーステスト 型と、プロパティベーステスト まとめ 実践プロパティベーステスト本は 2023 年 12 月現在、テストの一手

                                                            プロパティベーステスト (Property Based Testing) を Ruby で書き雰囲気を味わう - DIGGLE開発者ブログ
                                                          • 超入門USDT - ローファイ日記

                                                            Linuxアドベントカレンダー2020 8日目の記事です。前日はmomomo_rimotoさんの多段sshとchroot環境。そしていろいろなコマンドを使いたいでした。 qiita.com 今日はみんな大好きなeBPFにも関係して、特にUSDTという機能に関するお話をします。 USDT、それは USDT(User Statically-Defined Tracing) とは、要するに、ユーザランドにあるプログラムに対して、静的にトレースのための窓口(プローブ)を埋め込む仕組みです。トレースが無効の際はパフォーマンスが落ちないような工夫がされています。 詳細な説明は id:mrtc0 の記事の方がわかりやすいので、簡単な説明に留めますが... blog.ssrf.in カーネル側をトレースする際に、動的な関数などのプローブをkprobe、静的にカーネルに組み込まれたプローブをtracepoi

                                                              超入門USDT - ローファイ日記
                                                            • YJIT Is the Most Memory-Efficient Ruby JIT

                                                              This year, the YJIT team and I have gotten a paper accepted at MPLR 2023 (Managed Programming Languages and Runtimes), which is now freely available through ACM open access. The paper, titled “Evaluating YJIT’s Performance in a Production Context: A Pragmatic Approach”, goes into details of the strategy taken to evaluate YJIT’s performance in a production context. One of our key findings, when com

                                                                YJIT Is the Most Memory-Efficient Ruby JIT
                                                              • From Ruby to Node: Overhauling Shopify’s CLI for a Better Developer Experience (2023) - Shopify

                                                                From Ruby to Node: Overhauling Shopify’s CLI for a Better Developer ExperienceIn this blog post, Pedro explains why we rewrote Shopify CLI into Node instead of Ruby, the tradeoffs that came with the decision, the principles we embraced in this new iteration, and the challenges and ideas ahead of us to explore. The Shopify CLI (command line interface) is an essential tool for developers when buildi

                                                                  From Ruby to Node: Overhauling Shopify’s CLI for a Better Developer Experience (2023) - Shopify
                                                                • Faster Ruby: Thoughts from the Outside — Matthew Gaudet

                                                                  (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

                                                                  • Active Recordで関連先を保存するときに気をつけること - おもしろwebサービス開発日記

                                                                    先日、仕事でRails(Active Record)の難しい仕様に遭遇したので共有するためにエントリをしたためました。似たようなケースに遭遇した人の手助けになれば幸いです(\( ⁰⊖⁰)/) 対応Railsバージョンと設定 Rails6.1以上 config.active_record.has_many_inversing = true(Rails6.1のデフォルト設定)である 問題1 まず次のコードを読んでみてください。 class User < ApplicationRecord has_many :posts end class Post < ApplicationRecord belongs_to :user, inverse_of: :posts # (1) before_update { puts 'before_update' } end user = User.new po

                                                                      Active Recordで関連先を保存するときに気をつけること - おもしろwebサービス開発日記
                                                                    • Rubyでバイナリデータに対するrindex検索の挙動でハマったので調べたことメモ - すぎゃーんメモ

                                                                      自分の手元の環境でこんなことが起きた。 $ ruby -v ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21] $ irb irb(main):001:0> "\x01\x80\x00\x00".index("\x01") => 0 irb(main):002:0> "\x01\x80\x00\x00".rindex("\x01") => 1 \x01 は 0 番目にしかないのだから、 .index でも .rindex でも 0 が返ってくるはずではないの?? 先に結論 きっかけ String#rindex の謎挙動 もう少し深く追う Encodingと実行環境 つまり再現条件は Rooの問題 Rubyのバグではないの? 3.2 先に結論 バイナリデータを扱うときには必ずEncodingを ASCII-8BIT

                                                                        Rubyでバイナリデータに対するrindex検索の挙動でハマったので調べたことメモ - すぎゃーんメモ
                                                                      • Ruby 3.3.0: aarch64-linux環境でFiber.new{ }.resumeを呼ぶと落ちる問題|TechRacho by BPS株式会社

                                                                        2023.12.28 Ruby 3.3.0: aarch64-linux環境でFiber.new{ }.resumeを呼ぶと落ちる問題 この記事の内容は現在進行中なので、今後状況が変わる可能性があります。 M1 Macbook Pro 2021, Sonoma 14.2.1 Ruby: 3.3.0 Rails: 7.2.1 Docker: 24.0.6, build ed223bc Docker Desktop for Mac: 4.25.2 (129061) Docker Hub: 3.3.0-slim-bookworm 経緯 Ruby 3.3.0リリースの翌日にDocker Hubでも公式のRubyコンテナが公開されました。 ちょうど某所で「M1 MacのDocker環境でRuby 3.3.0ベースのRailsを動かすと落ちる」という書き込みをたまたま見かけました(その後書き込みは削除

                                                                          Ruby 3.3.0: aarch64-linux環境でFiber.new{ }.resumeを呼ぶと落ちる問題|TechRacho by BPS株式会社
                                                                        • Ruby で一番呼ばれたり定義されたりするメソッドはなんでしょう、調べてみました! - STORES Product Blog

                                                                          テクノロジー部門で Ruby インタプリタ開発をしている笹田です。 Ruby ではメソッドを駆使してプログラミングをします。そんな Ruby を使っていると、一番使われているメソッド や 一番定義されているメソッド を知りたいと思ったことはありませんか? 私はありませんでした。 が、ものは試しと調べてみました! 調査は、あるタイミングの Ruby の RubyGems で取得できるすべての Gem (の各 Gem の最新版)を集めてきて、その中の .rb ファイルをすべて読み込み、字面上で呼び出されているメソッドと、定義されているメソッドを集計したものです。実際に動かしたときに呼ばれたり定義されたりするメソッドの数の集計ではないことに注意してください(それは、実行しないとわからないので、網羅的な調査は難しいのです)。 ちなみに、この記事は、Ruby のメソッド定義時に仮引数があるとき、それ

                                                                            Ruby で一番呼ばれたり定義されたりするメソッドはなんでしょう、調べてみました! - STORES Product Blog
                                                                          • Enforcing Modularity in Rails Apps with Packwerk - Shopify

                                                                            Enforcing Modularity in Rails Apps with PackwerkPackwerk is an open source static analysis tool used to enforce boundaries between groups of Ruby files we call packages. On September 30, 2020 we held ShipIt! presents: Packwerk by Shopify. A video for the event is now available for you to learn more about our latest open source tool for creating packages with enforced boundaries in Rails apps. Clic

                                                                              Enforcing Modularity in Rails Apps with Packwerk - Shopify
                                                                            • YJIT: Building a New JIT Compiler Inside CRuby

                                                                              The 1980s and 1990s saw the genesis of Perl, Ruby, Python, PHP and JavaScript: interpreted, dynamically-typed programming languages which favored ease of use and flexibility over performance. In many ways, these programming languages are a product of the surrounding context. The 90s were the peak of the dot-com hype, and CPU clock speeds were still doubling roughly every 18 months. It looked like

                                                                                YJIT: Building a New JIT Compiler Inside CRuby
                                                                              • 【Tips】Ubuntuへのmysql2 gemインストール時に発生しうるエラーへの対処 - Qiita

                                                                                問題 Ruby on Rails 等で利用する Ruby の MySQL 用ライブラリmysql2インストールが失敗する。 入力 Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. current directory: /home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3/ext/mysql2 /home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.7.0/bin/ruby -I /home/【ユーザー名】/.anyenv/envs/

                                                                                  【Tips】Ubuntuへのmysql2 gemインストール時に発生しうるエラーへの対処 - Qiita
                                                                                • Mastering CSV in Ruby

                                                                                  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

                                                                                    Mastering CSV in Ruby