タグ

ブックマーク / nari.hatenablog.com (12)

  • longlife gcパッチを作成しました - I am Cruby!

    GCGW中にせこせこと作っていたGCパッチをruby-devに投稿しました.内容は以下.Railsのヒープ調査2ヶ月ほど前に,ふと気になってRailsがどんな風にヒープを使用しているか調査してみました.以下のグラフはscaffoldしたRailsアプリを動かした際のものです. 調査前は,「文字列が一番多いんじゃないか」と考えていたのですが,実際には構文木オブジェクトがヒープの半分を占めているようです.その構文木オブジェクトを更に詳しく調べたグラフが以下です. このグラフにあるNODE_METHODやNODE_CFUNC,NODE_FBODYはメソッド定義の際に使用され,NODE_WHILEやNODE_BLOCKはVMの内部で使用されているようです.  長寿命GC更に調査をすると,これらのオブジェクトはとても長生きな事が分かりました.そこで,これらを長寿命領域に隔離してしまおう,という改善を

    kgbu
    kgbu 2009/05/12
    どなたか「このコードは超遅くなるよー」とかあれば教えていただけませんでしょうか?だそうだ
  • 絶対復習というWEBサービスをリリースしました - I am Cruby!

    Ruby, Rails, 絶対復習この度,絶対復習というWEBサービスをリリースしました.絶対復習:このサイトについて 一言で説明忘れやすい事柄を絶対に復習するためのサービス 具体的に説明人間は忘れっぽい生き物です.一週間も経たないうちに殆どの情報は頭の中から消えてしまいます. もちろん忘れてもいい情報だけ消えてしまうのであればそれでいいのですが,大事な情報も一緒に忘れてしまう事が多いようです.それはまずいですよね.(これって私だけかもしれないけど..) ちゃんと物事を覚えるには,復習するのが一番効果的です.復習する時期は科学的に決まっているようで, 1日後 1週間後 1ヶ月後 半年後という周期で復習すると,その情報は頭にしっかりと定着すると言われています. じゃあ,この周期で復習すればいいですね.終了.いやいや,でもですね.この周期とか復習する項目自体を忘れてしまうんですよ.私は..(T

  • 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にも、という話らしい。これが普通の言語もあるのね。ふーん。
  • Rubyで作る奇妙なプログラミング言語 Esoteric Language - I am Cruby!

    kgbu
    kgbu 2008/12/09
    これ、4/1的ネタじゃないんだよね?本当だよね?
  • ATOK X3 for Linux を買ったら最初に行う設定(Ubuntu8.04) - I am Cruby!

    ATOK非常にいい製品という前提で気にくわない点を上げる 気にくわない点 Ctrl-space で切り替えGTKウィンドウの左にいちいちプロパティみたいなのが出るEmacsで使いづらい Ctrl-space で切り替えはじめに触って一番腹が立つポイント.だがこれはATOK付属のiiimf-propertiesにて修正する事が可能. ATOKX3/bin/deb/IIIMF/iiimf-properties_trunk_r3104-js3_i386.deb ここにdepがあるので $ dpkg -i ./iiimf-properties_trunk_r3104-js3_i386.deb で入れてやる. そうして $ iiim-properties と打てば設定画面が起動するのでトリガーキータブの所で好きなトリガーキーを設定するといい.私は「Alt+grave」だけど. GTKウィンドウの左に

    kgbu
    kgbu 2008/10/27
    愛を感じる指摘だ。Buy Japaneseっていうほどではないにしても。
  • ymlでERDを書けるymldotを作ったのですが... - I am Cruby!

    ERD, Rubyそういえば,ちょっと前に「ymldot」というのを作りました.  なに?(What?)どうやって?(How?)楽々ERDレッスン 第1回:「お持ち帰りご注文用紙」編:CodeZineで紹介されているERDを書くときに # reference http://codezine.jp/article/detail/154?p=1 config: font: MSUIGOTHIC.ttf tables: - name: 顧客 columns: - 名前 - 電話番号 foreignkeys: has_many: - 注文 - name: 注文 columns: - 注文数 - name: 商品 columns: - 名前 - 金額 - 税 - 商品区分 foreignkeys: has_many: - 注文 - name: 商品カテゴリ columns: - 商品カテゴリ名 f

  • passengerを読み解く(動かすまで) vol1 - I am Cruby!

    Ruby, Rails, passengerpassengerを読んでみる事にしました.なんでかと言いますとWeb(サーバとか)が大好きだからです. passengerとは簡単に言うと,HTTPサーバであるApacheにアプリケーションサーバを組み込んで,ApacheだけでRailsが動く拡張モジュールです.また,言い換えると、PassengerはApacheを拡張し、アプリケーションサーバーのように行動できるようにします.通常,ApacheからRailsアプリケーションを動作させる場合,mongrelなどのAPサーバが必要ですが,それが不要です.それと,色々と高速に動作します.その理由とかは,後々読んでいくうちに解説できればと思います.(というかまだ読んでないのでよく分からない)  動かしてみるでは,PassengerをApacheに組み込んでRailsアプリを動かしてみましょう.Rai

  • わざと脆く作る - I am Cruby!

    etc何か全日空でシステム障害があったそうな。同業種としてはまったく笑えない話である。記事を読んでいて、前MORILOGで森博嗣氏がかかれていた記事を思い出した。タイトルなんだったかなー、思い出せないけど。 脆く作る確か、その記事では当に大事なものを守る時、わざと脆い部分を作っておいて、そこを破壊することで全体を守るとかいう話がされていた。例えばヒューズとかがそうだ。 それで、今回のニュースを読んで「システム停止したらなおったよー」などという部分があって、もしかしたらこういう設計してたのでは?と思ったのだが。。。関係ないよなぁ。 というかヒューズみたいなもんの設計って、プログラミングに落とすとどんな感じになるんだろうか。あんまり想像がつかないな。うーん。 参考全日空でシステム障害、53便が欠航 - 社会ニュース : nikkansports.com雑記 - tnobuhitoの日記

    kgbu
    kgbu 2008/09/15
    mala氏の「炭鉱のカナリヤ」みたいなもんかしら。
  • 画像がうなずく事で気持ちよく文字を打てる - I am Cruby!

    UI, javascriptこの前の奴画面がうなずく事で気持ちよく文字を打てる - I am Cruby! コメントでid:oldfish ネタ 画面に何かキャラの絵おいて頷かせるとか 作ってみたうなずきインターフェイス2 結果絵が不気味です。おわり あー、こんなことしてる場合じゃないんだけどwww 追記ieでは動きません。作ったGIFが表示されない

    kgbu
    kgbu 2008/05/13
    ENTERもそうだけど、スペースとかタブとかでも頷くとなお良いのでは
  • 画面がうなずく事で気持ちよく文字を打てる - I am Cruby!

    javascript, UI前置き何かテレビで見た話ですが、喋っている相手がうなずくいてくれると、テンポ良く話すことができるそうです。その仕組みをカーナビに組み込んだ人がいて、建物が奇妙にぐにゃーっとうなずくんですが、これによって人間が気持ちよく喋るそうになるそうです。馬鹿ですね。人間。 ほいで作ってみたうなずきインターフェイス 結果不気味です。おわり。

  • kwoutで切り出したHTMLをはてな記法に変換するブックマークレット - I am Cruby!

  • RubyにLazySweepのパッチを作った - I am Cruby!

    Ruby, GCplanSweepをLazySweepにして、最大停止時間を改善するHeap内のオブジェクト数がある一定を超えてからLazySweepに切り替わる 通常のプログラムのスループットを落としたくないので今は一応100万にしているLazySweepフェイズではHeapの配列の数を、オブジェクト数が一定になるように選んでSweepする 配列一ずつのオブジェクト数が異なるため、Sweepの時間がばらつかないように調整したHeapの配列が1.8倍づつ増えるのがメモリ効率的にあんまりよくないので、LazySweepが始まってからは少し抑えるようにした。1.1倍くらい。 理想は「オブジェクトを何百万も作ってプログラムをぶんまわす時の最大停止を改善する。」です。その場合当然スループット性能が低下してしまうのはいかしかたなし。 patchgc_lazy_sweep_r15749_patch

    kgbu
    kgbu 2008/03/12
    Ruby のgarbage collectionの動作を改善するこころみ。たくさんオブジェクトを作っても、GCのときにプロセスが止まっちゃう減少を軽減しようとしたものらしい。
  • 1