2009-01-01から1年間の記事一覧

久しぶりにRailsのベンチマークを取ってみました。主な目的はRails Metalがなんぼのもんか、というところ。Web上で、ARを使ったベンチマーク結果が見当たらなかったので、ARを参照に使ったサンプルで試してみました。その結果… Rails Controller同士だと Mon…

十二月中旬にカミさんが十日ほど家を空けるので、僕が子供達の幼稚園の弁当+朝晩のご飯を作らなければならない。そのため、最近の土日は練習がてら朝食+弁当作り+洗濯に挑戦しています。まぁ野菜の切り方や火加減など至る所で時間を食うので、6:00に起き…

う〜ん、auの携帯で取った動画は3GPP2形式なんだなぁ… aptで入れたffmpegだと対応できないのであった。 ソースからコンパイルするか…ということで、細々した手順をメモります。 auの携帯で動画をとるとaudioがamrらしいので、事前にopencore-amrをコンパイル…

自宅の日記用Railsアプリに「YouTubeのような動画投稿機能をつけて欲しい」と唯一の利用者から要望が出てきました。いつも、ご飯を作ってもらっているので頭が上がりません。仕方がないのでちょっと試してみました。画像ファイルのアップロードでattachment_…

自宅の日記用Railsアプリを 1.2.6 -> 2.3.4 にあげておいたのですが、画像がアップロードできないとカミさんから不具合報告が上がっていました。ファイルアップロード & 画像データ管理に acts_as_attachment を使っていたのですが、このご時世 attachment_f…

子供のインフルエンザは丸二日間 36.6 - 39.4 を行ったり来たりしながら、その後は平熱 or 微熱まで下がりました。ほっと一安心。あと、こういうことが無いと健康のありがたみを忘れかけてしまうのは、あまり良くないなぁと反省。

http://d.hatena.ne.jp/camlspotter/20091026/1256567062再帰関数を定義したら、それが fold で書き直せるかどうか検討せよ「あぁ、どうだったかなぁ、ちゃんと fold 使っていた気がするなぁ」とぼんやり読み飛ばしそうになったのですが、たまに自前で書いて…

子供が新型になってしまいました。インフルエンザの。ちょうどカミさんが出産関連で病院に行っていたので、遅刻&自宅作業の合わせ技を使って朝から38.8℃出ていた子供達を病院につれていったところ、検査の結果、新型インフルエンザとのこと。まぁ、通ってい…

今年の夏にサーバーの再構築をしたのだけれど、Subversion環境をレストアするのをすっかり忘れていた。で、この際、GitとかMarcurialとかに乗り換えようかと小一時間悩んでいたけれど、 基本的に自作アプリを放り込んでいるだけ たまに過去のリビジョンに戻…

エヴァー

http://blog.livedoor.jp/michaelsan/archives/51190839.html 何だか素直な気持ちで楽しめる心地よいスレ。ゲンドウがかわいい。 他に似たやつ無いかなぁ。

データ設計とプログラム設計

久しぶりにデータ設計の方が重要だと痛感した。こういうのは自分に災難が降りかかってきて始めて実感できるものだ。 何なんだこのSingle Table Inheritanceを自分流に改造して、だれでも自由自在にデータの不整合を発生させられる地雷だらけのフレームワーク…

調子が上がってきた

最近の業務で、Railsのコーディングをしているせいか気力が回復してきたみたい。 とはいえ全体的な改善っぽいのも進めていかなくてはいけないので程々にしておかなくては。さみしい。

エンジニアとしての方向性

半年程ぼんやりと考えているのだけど、そろそろ固めたいなぁ、と思ったり。危機感というか。仕事では殆どコードを書いておらず、夜に自宅でRubyとかOCamlとかの手慰みプログラムをしているのは、何というか微妙な状況だと感じてしまう。何とかならんもんかな…

言語作成とか

このところocamlyacc/ocamllexで簡単なインタープリターを作ろうとしていたのだけど、どうも萌えてこないので、適当な所でやめておいた。これは確固たる目的(xxxのために新しい言語が必要とか)が無いから萌えてこないのかなぁ、と思ったけれどアルゴリズム…

ruby_heap_monitorを手直し

ヒープ領域中にあるオブジェクトのダンプ - komamitsu.log で作ったRubyのヒープ領域ダンプ用パッチを手直ししました。何とか使えるようになってきたかも。具体的には以下の対応です。 Railsで動かすとSegfaultる Nodeオブジェクトがウザいのでやっぱり消し…

TCP上でメッセージ送受信、のマルチプロセス版

OOPのメッセージ送信をTCP上で - komamitsu.logのマルチプロセス版をgithubにポコンと。http://github.com/komamitsu/message_passing まぁ、そうするとクラス変数が共有されなくなっちゃうんですけれども…そもそも、マルチスレッド版のコードではクラス変数…

