タグ

ブックマーク / dayflower.hatenablog.com (9)

  • UUID と Perl について - daily dayflower

    UUID がどういうものであるか,とか UUID の表現形については省略します。 UUID - Wikipedia が参考になるかと。 UUID の仕様として RFC 4122 を参照しました*1。なのでより細かいことについては原文を参照してください。策定されるまでにいろいろ経緯があるのですが,そのへんは http://www.rfcnews.jp/archives/2005/07/rfc_4122uuidurn.html に譲ります。 UUID の構造 UUID の内部構造をおおまかに表すと以下のようになります。 variant 2 bit (3 bit) version 4 bit time 60 bit clock_seq 14 bit (13 bit) node 48 bit 実際には variant フィールドは clock_seq フィールドのオクテットの中に埋め込まれています

    UUID と Perl について - daily dayflower
    send
    send 2009/03/06
  • 複数のテストサーバをリバースプロキシで集約 (3) - daily dayflower

    複数のテストサーバをリバースプロキシで集約 (1) - daily dayflower と 複数のテストサーバをリバースプロキシで集約 (2) - daily dayflower の続きです。 mod_rewrite の RewriteMap を使ってごにょごにょしましたが,なんともまどろっこしかったです。そもそも URI の書き換えに癖のある DSL を使う mod_rewrite を使わなきゃいけないということ自体がアレです。もっと手になじんだプログラミング言語で書ければロジックもすっきりするのに! というわけでモジュールを書いてみました(mod_proxy_mapper.c - daily dayflower)。 プロキシ専用ですが,サブリクエストを使ってプロキシ先を選定するモジュールです。 サブリクエストを使っているので,Apache でサポートしている言語ハンドラ……CGI*1

    複数のテストサーバをリバースプロキシで集約 (3) - daily dayflower
    send
    send 2008/11/18
  • V8 (Google JavaScript Engine) を embed した感想とかあれこれ - daily dayflower

    なぜ CodeRepos に登録しないのか べつだん深意や確執があるわけじゃなくて,華々しく 500 人めのコミッタになろうと思ったら,現在 461 人だったからです。ということで 38 人の方々,コミッタ登録してください ;P 冗談はともかくおまえの書いた汚いコードを早く添削したいんじゃという方がいらっしゃったら,代理でいれといて構いません。 Acme::JavaScript::V8(Perl XS)を書くときに苦労したこと New ていうのが XS での define 値だったので困りました。V8 側だと,new / delete するんじゃなくて Class::New() する流儀なので。 ですから,#undef New してあります。他のマクロで使われていたらマズいなぁと思いますが,動いたからよしとします。 エンベッダーズガイド V8 JavaScript engine を読む s

    V8 (Google JavaScript Engine) を embed した感想とかあれこれ - daily dayflower
    send
    send 2008/09/11
  • Scalar::Util の weaken() - daily dayflower

    Shibuya.pm #9 での id:lestrrat さんの発表 での質疑応答において id:dankogai 氏 weak references の実装はどのようになっていますか? id:lestrrat 氏 あー準備してくるの忘れました。Scalar::Util の Util.xs を見てください :) というやりとりがありました。その時*1は weak reference の参照先の REFCNT を decrement している「だけ」じゃないの? と(あさはかにも)思ったんですが,実装を調べてみました。実際には「それだけ」ではありませんでした,と。 以下 REFCNT とか MAGIC とかでてくるんで,前提条件として Shibuya.pm #9 での :lestrrat さんの発表(Perl 5 internals の世界にようこそ - daisuke maki)必聴です。

    Scalar::Util の weaken() - daily dayflower
    send
    send 2008/07/04
  • daily dayflower - 2007-05-24 ■[linux][pc] SC420 では物理メモリ 4GB はフルフルに使えない

    最近メモリが安いので,Dell PowerEdge SC420 にメモリ 4GB とおごってみました。ところが OS から見えるメモリは 3GB 強程度。さらっと調べた感じだと, PAE を有効にすればできるよ,たぶん x86_64 な OS だと大丈夫だよ,たぶん という意見がよく出てくるのですが,私の環境では PAE カーネルにしてもだめでした。ということであれこれ探し回って,4GB(以上)のメモリを使うために何が必要なのかを調べてみました。 結論ですが, ハードウェアサイドの要件として IA32 の場合 CPU が PAE(物理アドレス拡張)に対応していること といっても 4GB もメモリを詰めるような環境では当然対応してます チップセットが 8GB 以上のメモリをサポートしていること MCH(昔でいう North Bridge)が 33 bit 以上のアドレス空間を利用できる必要が

    daily dayflower - 2007-05-24 ■[linux][pc] SC420 では物理メモリ 4GB はフルフルに使えない
    send
    send 2007/05/25
    さんこうになる
  • YAPC::Asia 2007 2 日目の感想 - daily dayflower

    昨日で頭処理能力がオーバーフローしてしまったので今日は全然メモとってないのら。 id:hiratara さんのメモ(←感謝)を見て思い出しつつ。 ふつ6 by Dan さん [謎] Perl 5 には println がない…でも困ったことないんですが他の言語はなぜついてるんでしょうね $x <= $y <= $z とかって演算子の結合方向・強度とか謎めき List::Util 紹介しないのは P5 がかわいそうです インスタンス変数は基的に隠蔽しないってことかなぁ VoIP + OpenID と EC2 by id:kdaiba さん デモ見れなくて超ざんねんー CLI Framework by yappo さん CLI サーバの話あたりで退出してしまったんでちょっとつかめてない orz Perl Patterns by Dave Rolsky-san 途中から超後方に入ったんでまるで

    YAPC::Asia 2007 2 日目の感想 - daily dayflower
    send
    send 2007/04/06
  • PoCo::HTTP で Comet チャットサーバを作る - daily dayflower

    せっかくのイベントドリブンフレームワークな POE ですから Comet でチャットをやってみようかと。ありきたりですが。 POE::Component::* でウェブサーバを立ち上げられるのは現在のところ, POE::Component::Server::HTTPServer POE::Component::Server::SimpleHTTP POE::Component::Server::HTTP の3つがあります。1番目は最近 inactive なのでパス。2番目は「イベントフレームワーク」への馴染みはいいんですが「Simple」じゃなくなってます。3番目はコールバック関数を登録するというお気楽スタイルなんですがちょっと雑な感じ。 今回は楽をするために3番目の PoCo::HTTP を使ってみたいと思います。id:naoya 氏も最近紹介してましたし。 URI の設計指針は, チャ

    PoCo::HTTP で Comet チャットサーバを作る - daily dayflower
  • worker MPM における mod_perl のグローバル変数 - daily dayflower

    イマイチ worker MPM で mod_perl が安全に使える自信がなかったので確かめてみました。題して「worker MPM でのグローバル変数は Thread Local Storage か Process Global Storage か?」 まず,prefork MPM での httpd.conf から書くと, ServerLimit 2 MaxClients 2 StartServers 2 MinSpareServers 1 MaxSpareServers 0 MaxRequestsPerChild 0こんな感じで,これと等価かな?と思う worker MPM の conf は ServerLimit 1 ThreadLimit 2 MaxClients 2 StartServers 1 MinSpareThreads 1 MaxSpareThreads 2 Thread

    worker MPM における mod_perl のグローバル変数 - daily dayflower
  • mod_perl 2.0 の Server Life Cycle - daily dayflower

    mod_perl 2.0 のサーバ起動にまつわる文書を読み込んでいました。 サーバスタートアップスクリプトは,1.0 時代のドキュメントでは「PerlRequire」記述子で読み込むように書かれていることが多いが,実行される時点が中途半端。なので,PerlPostConfigRequire を使う方が吉。もし設定ファイル自体で Perl の機能を利用しているのであれば(普通そこまでコアなことやらなくて済むんだけど),PerlConfigRequire を使うとサーバ設定フェイズ(すなわちかなり早い段階)で実行される。 Apache 2.x では,graceful restart がうまくいくことの確証を得るために,一度サーバ設定フェイズが終わると,Apache 自身を再起動する。ということは,サーバ起動時に,スタートアップスクリプト等は 2 回実行される。このことで困るってことはたいていな

    mod_perl 2.0 の Server Life Cycle - daily dayflower
  • 1