タグ

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

タグの絞り込みを解除

rubyに関するkgbuのブックマーク (255)

  • Object#tryについて - I am Cruby!

    RubyRails2.3リリースノート訳 : うぇぶたまtry() — ones zeros majors and minorsまつもとさんに「Rubyに入れませんか?」と直接質問した所,「筋は悪くない.あとは名前だね.」と答えていただいた. ので,ruby-coreにメールを出しておく.Ruby 1.9 - Feature #1122: request for: Object#try - Ruby Issue Tracking System# 英語は不安だけど..入ると良いなぁと思いますが,良い名前が思いつかないですね...

    kgbu
    kgbu 2009/02/07
    null(nil)チェックをしないでメッセージ(メソッド)を渡してもいいじゃんという機構らしい。それをRubyにも、という話らしい。これが普通の言語もあるのね。ふーん。
  • マルチコア時代の高速サーバーの実装 - Blog by Sadayuki Furuhashi

    特にサーバー用途では、CPUがシングルコアに戻ってくることは考えにくい。 マルチコアCPUの性能を活かすにはマルチスレッドに対応したサーバーの実装が必要になるわけですが、マルチスレッドなプログラミングは往々にして「高負荷になると固まる」とか「たまに落ちる」といった悩ましいバグと戦わなければならず、イヤです。 かといってシングルスレッドでは、近い将来 32コアCPU! などが出てきたとき、たぶん性能を発揮できません。 そこで、そこそこデバッグしやすく、それでいて多コアCPUでもスケールするという落としどころを模索しているのですが、ボトルネックはネットワークIO周りにあるだろう*1という前提の元で、ネットワークIO部分だけをマルチスレッドで動かし、それ以外の部分をシングルスレッドで動かすというアーキテクチャを考えています。 ロジックの部分はマルチスレッドで書いても共有リソースにアクセスする度に

    マルチコア時代の高速サーバーの実装 - Blog by Sadayuki Furuhashi
    kgbu
    kgbu 2009/02/03
    ロジックはシングルスレッド。IOはマルチスレッドという落としどころらしい。ロックを使うならそうかも。
  • Ruby 1.9.1 NEWS

    kgbu
    kgbu 2009/01/31
    Ruby 1.9.1がリリースされた。主な変更点など。
  • ruby-1.9.1対応のためのメモ - Hello, world! - s21g

    レガシープロダクトをruby-1.9.1に対応させる方法のメモです。 RSTRING(str)->ptrはRSTRING_PTR(str) にする RHASH(hash)->tblはRHASH_TBL(hash)にする RFLOAT(float)->valueはRFLOAT_VALUE(float)にする #include "re" は #include "ruby/re" #include "st" は #include "ruby/st" require "sha1"は、require "digest/sha1"にして、

    kgbu
    kgbu 2009/01/31
    Ruby 1.9.1がリリースされたので、そろそろ1.8からの移行を考えている場合に読むと吉かも。とはいえ、まじめにChangelogを読むこと>自分
  • Ruby 1.9 でアプリケーションが速くなるとしたら - kなんとかの日記

    個人的には、Ruby 1.9 を使っても業務アプリケーションや Web アプリケーションはそう速くはならないと思ってる。少なくとも、自分のプログラムでベンチマークした限りではそうだった。 Ruby 1.9 による高速化の恩恵を受けるのは、数値計算を多用するようなプログラムであり、具体的には、数学系、科学技術計算系、ゲーム系のアプリケーションやライブラリがこれに当たる。また業務アプリケーションなら、統計処理や Business Intelligence (BI) 系のものは速くなるだろう。 ただしこういった CPU Bound なものは、Ruby 1.9 でも満足できる速度ではないので、そもそも Ruby がメインとして使われることはほぼないと思う。あっても補助的なものに限定されるだろう。 ただ、次のような場合は業務アプリや Web アプリでも Ruby 1.9 の恩恵を受けるはず。 ・使用

    Ruby 1.9 でアプリケーションが速くなるとしたら - kなんとかの日記
    kgbu
    kgbu 2009/01/27
    Ruby1.8から1.9への進化は、ライブラリ書き直しのいい機会になる、ってのは興味深い視点
  • 組みたり。ぬ

    ライセンスの記述が間違っていたので修正しました。 正しくはRuby'sライセンスです。(2005.1.6) RubyからExifファイルの情報とサムネイルを取り出すライブラリです。 たいそうなものではないので、Exifを読むサンプルにもなると思います。 Rexifというライブラリがすでにあったので、名前は考え中です。 ruby-exif.rbライブラリファイル phiexif.rbApolloを使ったサンプル exif.zip(zip,3KB)上記2つをまとめたもの ライセンス Ruby's ライセンスとします。LICENSE 参考リンク Exif file format GET_DS7(Exif)

    kgbu
    kgbu 2009/01/13
    デジタルカメラの画像としてよく使われるExifファイルの情報を取り出すライブラリ。Ruby'sライセンス
  • GPSデータの読めるruby-exif.rb - httyのメモ(2007-10-07)

    _ [Ruby] GPSデータの読めるruby-exif.rb 追記 写真からGPSのデータ取得するのに,この記事のライブラリ使うくらいならexifr(http://rubyforge.org/projects/exifr/)使った方が良いです. 参照:http://d.hatena.ne.jp/kent013/20080729/1217298437 #ってか,これ作った時点では既にあったとは... 旧記事 http://www.asobitari.nu/program/exif.html にあるruby-exif.rbを改造して,GPSデータや,Exif IFDのデータを読めるようにしてみました. ついでに,つけられるだけコメントをつけています. http://tabi2.googlecode.com/svn/trunk/lib/ruby-exif.rb 最初はRDoc形式できれいなコメ

    GPSデータの読めるruby-exif.rb - httyのメモ(2007-10-07)
    kgbu
    kgbu 2009/01/13
    ruby-exif.rbを改造して,GPSデータや,Exif IFDのデータを読めるようにしたもの。有難い。
  • 15quzzle.rb - まめめも

    15 パズルを quine で作ってみました。 eval((%w[a=0;loop{a=(0..15).sort_by{rand};b=a.reverse;b=a[0,4]+b[8,4]+a [8,4]+b[0,4];n=0;16.times{|i|b[i]>0&&(0..i).map{|j|b[j]>b[i]&&n+=1}};n% 2>0&&break;};eval$s="b=0x#{a.map{|n|"%x"%n}.join}"+%w[;i=(m=0..15).find {|i|1>b&m=15<<4*i};t=m|n=m<<4*o=("AdABrBlBAuA"=~/(.)#{ARGV*''}\1/||04|| 0)-4;( n<1 ||n>1<<64||[255<<12]&[t>>040||0,t>>16, t]!=[])?t=0:i +=o;; ## s ####### ="eva

    15quzzle.rb - まめめも
    kgbu
    kgbu 2009/01/09
    quineになってるのがすげー
  • あけましておめでとうございます - まめめも

    1 時間くらいで書いた年賀状。 require"zlib";r=Zlib::Inflate.inflate(%w(eJylk 1FywzAIRK+0CBWR6xRb9z9CF6Q4mU4+0kaZ2BjxDFrwOKE TMh3jxLU UEq/stQzi6Qd CoeLikdYz7 Q9bX9POm/CBo MEfAN2K92jviAaj40E j7Im2lzS9giz aLMunvzVMYHj RLKvzUdEDjb9xYxUu5 6bp1YtGJtAmB xWISsfqu9x4j YwznBNjuH77oqOzeMG mS/KTscJtzW1 1ChKa75c82kh X3uf0OpzGuNOlk2n JtOjhjLBFe9/ N4ZEWnTnY5U1 XV41Y0kK7d/ek61B +b+3Yqom3i to0rOjpOmf5r R8s8 lRLO i56bjqjskJ0o6RV

    あけましておめでとうございます - まめめも
  • Rubyのメタクラス階層について再び - 世界線航跡蔵

    承前 。 3ヶ月ばかり時間が空いてしまったけれども、 sumimさんの記事 に答えたいと思います。 yugui さんの図は、たしかにクラスと特異クラス(メタクラス)が揃って並んでいて見た目にはきれいなのですが、これだとクラスが整然と並んでこそいるものの、肝心のメタ階層がどうなっているかという情報のほうは、正直なところ、いささか得にくいものになってしまっています。 いいえ、これで良いのです。なぜって? これが私の図(下記再掲)で一番言いたかったことで、ただ、一般のメタクラスと#<Class:Class>を並べているのはいただけないかな。これはsumimさんのSmalltalk版の図を意識しすぎて、まずかったかなと思います。 図1: うん、やっぱり メタ階層がどうなっているかという情報のほうは、正直なところ、いささか得にくいものになってしまっています。 これは当たってるかもしれません。 図の修

    Rubyのメタクラス階層について再び - 世界線航跡蔵
    kgbu
    kgbu 2008/12/15
    すべての根源がクラス(テンプレート)なのか、それともオブジェクト(実存)なのか、それが問題らしい。しかし、すべての根本というのは、言語の実装のどこかの仕組を概念として捉えた場合のことで、ああ、ややこし
  • unicode の大文字小文字は大変だなあ - まめめも

    ちょっと調べただけですが、面白かったのでメモ。世界は広いですね。バベルの塔ですね。 ß ドイツ語では、ß (U+00DF 、エスツェット) を大文字にすると SS になるらしい。 鬼車 (RubyPHP で使われている正規表現エンジン) はこれに対応していて、ignore case にすると、一文字が複数の文字にマッチして驚く。 # coding: UTF-8 p "-SS-"[/-\u00DF-/i] #=> "-SS-" p "-\u00DF-"[/-SS-/i] #=> "-\u00DF-" こういう関係の字は他にもあるみたい。 ref: ftp://ftp.unicode.org/Public/UNIDATA/SpecialCasing.txt İ と ı トルコ語やアゼルバイジャン語では i と I が別の字らしい。i の大文字は İ (U+0130 、点つきの I) で、

    unicode の大文字小文字は大変だなあ - まめめも
    kgbu
    kgbu 2008/12/06
    小文字では1文字、大文字では2文字とか、Iとiは別の字だとか、アルファベットは奥が深いんだな。
  • PragDave: Forking Ruby—my RubyConf Keynote is now up

    There's a sound that no presenter wants to hear, and that's dead silence. And that's what greeted me when I made the suggestion in my RubyConf keynote that the community should fork the Ruby language. I think by the end of the talk, though, most people were convinced.Am I anti Ruby? no.Am I suggesting Matz is doing a bad job? Not in the least. But I do think the complexity of the current language

    kgbu
    kgbu 2008/12/03
    Opensourceの世界では、repositoryのfork(分岐)は、メンテナンス、意見調整コストの爆発を意味するので禁忌なのだが、ここではどちらかというと、新しいことを試すときにそれをtrunkに組み込むコストを度外視して良いという話
  • PragDave: See Rails request paths in 'top'

    During our sale, we had one particular request that came in and wedged the application: every time it hit, the mongrel process size zoomed steadily up to 500Mb, so we had to kill it. But finding out which request was doing this was tricky. The log files didn't help—with the amount of traffic we were getting, it was a small needle and a large haystack. Eventually, we found the culprit. But it would

    kgbu
    kgbu 2008/12/01
    コマンド名である$0を書き換えちゃって、topコマンドで表示されるコマンド名を、requestヘッダに含まれるrequest pathの最初の16文字で置き換える。そうすると、負荷が高いプロセスとURIの関係が分かる。
  • 正規表現利用間に合わせパーサ | tnomuraのブログ

    正規表現を利用した、ちょこっとまにあわせパーサができた。 使い方だが、まず、スキャナーの字句解析ルールを設定した配列を引数にして、Lex クラスのオブジェクトを作る。lex.buf = "(1 + 2) + 3" のように、Lex オブジェクトのバッファに、解析したい文字列を入れると、lex.get を実行するたびに、戻り値としてトークンと値が帰ってくる。 字句解析ルールは[ 正規表現によるパターン, トークン名(英字一文字), 値を戻すときの処理]という配列の配列だ。値を戻すときの処理は、たとえば数値データなどで文字列を数値にするときなどに使う。トークン名を英字一文字にしたことによってパーサのデータの処理が正規表現を使ってできる。 次にパーサのルールを設定するが、パーサのルールは、[トークンのパターン, パターンが一致して縮約するときのトークン, パターンが一致したときの値の処理] とい

    正規表現利用間に合わせパーサ | tnomuraのブログ
  • Ruby に callcc を公式にサポートさせよう - まめめも

    Ruby の callcc というと、 現在の Ruby の Continuation は欠陥品で、まともに利用できないシロモノです。具体的には、dynamic-wind 相当の機能がありません。 (略) ちなみに、dynamic-wind 相当の機能を入れるのは、拡張ライブラリを全部 callcc safe にする作業に相当しますので、現実的じゃないんじゃないかなぁ、と思っています。 ruby-dev:30988 という話があって、「そっかー欠陥品なのかー」「直すのも難しいのかー」と悲しんでいました。 が、dynamic-wind を実装するだけなら広範囲の修正は不要なことに気がつきました。つまり直すのは簡単。というエントリ。 その前に: dynamic-wind とは dynamic-wind とは、継続呼び出しで指定した範囲に突入したり脱出したりするときに起動するハンドラを設定する関

    Ruby に callcc を公式にサポートさせよう - まめめも
    kgbu
    kgbu 2008/11/21
    ]全libraryをcallcc-safeにするのは難しい、んだろうなぁ。ただ、そのためのガードの機構は提供できそうですよ、そのたたき台の実装あり。で、callccって何ですか、先生。
  • Cのシンボルを置換する方法

    This entry was posted by Jun Mukai on Thursday, 20 November, 2008 http://q.hatena.ne.jp/1227069551 これについてはhandyな解決策はないだろうと思う(GNU globalでできる、という回答があるけど当だろうか。globalそんなに真面目に使ったことないからよく知らないけど、ないだろう、という仮定のもとに以下の文章を書く)。ある識別子と同じ字句がコメント内や文字列リテラル内などにないということがあらかじめわかっているなら、ただの文字列置換でもできるのだけど、そうでもないなら少なくともコメントと文字列ぐらいを解釈する程度の簡易なトークナイザは必須で、それぐらい書くのはそれほどしんどいわけでもないだろうが、こういう質問に対して「パーサ書け」という回答をするのはさすがに人を馬鹿にしすぎているとい

    kgbu
    kgbu 2008/11/20
    いやまじで、-i でin-placeをmix-inできるshell/OSって作ってみたくなったよ。
  • inplace(1) -- edits files in-place through given filter commands

    kgbu
    kgbu 2008/11/20
    確かにあると便利そうだ sed の -iみたいなもの。 オプションをつけると、ライブラリをmix-inしてくれるshellって面白かろうな。
  • L&#39;eclat des jours(2008-11-06)

    _ こういうNLize すみか Ruby なるほどなぁ。 仁義なきRubyとかどうだろうか? irb(main):006:0> 5/0 ZeroDivisionError: 0でチンコロしたのはオドレらか!! from (irb):6:in `/' from (irb):6 irb(main):007:0> nil = 'test' SyntaxError: compile error (irb):7: nil 相手に代入するバカが何処に居るかい!このボケ! とかね。 参考:[仁義なき戦い] 好きな台詞 仁義なき戦い [DVD](菅原文太) 仁義なき戦い―美能幸三の手記より (死闘篇) (角川文庫 (4394))(飯干 晃一) 仁義なき戦い―美能幸三の手記より (決戦篇) (角川文庫 (4395))(飯干 晃一) endがないんじゃあ、endが……

    kgbu
    kgbu 2008/11/06
    メッセージを読み取る側でgreasemonkyみたいにplugできても面白い(?)な。色眼鏡というか。
  • Kaz-Piano's blog: Ruby

    ☆☆月収30万以上! オファーから入金まで24時間稼ぎ続ける全自動HPをあなたに ! ! Excerpt: ◎◎在宅で稼げる情報 !!  99%成功する米国開発【Giveaway集客戦略】と、 オファーから入金まですべて自動で処理する全自動システムの専用HPで展開できるインターネットビジネスが Weblog: ☆☆月収30万円以上を【全自動HP】で稼ぎ続ける ! スゴイ! Tracked: 08/03/05 ITコーディネータとは Excerpt: 初級システムアドミニストレータは、情報システムを利用者の側からの視点で構築する技術を養うのに対して、この上級システムアドミニストレータは情報システムを業務者の側からの視点 Weblog: IT・パソコン関連系資格とは Tracked: 08/03/04 こんにちは(*・∀・*)鐓? Excerpt:  アジアの家具・雑貨・料理、ま

    kgbu
    kgbu 2008/11/04
    RubyからPAMを使うための拡張モジュールの作成
  • Route 477(2008-11-01)

    ■ [web] Googleドキュメントの表計算で曜日を入力させる方法 今年の春から、家計簿を付けるのにGoogleドキュメントを使っています。最初はOOo Calcでやってたんだけど、 「Googleドキュメントならどこのマシンからでも更新できてよくね?」ってことで移行。 しかしですね、Googleドキュメントはなんと日付の書式指定で曜日を付けられないのです。つまり 1 | 2008年11月1日(土) | コーヒー | 120 | みたいなことができない。しかも、OOoの文書からインポートしたてのときはちゃんと曜日が出てたんですが、 なんかセルをコピーしたり移動してるうちに一部分だけ曜日が出なくなった、これはキモい。 んで調べてみたところ Perl Tips | Google ドキュメント (Google Spreadsheets) で、日語の曜日を表示する方法 にて方法が紹介されてい

    Route 477(2008-11-01)
    kgbu
    kgbu 2008/11/02
    リンク先も読むべし>俺