タグ

ブックマーク / shyouhei.tumblr.com (6)

  • [ruby][howto]クラスを生成するクラスの作り方

    Rubyな話。 「とあるオブジェクト群はそのなかでクラスタに分かれていて、クラスタごとに振る舞いが違うんだけど、そのクラスタの数が不定」という状況がたまぁ〜にある。Ruby なおまえらがよく知っている例としては Active Record パターンとかはそう。Active Record パターンだとオブジェクトは DB の行で、したがって振る舞いは DB のテーブル(かビュー)によって決まるんだけど、Active Record の基底クラスを設計している段階ではどんなテーブルがあるかなんてのは当然すべてのパターンを網羅的に作成しておく事はできない。 んで、Rails についてくる ActiveRecord::Base だと、そのへんはかつては「クラスが継承されたときにそこにフックして派生クラスに実装を注入」というインド人もびっくりの力技で解決されていて(今見たら今はそこまでじゃないが)、ま

    [ruby][howto]クラスを生成するクラスの作り方
  • 卜部昌平のあまりreblogしないtumblr

    昔と違って今は{PostNotes}がテーマに入ってるから、wgetでページぶっこ抜いてきてawkかperlでちょろっと整形してgraphvizに突っ込むだけでこういう画像が簡単に。 zsh % export target="http://shyouhei.tumblr.com/post/339223403/tumblr-tumblr"; \ zsh -c 'wget -O - $target | tidy -i -w 0 -utf8 | ruby -n <(cat) | neato -Tpng -o tmp.png' <<'EOF' BEGIN { require 'open-uri' require 'thread' $h = Hash.new $q = Queue.new $th = Thread.start { loop { url = $q.deq $th.exit unless

    卜部昌平のあまりreblogしないtumblr
  • 俺の .screenrc が火を吹くぜ

    たまにはこういう生産性のない話題もいいよね! さて、まあおまえらも GNU Screen くらいは使ってるとおもうわけだが。こいつがまたひどいバッドノウハウでさあ。ほとんどの人が他人の .screenrc をコピペしてきて済ませちゃうんだよね。俺くらいカスタマイズして使ってるやつとか見かけないわけよ。当に。CodeRepos 見ても俺に比肩する規模の .screenrc 書いてる奴はいないもん。で、たまーにプロジェクタに表示して見せたりすると「それどうなってるんですか」とか。まあ一般人のおまえらは info なんか読まないよね。そうだよね。 でも今日は気が向いたから line-by-line で何が起こってるか解説しちゃうよ。 .screenrc の前にスクリーンショットの解説をちょっとだけ これが普段俺が使ってるノート PC の画面である。これで全画面。OS は普通の Ubuntu で

    俺の .screenrc が火を吹くぜ
  • 卜部昌平のあまりreblogしないtumblr

    そういうわけでWikiばなに行ったらartonさんにマシン貸してくれと言われ、貸したらUbiGraphがついてきた。しかもマシンが遅くてLTでレンダリングが間に合わないというひどいオチ!(artonさんごめん) まあ、そんで、懇親会までの間にartonさんと俺と田中さんでちょっと解析した感じだと、rubyはぜんぜん余裕でどっちかというとUbiGraphのほうが足を引っ張ってそうである。とくにXMLRPCがなんとなくボトルネックではないかという結論になった。 で、家に帰ってドキュメントを読んでみると、やっぱし最後の方でXMLRPCを疑え、みたいなことが書いてある。しかし、そこで回避策として提示されているのが、SWIG経由でC版を使え、とか、速いグラボ買ってこい、とか、いまいち現実味に欠ける。 どうしようもないのか? と思ってさらによく読んでみると、以下の一文を発見した。 If you are

    卜部昌平のあまりreblogしないtumblr
  • あえて言うがRuby会議はそろそろ一回終わってみるべき。

    表題のようなことを実は2007年のやつの後くらいから思ってて、今年はほとんど確信に近くなっている。Ruby会議2009最終日にうっかり角谷さんの電波(自称)を浴びてしまったせいで、当日は「あー、俺より角谷さんのほうがちゃんと考えてて、でも逃げてないんだなあ」とか思った。思ったが、一日たって冷静に考えてみたら、やっぱ逃げてもいいと思うよ。なので当初考えていたとおりに書くことにする。 (1) おまえらの仕事は品質過剰です。 Ruby会議は世間のカンファレンスの相場から考えると、クオリティに比して参加費が異常に安い。クオリティの高さに関しては素晴らしいとは思うが、それの費用は安すぎだと思う。 なぜRuby会議はあのクオリティで開催できるのか、一回きちんと考察してみるべきだ。俺には参加費の代わりにおまえらのモチベーションを削ぎ落としながら燃料にしてオペレーション回してるようにしか見えない。横から見

    あえて言うがRuby会議はそろそろ一回終わってみるべき。
  • 俺もそろそろメンテナンス戦略について一言言っとくか

    俺におけるブランチメンテナンス戦略は詰まるところ「バグは潰すよ」という話に尽きるわけだが、これには批判がある[1]。まあようするに安定とはなんぞやという話だな。1.8.7や1.8.6やかつての1.8.5は「安定」ブランチだという理解はおそらくみんな一致してると思うが、安定という言葉に込められた思いが人によっては俺とは違う。俺はSEGVするようなプログラムを安定しているとは思わないんだが、どうもそういうことよりも変更の少なさに価値を見出す派閥があるらしい。 俺がバグの重要度という概念を快く思ってない理由の一つは、ほとんどのバグがそのライフサイクルのごく初期に「実際に困っている人がバグ報告をすることで発覚」というフェーズを経ているという経験的傾向があるからで、したがって俺に言わせれば重要でないバグなんて(滅多に)ない。この点どうもLinusも似たような思想らしく[2]、激しく共感を覚える。まあ

    俺もそろそろメンテナンス戦略について一言言っとくか
  • 1