タグ

rubyに関するkyabのブックマーク (95)

  • BlackCity.LABORATORY.Ruby.EXT

    ENTRANCE|INFORMATION | DIARY | LABORATORY | LINK CAGE(一般掲示板)|Developper's Nest(開発掲示板)|こころ宙 旧コンテンツ 拡張モジュールの作り方 ここでは Ruby における 拡張モジュール の作り方を解説していきます。 基的に、拡張モジュールは C 言語で記述していきます。そのため、Ruby の知識に加え、C 言語の知識が必要となります。以下では Ruby の知識 に加えて C 言語の知識 を持っているものとして話を進めていきます。(こう書くと FF のアビリティみたいだなあ(笑)) また、一気に全てのコンテンツを書き上げることもできないので、少しずつ書き加えていくという形になります。途中で挫折しないよう気をつけますが (上の「旧コンテンツ」って何かな~? ん~?) 途切れてきたら「あれはどうした」と突っついてみ

    kyab
    kyab 2014/02/19
    C拡張 rb_funcallなど
  • cmag1.rd

    第1回 拡張ライブラリの作成(1) 前田修吾 はじめに Ruby hackerのみなさん、こんにちは。今回から数回の間、後藤謙太郎さんの 代役をつとめさせていただくことになりました。 あちこちで、後藤さんの記事をもっと読みたい、という声を耳にするので、書 きづらいことこの上ないのですが、何とかがんばって書いていきますので、温 かい目で見守ってやってください。(いや、温かい目で見守らなくてもいいで すから、C MAGAZINEを買うのをやめたりしないでください。) さて、第1回は拡張ライブラリの作成方法についての話です。Rubyの連載のく せにRubyのコードがあまり出て来ませんが、どうかご容赦を。 拡張ライブラリって? 拡張ライブラリというのはCで記述されたRuby用のライブラリのことです。と いうとStringやArrayなどの標準ライブラリも拡張ライブラリなのか、とおっ しゃる方もいる

    kyab
    kyab 2014/02/19
    C拡張の作り方。mod_rubyの作者による。
  • [Interview] Brian Shirai on Rubinius 2.0, the GIL, and thread-safe Rub

    [Interview] Brian Shirai on Rubinius 2.0, the GIL, and thread-safe Ruby code Published on March 26, 2013 by Jesse Storimer Brian Shirai and I recorded a conversation about multi-threaded programming in Ruby and his work on Rubinius. Listen (or read the transcript) to hear about: what's the global lock and its effect on concurrency? why the GIL is not a substitute for thread-safety why multi-thread

    kyab
    kyab 2014/02/13
    GVL/GIL Rubinius作者?の超ロングインタビュー.GVLの単一ロックをfine-grainedな50個のロックに変えたらしい。
  • はじめての並行プログラミング(1) - I am Cruby!

    第53回 社内勉強会に使用したテキストファイル「はじめての並行プログラミング(1)」 今回話すことスレッド? 並行プログラミングの難しさ 複数の仕事を同時に『並行プログラミング』とあるプログラムで何かの処理を同時におこないたい 方法は大きく分けて二つプロセススレッド(軽量プロセス)※ スレッド in プロセス の関係。プロセスとスレッドの違い(簡単に言えば)プロセスは「資源を共有しない」。スレッドは「資源を共有する」。スレッドが共有するもの メモリアドレス空間、ファイルハンドルなどスレッドが共有しないもの プログラムカウンタ、スタック、ローカル変数スレッドを使うメリットよいとこ 一つのプロセス内で並行処理が可能 非同期な処理とか 起動も低コスト データの同期が低コスト グローバル変数で受け渡しなどわるいところ 共有データの扱いが難しい(超重要)スレッドの安全性(safety)スレッドセーフ

    kyab
    kyab 2014/02/13
    GVLは時々タイマーで解放される。
  • Celluloid: Actor-based Concurrent Objects for Ruby

    Painless multithreaded programming for RubyCelluloid is a concurrent object oriented programming framework for Ruby which lets you build multithreaded programs out of concurrent objects just as easily as you build sequential programs out of regular objects. Learn more Evented I/O for Celluloid actors. Build fast evented programs like you would with EventMachine or Node.js using regular synchronous

    kyab
    kyab 2014/02/13
    “Celluloid is a concurrent object oriented programming framework for Ruby”
  • Matz is not a threading guy

    Matz is not a threading guy Published on November 08, 2012 by Jesse Storimer I attended my very first Rubyconf last week. There were certainly some common themes that I kept hearing over and over again throughout the course of the conference. Among other things, there was JRuby, threading, the GVL, and MRI 2.0. We got to see a few talks about the new features in MRI 2.0. One of the oft-discussed f

    kyab
    kyab 2014/02/13
    2012年。並列処理 "Matz is not a threading guy" あと笹田さんがGVI取り除こうとしたけどシングルスレッド性能がめちゃ遅くなったという話。
  • Rubyでマルチスレッドプログラミング|TechRacho by BPS株式会社

    RubyはWeb界隈でよく使われてるスクリプト言語の中では比較的簡単に割と格的なマルチスレッドプログラムを書くことができます。 うまく使うとI/O待ちで遅くなっているが、必ずしも順番に行う必要のないプログラムの実行時間を短縮したりすることができます。(たくさんのURLにアクセスしてレスポンスを取得してくるクロウラーなど) しかし現在最も広く使われているRuby1.8ではスレッドの実装はいわゆるグリーンスレッドという実装で、OSによるスレッドを使えないため、マルチコアの恩恵を受けることができないので、大量のデータをマルチコアで処理する目的などで使っても効果が薄い(どころかまったくない)可能性が高いです。 Ruby1.9ではRubyでスレッドの動きを制御しているものの、ネイティブスレッドベースでの動作となっているため、マルチコアの恩恵を受けることができます。 それではさっそく、配列の各要素を

    Rubyでマルチスレッドプログラミング|TechRacho by BPS株式会社
    kyab
    kyab 2014/02/13
    んーこれダウトかな。sleepなかったらGVLのせいで逆に遅いはず。sleepの中では一時的にGVLはアンロックされるから早くなるけど、sleepの合計時間を分散しただけ。
  • Nobody understands the GIL

    Nobody understands the GIL Published on June 12, 2013 by Jesse Storimer Throughout most of my time in the Ruby community, MRI's infamous GIL has been an elusive creature for me. This is a story about thread safety, and finally catching that elusive creature to get a good look at it. The first time I heard mention of the GIL, it had nothing to do with how it worked, what it did, or why it existed.

    kyab
    kyab 2014/02/12
    YARVのGVL(GIL)実装。タイマースレッドが動いててビジーループしてもたまにGVL解放されるとか
  • Jose Valim、Rubyにおける並行プログラミングのためのいくつかのアイデアを提案。~ RubyKaigi 2013 基調講演 2日目 | gihyo.jp

    RubyKaigi 2013 レポート Jose Valim、Rubyにおける並行プログラミングのためのいくつかのアイデアを提案。~ RubyKaigi 2013 基調講演 2日目 2013年5月30日~6月1日の3日間、お台場にある東京国際交流館にてRubyKaigi 2013が開催されています。基調講演をそれぞれレポートします。 2日目の基調講演の演者はJose Valimです。司会の角谷さんにより「再起動したRubyKaigiの基調講演に最もふさわしい人物の一人」と紹介をされたJoseは、Rubyにおける並行プログラミングの可能性について話しました。 自己紹介 Joseは、2006年からRubyを書き始めたそうです。それからOSSにも深く関わっており、2010年からRails coreチームにジョインしています。そして、Elixirという言語の作者でもあります。ElixirはErla

    Jose Valim、Rubyにおける並行プログラミングのためのいくつかのアイデアを提案。~ RubyKaigi 2013 基調講演 2日目 | gihyo.jp
    kyab
    kyab 2014/02/12
    RubyKaigi2013での提言。これ重要だと思うんだけどその後あまり語られてないなぁ。みんなElixirやってんのかな?
  • 見えないチカラ: 【翻訳】アクターによる並列性、そしてRubyでGoroutine

    Ilya Grigorikさんの "Concurrency with Actors, Goroutines & Ruby" を翻訳しました。 元記事はこちら: http://www.igvita.com/2010/12/02/concurrency-with-actors-goroutines-ruby/ (翻訳の公開と画像の利用は人より許諾済みです) 翻訳の間違い等があればブログコメントやTwitter(@oshow)などで遠慮無くご指摘ください。 アクターによる並列性、 そしてRubyGoroutine 並列コンピューティングの世界は複雑なものだ。私たちはハードウェア、ランタイム、そして半ダースもの異なるモデルとプリミティブから選択することを考えなければならない: fork / wait、スレッド、シェアードメモリ、メッセージパッシング、セマフォ、そしてトランザクションなど。ゆえに

    見えないチカラ: 【翻訳】アクターによる並列性、そしてRubyでGoroutine
    kyab
    kyab 2014/02/08
    並列処理。スレッドモデルとアクター/goroutineモデル
  • 知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 知って得する21のRubyのトリビアな記法: melborne.github.com - ちょっとトリビアだけど 知っていると意外と便利なRubyの記法を 21個拾ってみたよ(Ruby1.9限定) 君なら全部知ってるかもしれないけど.. 1. 動的継承 Rubyのクラス継承では < 記号の右辺に クラス定数だけでなくクラスを返す式が書けるよ class Male def laugh; 'Ha ha ha!' end end class Female def laugh; 'Fu fu fu..' end end class Me < [Male, Female][rand 2] end Me.superclass # => Female Me.new.laugh

    知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby - hp12c
    kyab
    kyab 2014/02/05
    トリビア記法。大文字メソッドなど
  • The Pry Ecosystem

    Roughly a year ago, I wrote my first article introducing Pry to the Ruby world. Back then Pry was a very different creature, just a simple runtime variant of IRB with a few added extras. In the year that’s passed, Pry has grown from a single project into an ecosystem, with a variety of plugins and spinoffs. In this post I’ll describe the current state of the Pry ecosystem, provide a brief synopsis

    The Pry Ecosystem
    kyab
    kyab 2013/12/07
    デバッガ関連
  • Rspecのテスト進捗状況が可視化できるFuubarがいい感じ! - Qiita

    ちょっと不便なRspecのテスト Rspecでテストを書いている人は多いと思うんですが,Rspecのテストちょっと不便じゃありませんか? 例えばテスト実行中 あとどれくらい残ってるの!?いつ終わるの?(どれくらいのテストが残っているかわからない) テスト落ちたなら,それ先に見せてよ!(どのテストが失敗したかわからない,でも一応最後までテストを実行したい,けど終わるまで結果がわからない) うーん,やっぱりちょっと不便. そんな時に便利なFuubar こちらのビデオを見てもらうとFuubarがどういうものかわかると思います. Fuubarのいいところは 落ちたテストからFaiure/Errorメッセージを出してくれる. 残りのテスト数がわかる 予想終了時間が表示される 素晴らしい! インストール Fuubarを使うには

    Rspecのテスト進捗状況が可視化できるFuubarがいい感じ! - Qiita
  • GitHub - deivid-rodriguez/pry-byebug: Step-by-step debugging and stack navigation in Pry

    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 - deivid-rodriguez/pry-byebug: Step-by-step debugging and stack navigation in Pry
    kyab
    kyab 2013/11/28
    デバッガ
  • Ruby Under a Microscope

    Download Chapter 6: Method Lookup and Constant Lookup (PDF) How Ruby Works Under the Hood Ruby is a powerful programming language with a focus on simplicity, but beneath its elegant syntax it performs countless unseen tasks. Ruby Under a Microscope gives you a hands-on look at Ruby’s core, using extensive diagrams and thorough explanations to show you how Ruby is implemented (no C skills required)

    Ruby Under a Microscope
    kyab
    kyab 2013/11/08
    Ruby内部解説?
  • Success!

    Success! Your new web server is ready to use.

    kyab
    kyab 2013/10/16
    Concurrent
  • RubyでiOSゲームを開発する

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    RubyでiOSゲームを開発する
    kyab
    kyab 2013/10/11
    こういうフル機能がなくても良いゲームで完全なライブラリ上でRubyで作るのは良さそう。
  • Forms with input elements

    this is a test page for forms with input elements

    kyab
    kyab 2013/08/27
    ブラウザ操作
  • Mechanize について - 君の瞳はまるでルビー - Ruby 関連まとめサイト

    Heroku の基 Hello Heroku(Web アプリケーション) Hello clockwork on Heroku(定期実行アプリケーション) foreman について 複数のプロセスを管理する Ruby 上のツール/ライブラリ clockwork について cron の代替となる機能を単独で提供してくれる軽量のツール/ライブラリ Git について ローカル環境で試す 目的 Mechanize を使ってウェブアクセスをエミュレートする基礎的な方法について説明します。 ページが想定するのは基的に「特定ページに対する操作の自動化」です。 自動巡回情報収集には Mechanize だけではなく、その他多くの応用技術が必要になるため対象としません。 インストール 以下のコマンドを実行して Mechanize gem をインストールします。 gem install mechanize

  • GitHub - rspec/rspec-expectations: Provides a readable API to express expected outcomes of a code example

    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 - rspec/rspec-expectations: Provides a readable API to express expected outcomes of a code example
    kyab
    kyab 2013/07/25
    本家ではここ