タグ

ブックマーク / rubikitch.hatenadiary.org (8)

  • やっぱりDebian GNU/Linux sid (unstable)はリスキーだった - http://rubikitch.com/に移転しました

    http://d.hatena.ne.jp/Ubuntu/20081204に触発されてしばらくsidを使っていたのだが、地雷を踏んでしまった。 sidに上げてからX Window Systemが頻繁にクラッシュするようになり、にっちもさっちもいかなくなってしまった。クラッシュに怯えながら使うのは精神衛生上よくない。 どうしてもエンバグする可能性はある、とくに巨大なソフトウェアでは。 なんといっても一番困ったのは、以前の時点に戻す機能がなかったことだ。もしDebianパッケージレベルのバージョン管理システムさえあれば、バグを踏んでしまったら、以前のバージョンに戻せばいいことである。この機能がない時点で、sidは常用できない。dpkgでcacheから戻せないことはないが、依存関係は解決してくれない。 そこで、数日前からstable(lenny)に戻すことにした。戻す方法はapt-pinning

    やっぱりDebian GNU/Linux sid (unstable)はリスキーだった - http://rubikitch.com/に移転しました
  • 『Ruby逆引きハンドブック』出版 - http://rubikitch.com/に移転しました

    asin:4863540221 書籍『Ruby逆引きハンドブック』を出版しました。 10 年にわたる Ruby の経験を一冊のにまとめました。 このは、「 Ruby で○○するにはどう書けばいいのか」という問いに答える 逆引きですが、それだけにとどまらず、陥りやすい落とし穴、理解しづらい部分、 応用例などもしっかり解説しました。 Ruby 初心者〜上級者、他言語から Ruby を学ぶ人すべてにおすすめです。 このの持ち味は類書をはるかに凌ぐ圧倒的な情報量です。 セクションとコラムは合わせて 588 項目にわたり、総ページ数 768 ページです。 Ruby プログラミングの際には手元に置いて、辞書として繰り返し使ってください。 Ruby 1.8.6 、 Ruby 1.8.7 、 Ruby 1.9.1 全方位対応なので、今風な書き方も学べます。 Ruby on Rails 習得のために

  • Ruby 1.9 だと String#sub 等にハッシュを渡せる - http://rubikitch.com/に移転しました

    String#sub などの置換メソッドを何度も渡すと効率が問題になってくる。かといってブロックを渡すと ブロック呼び出しコストが高い(特に 1.8 )ため遅くなることがある。そこで、置換パターンをハッシュで渡せるようになった。これなら効率も上がる。 TABLE = { 'a' => 'A', 'b' => 'B' } # 複数回の置換 "hagbx".gsub (/a/, 'A').gsub (/b/, 'B') # => "hAgBx" # ブロック置換 "hagbx".gsub (/[ab]/){|c| TABLE[c] } # => "hAgBx" # ハッシュ置換( Ruby 1.9 ) "hagbx".gsub (/[ab]/, TABLE) # => "hAgBx" で、ベンチマーク。 Ruby 1.9 の String#inspect で JSON 形式への変換を高速化 -

    Ruby 1.9 だと String#sub 等にハッシュを渡せる - http://rubikitch.com/に移転しました
  • ルビーは言語名じゃないだろ - http://rubikitch.com/に移転しました

    http://mainichi.jp/select/wadai/news/20090224dde001040059000c.html http://mainichi.jp/life/electronics/news/20090224dde001040059000c.html http://mainichi.jp/select/today/news/20090224k0000e040075000c.html http://mainichi.jp/life/electronics/news/20090224k0000e040075000c.html おい、毎日新聞!「ルビー」表記はやめれ。 Ruby だ。 ruby も処理系の名前だからよいとして、 RUBY やルビーは言語名として認めないって FAQ に書いてあるだろ。違和感どころかそもそも言語名になっていない。なぜわざわざカタカナ表記するん

    ルビーは言語名じゃないだろ - http://rubikitch.com/に移転しました
    Sixeight
    Sixeight 2009/02/25
    卒論発表のスライドで無理矢理Ruby言語と書かされただけでも吐き気がしたのに
  • Ruby 1.8.7が1.9.1、Ruby 1.9.1が2.0.1でいいんじゃね? - http://rubikitch.com/に移転しました

    Route 477(2009-02-12) ・ Nutterさん曰く: □ やっぱ1.9は「2.0」にすべきだったんじゃね?そしたら1.8.7を「1.9」に、1.8.8を「 1.10」にできるよ。 俺も1.8.7は1.9.1すべきだと思ったよ。1.8.6→1.8.7で劇的に変わった感じ。1.8系は1.8.5あたりからpatchlevelが登場してごちゃごちゃしてきた印象。teenyが10未満という制限のための苦肉の策なんだけど…。 1.8.7→1.8.8は1.8.6→1.8.7ほど変わらない予感がするから1.9.2あたりが理想だろうか。「1.10」はそのままバージョン文字列比較できなくなるからまずい。 そうなると現在の1.9.1は2.0.1、まだ見ぬ2.0は3.0とか4.0でいいんじゃないか。なぜ2.0にこだわるのか俺にもよくわからない。 つーかpatchlevelとか出すくらいだったら最

    Ruby 1.8.7が1.9.1、Ruby 1.9.1が2.0.1でいいんじゃね? - http://rubikitch.com/に移転しました
    Sixeight
    Sixeight 2009/02/13
    歴の浅い僕からみると1.8.7は1.9になれるくらい革新的だったような気はしなかった。よって今のままの方がなじみます。
  • Ruby 1.9のSymbolがStringっぽい理由 - http://rubikitch.com/に移転しました

    Ruby 1.9に移行する際に注意すべき10のポイント - なんとなく日記 ==== Symbol が String のように Symbol が String のようになる.正規表現や upcase/swapcase,その size を得ることができ る.この目的が何なのかわからない.完全に String のようになるのでなければ,これ以上 Symbol を String のようにしたくない. 「これ以上SymbolをStringのようにしたくない」という気持ちはわかるのだが、致し方ないとしか言いようがない。俺も最初はキモいと思ったのだが… なぜなら、以下の変更のため。 ==== メソッド名は Symbol で返る 1.9 では obj.method や klass.instance_methods が,String ではなく Symbol を返すように なる.もし String で欲しい

    Ruby 1.9のSymbolがStringっぽい理由 - http://rubikitch.com/に移転しました
  • Array#permutationがなぜEnumeratorを返すのか・Rubyのメソッド呼び出しはコストがでかい - http://rubikitch.com/に移転しました

    Send + More = Money - Ruby初心者prinyの学習帳 - Rubyist もっと金くれや問題 - http://rubikitch.com/に移転しましたで俺と同じような解答があった。 Array#permutationはEnumeratorを返す。というのは、配列で返していたら、すべての順列をメモリに記憶しないといけないのでメモリコストがでかくなってしまうからだ。10P8(10個の数字を8つ選ぶ順列の個数)は1814400個とかなり多い。8要素の配列が1814400個もあるのだから。メモリ使用量はEnumeratorを使った場合は1.8MBに対して、to_aした場合は128MBにも到達する。領域確保だけでも無駄が出てしまう。 $ ruby -e 'p (0..9).to_a.permutation(8).count' 1814400 $ ruby -e '(0..

    Array#permutationがなぜEnumeratorを返すのか・Rubyのメソッド呼び出しはコストがでかい - http://rubikitch.com/に移転しました
  • もっと金くれや問題 - http://rubikitch.com/に移転しました

    send more money - krystal: プログラミング超初心者(文系) - Rubyist send + more = money を満たすそれぞれ異なる 0 以上 9以下の数 s, e, n, d, m, o, r, y を求めよ。(ただし s, m は 0 でない) いかにも中学入試に出そうな問題。 Ruby 1.8.7以降ではArray#permutationが導入されたのでそれを使う。 (0..9).to_a.permutation(8) do |s, e, n, d, m, o, r, y| next if s == 0 or m == 0 send = s*1000 + e*100 + n*10 + d more = m*1000 + o*100 + r*10 + e money = m*10000 + o*1000 + n*100 + e*10 + y prin

    もっと金くれや問題 - http://rubikitch.com/に移転しました
    Sixeight
    Sixeight 2008/12/09
    もっと金くれや問題なんてのがあるのか
  • 1