タグ

rubyに関するrightgo09のブックマーク (86)

  • アップグレード - ruby-jp

    RubyRails の Upgrade Knowledge 情報提供大歓迎。関連しそうなリンクをどんどん追加してください リンク先の内容の要約や、同じ内容の記事のグルーピングとかもやっていこう もちろん各ページに直接情報を書いてもok ≫ Rubyアップグレードガイド ≫ Railsアップグレードガイド

    アップグレード - ruby-jp
  • Ruby 3.1でJITを有効化したときにRailsアプリケーションは速くなるのか - Qiita

    はじめに Qiita株式会社 Advent Calendar 2021の22日目の担当は、Qiita株式会社CX向上グループの@kyntkです! Ruby 3.1で新たなJITであるYJITがマージされました。3.0の時点ではJITを有効化するとRailsのパフォーマンスが低下するということをなんとなく聞いたことがあったのですが、3.1ではどうなるのかが気になったので色々と調べてみました。 結論 正直恥ずかしながら、まだ私自身きちんと理解できていないので、必ず添付してある発表内容等を確認してください また、間違った情報があるかもしれないので、そこはコメントや編集リクエストでください!!! Ruby 3.0でMJITを有効にすると、デフォルト設定ではRailsアプリケーションではパフォーマンスの低下が起きうる Ruby 3.0.0 Released Ruby 3.1ではパフォーマンスは改善さ

    Ruby 3.1でJITを有効化したときにRailsアプリケーションは速くなるのか - Qiita
  • Ruby高速化のためのベンチマークツール benchmark_driver.gem - Qiita

    この記事はRuby Advent Calendar 2017 17日目の記事です。 benchmark_driver.gem とは Rubyの処理系を高速化していく上で重要な計測環境を改善するため、Ruby体のリポジトリにあるbenchmark/driver.rbの後継として作られたベンチマークツールです。普通にRubyのスクリプトのパフォーマンスを比較するのにも使えます。 また、このgemRuby Association開発助成金2017に採択されたプロジェクトとして開発されています。 何が便利なのか Procの起動を行なわない精度の良い計測ができる 皆さんがベンチマークによく使うのは、標準ライブラリの benchmark.rb か、見易い比較結果を得られる benchmark-ips.gem 等でしょう。 benchmark-ips.gem でよく使われるインターフェースや ben

    Ruby高速化のためのベンチマークツール benchmark_driver.gem - Qiita
  • Ruby の脆弱性を見つけた話 - クックパッド開発者ブログ

    こんにちは、技術部の遠藤(@mametter)です。フルタイム Ruby コミッタとして、クックパッドにあたらしく入社しました。よろしくお願いします。 最近、RubyRubyGems の脆弱性を発見して、その結果セキュリティリリースにつながるということを経験しました。どういう動機でどのように脆弱性を発見したか、どのように通報したか、などについてまとめてみます。Ruby の脆弱性を見つけたけどどうしよう、という人の参考になれば幸いです。 HackerOne について HackerOne という脆弱性情報の通報と公開のためのプラットフォームをご存知でしょうか。 OSS にとって脆弱性情報の管理は面倒なものです。脆弱性の通報を秘密裏に受け付け、関係者だけで議論しなければなりません。そのため、通常のバグトラッカとは別のコミュニケーションチャンネルを用意する必要があります。 そこで Hacke

    Ruby の脆弱性を見つけた話 - クックパッド開発者ブログ
  • プライベートな Ruby gem サーバーを GCP にデプロイする | Google Cloud 公式ブログ

    Ruby ユーザーに朗報です! 私たち Google は先ごろ、google-cloud-gemserver gem をリリースしました。これにより、お客様はプライベートな gem サーバーを Google Cloud PlatformGCP)に 1 つのコマンドでデプロイできます。 これは、プロプライエタリなビジネス ロジックを含むライブラリを作成している企業や、パブリック ライブラリを社内で使用するためにミラーリングしている企業にとって大きなメリットです。 こうしたライブラリは、Ruby では gem と呼ばれます。最近まで、gem の優れたホステッド ソリューションは存在しませんでした。そのため、特に Ruby では、多くの開発者が独自のカスタム ソリューションを構築したり、Gemfury のようなサードパーティに頼ったりしていました。 GCP で gem サーバーを運用することに

    プライベートな Ruby gem サーバーを GCP にデプロイする | Google Cloud 公式ブログ
  • 公開鍵暗号アルゴリズム RSA を使って実際に暗号化してみる - ✲゚。.ヾ(⌒(ノ'ω')ノ☆.。

    はじめに 新版暗号技術入門 秘密の国のアリス 作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2008/11/22メディア: 単行購入: 46人 クリック: 720回この商品を含むブログ (82件) を見る 引き続き「暗号技術入門」を読んでいます。 昨晩 公開鍵暗号 について読んだので、その復習がてら、実際に公開鍵暗号を使った暗号化にチャレンジしたいと思います。 そもそも公開鍵暗号とは何かという説明ついては、この記事では触れません。 RSA を使った暗号化について RSA とは RSA は公開鍵暗号アルゴリズムのひとつです。現在、公開鍵暗号アルゴリズムの中では最も広く使われています。RSA でプライベート鍵*1を作る際に id_rsa というファイルを作ることが多いので、見覚えがあるという方も少なくないのではないでしょうか。 RSA による暗号化・復号化のアルゴリズ

    公開鍵暗号アルゴリズム RSA を使って実際に暗号化してみる - ✲゚。.ヾ(⌒(ノ'ω')ノ☆.。
  • 【Ruby Advent Calendar 2016 1日目】 Ruby でブロックを簡潔に定義する - Secret Garden(Instrumental)

    Ruby Advent Calendar 2016の1日目の記事になります。 わたしはあまり Rails と言ったフレームワークや Ruby がよく利用されてる Web 界隈には詳しくはないので、記事は Ruby という言語に関するネタになります。 [Ruby といえば] さて、表題のブロックですが、Ruby といえばブロック、ブロックといえば Ruby というぐらい Ruby という言語を語る上では切っては切れない機能の一つになります。 特に #map や #select などと言ったリスト操作とブロックの組み合わせは Ruby を書く上での醍醐味と言っても過言ではないと思います。 [ブロックの不満点] そんな Ruby では多用されるブロックですが、コードを書く上で少し不満点があります。 例えば次のようなコードをみてみましょう。 ["foo", "bar", "baz"].map {

    【Ruby Advent Calendar 2016 1日目】 Ruby でブロックを簡潔に定義する - Secret Garden(Instrumental)
  • Rails アプリケーションにおけるリファクタリングの実践 - peroli Developer's Blog

    2016 - 05 - 06 Rails アプリケーションにおけるリファクタリングの実践 Ruby on Rails こんにちは、MERY のサーバサイド開発をしている末並 @a_suenami です。 TDD、 アジャイルDB 界隈等によく出没しますが、最近では糖質警察としてのほうが広く知られている気がする今日この頃です。糖質制限に興味ある方はぜひウィスキーを片手にケトン体の話でもしながら飲みましょう。 さて、現在、MERY は Ruby on Rails で開発されていますが、最初にリリースされたのはもう 3 年近く前であり、その頃とはサービスを取り巻く状況が大きく変わってきています。これまで多くのユーザの「かわいい」を支え、よい体験を提供し続けてきた現在の MERY とそのコードベースを否定することは決してできませんが、日々変わるユーザの「かわいい」ニーズと我々のビジネス状況の変

    Rails アプリケーションにおけるリファクタリングの実践 - peroli Developer's Blog
  • Ruby 2.2 で {"Arbitrary Key": "value"} が出来るようになった話 - ちなみに

    リリース! さきほど待ちに待った Ruby 2.2.0 がリリースされました。 関係者のみなさん、すばらしいクリスマスプレゼントをありがとうございます! https://www.ruby-lang.org/en/news/2014/12/25/ruby-2-2-0-released/ 変更点については preview1 のときにざっくりとしたまとめを作っているのでご参照ください。 今回は preview1 以降の変更で個人的に一番最高のやつを紹介します。 TL;DR 2.1 までは出来なかった特殊なシンボルでも新しい Hash リテラルの書き方が出来るようになった。 { "ヾ(*≧∀≦*)ノ": "寿" } #=> {:"ヾ(*≧∀≦*)ノ"=>"寿"} Hashリテラルの書き方について Ruby の Hash ではシンボルをキーにすることがよくあります。通常の書き方で書くとハッシュロケッ

    Ruby 2.2 で {"Arbitrary Key": "value"} が出来るようになった話 - ちなみに
  • ブラウザ操作の自動化: selenium と ruby - momota.txt

    selenium と ruby を使ってブラウザ GUI 操作を自動化する。 selenium は、Web アプリケーションの自動テストのためのツール。 レグレッションテストによく使われているようだ。 selenium は、ブラウザ操作シナリオを事前に設定して、シナリオ通りに実行してくれる。 シナリオ設定といっても、Firefoxプラグインの Selenium IDE などを使うと操作を 記録してくれる機能があるのでそこまで大変ではない。 詳細は、Ruby アソシエーション – selenium の “1.2 テストの作成” あたりを参照してほしい selenium は、クロスブラウザのツールで、IE を使って IE限定みたいなサイトでも使える。 IE や Chrome で使うには各 Selenium WebDriver が必要となる。 テスト用と言いつつ、使い道はいろいろとある。 社内の

    ブラウザ操作の自動化: selenium と ruby - momota.txt
  • Railsの基本理念 : Railsの生みの親が掲げる8つの原則 | POSTD

    (訳注: 2016/3/2、頂いたフィードバックをもとに記事を修正いたしました。) Ruby on Railsは最近、急激に注目を集めていますが、その原因はほとんど、この言語が斬新なテクノロジーとしてもてはやされたことと、タイミングにあります。技術的な優位性は時間の経過とともに失われますから、タイミングがよかっただけでは、一過性のブームに終わり、このムーブメントの隆盛は長続きしません。従って、「Railsがいかにして、適切な技術としての位置を維持し続けるるだけでなく、影響力とコミュニティを拡大し続けてきたのか」をより多くの人に説明していく必要があります。そして、その維持・拡大を可能にした/していく要因は、物議を醸すことさえあるRailsの基原則にあると考えています。 この基原則はここ10年ほどの間に進化を続けてきましたが、最も強固な柱となっているルールはやはり、公開当初から制定されてい

    Railsの基本理念 : Railsの生みの親が掲げる8つの原則 | POSTD
  • Railsアプリを66%スピードアップ ― Railsキャッシュの完全ガイド | POSTD

    (訳注:2016/3/2、頂いた翻訳フィードバックをもとに記事を修正いたしました。) Railsアプリでのキャッシングは、「たまに夕を一緒にするけれど、当はもっと頻繁に一緒にいるべき友達」に少し似ています。パフォーマンスをまじめに考えるRailsアプリのほぼ全てで、もっとキャッシングを使えるはずですが、ほとんどのRailsアプリでは、完全にキャッシングを避けています。それでも普通は、Railsで高速なサーバ応答を達成するための唯一の道は、キャッシングの知的な利用なのです。約250msの応答時間を、簡単に50~100msに高速化できます。 定義についての注意 ― この記事は、アプリケーション層のキャッシングのみを対象としています。HTTPキャッシング(これは全く別の難物で、あなたのアプリケーションに実装する必要はありません)は、別の機会で扱いましょう。 するべきキャッシングをしない理由

    Railsアプリを66%スピードアップ ― Railsキャッシュの完全ガイド | POSTD
  • Rails で fat model を避けるための、あまり知られていない方法について - おもしろwebサービス開発日記

    このエントリで書いた内容は、ほぼ Growing Rails Applications in Practice の内容が元になっています。英語ですが、ここで挙げた内容以外にもコードを綺麗に保つテクニックが書かれており、かつページ数も少なく読みやすいです。コードを綺麗に保つのが好きな方は一読してみることをおすすめします。 はじめに Rails で fat model を避けるための方法は、7 Patterns to Refactor Fat ActiveRecord Models を始めとして、多くのやり方が存在します*1。 validation や callback は ActiveRecord(以下AR) を継承せずとも利用することができます。7 Patterns to Refactor Fat ActiveRecord Models の 「3. Extract Form Objects

    Rails で fat model を避けるための、あまり知られていない方法について - おもしろwebサービス開発日記
  • Slimより高速なHaml実装「Hamlit」をリリースしました - k0kubun's blog

    slim-template/slimのcompiled benchでオリジナルのhamlに比べ8倍高速に動作するhaml実装をリリースしました。 github.com なぜ高速なHaml実装を作ったのか 個人的にhamlのシンタックスのほうが好きなので、「hamlは遅いからslimを使う」みたいな人を減らしたかったから。以前slimの普及に貢献したんだけど、気が変わったのでhamlを応援することにした。 実は他にも既にeagletmt/famlという高速なHaml実装が存在していたんだけどベンチを走らせたらslimより遅かったので、slimを打倒するべく再実装した。 どのくらいHamlより速いのか 自分の実装に都合のいいベンチマークを作るのは簡単なので、公平性を期すためにslim-template/slimのcompiled benchと同じものを使い、誰でも同じ環境が使えるtravisで

    Slimより高速なHaml実装「Hamlit」をリリースしました - k0kubun's blog
  • Ruby 2.2.0 の新規フィーチャーをネチっこくおさわりする #ruby - Qiita

    Ruby 2.2.0 の新規フィーチャーを ネチっこくおさわり する #ruby 概要 2014/12/25 にリリースされた Ruby 2.2.0 の新規フィーチャーを ネチっこくおさわり してみます リリースノート Ruby 2.2.0 リリース | Ruby Official Ruby NEWS | GitHub Ruby 前提 下記記事で作成した環境を利用 Vagrant + CoreOS + Docker + Itamae で使い捨ての Ruby 2.2.0 環境を構築する pry を利用して、一部の新規仕様のドキュメントを参照します 1 Binding Binding#local_variables pry で doc を確認 [6] pry(main):1> ? local_variables From: vm_eval.c (C Method): Owner: Kernel

    Ruby 2.2.0 の新規フィーチャーをネチっこくおさわりする #ruby - Qiita
  • Unicornの2倍のパフォーマンスを実現したRackサーバ「Rhebok」をリリースしました - blog.nomadscafe.jp

    “Hello World”なベンチマークでUnicornに比べ2倍高速に動作するRackサーバをリリースしました。 rubygems: http://rubygems.org/gems/rhebok github: https://github.com/kazeburo/rhebok PerlのGazelleをベースに作っています。Rackアプリケーションの運用経験がほぼないので、機能不足があると思います。issue等で教えて頂ければ幸いです。 なぜ高速に動作するアプリケーションサーバが必要なのか Unicornは高速に動作します。多くのアプリケーションにとっては十分でしょう。それでもRhebokでさらに上のパフォーマンスを出そうとしたのは、技術的なチャレンジの他に以下のようなアプリケーションで高速なアプリケーションサーバが必要とされると考えているからです。 ソーシャルゲーム、広告サーバ、

  • Ruby Gem Configuration Patterns | Brandon Hilkert

    This is one of the final post leading up the the launch of the Build a Ruby Gem Ebook, which is now available for sale in 3 packages, including 14 chapters of code and over 2 hours of screencasts. The world isn’t black and white (as much as we’d like to believe it is). Just because our gem’s functionality may work for us, doesn’t mean it’ll work for everyone. Fortunately, we can give users the abi

    Ruby Gem Configuration Patterns | Brandon Hilkert
  • Deeper look at RFC7159 the JSON

    "Ninja" talk at Oedo Ruby Kaigi #04

    Deeper look at RFC7159 the JSON
  • ruby-profとKCacheGrindでプロファイル野郎になる - 昼メシ物語

    速さが足りない!!!!! そんな時はプロファイリングの時間ですね。 Rubyには標準添付ライブラリとして profile というプロファイラがついてくる。でもこのライブラリはあまりに遅すぎて実用に耐えないから、多分誰も使っていない。ほとんどのRubyistは ruby-prof を使っていることだろう。 今回はこの ruby-prof を使って Ruby プログラムのプロファイリングする方法を紹介する。 計測する(ruby-prof) ruby-profはrubygemsで簡単に入る。 $ gem install ruby-profruby-profというコマンドラインツールがインストールされる。これを使うと、プログラムを変更することなく手軽にプロファイリングを行うことができる。ruby-profコマンドのusageは以下のとおり。 ruby_prof 0.9.2 Usage: ruby_

    ruby-profとKCacheGrindでプロファイル野郎になる - 昼メシ物語
  • 今日から使える!RSpec 3で追加された8つの新機能 - Qiita

    はじめに RSpec 3が正式リリースされて2ヶ月ほど経過しました。(正式リリースは2014年6月) ネットの情報を見ていると、これまでは「既存のテストケースをRSpec 3にアップグレードさせる方法」や「RSpec 3で削除されたり、記法が変わったりした点」など、「守りの姿勢」に入った情報が多かったように思います。(僕自身もそういう情報をたくさんアップしていました) しかし、RSpec 3では以前のバージョンでは使えなかった新しい機能も数多く導入されています。 そこで記事では「攻めの姿勢」で「RSpec 3から導入された新機能」をまとめてみました。 なお、ここでフォーカスするのはテストコードの書き方にダイレクトに関わってくるマッチャの新機能です。 2015.01.12:RSpec 3.1に関する情報を追記しました RSpec 3.1に関する情報も追記しました。 もともと紹介していた新機

    今日から使える!RSpec 3で追加された8つの新機能 - Qiita