タグ

Rubyに関するmikage014のブックマーク (523)

  • Rubyを2.0から2.3にバージョンアップした効果とか - トレタ開発者ブログ

    インフラをチョメチョメしている佐野です。今日はRubyを現最新バージョンの2.3.1にアップデートしたのでその効果について書きます(2.0、とっくにEOLですしね...)。gemのバージョンアップはserizawaニキがやってくれました。結論から言いますと、 CPU使用率が劇的に下がり、メモリ使用率が少し上がった。 サーバ台数削減できる。 です。 CPU 9/6の昼過ぎくらいに2.3に切り替えたのですがそれ以降、CPUが下がっていることがわかります。 メモリ メモリについては使用率が上がっています。 2.3 2.0 何が使っているのかというと、Ruby2.3なプロセスのメモリ使用量が全体的に増えました。次のtopコマンドは左ペインが2.3、右ペインが2.0なのですが、rubyないしbundleとなっているものがunicorn, sidekiqになります。これら全般的に2.3の方がメモリ使用

    Rubyを2.0から2.3にバージョンアップした効果とか - トレタ開発者ブログ
  • 書き捨てのRubyスクリプトをgemにするときの育て方の一例 - 2016-09-08 - ククログ

    Rubyでちょっとしたこと、例えばテキスト処理などをしたくてスクリプトを書くことはよくあります。そんなスクリプトは意外と再利用したくなるものです。しかし、作業用ディレクトリに適当なファイル名で保存していたりすると探し出すのは困難ですし、コマンドラインにワンライナーで書いたものだとそもそも残っていないこともあります1。別のPCでの再利用も、それらの保存方法では当然ながら不可能でしょう。 そこで、どこか整理された場所に保存しておいて再利用に備えたいのですが、保存先が問題になります2。そんなとき、私は次のような理由からgemRubyGems)にしてしまうことにしています。手元ですぐに実行できますし、別の環境へのインストールも簡単です。また、他のRubyプログラムへの組み込みもコピペせずに実現できます。もちろん他の人が使えるようになるというメリットもあるのですが、自分の用途に限っても長い目で見れ

    書き捨てのRubyスクリプトをgemにするときの育て方の一例 - 2016-09-08 - ククログ
  • Ruby 2.4.0 で導入予定の Integer Unification まとめ, 夏休みで北海道へ - HsbtDiary(2016-08-29)

    Ruby 2.4.0 で導入予定の Integer Unification まとめ Ruby 2.4.0 で導入が予定されている Integer Unification が与えるであろう Ruby アプリケーションへの影響をまとめておく。 率直には rb_cFixnum や rb_cBignum が 2.4 からは見えなくなるので、それらを参照しているような native gem が対応していなければビルドできないためアプリケーションが動かなくなる。じゃあ、対応したバージョンに全てバージョンアップすればいいじゃん、という話なのだけど bundler が解決してくれる dependency 沼と絡み合って、単純には解決できずに 8 月現在は厳しい状態になっている。 json は Rubybundle している�バージョンですでに Integer Unification 対応がなされ

    Ruby 2.4.0 で導入予定の Integer Unification まとめ, 夏休みで北海道へ - HsbtDiary(2016-08-29)
  • rbenvでRubyのバージョンを指定する方法 - Qiita

    rvmからrbenvに切り替えてみたのでrbenvがどういう方法でRubyバージョンを指定したり、状況によって切り替えることができるのか確認してみた。基 https://github.com/sstephenson/rbenv/ の要約および動作確認、バージョンは0.4.0。 shims ~/.rbenv/shimsにあるスクリプトが使うコマンド(irb, gem, rake, rails, rubyなど)を振り分けてくれる。shimsが振り分けた先を知るにはrbenv whichを使う。 bundleなどgemでインストールして新しいコマンドが増える場合は~/.rbenv/shimsに振り分けるスクリプトを置かないといけないのでrbenv rehashを唱える必要がある。 RBENV_VERSION ドキュメントによると RBENV_VERSION 環境変数が使うバージョンを決める。従

    rbenvでRubyのバージョンを指定する方法 - Qiita
    mikage014
    mikage014 2016/08/22
    rbenv local x.x.x で.ruby-versionファイルが作られてプロジェクト毎にrubyのバージョンを切り替えできる
  • Rubyのテスティングフレームワークの歴史(2014年版) - 2014-11-06 - ククログ

    2014年12月にRuby 2.2がリリースされる予定です1。 Ruby 2.2にはRuby 1.9.1のときに外されたtest-unitというテスティングフレームワークが再びバンドルされる予定です。Rubyのテスティングフレームワーク周りに詳しくない人にはよくわからない状況でしょう。そこで、Rubyのテスティングフレームワークの歴史を説明することで状況を整理します。 名称の整理 この説明の中ではたくさんのテスティングフレームワークが登場します。似たようなものもあるため、最初にテスティングフレームワークの名称を整理します。この説明の中で登場する名称は次の通りです。 RubyUnit Lapidary rubyunit Test::Unit test/unit test-unit miniunit minitest RSpec 違いがわかりますか?ざっくり説明すると次の通りです。 RubyU

    Rubyのテスティングフレームワークの歴史(2014年版) - 2014-11-06 - ククログ
  • GitHub - rkh/rbenv-update: update rbenv and plugins

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - rkh/rbenv-update: update rbenv and plugins
    mikage014
    mikage014 2016/08/18
    rbenv updateでrbenvをアップデートできるようになるプラグイン
  • rbenv-updateを使ってRubyのバージョンを上げたついでにRailsをインストールした(CentOS) - Qiita

    rbenv plugin の rbenv-update を使用してRubyのバージョンを上げました。環境はMacにあるVagrantのCentOSです。 きっかけ 以前rbenvでrubyのバージョンを上げた流れを投稿した記事へ、rbenv-updateを使うとrbenvのupdateは楽ですよとコメントをいただいたので使ってみました。 rbenvのバージョンなどはrbenvを再インストールしてRubyのバージョンを上げた(CentOS)に書いてあるバージョンと同じです。 rbenv-updateをインストールする rbenvのpluguinをインストールします。 手順は https://github.com/rkh/rbenv-update ある通り3つのコマンドを順番に実行します。 [ -z "$RBENV_ROOT" ] && export RBENV_ROOT="$HOME/.rb

    rbenv-updateを使ってRubyのバージョンを上げたついでにRailsをインストールした(CentOS) - Qiita
  • はんこ画像生成botのソースコードを公開します - すずしめにっき

    サークルのslackで動かしているはんこをつくるbotです。 こんな感じに受け取った文字列をはんこ画像にして返します。 たまにこのブログ上でも登場していたのですが、折角なのでソースを公開しておきます。 gist.github.com 全体は2つのrubyのスクリプトで構成されています。 はんこ画像を生成するmakehanko.rbとslackと通信して文字列を受け取ったりはんこ画像を投稿したりするhanyu_hanko.rbです。 つまり、makehanko.rbだけで独立したはんこ画像生成機として使うことができます。 makehanko.rbの使い方 画像に文字をいれるためにrmagickというライブラリ(gem)に依存しています。 これはimagemagickというツールをrubyから扱うためのラッパーのようなものなので、まずimagemagickのインストールが必要です。 私が動かし

    はんこ画像生成botのソースコードを公開します - すずしめにっき
  • Rubyでディープラーニング - Qiita

    背景 現在、TensorFlow、Chainer他多数のDeepLearning用ライブラリが公開されています。 格的なアプリケーションで使うには実行スピード、クオリティ、拡張性、ドキュメント、コミュニティの充実等多くの面で、それらの中から選択して使用するのが鉄板な状況です。もちろん、私もメインではそれらを使わせてもらっています。これらのライブラリ、例えばtensorFlowではcomputatoin graphを構築、operationを追加してそれを実行というイメージで(行列、数式で取り扱うイメージ)、根底にある古典的なニューロンの結合という考え方が隠されている気がします。むしろ、そのことは忘れて突き進んでしまっても良い気はしますが、自分の理解を深める意味でもニューロン指向でスクラッチからニューラルネットワークを書いてみました。 使用言語は機械学習分野ではPythonに残念ながら遅れ

    Rubyでディープラーニング - Qiita
  • 再帰や繰り返しが面倒な順列/組み合わせの生成もRubyなら一瞬 - Qiita

    perm = (1..3).to_a.permutation(3) perm.to_a # => [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

    再帰や繰り返しが面倒な順列/組み合わせの生成もRubyなら一瞬 - Qiita
  • Ruby の csv ライブラリーにおける空フィールドの扱い - Qiita

    はじめに Ruby には CSV 形式の読み書きができる,その名もずばり csv というライブラリーが標準添付されている。 この記事では,読み込む CSV テキストに空のフィールドがあった場合の注意点を述べる。 あ,不正確なところがあったらツッコミを入れてください。 CSV おさらい CSV をよく知ってる人は飛ばしてください。 CSV は n 行 m 列に並んだ文字列群を表現するフォーマットの一つで,列の区切りにカンマを使い,行の区切りに改行を使う。 要するに のようなやつ。 フィールドをカンマで区切るからそういう名前になっている。日語でも「カンマ区切りテキスト」などと呼ぶ。 単純そうだけど,「フィールド値にカンマが含まれてたらどう表現すんの?」とか「フィールド値に改行を含むことは可能か」というようなことを考え出すと,そう単純でもない。 極めて重要かつ頻用されるフォーマットなのに,JI

    Ruby の csv ライブラリーにおける空フィールドの扱い - Qiita
  • 「現状に満足したら死ぬ」 Ruby開発者まつもとゆきひろ氏が語る進化の必然性 | キャリアハック(CAREER HACK)

    プログラミング言語「Ruby」の生みの親であるまつもとゆきひろ氏が、ラクスル株式会社の技術顧問に就任。いま、まつもとゆきひろ氏が持つ危機感とは? 島根に住みながら技術顧問に|まつもとゆきひろ氏のワークスタイル 1995年に公開されてから、オブジェクト指向スクリプト言語として、世界中の多くの開発者に支持されている「Ruby」。まつもとゆきひろ氏は現在、計6社の技術顧問を務めている。 まずは、まつもと氏の働き方・顧問としてのワークスタイルについて紹介しよう。 僕は普段、島根にいるので、月に1回くらいのペースでSkypeミーティングをするというかたちでお手伝いしています。話す内容は、Rubyのこと、周辺のコミュニティのこと、プログラミング言語のことなどについて。それからソフトウェア開発で痛い目を見たときの話や、とくに業界から遠い人が持っているオープンソースに対する誤解についてもお話します。僕の話

    「現状に満足したら死ぬ」 Ruby開発者まつもとゆきひろ氏が語る進化の必然性 | キャリアハック(CAREER HACK)
  • Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その1 - ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記

    Rubyのリファクタリングでオブジェクト指向設計に沿った美しいコードになるまでの方法を書いた。 元ネタはこちらのBen Orenstein氏のリファクタリングで、そこに私なりの解説とコードを加えた。かなり追加したのでOrenstein氏の原型とはだいぶ違う箇所もあるがオブジェクト指向設計とリファクタリングに対する考え方は同じなはず。 github.com 全3回に渡ってリファクタリングする。 「イケてない」から「マシ」にするためのリファクタリング 「マシ」から「いいね」にするためのリファクタリング 「いいね」から「スゲーいいね」にするためのリファクタリング 今回は1.の「イケてない」から「マシ」にするためのリファクタリング。 イケてないコード 以下にあるのがなんかイケてないコード。一応動くし、テストもパスしている。でもそのコード品質は平均よりちょっと下。 範囲を指定してその間の売上の総合計

    Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その1 - ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記
  • Rubyから外部コマンドを実行するときはShellwordsモジュールが便利 - おんがえしの blog

    続きを書きました。 少し前にakrさんからもらったパッチで知った Shellwords というモジュールが便利だったので紹介します。 Rubyスクリプトからシェルにコマンドを投げ込むときに必要なことを代わりにやってくれるいいやつです。 module Shellwords (Ruby 2.2.0) インストール 標準添付なのでrequireすればすぐに使えます。 require 'shellwords' 問題 コマンドから引数を受け取ってlsするスクリプトを考えてみます。 require 'shellwords' system("ls #{ARGV[0]}") だいたいのケースはこれでいいのですが、引数に空白入りのファイルが渡されたときなどに問題が起きます。 $ ruby ls.rb "foo bar.txt" # foo\ bar.txt でも同様 ls: bar.txt: No such

    Rubyから外部コマンドを実行するときはShellwordsモジュールが便利 - おんがえしの blog
  • マルチスレッド/プロセスまとめ(Ruby編) - Qiita

    プログラムの実行単位 固有のメモリ空間を持つ(リソースを共有しない) マルチプロセスの場合、物理/仮想メモリ領域間のアドレス解決のオーバーヘッドが高い。 プロセスの実行単位 共通のメモリ空間を持つ(リソースを共有する) マルチスレッドの場合、物理/仮想メモリ領域間のアドレス解決は発生しない。 ユーザースレッド ユーザー空間(アプリケーションが利用するメモリ空間)を利用 1つのプロセスに複数のスレッドがあっても、1つのスレッドしか実行されない。 OSカーネルを介さないスレッド切り替えのため、スレッド切り替えに伴うオーバーヘッドが少ない。 仮想VM上で実行されるスレッドをグリーンスレッドと呼ぶ。 カーネルスレッド カーネル空間(カーネルが利用するメモリ空間)を利用 1つのプロセスに複数のスレッドがある場合、同時に複数(CPUコア数分)のスレッドを実行できる。 OSカーネルを介するスレッド切り替

    マルチスレッド/プロセスまとめ(Ruby編) - Qiita
  • Rubyで日本語のURI(URL)をパーズするなら Addressable::URI を使おう - Qiita

    Rubyの標準URIクラスでは日語を含むURIをparseすることはできません(どのRFCを対応しているかの関係らしいです)。 なので解決方法としては Addressable::URI というgemがあるのでそれを使用することで日語URIに対応することができます。 ライブラリURL https://github.com/sporkmonger/addressable

    Rubyで日本語のURI(URL)をパーズするなら Addressable::URI を使おう - Qiita
  • 全てのRubyエンジニアはだいたい糞である

    汎用系のエンジニアからRubyエンジニアとして転職して1年。 コボラー(笑)なんて言われることも多いが、この1年で出会ったRubyエンジニアは全て糞だった。 その特徴はだいたいこの3つだ。 1.テストを甘く見ているやれテスト自動化だ、やれテスト駆動開発だの口だけ達者なエンジニアの多いこと。 そもそもブラックボックステスト、ホワイトボックステストを分かっていない奴が多すぎ。 テストコードでカバレージが100%だったとしても実際の打鍵結果でエラーは弾けることが多いのにリリースしてしまう。 そもそもテストケース表を若いうちに書く習慣が無いからだ。 ドキュメントを揶揄し机上デバッグも行わない、こんな状態で「アジャイルですから」とかドヤ顔でいってしまうRubyエンジニアは糞である。 2.パフォーマンスを考えないRubyエンジニアはパフォーマンスを考えない。 どのメソッドがどれくらいの負荷なのか意識

    全てのRubyエンジニアはだいたい糞である
  • PythonからRubyに移行した人間の印象 - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 安物のねぎとろは、納豆と良くあう。 前提 はじめてのにき(2016-06-16) より。 このエントリの立ち位置について 元々はPythonを勉強していたのだけれども、仕事の関係上、Rubyを主軸にすることにした人間のエントリです。ちなみに、PythonRubyの立ち位置には詳しくなく、主観を元に構成されているので、客観的な部分に関しては弱いことをお断りしておく。また、現時点での知識が2.7になっているので、3.5では多少違う点があるかもしれない。 なぜならPythonのほうが「わかりやすかった」から まず最初に、Pythonのほうが機械科学系の人に支持されやすい傾向としてあるのは、Pythonのライブラリ、例えばNumpyであったり、Scipy、または各種機械学習系のライブラリなどの影響が大きいのは間違いない。最近の機械学習ブームのせいなのか、Pythonも「エモい人(エモ

    PythonからRubyに移行した人間の印象 - Line 1: Error: Invalid Blog('by Esehara' )
  • Rubyが今のPythonの地位にいない理由

    _ Rubyが今のPythonの地位にいない理由 歴史のことなんぞなんも知らんけど、「技術的には今のPythonの地位はRubyでもよかったのに、そうならなかった」のが何故か、その理由を書いてみよう。僕はRuby歴史なんて知らないし、以下の文章は全部、まるで見てきたかのように書いてますが、適当に書いたくせに何故か断言口調になっている怪文書の類いです。 https://twitter.com/mametter/status/741950239662170112 まめさんの書いた理由リストはどれも関係ない。いやカスってるけど。難しいというのも関係ない。 僕がRubyを知ったころ…最初に書いた通りRuby歴史なんて知らないので、別に早くもないわけだけど…Rubyというのは全く使われていない言語だった。どっかの好き者がPerlの替わりに単純な処理に使って、「ウフ、美しくかけた、グフッ」とかつぶ

  • シンプルでわかりやすいコードを書くためにあなたがすべきこと - give IT a try

    はじめに 先日、とある知りあいのRubyプログラマからこんな相談を受けました。(内容はちょっとボカしてます) 社内のコードレビューでもっときれいなコードを書けるようになった方がいい、と言われました。 「きれいなコードを書けるようになれ」と言われても、具体的にどうすればいいかわかりません。 伊藤さんのアドバイスを聞きたいです。 この内容だけだとどんな問題があるのかわからないので、実際に指摘を受けたRailsアプリのコードを見せてもらいましたが、確かに「もうちょっと頑張りましょう」と思うような点がチラホラありました。 ただ、具体的にどうすればいいの、という答えは一言では言えません。 というわけで、今回のエントリではこの悩みを解決するのに参考になりそうな話をあれこれ書いてみようと思います。 (その前に)もくじ かなり長い記事になってしまったので、先に目次を載せておきます。 はじめに (その前に)

    シンプルでわかりやすいコードを書くためにあなたがすべきこと - give IT a try