OOPのメッセージ送信をTCP上で

Rubyはオブジェクト指向言語なので、オブジェクトのメソッド呼び出しは「オブジェクトに対してメッセージを送る」と考えることもできるそうな(アラン・ケイが発祥?)。であれば実際にオブジェクトに対してメッセージをTCPとかで送受信したくなるのが人情と…

マルチキャストでLinuxルーター越え

まぁ、結構ハマった末に結局成功しなかった…smcrouteとかpimdとかでnet.ipv4.*.mc_forwardingが1になってからが先に進まないのであった。というか動かしている人いるのかなぁ。

sorry_serverねた

久しぶりに上のエントリを書いたので、勢いで。先日、keepalivedにsorry_server(振り分け先のリアルサーバーが全滅している場合の転送先)を追加しようとして少しハマったのでメモ。 DSR(パケットを書き換えずにリアルサーバーに転送する方式。リアルサー…

ヒープ領域中にあるオブジェクトのダンプ

ってできないかねぇ?と先日同僚に聞かれたのですが、業務中は面接したり打ち合わせしたり技術調査をしたりで時間がなさそうなのと「これは何だか趣味の領域だなぁ」と思ったので、自宅で深夜こしょこしょとruby処理系へのpatchを書いていたのでした。で、そ…

B-Tree

B-Treeアルゴリズムを試してみました。http://github.com/komamitsu/ocaml-b_treeB-Treeというのは多分木のアルゴリズムで、木の高さを低く保つことができてキーのバランスが良いので、結構DBのインデックスにそれ系統のやつが使われていてDisk I/O減らせて…

面接漬け

ここ数週間、会社の二次面接(技術面接)を担当しているのですが、何気に一日三回はきつい気がしてきました。ボディブローのように精神力・体力が削られていくような気がします。で、このご時世なので山のように応募がくる。(書類上)歴戦の強者らしい経験者…

http://headlines.yahoo.co.jp/hl?a=20090815-00000555-san-soci 同署によると、金容疑者と男性は初対面で、酒を飲むうちに意気投合。その後、2次会に向かったが、店が休みだったため酔っぱらった男性が路上に寝転がり、それに腹を立てた金容疑者が「おれを…

隠れパターンマッチとアロケートのコスト

http://rwmj.wordpress.com/2009/08/06/ocaml-internals-part-3-the-minor-heap/ を見ていて興味深かったコードがあったのでコピペして試してみた。 #load "unix.cma" let f1 (a, b) = (a, b) let f2 (x : ('a * 'b)) = x let f3 x = x let rec loop n f arg…

超高速scalping

http://blog.goo.ne.jp/kitanotakeshi55/e/b90293bda1b2e5c4653f9c6248321576しかし、ゴールドマンのトレーディングデスクから発注すると、恐らく1秒もかからず執行しているはずです。そのために膨大なシステム投資をしているわけですから、それはものすごい…

WILLCOMからauへ

WILLCOMのPHSのほうが携帯より維持費が安いものだと思い込んでいたのですが、逆にすごく高かったことに気がついたので、衝動的にauに切り替えようと決めました(auなのはプロバイダとの都合上)。で、auショップに行けば良いのかしら、と思いWebで情報を漁っ…

A beginners guide to OCaml internals

http://rwmj.wordpress.com/2009/08/04/ocaml-internals/ (http://d.hatena.ne.jp/camlspotter/20090805/1249476309 経由)実装について基本的なところを知りたかったので助かるなぁ。Article was good but fish face at the top scared the shit out of me!…

gc_monitorを作ってみた

最近、Railsのメモリリーク絡みで困ることがあったので、何か簡単に(拡張ライブラリを書かずに)GCの状況を把握できないものかと思い、それらしいのを作ってgemにしてみました。http://github.com/komamitsu/gc_monitorまぁ、簡単に言うとCGされずに残ってい…

ruby1.8.7-p174にて、ThreadとIO.selectの組み合わせバグ

http://arika.org/diary/2009/07/31/ruby-1-8-7-pxx-vs-capistrano-2-5-x ちょうど同じところで半日悩んでいましたよ…Net::SSH::Transport::PacketStream.available_for_read?の def available_for_read? result = IO.select([self], nil, nil, 0) result &&…

プログラムがどこで止まっているか調べたい場合

1.8.7の話。1.9は変わっているかも。あと、Rubyはソースコードから-gつきでコンパイルしているもの限定(狭いなぁ)。 gdbでattach rubyのglobal変数である ruby_sourcefile, ruby_sourceline をprint わかる detachして何事もなかったのごとくquit $ gdb (g…