タグ

関連タグで絞り込む (512)

タグの絞り込みを解除

rubyに関するrochefortのブックマーク (1,037)

  • Rubyのブロックはメソッドに対するメソッドのMix-inだ!

    Yugui著「初めてのRuby」を読んでいる。 初めてのRuby by Yugui 7章メソッドには、ブロック付きメソッドのことが丁寧に記述されていて大変参考になる。 Rubyのブロックは分かったようで分からない代物だ。スーパーマリオブラザーズのように、間口が広くて奥が深い。少し真剣に向き合ってみた。完全理解にはほど遠いけれども、頭を整理するために今の理解を書いてみることにする。 引数付きメソッド Ruby空間における操作対象はオブジェクトである。オブジェクトは外からのメッセージを受け取ると、その中の対応するメソッドを起動してそこに書かれている手続きを実行する。 文字列オブジェクト”Charlie”にメッセージlengthが送られると、対応するlengthメソッドが起動され、7が返される。 メソッドは引数を取ることができる。メッセージのカッコ内に収められたオブジェクトは、メソッドに渡されそ

    rochefort
    rochefort 2016/06/24
    読ませる
  • dilute.rb@東京Rubykaigi 11 について - rochefort's blog

    tenderloveさんが発表されていた摩訶不思議な dilute.rb の原理について 発表では種明しなしでモヤモヤが止まらないので調べてみました。 動画はこの辺りから。 【招待講演】Image Recognition and Code that shouldn't exist Aaron Patterson氏 デモ概要 まずは何の変哲もない fibonacci スクリプトがあります。 次にこれに dilute.rb をかませると、スクリプトの一部が空白に置き換わりますが 最後に pipe で ruby に渡すと fib.rb を実行した時と同様の結果になります。 え?どういうこと? 当日会場で見てたのですが、さっぱりわかりませんでした。 あまりにわからないので ググってみると以下の記事を見つけました。 Demystifying @tenderlove's homeopathic cod

    dilute.rb@東京Rubykaigi 11 について - rochefort's blog
  • Demystifying @tenderlove's homeopathic code optimizations

    Demystifying @tenderlove's homeopathic code optimizations 05 Jun 2015 At the Keep Ruby Weird conference, Aaron Patterson, aka @tenderlove, gave a hilarious keynote talk where he mentioned homeopathic code optimizations. If you haven’t watched it yet, go watch it now. For those that haven’t watched the video, here’s the idea: he talks about a program dilute.rb, that takes another ruby program and “

    Demystifying @tenderlove's homeopathic code optimizations
    rochefort
    rochefort 2016/06/05
    dilute.rb
  • 東京RubyKaigi 11 に参加してきました - rochefort's blog

    Tokyo RubyKaigi 11 #tkrk11 今回のロゴとてもかっこいいです。 スライド・動画などはこちら(もう動画見れる!)。 スケジュール - Tokyo RubyKaigi 11 #tkrk11 JSONに型を持たせる仕組みや、rubyでNES(ファミコン)が動くとかいろいろ面白かったです。 rubyじゃない話(奥さんのH20や古橋さんのDIGDAG)もあり、こちらもかなり面白かったです。 H20の話は、Webの公平性のためにRTTの回数毎に上限値が決まっている(1.5x)とか status 1xx で中間レスポンスを返すことができるとか 知らないことだらけで大学の人気講義を聞いているような雰囲気でとても良かったです。 tenderloveさんの講演は毎度毎度面白い Image Recognition and Code that shouldn't exist 今回は、MAG

    東京RubyKaigi 11 に参加してきました - rochefort's blog
  • Rubyに型があると便利か

    2016/5/28 東京Ruby会議11 3rd session

    Rubyに型があると便利か
    rochefort
    rochefort 2016/06/01
    TypeStruct
  • Tokyo Ruby Kaigi

    My talk from Tokyo Ruby Kaigi

    Tokyo Ruby Kaigi
  • Aaron Patterson さんインタビュー - Tokyo RubyKaigi 11

    15:40 Invited Speaker Image Recognition and Code that shouldn't exist この発表では、Rubyを使った画像認識処理方法について、精度向上がどのように向上していったかを説明します。それと、実際に存在する必要のないコードを見ていきます。発表で紹介する研究の目的は、あくまでも私個人の創造的で、役に立たない課題を書くことへの挑戦であり、有益な結果を産むものではありません。発表を「自身を表示できないクワイン」と理解して頂ければと思います。 必要となる知識 Ruby, little about C, MtG (card game culture) Aaron Patterson RailsConf 2016 の三日目(5/6)の、Aaron さんのキーノートが終わった後に伺いました(話し手:Aaron Patterson、聞き手:

    Aaron Patterson さんインタビュー - Tokyo RubyKaigi 11
  • Rubyのコードをパースするライブラリまとめ - Qiita

    この記事は2013年時点の状況をまとめたものです。現在では内容が古くなっています。 今後はプロと読み解くRuby 3.3 NEWS - STORES Product Blogの「(参考)Ruby パーサの比較」などを参照することをお勧めします。 ripper Ruby1.9からMRIの標準ライブラリとなっており、今後とも安定してメンテナンスされることが期待できる。MRIのパーサーを拡張ライブラリ化しているため、文法の互換性の点では他の追随を許さない。 require 'ripper' p Ripper.sexp('puts "hello, world."') # [:program, # [[:command, # [:@ident, "puts", [1, 0]], # [:args_add_block, # [[:string_literal, # [:string_content,

    Rubyのコードをパースするライブラリまとめ - Qiita
  • 栗原勇樹さんインタビュー - Tokyo RubyKaigi 11

    Rubyに型があると便利か 最近開発したgem type_struct を中心に「Rubyに型があると便利か」という問いについて考察します。ひいては、Ruby3への議論に貢献できればと考えています。 必要となる知識 基的なRubyの知識があればよいです。golangやcrystalのさわりもわかっていると、より楽しめると思います。 栗原 勇樹 株式会社spice life RubyKaja 2014。子育ての合間に小さいライブラリーを作るのが趣味。 5/13 渋谷の株式会社spice lifeにて伺いました(話し手:栗原さん、聞き手:笹田)。 栗原 実は、だいたいスライドが出来てまして。 笹田 え、当ですか。素晴らしい。今回のご発表は、type_struct という gem を作られた経験から、Ruby の型に対する提言を頂ける、という感じになるでしょうか。 栗原 Ruby の型に対す

    栗原勇樹さんインタビュー - Tokyo RubyKaigi 11
    rochefort
    rochefort 2016/05/28
    JSONを扱うには便利そう // TypeStruct
  • RubyのSymbol GCの翻訳記事が良い - rochefort's blog

    (翻訳) Ruby 2.2 のシンボル GC | FIVETEESIXONE この翻訳記事が良かったです。 RubyのSymbolの問題は、Railssecurity update の内容などを何度か見て知ってはいたのですが 仕組みについては知りませんでした。 対応方法 Narihiro Nakamura は、この問題への回避策として、 C の世界の「Immortal Symbol (不死のシンボル)」と Ruby の世界の「Mortal Symbol (死ぬ運命にあるシンボル)」を区別するというアイデアを提唱しました。 基的に、Ruby の実行時に (to_sym などによって) 動的に生成されるすべてのシンボルは、 ガーベージコレクションの対象とすることができます。その理由は、 それらのシンボルが Ruby インタプリタの内部で利用されることはないためです。 一方、新しいメソッ

    RubyのSymbol GCの翻訳記事が良い - rochefort's blog
  • (翻訳) Ruby 2.2 のシンボル GC - FIVETEESIXONE

    Ruby 2.2 の新機能にシンボル GC というものがあります。 正直、「え、シンボルって GC されないから速いんじゃないの?なのにシンボル GC で Rails が速くなるとか話聞くけど、いったいどういうことなの?」という感じでサッパリ理解できてなかったのですが、その辺りの疑問に対してまとめられている記事がありました。 Symbol GC in Ruby 2.2 とても分かりやすく素晴らしい記事だと感じたので、許可をもらって以下に日語訳を公開します。 Symbol GC in Ruby 2.2 シンボル GC ってなに?それって気にしなくちゃいけないことなの? リリースされたばかりの Ruby 2.2 の大きな新機能として「インクリメンタル GC」が挙げられますが、もう1つの注目すべき新機能が、この「シンボル GC」 です。 もしあなたがこれまで Ruby の世界で過ごしてきたのな

    (翻訳) Ruby 2.2 のシンボル GC - FIVETEESIXONE
    rochefort
    rochefort 2016/05/26
    symbol gcについて
  • 文章中から韻を踏んでいるフレーズの組み合わせを検出する gem を作りました - Qiita

    依存関係 natto が利用できる必要があります。 使い方 Rhymer::Parser.newの引数に文章を渡すと、検査結果が含まれたインスタンスが生成されます。インスタンスのrhymesメソッドを実行すると、韻を踏んでいるフレーズの組み合わせの配列が返されます。 require "rhymer" rhymer = Rhymer::Parser.new("今日はとても良い天気ですね。こんな日は自然に元気になります。") rhymer.rhymes.each do |rhyme| puts [rhyme[0], rhyme[1]].join(" ") end require "rhymer" lyric = <<"LYRIC" 1853年(嘉永6年)、長崎の出島への折衝のみを前提としてきた幕府のこれまでの方針に反して、江戸湾の目と鼻の先である浦賀に黒船で強行上陸したアメリカ合衆国のマシュー

    文章中から韻を踏んでいるフレーズの組み合わせを検出する gem を作りました - Qiita
    rochefort
    rochefort 2016/05/25
    これは面白い // rubygems にあげないのはなぜ?
  • Ruby技術者認定試験 ガク割制度のご紹介 | プロメトリック

    学校教育法で定められた、学校のうち、小学生、中学校、高等学校、中等教育学校、特別支援学校、大学及び高等専門学校、 及び、専修学校、各種学校、職業能力開発大学校などに在籍する学生、生徒。

    rochefort
    rochefort 2016/05/21
    学割だって
  • yard diff が素敵すぎる - rochefort's blog

    パーフェクトRuby (PERFECT SERIES 6) 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/10メディア: 大型この商品を含むブログ (22件) を見る 14章より。 rdoc の代わりとして yard を試したことはあるのですが 知らないコマンドがありました。 gem install すると以下の実行ファイルが install されます。 yard, yardoc, yri yardoc は html で document を出力してくれてありがたやーな訳なんですが yard にはいろいろサブコマンドが定義されており 中でも yard diff が強力であることを知りました。 (他にも server とか graph とかあります) やってみる $ yard di

    yard diff が素敵すぎる - rochefort's blog
  • Rubyの拡張ライブラリにYARD用のドキュメントを書く方法 - 2012-10-02 - ククログ

    はじめに YARDというRuby用のドキュメンテーションツールがあります。この記事ではCで書かれたRubyのライブラリにYARD用のドキュメントを書く方法を紹介します。 YARDはソースコード中にドキュメントを埋め込むタイプのドキュメンテーションツールです。ドキュメントはコメントとして書きます。ドキュメントに@タグ名という記法でメタデータを書けることが特徴1です。YARDに添付されているyardocというコマンドを使うことで、ソースコード中に書いたドキュメントからHTMLのリファレンスマニュアルを作成することができます。 Ruby2はライブラリをRubyでもCでも書けます3。Cでライブラリを書くと、処理を高速化したり、既存のC/C++で書かれたライブラリをRubyから使えるようにできます。例えば、rroonga4はC/C++で書かれた全文検索エンジンライブラリgroongaをRubyから使

    Rubyの拡張ライブラリにYARD用のドキュメントを書く方法 - 2012-10-02 - ククログ
    rochefort
    rochefort 2016/05/05
    @overloadって拡張ライブラリで使うのか
  • rubyのsoap client savonでBASIC認証 - Qiita

    #!/usr/bin/env ruby require 'savon' client = Savon.client( wsdl: 'https://server/wsdl', basic_auth: ['username', 'userpasswordhere'], ssl_verify_mode: :none ) p client.operations Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    rubyのsoap client savonでBASIC認証 - Qiita
    rochefort
    rochefort 2016/04/27
    savon
  • イベントをフックする - rochefort's blog

    パーフェクトRuby (PERFECT SERIES 6) 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/10メディア: 大型この商品を含むブログ (22件) を見る 10-3 イベントをフックする Module#included, extended, inherited は知っていましたが method_added, method_removed, method_undefined なんかも用意されているのですね。 ちなみに inherited は、以前 RubyMotionで使われているのを調べた 際に初めて見て感動しました。 書の例は以下。 class SuperClass class << self def inherited(subclass) @classes ||

    イベントをフックする - rochefort's blog
  • RubyKaigi2014の知見 | Tracepoint #rubykaigi - Qiita

    trace = TracePoint.new(:call) do |tp| p [tp.lineno, tp.defined_class, tp.method_id, tp.event] end trace.enable class Hoge def hoge "hoge" end end Hoge.new.hoge

    RubyKaigi2014の知見 | Tracepoint #rubykaigi - Qiita
  • Procオブジェクト - rochefort's blog

    パーフェクトRuby (PERFECT SERIES 6) 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/10メディア: 大型この商品を含むブログ (22件) を見る Proc#curry がとてもわかりやすい記載になっていました。 また、例のややこしいやつも一部忘れていたのでメモ。 どっち使うよという話だと Procオブジェクトで私自身は嵌った経験はなく(Proc.new, Kernel#proc が欲しいケースがない) 「->」というsyntax sugarが用意されていることからlambdaで書くことが多いです。 基lambdaで統一しておいて、Proc.new, Kernel#proc 欲しい場合のみ、 そっちで書くという方針にしています。 8-1-6. Proc#cu

    Procオブジェクト - rochefort's blog
    rochefort
    rochefort 2016/04/22
    時々忘れるProcオブジェクト
  • eval族の親戚exec族 - rochefort's blog

    パーフェクトRuby (PERFECT SERIES 6) 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/10メディア: 大型この商品を含むブログ (22件) を見る メタプログラミングにもある程度ページ割いていて良いです。 7章 (7-3-5 module_exec / class_exec / instance_exec)より block引数渡せて便利そうです。こんなんあったっけ。 (instance_exec のみでもいいのではという気もしますが、きっとそれぞれ存在する意味があるんでしょうな。特に調べてないけど。) なぜか自分の環境ではinstance_evalが意図した動きにならない。 class EvalTarget CONST_VAL = "EvalTarget::C

    eval族の親戚exec族 - rochefort's blog