タグ

Rubyに関するcnosukeのブックマーク (44)

  • GitHub - grosser/parallel: Ruby: parallel processing made simple and fast

    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 - grosser/parallel: Ruby: parallel processing made simple and fast
    cnosuke
    cnosuke 2012/06/11
  • Rubyでマルチスレッドプログラミング|TechRacho by BPS株式会社

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

    Rubyでマルチスレッドプログラミング|TechRacho by BPS株式会社
    cnosuke
    cnosuke 2012/06/05
  • RubyからPDFを生成 - prawnを使って - Qiita

    require 'prawn' require 'open-uri' require 'sinatra' get '/' do pdf = Prawn::Document.new do font "Helvetica" text "Test PDF" stroke_horizontal_rule move_down 30 font "vendor/fonts/ipaexm.ttf" font_size 12 text "これで日語が使えるようになる" move_down 20 image open("http://exsample.com/foo.jpg") text "画像はローカルからでもopen-uriを使ってurlからでも指定できる" end content_type "pdf" response["Content-Disposition"] = "inline" pdf.ren

    RubyからPDFを生成 - prawnを使って - Qiita
    cnosuke
    cnosuke 2012/05/22
  • RubyMotion で簡単な iOS アプリを作ってみよう - Watson's Blog

    今回は、RubyMotion で簡単なアプリを作ってみます。ここでは簡単な「StopWatch」アプリケーションを作成し、RubyMotion でどのように iOS アプリを作成するのか説明したいと思います。 StopWatch アプリの簡単な仕様は、 start ボタン、stop ボタンとタイマーの値を表示するラベルを持っています。 start ボタンが押されると、タイマーがスタートします。 stop ボタンが押されると、タイマーを停止します。 タイマーが動作中の値を 0.1 秒刻みでラベルに表示します。 です。 新規アプリを作成する RubyMotion をインストールしたときに、/usr/bin/motion というコマンドがインストールされます。このコマンドを使用して、新規アプリのひな形を作成します。Terminal で次のようにコマンドを実行するとひな形が用意されます。 $ mo

    RubyMotion で簡単な iOS アプリを作ってみよう - Watson's Blog
  • 第2弾!知って得する12のRubyのトリビアな記法

    (追記:2013-08-16) 記事のトリビアを含む55のトリビアを以下の記事にまとめました。 知って得する!55のRubyのトリビアな記法 半年くらい前にちょっとトリビアだけど、知っていると意外と便利なRubyの記法を21個紹介したよ。 知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby 今回はその第2弾だよ! ちょっと数が少ないけど、知らないものがあったらへーとかほーとか、得したとか言ってもらえるとうれしいよ。 1.Enumerator#with_index 任意のリストを標準出力するときに連番を同時に振るとしたら、普通はEnumerable#each_with_indexを使うよね。 names = Module.constants.take(10) names.each_with_index {

    cnosuke
    cnosuke 2012/04/23
  • Просто бесплатно порно - Только качественное порево и ничего кроме

    Русский анал во всей его красе можно найти на данном ресурсе! Переходите по ссылке и наслаждайтесь качественным видео без рекламы.

    cnosuke
    cnosuke 2012/04/20
  • GitHub - nesquena/gitdocs: Open-source Dropbox using Ruby and Git

    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 - nesquena/gitdocs: Open-source Dropbox using Ruby and Git
    cnosuke
    cnosuke 2012/03/31
  • 並列1000コネクションに耐える! Ruby のイベント駆動ライブラリ Rev と EventMachine の HTTPクライアント : DSAS開発者の部屋

    並列1000コネクションに耐える! Ruby のイベント駆動ライブラリ Rev と EventMachine の HTTPクライアント こんにちは、takada-at です。 Rubyのイベント駆動型ネットワークプログラミングフレームワーク Rev と EventMachine で HTTPクライアントを動かしてみました。 イベント駆動型ネットワークプログラミングフレームワークとは何か説明しだすと難しいですが、一言で言うと、以下のようになります。 # ふつうのフロー駆動型プログラム Net::HTTP.start(host, port){|http| res = http.get(path) #この処理が終わってから } puts "done" #この次の処理が実行される # イベント駆動型プログラム client = Rev::HttpClient::connect(host, port

    並列1000コネクションに耐える! Ruby のイベント駆動ライブラリ Rev と EventMachine の HTTPクライアント : DSAS開発者の部屋
  • 音声認識システム Julius を使って twitter に投稿する ruby スクリプト - Λάδι Βιώσας

    最近、急に自分の周辺で非技術者の人から twitter の話題を聞くことが多くなりました。うーんツイッター流行ってきてるんだなー、じゃなんかネタスクリプトでも書いてみよっかな、、、と30秒ほど考えて「リアルにつぶやいた内容を音声認識してツイッターにポストするか」と思いつきました。 が、しかし、誰でも思いつくことは同じで、あちこちで似たような事をしている人がいたので、やっぱやめるかと思ったものの、クリスマスで暇だし、Mac OSX上でやってる人は見つけられないしで、勢いで音声入力システムの Julius を利用したツイッター投稿スクリプト書いてみました。ちなみに環境は、Mac OSX 10.5.8 + ruby 1.8.7 です。 音声認識システム Julius のインストール まず Julius の cvs から最新のソースをダウンロードしてコンパイル&インストールします。インストール先は

    音声認識システム Julius を使って twitter に投稿する ruby スクリプト - Λάδι Βιώσας
  • Class: Statsample::Factor::PCA

    Principal Component Analysis (PCA) of a covariance or correlation matrix.. NOTE: Sign of second and later eigenvalues could be different using Ruby or GSL, so values for PCs and component matrix should differ, because extendmatrix and gsl’s methods to calculate eigenvectors are different. Using R is worse, cause first eigenvector could have negative values! For Principal Axis Analysis, use Statsam

  • Thinreports

    A PDF generation tools for Ruby, with design tool for editing templates. Thinreports Thinreports is a PDF generation tool that provides Thinreports Basic Editor and Thinreports Section Editor, a design tool for editing templates, and Thinreports Generator, a Ruby library for generating PDFs. Getting Started Thinreports allows you to create PDF layouts using the Thinreports Editor, and then load th

    Thinreports
  • rails/unicorn – memo

    運用面ではPassengerが群を抜いて楽だし、速度面を考えるとMongrel、Thin、Unicornが有利。 メモリ使用量でいえば、Passengerはかなりメモリをってしまう。他の3つに関しては同じようなもの。 Unicornは1つのプロセスの中で複数のスレッドが動くので、mongrelやthinのように1つポートで1リクエストしか同時に扱えないという問題をクリアしている。 そのため、mongrelやthinを20個起動しなくてはいけない場合でも、unicornなら1つだけ起動して20プロセス動かすように設定すれば良い。 または2つ起動して、各プロセスが10個のスレッドを持つようにするなど。 このような違いがあるため、unicornは1つのプロセスで複数のRailsを動かすからメモリをうように見えるが、 mongrelやthinを10個起動した場合と、unicornが1つのプロセ

  • 第5回 Ruby 1.9 の新機能ひとめぐり(後編): 知っておくとお得な機能 | gihyo.jp

    前編では1.9の目玉機能を、中編では文法や意味論の改善について紹介しました。 後編である今回は、知っておくとお得な機能を取り上げたいと思います。きっとあなたのRubyライフを快適にするでしょう。 鬼車による正規表現の強化 1.9では正規表現エンジンに鬼車を採用したため、鬼車による拡張機能が利用可能になりました。 名前を使った参照 マッチした部分文字列を、$1や$2のようなインデックス番号ではなく、名前で参照する機能がつきました。 コード1 正規表現のマッチ部分を名前で参照する # (?<foo>...) にマッチした部分を $~[:foo] で参照できる if "Taro Yamada" =~ /^(?<first_name>\w+) (?<last_name>\w+)$/ p $~[:first_name] #=> "Taro" p $~[:last_name] #=> "Yamada"

    第5回 Ruby 1.9 の新機能ひとめぐり(後編): 知っておくとお得な機能 | gihyo.jp
    cnosuke
    cnosuke 2012/03/03
  • 第3回 Ruby1.9の新機能ひとめぐり(中編):洗練された文法と意味論 | gihyo.jp

    第1回では、YARVやFiberなど有名な機能と、配列処理の強化について紹介しました。 今回は、Ruby1.9で導入された新しい文法や意味論を中心に紹介します。 ブロックパラメータ(仮引数)に関する変更 ブロックパラメータのスコープがブロックローカルに ブロック中の変数はスコープがやや曖昧でした。初出の変数の場合はブロックローカル(ブロックの終了と共に変数も消える)で、ブロックの外ですでに宣言されていた変数の場合はその変数を指す、というルールで、ブロックの外まで見ないと変数のスコープが判断できませんでした。 この問題を軽減するため、1.9ではブロックパラメータは常にブロックローカルであると改定されました。 コード1 ブロックパラメータがブロックローカルに # ローカル変数xを定義する x = "bear" # ブロックローカル変数xを受け取るブロック(ローカル変数のxとは別!) ["dog

    第3回 Ruby1.9の新機能ひとめぐり(中編):洗練された文法と意味論 | gihyo.jp
    cnosuke
    cnosuke 2012/03/03
  • 第1回 Ruby1.9の新機能ひとめぐり(前編):YARV、Fiber、配列処理の強化 | gihyo.jp

    Ruby1.9.1リリース 2009年1月、Ruby1.9.1がリリースされました。Ruby1.9系列初の安定版とされるリリースです。Ruby1.9系列は、従来のRuby1.8系列と比べて、次のような特徴を持っています。 高速化や省メモリ化といった最適化 多言語化をはじめとするさまざまな機能拡張 文法の改良・拡張 その他、気の利いた機能 なかでも、「⁠YARVによる高速化」と「M17N対応(多言語化⁠)⁠」は有名で、聞いたことのある人も多いと思います。 しかしRuby1.9には、他にも様々な改善や新機能が数多くあります。今回執筆を担当する、第1回、第3回、第5回では、あまり知られていない新機能にもスポットをあてつつ、Rubyの新機能を駆け足で紹介したいと思います。 YARV(Yet Another Ruby VM)による高速化 Ruby1.9のインタプリタは、笹田耕一氏が開発している仮想機

    第1回 Ruby1.9の新機能ひとめぐり(前編):YARV、Fiber、配列処理の強化 | gihyo.jp
    cnosuke
    cnosuke 2012/03/02
  • 「正規表現」に無限のパワーを与える"田中哲スペシャル" - Atzy->getLog()

    先日、「正規表現」の話を書きました(d:id:atzy:20080905)が、(自称)正規表現専門家の私が、ほとんど使われていないけれど、すさまじいパワーを持つ機能を紹介しましょう。 それが「田中哲スペシャル」です。私はこれを使い始めてから肩こりは治るわ、イボ痔はよくなるわ、女の子にモテモテになるわと、人生が変わりました。 田中哲スペシャルとは このような一風変わった名前がついているのは、田中哲(たなかあきら)さんが最初のアイデアを生み出したためです。 2002年4月3日に「鬼車」と呼ばれる正規表現ライブラリ関連で提案され,そして使えるようになりました。鬼車はRuby 1.9やらPHP5やらで利用することができます。 (ruby-dev:16732) sharing sub-regexp 簡単にいいますと「同じ表現を何度も書くのがウザイ」というものです。例えば「ホスト名(FQDN)にマッチ

    「正規表現」に無限のパワーを与える"田中哲スペシャル" - Atzy->getLog()
  • RubyのNet::HTTPで何が良くないのか?

    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のNet::HTTPで何が良くないのか?
    cnosuke
    cnosuke 2012/02/24
  • ruby で rbuf_fill (Timeout::Error)を rescue する - hiru日記

    ruby でこんなエラーが・・・rescue していたはずなのに・・・ ...ruby/1.8/timeout.rb:60:in `rbuf_fill': execution expired (Timeout::Error) 参考サイト(元ネタ&英語) http://lindsaar.net/2007/12/9/rbuf_filltimeout-error 調べた結果, http://www.ruby-lang.org/ja/man/html/_C0A9B8E6B9BDC2A4.html#rescue.bd.a4.be.fe.bb.d2 には, 捕捉する例外クラスを指定することはできません。 (つまり、StandardError 例外クラスのサブクラスだけしか捕捉できません) とある.StandardError・・・何それ?ということで http://www.ruby-lang.org/j

    ruby で rbuf_fill (Timeout::Error)を rescue する - hiru日記
    cnosuke
    cnosuke 2012/02/24
  • RubyのEnumerable#mapをもっと便利にしたいよ - hp12c

    次のような名前のリストがあって langs = ["ruby", "python", "lisp", "haskell"] 名前の先頭を大文字にするとしたら 君ならどうする? そう普通Enumerable#mapを使って 次のようにするよね langs = ["ruby", "python", "lisp", "haskell"] langs.map { |lang| lang.capitalize } # => ["Ruby", "Python", "Lisp", "Haskell"] Enumerable#mapってほんと死ぬほど便利だよ 僕はRubyの魅力の80%は mapが占めてるんじゃないかって たまに感じることがあるよ.. :) でもただ先の例で 大文字にするだけなのにブロックって ちょっと大げさすぎると思わない? もちろんそうなんだよ そう思うRubyistが沢山いたから m

    RubyのEnumerable#mapをもっと便利にしたいよ - hp12c
    cnosuke
    cnosuke 2012/02/22
  • map が面倒なので DelegateMap - まめめも

    簡単なことをする map を書くのが面倒です。配列の各要素に 1 足す程度のことで、いちいち .map {|x| x + 1 } などと 12 ストローク (空白除く) も必要なんですよ。しかもなんかごちゃごちゃして読みにくい。 使用頻度の低い inject とかなら許せるんですが、特に使用頻度の高い map くらいは短く書きたい。ブロック変数名を決める必要があるのも面倒くさい。"{|x|" の部分と "}" の部分が異なる箇所に分かれるのも気に入らない *1 。 そこで考えた。こんなのどうだろう。 # 各要素に 1 を足す p [1, 2, 3].dmap + 1 #=> [2, 3, 4] p [1, 2, 3].map {|x| x + 1 } # 上と等価 # 二重配列の各要素の先頭の要素を集める (map fst みたいな) p [[1, 2], [3, 4], [5, 6]].

    map が面倒なので DelegateMap - まめめも
    cnosuke
    cnosuke 2012/02/22