タグ

ブックマーク / tociyuki.hatenablog.jp (9)

  • ピュア Perl な MurmurHash - Tociyuki::Diary

    32 ビット・ハッシュ関数 MurmurHash をピュアPerlで書いてみました。CPAN に、既に Toru Maesaka さんによる XS 版 Digest::MurmurHash があるので、結果を比較してみたところ、同じハッシュ値が求まっているので、正しく動いているっぽいです。ただし、32ビット整数ビルド Perl でしかチェックしておらず、64ビット整数ビルド Perl では試してません。ビットマスクしているので、たぶん 64 ビット整数ビルドしてあっても大丈夫だと……期待したいです。なお、Perl はビットシフト演算を符号付きでおこなうため、32ビット整数ビルドした Perl では、ビットマスクをつけておかないと、右ビットシフトで符号ビットを埋めてしまい、符号なし右ビットシフト演算とは異なる結果になってしまいます。そのため、ピュア Perl で、この手の演算をするときは、ビ

    ピュア Perl な MurmurHash - Tociyuki::Diary
  • Fedora Core 6 の CUI 環境で XEN を試す - Tociyuki::Diary

    XEN を試すには実機でないとまずいかもしれないと考えて、様子見機(Pen III 700MHz、440BX、700MB DRAM、40GB HDD)に Fedora Core 6 (FC6)を仕込んでみました。ただし、このマシンはグラフィックが非力なので、X11 なしの CUI のみの環境で試しています。FC6 の売りは、GUI の XEN サポートが手厚くなったことだそうですが、まったく活かしていません。 参考にした(ただし このは FC5 が対象なので、若干違いがありました) オープンソース徹底活用Xen3.0による仮想化サーバの構築 作者: 山雅也出版社/メーカー: 秀和システム発売日: 2006/08/08メディア: 単行購入: 1人 クリック: 26回この商品を含むブログ (13件) を見る Domain0 (VMware のホスト OS の役割に相当) のインストール

    Fedora Core 6 の CUI 環境で XEN を試す - Tociyuki::Diary
  • HTML4 用の CSS property と keyword の正規表現 - Tociyuki::Diary

    昨日の続きで、安全な style アトリビュートにマッチする関数へ渡す、W3C の CSS2.1 Specification で定められた property と keyword にマッチする正規表現を生成してみました。それぞれを Specification からかき集めて、dankogai さんの最適化正規表現作成ツール http://www.dan.co.jp/~dankogai/cgi/hatenize/ の mk_trie_regexp.pl をちょっといじったものに通して、できあがり。 ⇒ https://tociyuki.sakura.ne.jp/archive/CSS-HTML4-Visual.pm Perl ライセンスです。 なお、集め出すときりがないので、オーラル関連は省略しました。フォント・ファミリー名は serif、sans-serif などの generic-fami

    HTML4 用の CSS property と keyword の正規表現 - Tociyuki::Diary
  • 安全な style アトリビュートのチェック案 - Tociyuki::Diary

    HTML を無害化したいとき、style アトリビュートを問答無用に捨ててしまうのが主流なのだと思うのですけど、次のように HTML 用に記述内容を制限して利用可能にしたらどうだろうかと考えつつあります。 (2月7日 修正あり) 許可するもの: IDENT を構成する文字をアルファベット・数字・マイナス・アンダースコアに限定 declaration は単位付き数値と keyword と hexcolor だけ term 間はスペースとコンマとスラッシュだけ スペースはブランク文字、タブ、LF、CRだけ 文字エスケープ、url、関数、文字列は不許可にします。 W3C の CSS2.1 の構文から、関連する部分を抜き出して上のルールに沿って不要なものを削ってみます。 ⇒ http://www.w3.org/TR/CSS21/grammar.html ruleset : S* declarati

    安全な style アトリビュートのチェック案 - Tociyuki::Diary
    kazeburo
    kazeburo 2006/02/07
  • Apache 2.0 WinNT mod_cgi の PATH_INFO の UNICODE の罠 - Tociyuki::Diary

    Subversion の導入を企んで、Windows 2000 の Apache を 1.3 系統から 2.0 へ今ごろになってアップデートしてみたら、localhost で動かしていた Wiki CGI の挙動が変になってしまいました。EUC-JP のWikiName を PATH_INFO に渡すとメチャクチャになるみたいです。 他のプラットフォームには関係なかったので見落としていたのですが、ドキュメントによると Windows NT にインストールされた場合に限り、Apache 2.0 の mod_cgi は、リクエスト・パス内で URI エンコーディングされた8ビットコードを UTF-8 だとみなして処理しようとするみたいです。 ⇒ Apache 2.0 の新機能の概要 - Apache HTTP サーバ Windows NT のネイティヴ Unicode サポート Windows

    Apache 2.0 WinNT mod_cgi の PATH_INFO の UNICODE の罠 - Tociyuki::Diary
    kazeburo
    kazeburo 2006/01/09
  • もしもTropy (とろぴぃ) がフィードするならば - Tociyuki::Diary

    ランダムに RSS の内容をピックアップするのが良いのじゃないでしょうか。と、ついさっき思いついたのでメモ。 RSS を生成するタイミングは? 誰かが POST したときに、乱数で生成するかどうかを決めることにします。 RSS に含めるエントリは? 変更時刻を無視して、現在登録済みのものからランダムにピックアップします。 RSS に含めるエントリ数は? さすがにこれは固定することにします。サービス精神を発揮したくないので、5 つなんかどうでしょうか。 エントリのタイムスタンプは? かってにでっちあげます。10日前から生成時刻の間の、いつかを乱数で選んで最終更新時を偽ります。RSS の最終更新時は生成時でいいような気がします。 このように、RSS も乱数で支配してやれば、とろっぴっくなフィードになるのじゃないでしょうか。フィードを受け取るごとに、かき乱されているフィードです。時刻を乱数生成し

    もしもTropy (とろぴぃ) がフィードするならば - Tociyuki::Diary
  • コントローラ・エンジンの実行手順 - Tociyuki::Diary

    Plugin作りの観点からCatalystのソースを調べているページを発見しました。 ⇒ http://www.lost-season.jp/mt/archives/2005/06/catalyst_1.html 丁寧に説明をされているので、私のメモ書きよりずっと読んでためになると思います。お勧めしておきます。 ということで、相変わらず、ここはチラシの裏モードでいきます。 ⇒ [Catalyst解体] CatalystはHTTPリクエストのpathに対応するコントローラを選んでアクションを実行していきます。おおまかに次の手順を踏んでいきます。 configでコンフィギュレーションをクラス変数へセットします。 setupでlib/MyApp/[MVC]/*.pmをロードしてインスタンスを生成します。 コンポーネントからアクションを登録します。 run経由でhandlerを呼び出し、MyApp

    コントローラ・エンジンの実行手順 - Tociyuki::Diary
  • Perlのアトリビュート - Tociyuki::Diary

    Catalystの特徴はなんといっても、Perl5のアトリビュート機能を用いた変態コーディングにあると言えましょう。もちろん『我々が等しく悦びを分かち合えるところの意味での変態ではなく、生物学でいうところの「生物個体あるいはその一部の外形のかなり付加逆的な内因的変化」としての変態』(isbn:4781904548、p. 149)ですよ。Catalystはアトリビュートを使うことで、まるでAWKのパターン・マッチングによるアクション起動に相当することをPerlで実現しているのです。これぞ変態。 ところが、Perl5のアトリビュートは積極的に使われることがないのか、探してみても解説が少ない。それで、Perl-5.8.5のソースまで遡って、ようやくattirbute.pmのPODの意味が理解できました。長いですが、理解できたのが嬉しかったので書いておきます。 ここでは、次のCatalystのコン

    Perlのアトリビュート - Tociyuki::Diary
  • α版晒し - Tociyuki::Diary

    Catalystは便利なのですが、非力なサーバでは辛いので、Catalystのチビ助みたいなフレームワークをでっちあげています。せっせとCatalystとこれまで作ってきたCGI用のモジュールからコピペして、やっとα版にこぎつけました。 Catalystのチビ助なので、Chibystと名付けてみました。 (11月14日 0.05へ、11月12日 0.04へ、11月8日 0.02へ) ⇒ https://tociyuki.sakura.ne.jp/archive/Chibyst.pm Version 0.05 たぶんバグあり 取り扱い注意 チビ助だけあって、まったくDRYアーキテクチャではありません(笑)。ヘルパーなんて格好の良いものはなく、テスト・サーバのような豪華なものも含まれていません。コードを短くするために、アクション記述の互換性もなくしています。Catalystで作ってテストしてか

    α版晒し - Tociyuki::Diary
    kazeburo
    kazeburo 2005/11/08
  • 1