タグ

Rubyに関するgologo13のブックマーク (171)

  • rbenv & ruby-build の使い方メモ - Qiita

    複数バージョンのRubyを管理をするためのツールとしてrbenv + ruby-buildの組み合わせは大分ポピュラーになってきました。 備忘録としてよく使うコマンドをまとめてみました。 セットアップ OSX + homebrew だったら以下の記事がおすすめ。 OS X で rbenv を使って ruby 1.9.3 の環境を作る よく使うコマンド(インストール編) OSXに入れる時はCONFIGURE_OPTSの設定を忘れないようにしましょう。 # インストール可能な一覧セットを得る $ rbenv install 1.9.2-p290 1.9.3-p327 . . # インストール ## 基 $ rbenv install 1.9.3-p327 ## OSX向け、readlineやopensslをhomebrew経由で入れたものを使う $ brew install readline

    rbenv & ruby-build の使い方メモ - Qiita
  • OS X で rbenv を使って ruby 1.9.3 or 2.0.0 の環境を作る - Qiita

    こんにちは、7日の予定が2日ほど遅延しております、すいません。 さて、私は OS X で ruby 1.9.3 の環境を構築するネタで書きたいと思います。 今回使う物 homebrew readline libyaml (2.0.0なら不要) openssl (trunk をビルドする場合) autoconf rbenv ruby-build Command Line Tools (Xcode) 尚、環境は Xcode 4.5 + OS X Mountain Lion を想定しています。 準備 最近の Xcode, 4.3 からは Xcode.app のなかに Developers ディレクトリが入ったためターミナルから gcc とか叩いても 見つからないと言われます。なので Command Line Tool をインストールしましょう。 Command Line Tool, 入れる方法は

    OS X で rbenv を使って ruby 1.9.3 or 2.0.0 の環境を作る - Qiita
  • 今更だけどrvmからrbenvに乗り換えるときの個人用メモ - === SANDmark 19106 === beginning stress test

    ruby-2.0.0-devを使いたいのにrvmが対応してない。 というだけの理由で、rbenvに乗り換えることにしました。 rvmも便利だったのですが、cdコマンドを書き換えたりと 結構ブラックなこともやっていたので、いい機会かなと。 なんだか長くなっちゃったので省略されました。 rvmとrbenvの違い rvmはビルドからgemsetまで面倒を見てくれる でも結構多方面に影響するので怖い部分もある rbenv「ビルドツールなんてありません」 rbenv「でも ruby-build っていうのがあるからそれ使ってもいいよ」 rbenv「gembundleで各自管理してください」 rbenvさんは結構放任主義みたいです。 ※とっても語弊があるので詳細についてはGoogle先生にお尋ねください。 まずはrvmをアンインストール する前に注意事項。 端末はひとつだけ開いた状態で作業すること。

    今更だけどrvmからrbenvに乗り換えるときの個人用メモ - === SANDmark 19106 === beginning stress test
  • シンボルとは何か その1(後編) - 文字列のintern - 世界線航跡蔵

    シリーズ・RubyのSymbol 。だいぶ空いてしまったけど、気が向いたので続きを書く。 前回 は文字列の同一性について復習したのであった。 意義 そう言うわけで、文字列においては同一性と同値性は異なる。特に、Rubyの場合は同じリテラルも評価する度に異なるオブジェクトを生成する。ところが、これは不便な場合があるわけだ。 まず、文字列の同値性比較はコストがかかる。長い文字列を比較にするには時間が掛かる。保持しておくにも長い文字列だったらメモリーをう。更に、毎回リテラルからオブジェクトを生成するとしたら、無駄なケースが多々ある。Railsに良く出てくる疑似名前付き引数みたいなやつ。 some_method "a" => 1, "b" => 2, "c" => 3 おい、この箇所を通る度に一々文字列のメモリー確保してオブジェクト構築するのか? その背後ではパフォーマンス厨なら誰もが恐れる m

    シンボルとは何か その1(後編) - 文字列のintern - 世界線航跡蔵
    gologo13
    gologo13 2013/05/01
    なるほど。symbol は immutable string
  • シンボルとは何か その1(前編) - 文字列の同一性と同値性 - 世界線航跡蔵

    シリーズ・RubyのSymbol 。 とりあえず分かりやすいものから見る、ということで、「intern化された文字列」としてのシンボルを説明する。そのためにはRubyにおける文字列値について詳しく考える必要がある。 同一性と同値性 次は真だろうか。 "abc" == "abc" 勿論、真である。Rubyでは String#== はオーバーライドされていて、長さと内容 *1 が等しい文字列同士を比較すると真になる。 さて、次は真だろうか。 "abc".equal? "abc" これはたぶん偽だろう *2 。それは何故か。 Object#equal? は引数のオブジェクトがレシーバ自身である、まったく同一のオブジェクトを指すときのみ、真となる。 equal? のようにオブジェクトとして等しいことを「同一性」と言う。これに対して String#== のように示す内容が等しいことを「同値性」と言う

    シンボルとは何か その1(前編) - 文字列の同一性と同値性 - 世界線航跡蔵
    gologo13
    gologo13 2013/05/01
    ruby は同じ文字列でも必ず新たに生成する。一方、javaは constant pool に定数文字列を貯めこんで、同じオブジェクトを再利用する。この違いは mutable か immutable という点から。
  • まつもと直伝 プログラミングのオキテ 第16回 ネットワーク・プログラミング(ソケット編):ITpro

    LinuxのようなUNIX系OSでは,ファイルに対する操作と同様にネットワーク通信を行うために,「ソケット」と呼ばれる仕組みを使います。今回はソケットについて学びましょう。 コンピュータは「電子計算機」という和名が示す通り,来は高速に計算するための機械でした。しかし,現在のコンピュータは,Webブラウジングや電子メールのやり取りなどに使われることが多く,ネットワークと切り離すことができません。最近は「コンピュータを使う」ことと「ネットワークを使うこと」がかなり同義になっているのではないでしょうか。 今回は,ネットワークを介した通信の基礎になっている「ソケット」という概念を紹介します。 ディスクリプタでアクセスが単純に ソケットはネットワーク通信に用いるファイル・ディスクリプタ(file descriptor)です。そこで,ソケットの説明に入る前に,より一般的なファイル・ディスクリプタにつ

    まつもと直伝 プログラミングのオキテ 第16回 ネットワーク・プログラミング(ソケット編):ITpro
  • Railsの人気テストフレームワーク6選!:Railsで目指せ、情熱エンジニア(7) - @IT

    前回は具体的なWebアプリを例にして簡単なコードレビューをしました。今回からは、テストを使ったリファクタリングについて解説していきます 少し時間が空いてしまいましたが、前回は具体的なWebアプリを例にして簡単なコードレビューをしました。今回からは、そのWebアプリに対してテストを書いてリファクタリングする具体的な方法について解説していきます。 今回はまず、Ruby on Railsで人気のあるテストフレームワークの数々についてご紹介します。 最近のテストフレームワークトレンド Hamlの作者として知られるHampton Catlin氏が行った「Hampton's Third Ruby Survey, 2010」の中に、テストに関するいくつかの興味深い結果があります。好きなテストフレームワークは何ですかという質問に対する答えをグラフにすると以下の通りです。 これを見ると「ビヘイビア駆動開発(

    Railsの人気テストフレームワーク6選!:Railsで目指せ、情熱エンジニア(7) - @IT
  • Cookpad の本番環境で使用している Ruby が 2.0.0-p0 になりました - クックパッド開発者ブログ

    技術部・開発基盤グループの村田です。 クックパッド日から、番環境を Ruby 2.0.0-p0 に移行しました。Ruby 2.0.0-p0 は 2013年2月24日にリリースされた Ruby の最新バージョンです。新しい Ruby を使って気持ち良く開発するために、できるだけ早く Ruby をバージョンアップしようと尽力してきた結果が実りました。 Ruby のバージョンアップでレスポンスが高速になった クックパッドRuby 2.0.0 に対応したことで、ユーザと開発者の両者にとって、これまでよりも快適になっています。 Ruby のバージョン移行は、Ruby Enterprise Edition から Ruby 1.9.3-p392 を経由して Ruby 2.0.0-p0 へと段階的に実施しました。Ruby を Enterprise Edition から 1.9.3、そして 2.0

    gologo13
    gologo13 2013/04/09
    スピード感ある
  • [Rubyコミッタ 笹田耕一氏]東大教員を辞しRuby開発に専念

    Rubyのエンジン部分であるVM(仮想マシン)「YARV(ヤルフ)」を開発した笹田耕一氏。笹田氏はRubyの開発に専念するため、大学教員の職を辞した。現在はRuby PaaSベンダーHerokuに所属し、フルタイムでRubyを開発している。笹田氏に、Rubyの高速化への取り組みなどについて聞いた。 もともと学生の時に、大学の実習でJava VMをC++で開発していたんです。Rubyを始めたのは大学4年生の時。2002年くらいですね。新しい言語をやってみたくて、あるRubyを読んだのですが、私の理解力が至らず、最初はさっぱりわかりませんでした。今は便利に使っています。 ある学会で、GC(ガーベージコレクション)のセミナーがあって。まつもとさんがGCについて講演して、講演が終わったら私の隣に座られて。それがまつもとさんとの初の対面です。まつもとさんに「Rubyのネイティブスレッド対応はどう

    [Rubyコミッタ 笹田耕一氏]東大教員を辞しRuby開発に専念
  • Ruby 2.0.0-p0 リリース

    SIZE: 13608925 bytes MD5: 50d307c4dc9297ae59952527be4e755d SHA256: aff85ba5ceb70303cb7fb616f5db8b95ec47a8820116198d1c866cc4fff151ed 特徴 主要な新機能 主要な変更点は以下のとおりです。 言語コア機能 キーワード引数: API 設計の新しい柔軟性 Module#prepend: クラス拡張の新しい方法 シンボルの配列を簡単に作るリテラル %i __dir__: 実行中のファイルのあるディレクトリ名 default UTF-8 encoding: 多くのマジックコメントが不要に 組み込みライブラリ Enumerable#lazy / Enumertor::Lazy: 無限の遅延ストリーム Enumerable#size: 遅延サイズ評価 #to_h: Hash へ

    gologo13
    gologo13 2013/02/24
    久しぶりに使ってみたい!
  • 軽量Ruby – mrubyとRubyの違い

    MobiRubyで書いた”さめがめ” 去年の春からずっとコツコツと作っているmrubyでiOSアプリが書けるMobiRubyが久々に動く様になったので、1年近くmrubyを触ってきて気になった所を少し書いてみます。 以下、mrubyと区別しやすくするために、普段みなさんがお使いのRubyをCRubyと書いています。 mrubyって? mrubyはMatzが去年発表した省メモリ版のRuby実装です。CRubyの機能を全て実装している訳ではなく、JIS/ISOの規格をベースに設計・実装されたものです。JIS/ISOの規格書は有料なのですが、最終ドラフトがIPAのサイトから確認できます。 mrubyの経緯や概要は、日経ITProによるMatzへのインタビューが分かりやすく、内部などについては、IIJさんや東芝情報システムさんがまとめている記事が参考になります。 現在の所リリース版はなく、GitH

  • TapがRubyの新たな制御構造の世界を開く

    Object#tapはそのブロックの評価結果を捨てるという風変わりなメソッドです。これは主としてメソッドチェーンにおける途中経過を覗き見るために使われます。 "charlie".upcase.tap{ |s| p s } # => "CHARLIE" .reverse.tap{ |s| p s } # => "EILRAHC" .gsub(/[aeiou]/i,'*') # => "**LR*HC" tapの副作用を使う もっとも、その評価結果を捨てるというユニークな特徴をうまく使えば、もっと面白いことができます。 例えば、ある変数の値を取得した上でその変数の値をリセットしたい場合を考えます。通常は次のように実装するのでしょう。

  • あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して

    あなたは,下記のコードを理解できない。 p f /g+h/i これはRubyのコードである。「p」は,コンソールに出力する関数である。 問: だいたい,何をやっているコードですか? ※例えば,四則演算など。 構文をおおまかに説明して下さい。 どれが変数で,どれが関数で,どれが演算子か? ↓回答 回答: 一意に決定できない。 下記に, このコードの複数の解釈方法と, この件が引き起こす問題 について述べる。 ※なお,この問題が起きるのは動的言語に限らず,静的言語でも同様に発生しうることを前もって述べておく。 (1)分数の計算とみなすパターン 先行するコードを下記のように書いた場合: test1.rb # 変数に数値を代入 f = 2 g = 1 h = 2 i = 1 # 演算結果をpで出力する p f /g+h/i 実行結果: >ruby test1.rb 4 「分数の計算」とみなされる。

    あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して
  • Ruby 2.0 リリース週記 (2012/05/14 - 20) - まめめも

    Ruby 2.0.0 のリリースに向けた活動について、毎週くらいのペースで書きたいなあと思ったので始めます。飽きたらやめます。 ユーザ視点で面白そうな機能や、リリースに向けた進捗について書くつもりです。コミット単位の詳しいニュースは nagachika さんの ruby-trunk-changes を見るといいです。 Ruby 2.0 について Ruby 1.8 、1.9 に続く Ruby の新系統です。 新系統といっても、RubyKaigi 2010 の開発者会議にて、まつもとさんから「100% 互換」のスローガンが発表されていますので、原則として仕様変更は入らない予定です。*1 今のところ 2.0 に入ることが発表されている大きめの新機能は、 Module#prepend キーワード引数 の 2 点です。[ruby-core:39837] それぞれの詳細は、そのうち説明したいと思います

    Ruby 2.0 リリース週記 (2012/05/14 - 20) - まめめも
  • All about Ruby on Rails & Data recovery software

    Our Ruby on Rails starter pack is aimed at those who’ve been interested in this popular web application framework but have never gotten around to trying it out because they didn’t know where to start. Compared to traditional Ruby on Rails tutorials, this starter pack doesn’t hold your hand, teaching you the basics step by step. Instead, it serves as a general introduction to Ruby on Rails and as a

  • Rubyによる形態素解析エンジンokura 0.0.1をリリースしました - <s>gnarl,</s>技術メモ”’<marquee><textarea>¥

    12月にさくさくテキストマイニングで発表したpure Rubyによる形態素解析エンジンをgem化しました。 まだ発展途上で機能が少なかったりパフォーマンスが悪かったりしますが、いちおう動くレベル*1になったので公開します。 注意事項 バージョン0.0.xのうちは、インタフェースや辞書フォーマットは頻繁に変更される予定です。 ある程度安定したら0.1.0出します。 今のところ、Ruby1.9系専用です。 取得 gem install okuraでインストールできます。 ソースは https://github.com/todesking/okura 使い方 MeCabフォーマットの辞書データを使用します。 動作確認はMeCab用NAIST辞書で行いました。 最初にokura compileコマンドで辞書をコンパイルします $ okura compile mecab-naist-jdic-0.6

    Rubyによる形態素解析エンジンokura 0.0.1をリリースしました - <s>gnarl,</s>技術メモ”’<marquee><textarea>¥
  • Rubyistよ、irbを捨ててPryを使おう | Webシステム開発/教育ソリューションのタイムインターメディア

    Pryは結構前からgithubのリポジトリを追いかけている人達には認知されていましたが、RailsCastsでも紹介されたことから、Ruby界で一気に広がりを見せています。 ちなみに発音はpra'i(ぷらい)です。英単語で「覗く」などを意味します。 今回はそんな便利なPryについて少し紹介したいと思います。 Pryはirbの代わりになるREPL Pryを一言で説明すると、irbと同様にREPL環境を提供してくれます。 では、さっそくインストールしてみましょう。

    Rubyistよ、irbを捨ててPryを使おう | Webシステム開発/教育ソリューションのタイムインターメディア
    gologo13
    gologo13 2011/12/27
    Looks seriously helpful. Debugging and reading source code function
  • GitHub - masui/Gyaim: MacRuby-based simple IME for Mac

    Gyaim MacRubyで作ったMac用のIMEです。 数百行のRubyで実用レベルのIMEを作れることを示すものです 単純な変換しかできませんがそれなりに使えます 見栄えはInterfaceBuilderで簡単に変更できます 変換アルゴリズムやIMEの動作はRubyで簡単に変更できます 自前のIMEをいろいろ作りましょう! 変換手法はSlimeと同じです 予測機能はありません インストール MacRubyのインストールが必要です 多分SnowLeopardが必要です XCode3でビルドします make でビルドできます その後、ログアウトして再ログインすると 「言語環境設定」からGyaimを選択できるようになります 辞書はSlimeのものを使っています 使いかた ローマ字を入力すると候補が表示されます スペースキーで候補を選択し、改行キーで確定します ローマ字入力の後ですぐ改行キーを

    GitHub - masui/Gyaim: MacRuby-based simple IME for Mac
  • 逆引きRuby/Tk

    逆引き Ruby/Tk Widget 全般 幅や高さを設定する #!/usr/bin/env ruby require "tk" TkLabel.new { text "Hello!!" width 10 height 10 pack } Tk.mainloop ボタンで大きさが変わるサンプル。 #!/usr/bin/env ruby require "tk" l = TkLabel.new { text "Hello!!" pack } TkButton.new { text "Wide" command { l.width(l.width + 10); print "width: #{l.width}\n" } pack('fill' => 'x') } TkButton.new { text "Narrow" command { l.width(l.width - 10); prin

  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直