タグ

rubyに関するakahigegのブックマーク (198)

  • CarrierWave + RMagick 画像のリサイズをまとめてみました - 麺処 まつば

    こんにちは。麺処まつば副店長です。 久々の投稿ですけど、もう色々気にしないことにしました。 店長の視線がなんだって言うんですか。(キッ) さて副店長、先日中ずっとCarrierWaveを扱っておりまして その中でRMagickを使った画像のリサイズもやっておりました。 このリサイズ用のメソッドがいくつか存在するのですが (http://rubydoc.info/gems/carrierwave/CarrierWave/RMagick) 副店長は鳥頭のため…、何度やっても「どれがどうなるんだっけ?」という状況に…。 そこで、リサイズメソッドと実行の結果を何パターンかまとめてみます。 まずはオリジナルのこのような画像を用意してみました。 ↓100×100(各マス20x20)の画像です。 (なぜか5段目の青だけ濃ゆいのですが、どうかお気になさらず…。) では、この画像を下記のメソッドにかけてみま

    CarrierWave + RMagick 画像のリサイズをまとめてみました - 麺処 まつば
  • rubyのfastimageで簡単に画像サイズを取得する方法

    rubyのfastimageで簡単に画像サイズを取得する方法メモ。 rubygemsのfastimageで簡単に画像サイズを取得する方法 rubyで画像サイズを調べたい場合はfastimageを使うのがすごく簡単です。 簡単なだけでなく、このライブラリは画像の保存先がURLであっても非常に高速に動作します。画像ファイルの中からサイズに関係する部分のみを読み込むためです。 fastimageのインストール require 'fastimage' # URLから画像サイズを取得 FastImage.size("http://stephensykes.com/images/ss.com_x.gif") => [266, 56] # width, height # URLから画像フォーマットを取得 FastImage.type("http://stephensykes.com/images/png

  • Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita

    Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜RubyrbsSteepTypeProf はじめに Ruby 3.0ではRubyのコードに型定義情報を提供するRBSという仕組みが導入されます。 この記事では簡単なサンプルプログラムを通して、RBSとその周辺ツールの使い方や役割を説明します。 なお、説明する内容はあくまで初歩的な内容です。予めご了承ください。 動作確認時の実行環境 記事の執筆時点ではまだRuby 3.0は正式にリリースされていません。 正式リリース時、または今後のバージョンアップによってこの記事の内容と実際の挙動が異なる可能性もあります。 記事の執筆時に使用した実行環境は以下のとおりです。 Ruby 3.0.0dev (2020-11-13T16:46:08Z master 782621054

    Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita
  • Ruby2.6.xとRails4.2.xで発生するRSpecのアラートについて - Qiita

    ~ まえがき ~ 既存システムのRubyバージョンが間もなくサポート切れとなる(2019/3中旬時点) Ruby2.3系統で動いているので、2.6にバージョンを上げて挙動確認したときの話です。 Rubyを2.6.2、Railsを4.2.11.1にあげてRSpecを走らせてみた するとすべてのテストでFailure/Errorが発生。 ログを確認すると次のエラーが発生していた。 ThreadError: already initialized # ./spec/contorollers/hogehogehoge_spec.rb:line_no:in `block (4 lebels) in <top (required)>` すべて同じエラーでコケているのでとりあえずエラーコードをググる。 すると一つのIssueに引っかかった。 Tests cause ThreadError: alread

    Ruby2.6.xとRails4.2.xで発生するRSpecのアラートについて - Qiita
  • Ruby 2.4.0 で json gem v1.8.3 をビルドできない問題 - Qiita

    起きたこと omniauth-twitter gem を入れようとしたら、以下のような感じで怒られる。 Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/nomura/repos/tsun-doc/vendor/bundle/ruby/2.4.0/gems/json-1.8.3/ext/json/ext/generator /Users/nomura/.rbenv/versions/2.4.0/bin/ruby -r ./siteconf20170103-627-1wq7y31.rb extconf.rb creating Makefile current directory: /Users/nomura/repos/tsun-doc/vendor/bun

    Ruby 2.4.0 で json gem v1.8.3 をビルドできない問題 - Qiita
  • まつもとゆきひろのツイッターを見てRuby使うのをやめようと思った

    Matzことまつもとゆきひろといえばプログラミング言語Rubyの作者なのだが、技術的にはともかく政治的にはツイッターを見ていてとてもつらい。 「高度プロフェッショナル制度」について 高度なスキルを持つと自負し、高い裁量が欲しい私のような労働者を野党が目の敵にしてることはよく分かった。実に残念だ。— Yukihiro Matsumoto (@yukihiro_matz) March 1, 2018 「定額働かせ放題」とも呼ばれ、専門性も裁量性も低い業種への拡大が懸念される「高度プロフェッショナル制度」について、問題点を理解せず反対する野党を揶揄。 「IT 業界を苦しめたいか、生産性を高めるのを阻害したい勢力」について 軽減税率といい、改元といい、サマータイムといい、IT 業界を苦しめたいか、生産性を高めるのを阻害したい勢力が政治をコントロールしている陰謀論を信じたくなるな。— Yukihir

    まつもとゆきひろのツイッターを見てRuby使うのをやめようと思った
    akahigeg
    akahigeg 2020/10/14
    こういう人にそっぽ向かれることを気にして自分を変に抑えるのはバカバカしい
  • Rubyで最速のテンプレートエンジンを作る方法 - k0kubun's blog

    HamlitというRubyで使うテンプレートエンジンをメンテしてて、ちょっと前に思いついたけどこれまで実装してなかった最適化のアイデアを昨日それに実装したので、それについてちょっと書きたい。 github.com StringTemplate というテンプレートエンジン amatsuda/string_template というテンプレートエンジンがあって、 これは "the fastest template engine for Ruby" であると主張されている。 I think I just invented the fastest template engine for Ruby (Rails). Please enjoy! https://t.co/N056SReLh2 https://t.co/74MdR5DINj— Akira Matsuda (@a_matsuda) Dece

    Rubyで最速のテンプレートエンジンを作る方法 - k0kubun's blog
  • Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた - エンジニアHub|Webエンジニアのキャリアを考える!

    Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた 2019年12月25日にリリースされたばかりのRuby 2.7では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさんに詳しくうかがいました。 まつもとさんはとにかく忙しくて 実はすごいirbの改良 パターンマッチはRubyをどう変えるか キーワード引数は、端的に壊れていたのを大整理した 高速化に向けたいくつかの観点 Ruby 2.7で導入される「コンパクションGC」とは Ruby 3のビジョンは「静的解析」「並行並列」「JIT」 プログラミング言語Rubyには、クリスマス前後に新しいバージョンをリリースする伝統があり、2013年の2.1.0以降は毎年12月25日にメジャーバージョンアップが行われています

    Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた - エンジニアHub|Webエンジニアのキャリアを考える!
  • Ruby 2.7正式版が登場、オブジェクトのパターンマッチ、REPLの改善など。次はRuby 3が年内登場予定!

    毎年12月25日のクリスマスにアップデートされるオブジェクト指向スクリプト言語の「Ruby」。今回も新バージョンとなるRuby 2.7正式版が予定通り、2019年12月25日にリリースされました。 Ruby 2.7の主な新機能は、case文でのオブジェクトのパターンマッチ、コマンドラインからRubyが利用できるirbにおける複数行編集の対応、コンパクションガベージコレクタ、JITコンパイラ性能の改善などです。 Ruby 2.7の主な新機能 実験的実装による新機能として追加されたオブジェクトのパターンマッチ機能は、case文で使うことができます。 一般にパターンマッチとは文字列などの値に関するパターンの一致や不一致を思い浮かべますが、Ruby 2.7で追加されたのオブジェクトの構造がパターンと一致するかどうかが調べられ、一致した場合に処理が実行される、というものです。 これまでif分などを組

    Ruby 2.7正式版が登場、オブジェクトのパターンマッチ、REPLの改善など。次はRuby 3が年内登場予定!
  • RailsでTZ環境変数を設定するハックを不要にした話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

    TL;DR 『環境変数を設定するだけでRuby on Railsサーバが10%高速化する(かもしれない)話』  でRailsを高速化させる素晴らしいハックが紹介されましたが。いまや有効なハックではなくなりました。 TZハックさん、ながい間(2日間)おつかれさまでした。 はじめに アカツキさまで技術顧問をさせていただいている小崎です。 このエントリは『環境変数を設定するだけでRuby on Railsサーバが10%高速化する(かもしれない)話』をRubyコミッタが読んだらこうなったというアンサーソングになっています。合わせてお読みください TZ環境変数でTime.newが10倍近く速くなるのは素晴らしい発見ですが、コミッタとしてはTZなしでも速くなって欲しいなと思いました。だってめんどうだし。 現状分析 まず問題のテストプログラムを軽く分析してみましょう % strace -c ruby .

    RailsでTZ環境変数を設定するハックを不要にした話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
  • 速報: Ruby向け型チェッカー「Sorbet」をStripeがオープンソース化|TechRacho by BPS株式会社

    こんにちは、hachi8833です。決済代行サービスで知られるStripeが手がけているRuby向けの漸進的(gradual)型チェッカー「Sorbet」(ソルベ)がオープンソース化されたというアナウンスがありました。別記事で「この夏オープンソース化」と報じた通りでした😋。 We’re excited to announce that Sorbet—a fast, powerful type checker for Ruby, built by @Stripe—is now open source! See https://t.co/K9FL9x0sbw for more. — Sorbet (@sorbet_ruby) June 20, 2019 相変わらずかわゆいロゴです😍。trademark policyには名前がありませんが、当の名前は何なんでしょう?😅。ひとまず私の中でだ

    速報: Ruby向け型チェッカー「Sorbet」をStripeがオープンソース化|TechRacho by BPS株式会社
  • なぜ開発言語にRubyを選んだのか? SmartHRが明かす、成長の軌跡と技術選定 - Part1

    2018年12月14日、品川シーズンテラスカンファレンスにてRubyアソシエーションが主催するイベント「Ruby Business Users Conference 2018 Winter」が開催されました。すでにRubyを活用しているユーザーや、これからRubyをビジネスに活用しようと考えている人が集い、情報交換を行いました。基調講演「スタートアップの銀行口座残高と技術選定」に登壇したのは、株式会社SmartHR副社長兼最高開発責任者の内藤研介氏。創業から今日に至るまでの軌跡と、開発言語としてRubyを選択した理由を語ります。 スタートアップの銀行口座残高と技術選定 内藤研介氏:お疲れ様です。素晴らしいプレゼンばかりでしたね。もう、まつもと(ゆきひろ)さんの話も聞いたし目当てのプレゼンも聞いたし、花金だし。「そろそろ帰りたいな」なんて方もいらっしゃるかもしれないですが(笑)、もう少しだけ

    なぜ開発言語にRubyを選んだのか? SmartHRが明かす、成長の軌跡と技術選定 - Part1
  • Rubyのまつもと氏、「気分を害することもある。だからどうか建設的であってほしい」

    オープンソースソフトウェアの開発においては、コミュニティメンバーからのコードのコントリビュートだけでなく、さまざまな立場の人々から「この機能がほしい」「この動作はバグではないか」といった意見が寄せられます。 有名なオープンソースプロジェクトであるほど、そうした多くの意見やコメントを受け止めつつ開発は進んでいくわけですが、そうした状況は一方でさまざまな気苦労を生むであろうことは容易に想像が付きます。 人気のあるプログラミング言語として知られるPythonの生みの親であるGuido van Rossum氏は2018年7月、Pythonを開発する過程で生ずるさまざまな意思決定の気苦労から離れたいとの理由で、Pythonにおける「優しい終身の独裁者」からの引退を発表しました。 ちょうど新バージョン「Ruby 2.6」が登場したばかりのRubyに対しても、米国の掲示板redditで「[whining

    Rubyのまつもと氏、「気分を害することもある。だからどうか建設的であってほしい」
  • Hanamiを採用して良かった点と苦労した点 | 株式会社LegalOn Technologies

    20XX年、僕は Ruby on Rails の規約に違反したコードを書いたことでレイルズ王国の異端審問にかけられていた。僕がリポジトリに commit した app/services/ や app/repositories/ といったディレクトリと、その中に定義された Command パターンを用いたクラスや Module#refine による DCI もどき達がレイルズ王国の異端審問官の目に触れてしまったのだ。(僕は ActiveRecord で作られた Model の特異クラスに対して Module この記事でも紹介されているように、HanamiはDDD(Domain-driven design)を元に設計されているフレームワークです。 Railsを使っていると問題になってくることとして、サービス規模が大きくなるにつれてRails wayを遵守して開発することが難しくなり、例えばSe

    Hanamiを採用して良かった点と苦労した点 | 株式会社LegalOn Technologies
  • Rubyの高速フォーマッタ-"Rufo"を使ってみる【18/09/30更新】 - Qiita

    普段はVisualStudioCodeでRailsのコードを書いているのですが、Rubyのフォーマッターがほしいと常々思っていました。 そこで、週間Railsウォッチで紹介されていたRufoというRubyフォーマッターを使ってみたところ、非常に使いやすく、自分の使い方にもマッチしていたので紹介します。 変更点 2018/09/30 Setting.mdに合わせて設定の内容を更新しました。 設定できる項目が減り、いずれ設定をする必要がなくなるようです。 細かく設定したい人にはうれしくない話かもしれませんが、フォーマットは統一できればさほど問題ないので、細かく設定できて差分が生じるより良い話かと思います。 フォーマッターに求めること 自分がフォーマッターに求めることは主に以下の4つです。 保存時に自動でフォーマットがかかること フォーマット設定が容易で、共有できること ストレスなく使えること

    Rubyの高速フォーマッタ-"Rufo"を使ってみる【18/09/30更新】 - Qiita
  • フルタイムのコミッターとして企業に属しながらオープンソースのプログラミング言語を開発するということ - GeekOutコラム

    卜部という名前で、マネーフォワードという会社でプログラミング言語Rubyの開発に携わっているものです。 実は、この文章を書き始めるまでにずいぶんと悩みました。というのも、これまでこのコラムに登場した他の人たちと違って、自分のキャリアというのは決して戦略的に積み重ねてきたものではないのです。そもそも初回の転職からして、やりたくて転職したわけではない。 思い返せば大学院から最初に就職した会社は、受託開発で忙しいながらも楽しく、社会人としてもプログラマとしても大きく成長させてくれた職場でした。何もなければそのまま一生そこで勤めて終わる、当にそう思っていましたし、今でもやがては戻れたらいいなあと思います。しかし現実にはそうはならなかった。どこに行っても仕事がなく、開発者が余ってしょうがないみたいな時代があり、それが十年近く前ですけど、ありていに言えば放り出されてしまった。会社都合退職です。 しょ

    フルタイムのコミッターとして企業に属しながらオープンソースのプログラミング言語を開発するということ - GeekOutコラム
  • Ovto(オブト)というRubyで書けるシンプルなクライアントサイドWebフレームワークを作りました - Qiita

    はじめに Ovto(オブト)というRubyで書けるシンプルなクライアントサイドWebフレームワークを作りました。RubyからJavaScriptへの変換にはOpalを使っています。 (2019/02/08追記:Rubyist Magazineに紹介記事を寄稿しました。記事より少し詳しめです。) (2018/11/02追記:0.2.0をリリースしました) (2018/11/30追記:これを使ってVisionというTODOアプリを作りました。3ヶ月ほど実用していますがとてもいい感じです。クライアント側のコードはこのへんです) 特徴 Rubyで書ける Redux風のAPI (Virtual DOM+シングルステート) hyperappの影響を強く受けています。 実装が短い(lib/以下の合計が721行) 例 例として華氏と摂氏を変換するやつをやります。 require 'ovto' class

    Ovto(オブト)というRubyで書けるシンプルなクライアントサイドWebフレームワークを作りました - Qiita
  • もしOSに断絶があればRubyは死んでいた可能性が高い、まつもと氏がRuby25周年で講演

    Post author:sider Post category:Uncategorized Reading time:4 mins read Post published:2018-02-26 もし過去のOSに断絶があったら、Rubyが絶命していた可能性はかなり高い。25年のRuby開発の歴史を振り返りつつ、そんな意外な見方を示したのはRubyの生みの親として知られる、まつもとゆきひろ氏だ。 日生まれのプログラミング言語「Ruby」(ルビー)が25歳の誕生日を迎えた。Rubyが生まれたのは1993年2月24日のこと。それからちょうど25年目となる2018年2月24日に、Ruby25周年記念イベント「Ruby25(ルビー・トゥエンティーファイブ)」が、Rubyアソシエーションおよび日Rubyの会の後援で東京の品川インターシティーで開催された。 基調講演を行ったまつもと氏は、25年を振り返

    もしOSに断絶があればRubyは死んでいた可能性が高い、まつもと氏がRuby25周年で講演
  • Ruby on Rails アプリケーションにおけるモンキーパッチの当て方 - クックパッド開発者ブログ

    技術部の牧です。 今日はモンキーパッチの話をします。 モンキーパッチとは何か そもそもモンキーパッチ (monkey patch) とは何でしょうか? 端的に言えば、言語の組み込みクラスやライブラリ、その他外部ライブラリの挙動を、動的に拡張する仕組みをモンキーパッチと呼びます。 *1 例えば、Ruby のモンキーパッチのすごく単純な例として以下のようなものがあります。 module NilClassExtension def empty? true end end NilClass.prepend(NilClassExtension) インスタンスが空であるかどうかを判定するメソッドとしての #empty? は String や Array など様々なクラスに存在しますが、 nil を唯一のインスタンスとする NilClass には来は存在しません。 このモンキーパッチを導入することで

    Ruby on Rails アプリケーションにおけるモンキーパッチの当て方 - クックパッド開発者ブログ
  • 依存関係をなくそう : Rubyアプリ・Gemの開発者への提言 | POSTD

    記事はRubyについて書かれたものではありますが、PythonJavaScriptJavaなど、全ての言語コミュニティに当てはまる事実を述べたものです。依存関係が引き起こす負の連鎖は誰のためにもなりません。 上の図は、私がこれまでに使用した全てのRailsアプリの依存関係を可視化したものです。以下の例はいずれも、どこかで聞いたことのあるものではないでしょうか。 何百ものエントリを含むGemfile 番環境で読み込まれるテスト用Gem 数百メガバイトもRAMをRailsのプロセス Rubygemsシステムは、それを再利用する誰もが容易にRubyのパッケージを作ることができるという点で、賞賛に値するものです。しかし、その便利さが意味するところは、そうしたGemと他のGemを非常に安易に結び付け、さらにそれが、「インターネットでダウンロード」され、数百もの依存関係を持つRailsアプ

    依存関係をなくそう : Rubyアプリ・Gemの開発者への提言 | POSTD