• ブログ
  • Photoshare
  • キーワード
  • ブックマーク
  • ふぉとす
  • 写真
  • ログイン

kaeruspoon

« 2009年10月 | 2009年12月 »
  • 弥勒の掌 (文春文庫): 我孫子 武丸: 本 2009-11-02 02:08:46 Append 774

    • 弥勒の掌 (文春文庫)
    • 出版社/メーカー: 文藝春秋
    • メディア: 文庫
    • 発売日: 2008-03-07

    「弥勒の掌 (文春文庫)」を読みました。

    Commentコメント(0) Pageリンク元(1)
  • 午前零時のサンドリヨン: 相沢 沙呼: 本 2009-11-02 02:09:34 Append 775

    • 午前零時のサンドリヨン
    • 出版社/メーカー: 東京創元社
    • メディア: 単行本
    • 発売日: 2009-10-10

    「午前零時のサンドリヨン」を読みました。Rubyが登場する、世界ではじめての小説かも。

    Commentコメント(0) Pageリンク元(9)
  • 読書メーターを使ってみる 2009-11-02 02:15:43 Append 776

    読書メーター - tsukasa_oishiさんの読書メーター
    読書メーターを使ってみることにしました。昔は一年に120冊ほどは本を読んでいたのですが、最近は全然読んでいないので……。

    Commentコメント(0) Pageリンク元(2)
  • TokyoTyrant で ttacceptsock failed エラー 2009-11-03 10:35:32 Append 777

    TokyoTyrantを使用していて、ある日、ttacceptsock failedというエラーがログに吐かれていました。
    ソースを読んでみると、ttutil.c の ttacceptsock() 内でのTCPコネクションのaccept時に、エラーが出ているようです。printデバッグでエラーコードをしらべてみると、EMFILEでした。

    EMFILE
        1プロセスがオープンできるファイル・ディスクリプタ数の上限に達した。 
    

    (参考:http://www.linux.or.jp/JM/html/LDP_man-pages/man2/accept.2.html)

    1プロセスがオープンできるfd数はデフォルトで1024のようです。つまり、デフォルトのままだと1024以上のクライアントが登場したときにコネクションが確立できなくなります。

    [tsukasa@ubuntu] $ ulimit -a
    -t: cpu time (seconds)         unlimited
    -f: file size (blocks)         unlimited
    -d: data seg size (kbytes)     unlimited
    -s: stack size (kbytes)        8192
    -c: core file size (blocks)    0
    -m: resident set size (kbytes) unlimited
    -u: processes                  4096
    -n: file descriptors           1024
    -l: locked-in-memory size (kb) 32
    -v: address space (kb)         unlimited
    -x: file locks                 unlimited
    -i: pending signals            4096
    -q: bytes in POSIX msg queues  819200
    -e: max nice                   0
    -r: max rt priority            0
    


    TokyoTyrantは10000コネクション以上の環境でも高速に動くことが売りみたいなので、上限値をあげてあげました。
    /etc/security/limits.conf に以下を追加します。設定方法は同ファイルのコメント内に丁寧に書かれています。

    root soft nofile 16384
    root hard nofile 16384
    tsukasa soft nofile 16384
    tsukasa hard nofile 16384
    


    これで、上限値が16384になりました。ログインしなおして確かめます。

    [tsukasa@ubuntu] $ ulimit -a
    -t: cpu time (seconds)         unlimited
    -f: file size (blocks)         unlimited
    -d: data seg size (kbytes)     unlimited
    -s: stack size (kbytes)        8192
    -c: core file size (blocks)    0
    -m: resident set size (kbytes) unlimited
    -u: processes                  4096
    -n: file descriptors           16384
    -l: locked-in-memory size (kb) 32
    -v: address space (kb)         unlimited
    -x: file locks                 unlimited
    -i: pending signals            4096
    -q: bytes in POSIX msg queues  819200
    -e: max nice                   0
    -r: max rt priority            0
    


    これでTokyoTyrantの本領を発揮させてあげることができます。
    でも、この問題ってapacheやMySQLなどでも起きたりしないのでしょうか。

    Commentコメント(0) Pageリンク元(87)
  • MySQLはopen_files_limitでファイルディスクリプタ数の上限を設定できる 2009-11-04 22:29:59 Append 778

    「TokyoTyrant で ttacceptsock failed エラー」
    昨日の記事で1プロセスあたりのファイルディスクリプタ数の上限にひっかかったことを書いたけど、MySQLはどうなのだろうと思ってググってみたらすぐにそれらしい記事が見つかりました。

    table_cache, max_connections, open_files_limit の関係

    fd数の上限は、ソースの中ではsetrlimit()を使って設定されていました。TokyoTyrantもttserverの起動時にfd数の上限を指定できるようになると便利だと思います。コードを修正してみよう。

    Commentコメント(0) Pageリンク元(98)
  • トヨタ iQ ロングドライブ インプレッション 2009-11-08 23:03:12 Append 779

    この週末は宮城県南部までの往復700kmを、トヨタのiQでドライブしてきました。
    トヨタ iQ
    エクステリアはキュートでなかなかカッコいい。驚くほど小さいです。特に全長が。まるでチョロQのよう。一応、後部座席がついているのですが、本当に緊急用と考えたほうがよくて、大人が座れるものじゃありません。なのに後部座席のヘッドレストが邪魔で、後方の視界がよくありませんでした。ドライブ中は後部座席のヘッドレストを外していました。
    なぜか、缶ホルダーがひとつしかありません。室内の収納箇所もあまりなくて、その点はかなり不満。オートエアコンもついているし、スポーティなD字型ハンドルも感触が素晴らしくてインテリアの質感は高めです。ただ、全長が短いのに車高が高めなせいなのか、シートの座面が高すぎる感じでした。もっと低いほうが自然だと思うのだけど、おそらく足下のスペースが足りないせいなのかも。
    全長が短くて車高が高いので、ロールをしないようにサスペンションは堅め。高速道路では突き上げ感がかなりあります。ただ、着座位置のすぐ後ろがリアタイヤなので、カーブを曲がる感覚がとても楽しい。お尻で回っている感じがおもしろいです。
    ロングドライブはとにかく疲れる車です。疲労感と肩こりが強く残ります。全長が短くて車高が高いのが特徴ですが、その形状がすべての悪い点の元凶になっているようです。ユルさんとも話しましたが、おおいし家ではこの車を購入することはないでしょう。でも、街乗り中心で、近所の足代わりに使うのならけっこうおすすめかもしれません。小回りもきくので。

    Commentコメント(0) Pageリンク元(100)
  • MiyazakiResistance0.1.4リリース。TTへのコネクションまわりの挙動を変更しました 2009-11-15 01:01:49 Append 780

    MiyazakiResistanceのバージョンを0.1.4にアップしました。
    今回の変更点は、以下のとおりです。

    ■必要になったときにはじめて、TTへのコネクションがはられるようになりました
    RailsなどでMRを使っていると、TTへのアクセスを行わないプロセスからも(機能別にわけたmongrelやバッチ、consoleなど)、無駄にコネクションがはられていました。このことが原因で、TTサーバの最大ファイルディスクリプタ数を超えるという事態になったりして困りました。fd数の上限をあげればいいのですが、そもそも無駄にコネクションをはってリソースを消費することもありません。

    ■デュアルマスタ構成の場合、スタンバイサーバからの読み込みを行わないようにしました
    今までは、デュアルマスタ構成のとき、スタンバイサーバへも読み込みは行っていました。TTはもともと一台のサーバでも十分に処理をまわせるポテンシャルを持っているし、スタンバイサーバなのに稼働しているというのもおかしな気もするので、一切のアクセスを行わないようにしました。
    もちろん、アクティブサーバーが落ちたときは、スタンバイサーバーがアクティブに昇格するのは今まで通りです。

    ■タイムアウトのデフォルト値を5秒に変更しました
    以前は60秒だったのですが、いくらなんでも長すぎるので…。本当は5秒でも長いと思いますが。

    それから、今回からgemの公開はgemcutterを使用するようにしました。
    インストールは以下のコマンドで実行できます。

    gem install miyazakiresistance
    


    gemcutterをインストールしていない人はまず先に下記のコマンドを実行する必要があります。
    gemの探索先にGemcutter.orgを追加するだけでもOKです。

    gem install gemcutter
    gem tumble
    
    Commentコメント(0) Pageリンク元(33)
  • MiyazakiResistance0.1.5リリースしました 2009-11-15 22:45:56 Append 781

    昨日の今日ですが、MiyazakiResistanceのバージョン0.1.5をリリースしました。
    変更点は以下のとおりです。

    ■MiyazakiResistance::Base.first メソッドの追加
    地味にconsoleでよく使うので追加しました。ActiveRecordと同様のメソッドです。

    ■MiyazakiResistance::Base.delete_all メソッドの追加
    指定した条件のレコードを削除します。

    delete_allはセッション管理やキャッシュにTTを使ったりするときにexpireの実装で使えると思います。そのうち、Rackに積めるセッション管理用のクラスを作ろうかと思います。

    Commentコメント(0) Pageリンク元(20)
  • WordScoop ver2.0.0をリリースしました。 2009-11-23 01:16:00 Append 782

    WordScoop は Kaerukeywordの後継ライブラリです。
    Kaerukeyword同様、与えられたテキスト中から、登録されたキーワードを高速に検索することができます。また、今回、HTML文章中にキーワードが現れた際、自動でリンクを付与するメソッドも追加しました。ずっとkaeruspoonでは使っていたものですが、晴れてリリースとなりました。

    インストール

    sudo gem install word_scoop
    


    使い方は以下のとおりです。
    まず、キーワード群の辞書を登録しておきます。

    tree = WordScoop.new(["ruby", "rails", "おおいし"])
    


    あとでキーワードを追加登録することもできます。

    tree.add("つかさ")
    tree << "焼き肉"
    


    テキスト中に存在するキーワードを抽出するには、searchメソッドを使います。
    テキスト中に出現した順番に配列に格納して返されます。

    tree.search("ぼくはおおいしつかさです。rubyと焼き肉が大好きです。I love ruby!") 
        #=> ["おおいし", "つかさ", "ruby", "焼き肉", "ruby"]
    


    テキスト中のキーワードに自動でリンクをはりたい場合は、filter_htmlメソッドを使います。
    タグ内にキーワードが現れても無視します。また、a、script、pre、object、iframeタグの場合は、タグが閉じられるまでキーワードが現れても無視します。

    tree.filter_html(|I love Ruby! <script>alert("Ruby!")</script>|)
        #=> %Q|I love <a href="http://www.kaeruspoon.net/keywords/Ruby">Ruby</a>! <script>alert("Ruby!")</script>|
    


    リンクのAタグは自由に設定できます。wikipediaやはてなキーワードなどを利用すると便利かもしれません。デフォルトでは当サイトのかえるキーワードへのリンクとなります。"%s"の部分にヒットしたキーワードが割り当てられます。内部的には単純に、sprintfに渡してあげているだけです。

    tree.link_url = %Q|<a href="http://ja.wikipedia.org/wiki/%s">%s</a>|
    tree.filter_html(|I love Ruby!|)
        #=> %Q|I love <a href="http://ja.wikipedia.org/wiki/Ruby">Ruby</a>!|
    


    パフォーマンス的には、filter_htmlはsearchに比べて若干落ちますが、許容範囲の速度だと思います。アルゴリズム的には何も工夫していないので、さらに高速化をいずれ目指そうと思います。

    262380語の登録にかかる時間。

                 user     system      total        real
    total:   1.100000   0.320000   1.420000 (  1.419997)
    avg:     0.000004   0.000001   0.000005 (  0.000005)
    


    searchメソッド(1000回繰り返し)

                 user     system      total        real
    total:   3.540000   0.030000   3.570000 (  3.569992)
    avg:     0.003540   0.000030   0.003570 (  0.003570)
    


    filter_htmlメソッド(1000回繰り返し)

                 user     system      total        real
    total:   4.220000   0.050000   4.270000 (  4.269990)
    avg:     0.004220   0.000050   0.004270 (  0.004270)
    
    Commentコメント(0) Pageリンク元(37)
  • kaeruspoonの自作サーバ 2009-11-26 01:00:00 Append 826

    昨日は楽天で自作サーバカンファレンスがあったのでustで見ました。チームラボさんはいつも楽しそうですね。

    161
    kaeruspoonも自宅に置いたサーバで動いています。単に、もらいものパーツを組み合わせただけなので、自作とはいえないですね。ガムテープは怪我防止用。全面が空いているのは、以前、玄関の下駄箱の上に置いていたときの熱対策の名残です。現在はリビングのソファの横に置かれていて、本やコーラを置いたりできる便利なサイドテーブルにもなっていますが、小汚いのでユルさんには不評です。
    さっき調べてみたら、CPUはPentium3の600MHzで、メモリは640Mほどでした。もはや化石の域に達しようかというほどのロースペックですが、kaeruspoonなど4つのRailsアプリが動いていてもほとんど問題はありません。もちろん、Web+AP+DB+家庭用Fileサーバとオールインワンで活用しています。

    162
    これは以前ユルさんが使っていたvaioですが、次期kaeruspoonサーバ候補です。CPUは確かceleron1.4GHz、メモリ1Gほどだったと思うのでかなりのスペック増です。ネックはHDが一台しか載せられなくてRAIDが組めないことですが、レプリケーションと定期バックアップで十分カバーできそうです。あと、ひそかに音と消費電力が気になったりしています。

    163
    これはぼくが以前使っていたvaioノートですが、現在はUbuntu9.10が載っていてRails環境が構築されています。いざというときの代替マシンで、いろいろ検証したいときに使っている便利なやつです。

    ひさしぶりに写真を使ってみました。というか、以前のリニューアルのときに写真アップロード機能をつけてなかったのでした。思い立って、さっき実装したところです。

    Commentコメント(0) Pageリンク元(12)
  • 職場の昼食会 2009-11-27 22:59:00 Append 827

    164
    今日は会社の懇親会でサン・ファソンに行ってきました。昼間からワインを飲んでしまいました。午後は仕事にならないと思ったのだけど、意外にもいつもよりはかどりました。お肉はおいしかったです。

    最近iPhoneの調子がおかしくてバッテリーが異様に早く減ったり、かと思って電源を入れ直すと復活したり、なんて調子でしたが、ついには真っ白な画面になってハングしてしまいました。強制再起動で復活させます。右上の電源ボタンと□のホームボタンを同時に長押しすればOKでした。

    明日は創作家集団のオフ会です。歯医者さんにも行きます。家賃の更新料も払ってきましょう。

    Commentコメント(0) Pageリンク元(6)
  • 創作家集団の最後の飲み会 2009-11-29 00:43:00 Append 828

    165
    昨日は神楽坂でぼくが以前参加していた創作家集団のオフ会がありました。サイト閉鎖に伴う最後のオフ会です。といっても、創作とか関係なしに普通にみんな友だちなので、これからもオフ会ではなく飲み会として続いていくのでした。お互いの小説の話などができて楽しかったです。

    Commentコメント(0) Pageリンク元(1)
« 2009年10月 | 2009年12月 »

プロフィール

おおいしつかさ

過去の記事

2006年
12月
2007年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2008年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2009年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2010年
1月 2月 3月

キーワード一覧

ActionScript Ajax AmazonResources Erlang git github iPhone javascript Javascript Kaerukeyword kaeruspoon Mac merb milook MiyazakiResistance NSR Objective-C perl Perl Rails Ruby Ruby on Rails RubyKaigi speedpetal subversion Thin Thinkpad tokyobike TRPG twitter ubuntu Ubuntu VAIO VAIO typeZ Waves WordScoop Xen ぐりぐり しろさん カンタロー スノボー ドトール ドライブ バイク プログラミング ユルさん 執筆 宮崎 日本酒 模型 猫 町田 真中洋嗣 自転車
Baner