Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

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

  • フックから Apache の全体像を追う - daily dayflower

    DSAS開発者の部屋:[補足記事]Apache 2.0 の hook 一覧(apache module 開発事初め その3-3) はモジュールを書く際にどこにフックをしかけるかという点で非常に参考になります。 が,いまだにいまいち Apache からどのように呼び出されるか実感がわきません。ひょっとしてフックの呼び出し方を調べると Apache の処理フローを追っていけるんじゃないか,という無謀な挑戦をしてみました。 対象 前提条件 Apache のモジュールを書いたことがある人; 最低限 ap_hook_handler フックを使ったことがある人 調査対象 Apache 2.2.3 のソース*1 なお,以下に記したソースは,実際のソースの引用ではなく,おもにフックを呼び出している部分のみの抜粋となります。またロジックを損なわない程度に書き換えた部分もあります。さらには引数や戻り値について

    フックから Apache の全体像を追う - daily dayflower
  • 図解: Perl と Unicode 文字列 - daily dayflower

    id:tomi-ru さんが [http://e8y.net/mag/015-encode/:title] というとてもプラクティカルな [http://search.cpan.org/perldoc?Encode:title=Encode] 入門をお書きになったので,わたしも違う切り口で書いてみたくなりました。 いちおうの基礎(読み飛ばし可) 文字セット, キャラクタセット, 文字集合, 文字集合 - Wikipedia エンコーディング, 符号化方式, 文字符号化方式 - Wikipedia この2つは異なります。とくに知らなくても下記の文書を読むことはできますが,理解しているとためになります。くわしく知りたい人は自習してください。 文字セットの例 Unicode JIS X 0208 ひらがなとかカタカナとか漢字とか ASCII 文字 エンコーディングの例 UTF-8 ISO-202

    図解: Perl と Unicode 文字列 - daily dayflower
  • 選択範囲の取得について調べた - daily dayflower

    はてなスターや Tumblr のブックマークレットなど,ブラウザ上の選択文字列をそのままユーザの入力として使えるサイトが増えています。JavaScript からどのようにすれば取得できるのかを調べてみました。 ブラウザ間の差異 DOM における選択範囲の仕様として以下の 2 通りがあります。 W3C Range Microsoft TextRange IE が Microsoft TextRange のみサポートしているのはまぁ予想通り。注意しなくてはいけないのは,W3C Range は,あくまで DOM 上の「範囲」を示すためのインタフェースであることです。ブラウザ上でユーザがどこを選択しているのか,などは UI の実装になりますから,W3C (Range) では規定されていません*1。そこで W3C Range をサポートしているブラウザは,選択範囲をあらわす W3C Range オブ

    選択範囲の取得について調べた - daily dayflower
  • ProxyPass には retry=?? を指定しておく - daily dayflower

    Apache でリバースプロキシを使い,フロントサーバからアプリケーションサーバにアクセスするようにすることも多いかとおもいます。このとき,アプリケーションサーバを落とすと,フロント(プロキシサーバ)がブラウザに 503 Service Temporary Unavailable を返します。そこで,メンテナンスのときはアプリケーションサーバを落としておき,フロントの 503 ページに「メンテナンス中です」と出すようにしています。 ところが,メンテナンス終了時にアプリケーションサーバを立ち上げても,しばらくは「メンテナンス中」と表示されてしまい困っていました。[http://httpd.apache.org/docs/2.2/en/mod/core.html#errordocument:title=ErrorDocument] 時のヘッダを見てみると,Cache-Control 等が設定さ

    ProxyPass には retry=?? を指定しておく - daily dayflower
  • テキストの文字種分割の補足 - daily dayflower

    Perl で日語テキストを簡単に字種かたまりに分割できないかな、 と思い、perlunicode を読みながらサンプルプログラムを書いてみました。 対象テキストは UTF-8Perl で日語テキストを字種分割 たつをさんは,m// でマッチングさせて分割させてますけど,これだと正規表現で網羅されてないトークンが失われてしまうと思います。 #!/usr/bin/perl use strict; use warnings; use utf8; binmode \*STDOUT, ':utf8'; my $src = <<"END_DATA"; zーあyxルーラでう、う9 10AB.DE「"GH'」★で漢字をカ・ナったー!?MJD39\x{2466}。 END_DATA print $src, "\n"; my @cs = ( $src =~ m/ ( \p{M}+ | \p{N}+

    テキストの文字種分割の補足 - daily dayflower
  • Perl で Unicode Character について触る - daily dayflower

    Python の unicodedata モジュール - bkブログ を読んで,それ Perl だとどうよと思ったんで対応をまとめてみました。utf8 flag や Encode モジュールについては特に解説しませんので。 文字の名前を取得する charnames モジュール(Perl 5.6 より付属)の viacode 関数を使うと文字の名前を取得することができます。引数として文字列ではなく文字コードを渡すところが要注意です。 use utf8; use charnames qw( :full ); print charnames::viacode(ord 'A')), "\n"; # 'LATIN CAPITAL LETTER A' print charnames::viacode(ord 'あ')), "\n"; # 'HIRAGANA LETTER A' 文字列リテラルとして標準

    Perl で Unicode Character について触る - daily dayflower
  • perl-5.8.8 on Fedora リビルド顛末記 - daily dayflower

    2007/10/11 追記 そういえば言及し忘れてましたが(FC 7 だと rel 19) * Sat Jun 23 07:00:00 2007 Robin Norwood - 4:5.8.8-19 Resolves: rhbz#196836 Apply upstream patch #28775, which fixes an issue where reblessing overloaded objects incurs significant performance penalty という changelog があがってたんで,たぶんもう大丈夫なんじゃないかな。未検証ですが。 題 http://naoya.g.hatena.ne.jp/naoya/20070319/1174334346 http://femo.jp/kazeburo/br51s0s3qh このへんを読んで,perl

    perl-5.8.8 on Fedora リビルド顛末記 - daily dayflower
  • Template Toolkit 探訪 (2) - daily dayflower

    前回お話したように,Template::Provider は,コンパイルしたテンプレートオブジェクトを,デフォルトではメモリ(内部のハッシュ)に蓄えておき,出来る限り再利用しています。ただ,当然再利用するためにはテンプレート「自体は」静的なものでなくてはいけませんから,ファイル名が指定された場合のみキャッシュします。つまり,生データのスカラハッシュや,ファイルグロブを与えた場合は,毎回コンパイルしているわけです。 デフォルトでは読み込まれれば読み込まれただけキャッシュにためておきますが,CACHE_SIZE というパラメータを初期化時に指定しておくと,その数のテンプレートだけ保持します。4 と指定しておくと,4つぶんだけキャッシュして,5つめがきたときには,一番使われていない(LRU)エントリを削除します。 さて,今回の題です。Template::Provider には,メモリだけでなく

    Template Toolkit 探訪 (2) - daily dayflower
  • Template Toolkit 探訪 (1) - daily dayflower

    Perl でドキュメントテンプレートシステムを利用したい場合, 変数の展開を使う(ex. print "Hello, ${world_name}\n";) 正規表現の置換を使う HTML::Template を使う Template (Toolkit) を使う あたりが選択肢となるかと思います。 3番目の HTML::Template は,内的には2番目の置換を使っているだけなのでわりとシンプルな仕組みです。できることもわりとシンプルで縛りも多いですが,ロジックとビューの分離という点では縛りのせいで逆に明確にわけることができて,結構人気が高いようです。 4番目の Template Toolkit(以下 TT)はとても高機能で,それゆえ一部の層に人気です。ベンチマーク結果 によると(デフォルトの設定では) HTML::Template には勝ててはいないようですが,高機能な割には十分高速だと

    Template Toolkit 探訪 (1) - daily dayflower
  • もう CPANPLUS は使わなくてもいいのかも - daily dayflower

    今まで CPANPLUS を使っていた理由は root 以外のユーザが使った場合,インストール時に sudo してくれる インストール済みのモジュールで cpan にさらにあたらしいものがあるかどうか調べることができる モジュールのアンインストールできる モジュールの古いバージョンを検索してインストールしたりできる だったんですが,最近の CPAN.pm って 1, 2 あたりはできるようになってるんですね(がんばれば 3 もできます⇒cpan で古いバージョンのモジュールをインストールする方法 - daily dayflower)。あと force だけじゃなくて fforce や notest とかコマンド指定できるようになってます。 なので, root で最新の CPAN(Bundle::CPAN じゃなくて)をインストール 一般ユーザでインストール時に sudo を使うように設定

    もう CPANPLUS は使わなくてもいいのかも - daily dayflower
  • 1