タグ

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

  • SQL::Abstract で LIKE の ESCAPE を指定する - daily dayflower

    正規表現でいう ^a_c.* みたいなのをひっかけようと思って, my ($sql, @binds) = SQL::Abstract->new()->select( # table 'foo', # fields [ '*' ], # where { id => { LIKE => 'a_c%' }, }, ); みたくやると,a_code だけでなく abc もマッチしてしまう罠。 PostgreSQL だと,デフォルトでエスケープ文字が \ になってるので, # where { id => { LIKE => 'a\\_c%' }, }, のようにエスケープすればいい(MySQL だとどうなんだろ)。 でも,たとえば SQLite はデフォルトでエスケープ文字が設定されてない。だから LIKE などのあとに ESCAPE を指定するのが筋。なんだけど,SQL::Abstract でふ

    SQL::Abstract で LIKE の ESCAPE を指定する - daily dayflower
    kazeburo
    kazeburo 2010/12/14
  • CentOS 5.0 のままアップデートを続ける場合 - daily dayflower

    /etc/yum.repos.d/CentOS-Base.repo からの抜粋です。 [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 protect=1 priority=1CentOS 5.x の場合,$releasever は(5.0 ではなく)5 になります。ですから,mirrorlist

    CentOS 5.0 のままアップデートを続ける場合 - daily dayflower
  • CentOS 5 で認識されないハードウェアを使うとき ELRepo がべんり - daily dayflower

    CentOS 5 (RHEL5) のサードウェアレポジトリとしては EPEL や RPMForge が有名だと思いますが,ハードウェアドライバ(カーネルモジュール)に特化した ELRepo というのもあります。 歴史は浅いんですが,RPMForge のドライバモジュールが DKMS ベースなのに対して ELRepo のドライバは KMP ベースなので*1,OS のメジャーバージョンアップをおこなわない限り素直にアップデートに追随できます。 提供されているドライバの一覧は ELRepo : Packages を参照してください。 実例 1: D945GCLF2 遣いは kmod-r8168 でハッピー Intel Atom 330 を搭載した Mini-ITX マザーである D945GCLF2 にはギガビットネットワークインタフェースとして Realtek RTL8168B という NIC

    CentOS 5 で認識されないハードウェアを使うとき ELRepo がべんり - daily dayflower
    kazeburo
    kazeburo 2009/08/24
  • 最低だよギャラリー - daily dayflower

    LDR を使っててフィードの最後に到達したときにたまにでてくる というメッセージを「最低だよ」に空目したので,いくつか集めてみました。 もう呆れ果てて立ち上がる気力すらなくしちゃったんだね。 ほんとにごめん。 これからは心を入れかえるよ。 わざわざ呼びつけたけど,用事なんてなかったんだ。 走ってこさせて悪かった。 ほんとに僕は最低だよ。 いやおまえにいわれたくないよ。 オチにもってきたけど,空目はこの画像から始まった気がする。 疲れてるのかな。

    kazeburo
    kazeburo 2009/05/11
  • prove (Test::Harness) コマンドの --state オプション - daily dayflower

    テストが膨大になっていくと,あるテストでは時間がかかったりして「そのテストはもう成功することがわかっとるっちゅうねん;失敗するテストだけ再テストしたいっちゅうねん」ってことになったりします。そんなときに使えるのが prove コマンドの --state オプションです。 --state オプションに failed という引数をわたすと,「テストの対象は前回 fail したテストスクリプトのみ対象」という意味になります。ステートを保存する save と併用して指定してみます。 % prove --state failed,save No saved state, selection will be empty Files=0, Tests=0, 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU) Result: NOTESTS「No save

    prove (Test::Harness) コマンドの --state オプション - daily dayflower
  • HTTP/1.1 の同時接続数について - daily dayflower

    はてなブックマーク - Fasterfoxが最強すぎる件 - 真性引き篭もり が盛り上がってたので,机上の話だけですが,いまさら書いてみます。 RFC (2616) での記述 Clients that use persistent connections SHOULD limit the number of simultaneous connections that they maintain to a given server. A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy. A proxy SHOULD use up to 2*N connections to another server or proxy, where N is the number

    HTTP/1.1 の同時接続数について - daily dayflower
    kazeburo
    kazeburo 2008/10/25
  • mod_perl 2.0 on worker MPM の特性 - daily dayflower

    だらだらと3日にわたって書いてきましたが,明日から遅めのお盆休みになるのでまとめをメモ書きしておきます。 worker MPM での mod_perlPerlithread を使っている httpd のスレッドプールとは独立して Perl インタプリタプールが存在する Perl インタプリタプールの最大インタプリタ数などは設定で変更可能 デフォルトで最大 5(少ない!) インタプリタプールはインタプリタのステート保持構造体のプールであり,インタプリタスレッドのプールではない(実行時アタッチ)←ちょっと推測 だから httpd のスレッドプールのスレッド数より多くも少なくも設定できる インタプリタ数が足りなくなったときは空きがでるまでブロックする Perl ithread では変数は TLS (スレッド間で独立したロケーション)に保持され,基的にスレッドセーフ 他インタプリタス

    mod_perl 2.0 on worker MPM の特性 - daily dayflower
  • mod_perl と Perl インタプリタプール - daily dayflower

    前々回も書きましたが,worker MPM で mod_perl を使うと,インタプリタプールなるものが作成されます。このインタプリタプールというのはまさに Apache におけるプロセスプール(prefork MPM の場合)やスレッドプール(worker MPM の場合)の Perl インタプリタ版のようなものです。 このインタプリタプールでの PerlInterpMax(総数の最大)はデフォルトで 5 になっています。ですから,「prefork MPM から worker MPM にしたらメモリ消費量がガツンと減ったぜ!httpd の thread 数 150 でぶんまわしてるのに!スレッドマンセー!」とぬか喜びしていると,実は Perl は並列に 5 つしか走っていなかった,ということがありえます。 2007/09/27 追記。adiary 作者さんからトラバいただきました(⇒Pe

    mod_perl と Perl インタプリタプール - daily dayflower
  • UTF8 フラグあれこれ - daily dayflower

    UTF8 フラグについてわかってるつもりだったんですが,utf8::is_utf8 considered harmful - Bulknews::Subtech - subtech を読んで混乱したので,自分なりにまとめてみました。間違いがありましたらご指摘よろしく。 まとめ スカラー変数の内部表象の状態を示すものとして UTF8 フラグというものがある スカラー変数は(リファレンス等は別として)下記のものを格納できる (A) 文字列(内部表象: UTF-8) (B) 文字列(内部表象: ISO-8859-1) (C) バイナリ列 純粋なバイナリストリーム(画像ファイル等)かもしれないし, UTF-8 octet stream かもしれないし, CP932 octet stream かもしれないし,etc, etc ... Perl は(後方互換性確保などの理由から)ISO-8859-1

    UTF8 フラグあれこれ - daily dayflower
    kazeburo
    kazeburo 2008/02/20
    あとでよむ
  • winbind で Linux の認証を ActiveDirectory にまかせる - daily dayflower

    一行まとめ 複数ドメインの信頼関係を構築していない場合,winbind の idmap backend として rid を使うと便利 前フリ サーバを立てるたびにユーザアカウントをメンテナンスするのが面倒だ,ということでようやく腰を据えて winbind について勉強しました。ネット上に有用な文書が多くて助かりました。 CentOS 5.0 samba-3.0.23c-2.el5.2.0.2 という環境で,以下のような名称を例として使います。 ドメイン名: HOGE ActiveDirectory のレルム: hoge.example.com ActiveDirectory の DC: dc.hoge.example.com UNIX サーバの NETBIOS 名: PENGUIN ActiveDirectory のユーザ: dayflower 基礎知識 ユーザが *nix を利用しようと

    winbind で Linux の認証を ActiveDirectory にまかせる - daily dayflower
  • CentOS 5.1 の perl をリビルドする - daily dayflower

    2008-12-26 追記 CentOS 5.2 の updates の perl-5.8.8-15.el5_2.1 で下記該当パッチ+αがあたった状態になっています。もう自分でパッチをあててリビルドする必要はありません(RHEL 5(.2) の perl-5.8.8-15.el5_2.1 で例のバグが治っていた - daily dayflower)。 overload の rebless バグとパフォーマンスペナルティ問題 については下記参照。 YappoLogs: FedoraCoreやCentOS系の遅いPerlのパッチの件 overloadと再blessの問題 - Unknown::Programming overload が無効? - Practice of Programming YappoLogs: overloadのreblessとRHLのoverloadが遅いパッチ ov

    CentOS 5.1 の perl をリビルドする - daily dayflower
  • CSS に条件付きコメント機能を導入する Apache モジュール mod_css_cond - daily dayflower

    を書きました。⇒mod_css_cond - daily dayflower これで blockquote { /*#if ! IE */ opacity: 0.8; /*#else / filter: alpha(opacity=80); /#endif*/ } div { width: 420px; border: 2px; /*#if IE/ width: 416px; /#endif*/ } li { color: /*#if IE/ #00f /#elsif FX*/ #0f0 /*#else/ #f00 /#endif*/; } みたいに書けるお。CSS ハックとか覚えなくて大丈夫だお。 まぁ,冗談みたいなモジュールなのであれこれご容赦ください。 思想としては前回のモジュール同様,透過性重要,って感じです。

    CSS に条件付きコメント機能を導入する Apache モジュール mod_css_cond - daily dayflower
  • VMware Player 2.0 on kernel 2.6.22 (Fedora 7) - daily dayflower

    29:17+09:00">2007/10/02 追記:下記件については Player 2.0.1 で直っています(VMware Server / Player がアップデートしてた - daily dayflower)。つか,そもそも下記のパッチだとブリッジモードでホストとアクセスできなかったりメモリまわりで不安定だったり(これはパッチのせいじゃないかもしれませんが)するので素直に 2.0.1 に上げるのが吉。 Fedora 7 の kernel が 2.6.22 にあがってました。で,当然のように vmware-config.pl がうまくいきませんでした。via Linux 2.6.22でvmware-modulesがビルドできない問題に対処 - 試験運用中なLinux備忘録 で解決策を発見。 http://www.vmware.com/community/thread.jspa?me

    VMware Player 2.0 on kernel 2.6.22 (Fedora 7) - daily dayflower
  • Apacheで統合Windows認証を使う - daily dayflower

    前書き 統合 Windows 認証とは,ドメインの認証情報を使って HTTP サーバに認証してもらう方式です。Windows クライアントがドメインにログインしていれば,認証ダイアログが出現することなく自動的に認証されます。統合 Windows 認証には以下の2通りがあります。 NTLM 認証 SPNEGO 認証(Active Directory 環境下;すなわち Kerberos GSSAPI を利用) 今回はわけあって NTLM 認証を扱います。 Apache on Unix*1 で NTLM 認証をサポートするものには,有名なもので以下の物があります。 mod_ntlm Unofficial mod_ntlm modification mod_auth_ntlm_winbind 前者 2 つはほぼ同じもの(2 つめが改良版で Apache 2.2 にも対応している)ですが,後者の m

    Apacheで統合Windows認証を使う - daily dayflower
  • mod_rpaf のかわりに mod_extract_forwarded なるものがあるらしい - daily dayflower

    今作っているウェブアプリでは -+(A) Apache 2.2 + mod_proxy (画像等のスタティックコンテンツ向け) +(B) Apache 2.2 + mod_perl (アプリサイド)という環境を同一ホストで動かしています。 ただ,このようにリバースプロキシを導入すると,(B) のログファイルではアクセスもとがすべて 127.0.0.1 になってしまいますし,アクセスされる IP によってアプリ上で制限を掛けたい場合,X-Forwarded-For ヘッダを自分でみて判断しなくてはいけなくなってしまい,面倒です。 このようなときに楽に対処できるのが mod_rpaf です(参考: リバースプロキシを導入する際はmod_rpaf - drk7jp)。このモジュールを使うと,Apache の Connection レコードの内容を改変してくれるので,ログには大元のアドレスが記録さ

    mod_rpaf のかわりに mod_extract_forwarded なるものがあるらしい - daily dayflower
  • 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
  • 多段 rsync がめんどくさい - daily dayflower

    [local] <-> [gateway] <-> [remote]みたいな状況で,local <-> remote で rsync をやりたいんですが,これが面倒くさいのです。http://samba.anu.edu.au/rsync/firewall.html にいくつかのやり方が書いてあるんですが, ssh-agent を forward することによる多段 ssh による転送 gatewaynetcat を ssh 経由で実行することによる転送 gateway で SSH port forwarding する転送 remote で rsync daemon を立ち上げて gateway で SSH port forwarding する転送 普段 ssh-agent してないので 1. はパス。2. はよくわからないけど失敗。4. は何がうれしいのかわからない。3. は動いたけ

    多段 rsync がめんどくさい - daily dayflower
    kazeburo
    kazeburo 2006/07/21
  • mod_perl で時間がかかる処理を行う場合 - daily dayflower

    CGI 時代では,たとえばメールを送るなど時間がかかる処理を行う時は fork() を使っていました。子プロセスでメール送信,親プロセスでレスポンスを返す,とやると,ユーザはメールが実際に送られるかどうかに関わらず ASAP でレスポンスを受け取ることができました,たしか(\*STDOUT を close したりとかいろいろあった気もするけど)。 では mod_perl(2) ではどうなのか。ベストプラクティスがわかりません。 Cleanup ハンドラを登録してそこでやる threads を使う(prefork MPM だとうまくいかない気がする…ハンドラ終了時に thread が殺されそうな予感→forks 使えばいいのかな?) 意地でも fork を使う*1 時間がかかる処理はデーモンを書き起こしてレスポンスハンドラから UNIX ソケット等で接続(笑 この中だと1番目なのですかねぇ。

    mod_perl で時間がかかる処理を行う場合 - daily dayflower
  • Cache-Control とブラウザ Back, Forward - daily dayflower

    ブラウザのキャッシュを抑制するヘッダとして, Pragma: no-cache Cache-Control: no-cache, no-store Expires: 古い日付 が知られています。これらのヘッダを使った場合, Page_A ←→ Page_B (no-cache) ←→ Page_Cという遷移において,各ページをブラウザの Forward, Back で移動したとき,Page_B は常に新しいコンテンツが読み込まれます…ただし,IE6 と Firefox 1.5 では。 (ちなみに,Cache-Control: no-cache だけだと Gecko 系ではうまくいきません) Opera では,上記のような状態でも Page_B は(一時)キャッシュのものが用いられます。その根拠として, Note that cache expiration is not checked wh

    Cache-Control とブラウザ Back, Forward - 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