タグ

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

  • 郵便番号データは自分で加工しない - daily dayflower

    結論を先に。 細かい要件がない場合,zipcloud さんの提供している加工済データを使う (日郵便さんの提供している原ではなく) ライセンスが不明だけど Web API の利用規約とかみると商用利用等も OK と思われる わりきって Web API を使う (よそにまかせる) というのも手かも いろいろあるし。前述の zipcloud さん自身も検索 API を提供している。 以下各論。 いわゆる ken_all.csv を (必要フィールドだけ) そのままデータベースにつっこむなんてのは (わかってやってる場合はともかく) やってはいけない 複数行に分割されているレコードがあるため,マージする必要がある 明文化されていない仕様などがありマージやクリーニングを自力でおこなうのは大変 (バッドノウハウのかたまり) 参照: http://www.f3.dion.ne.jp/~elemen

    郵便番号データは自分で加工しない - daily dayflower
    nihen
    nihen 2010/09/29
  • 複数のテストサーバをリバースプロキシで集約 (1) - daily dayflower

    各所でテストサーバが立ち上がっていて,これらは一台のリバースプロキシの背後にいます。普通に mod_proxy でやっているのですが,テストサーバを増やすたびに設定ファイルを書き換えて httpd を再起動,としなくちゃいけないのが煩わしい。 で,リバースプロキシのマッピング先を動的に構成したいなと思ったわけです。 以降では下記の例を使います。 アクセス URL リダイレクト先 http://outer1.example.com/path1/ http://inner-a.example.com/path1/ http://outer1.example.com/path2/ http://inner-b.example.com/path2/ http://outer2.example.com/path3/ http://inner-b.example.com/path3/ おことわり 今後

    複数のテストサーバをリバースプロキシで集約 (1) - 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
  • 帰ってきた VMware ESXi ディスクベンチマーク - daily dayflower

    以前 VMware ESXi で各種ディスクのベンチマークをとってみた - daily dayflower にてVMware ESXi で各種(ネットワーク)ディスクのベンチマークをとりましたが、残念ながら 100Mbps イーサネット環境での実験でした。 今回、GbE 環境が整ったので改めて各種ネットワークストレージのベンチマークをおこないました。 おことわり おもに(前回と同じく)下記の命題を検証するために測定をおこないました。 NFS データストアでも iSCSI データストア・LUN マッピングと比べて遜色ない(といいな) ネットワークストレージ環境でもローカルストレージ環境に比べて遜色ない(といいな) なお前回と比べてネットワークスピード以外に結構環境が違うので*1単純に結果を比較することはできません。 NAS 買ったよ! じつはとっくにギガビットスイッチと Celeron 44

    帰ってきた VMware ESXi ディスクベンチマーク - daily dayflower
    nihen
    nihen 2010/03/10
  • 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
  • use utf8 環境下で => オペレータの左辺が UTF8 flag on になってしまう - daily dayflower

    use strict; use warnings; sub Dump { @_ = map { sprintf "'%s'(%s)", $_, utf8::is_utf8($_) ? 'utf8' : 'bytes' } @_; print {*STDERR} join(q{, }, @_), "\n"; } no utf8; Dump( foo => 'bar' ); #=> 'foo'(bytes), 'bar'(bytes) no utf8; だもんで,両者とも bytes なのは,まぁあたりまえ。 ところが,これを use utf8; で動かすと…… use utf8; Dump( foo => 'bar' ); #=> 'foo'(utf8), 'bar'(bytes) foo の UTF8 flag が on になってる! use utf8 にしてたので,任意の文字列リテラルが

    use utf8 環境下で => オペレータの左辺が UTF8 flag on になってしまう - daily dayflower
  • CPAN 最速検索の劣化コピー作ってみた - daily dayflower

    mala さんの CPAN 最速検索を便利に使わせてもらってるんですが,操作上ちょっと不満なところがいくつかありまして。 カーソルキーのオートリピートがきかない ホイールがきかない 候補の同時表示数が固定 Firefox だからかもしれないですけど。 んで改造しようと思ったんですがわたしにはちと難しそうだったのでいっそ自分なりに書いてみようと思いました。もちろんライブラリを使わずに書く技能はないので jQuery を使いました。 jQuery Mouse Wheel Extension 標準機能だとマウスホイールをトラップするのがたいへんそうだったのでプラグインも使いました。 mala さんのコードをチラ見すると http://cpan.ma.la/list からパッケージ一覧を一括取得 http://cpan.ma.la/dist からディストリビューション一覧を一括取得 してる感じでし

    CPAN 最速検索の劣化コピー作ってみた - daily dayflower
    nihen
    nihen 2008/12/20
    あえて車輪の再発明。いいかも
  • 図解: 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
    nihen
    nihen 2008/06/21
  • ファイルハンドルをめぐる冒険(ただしマニア向け) - daily dayflower

    以下は Perl 5.8.8 のソースを元に記述しました。Perl 5.10 でもそう変わってはいないと思いますが,結構内部が変更されているので違うかもしれません。大まかには同じだと思います。 イントロダクション Perl でのファイルハンドルは内部的には [http://search.cpan.org/perldoc?IO::Handle:title=IO::Handle] オブジェクトとして保持されています。そのような記述は perl5004delta くらいでしか見つかりませんでした。ラクダにもなかったような。 Internal change: FileHandle class based on IO::* classes File handles are now stored internally as type IO::Handle. The FileHandle module

    ファイルハンドルをめぐる冒険(ただしマニア向け) - daily dayflower
    nihen
    nihen 2008/06/05
  • 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
  • SQL::Abstract かしこす - daily dayflower

    以前「DBICで当に困ったら SCALAR REFERNCE を使え - daily dayflower」にて, DBIC で WHERE field1 IS NOT NULL な検索をしようと思って, …… $resultset->search({ field1 => \'IS NOT NULL' }); とか書いていたんですが, $resultset->search({ field1 => { '!=', undef } });でよかったのでした。 $resultset->search({ field1 => undef });が WHERE field1 IS NULLというのは知っていたんですが,'!=' をつけるときちんと「IS NOT NULL」に変換してくれるとは(SQL::Abstract の 714 行目あたりのロジックとしてちゃんとありました)。これでスカラーリファレ

    SQL::Abstract かしこす - daily dayflower
    nihen
    nihen 2007/12/19
    うわwwwwスカラーリファレンスずっと使ってたよ
  • DBICで本当に困ったら SCALAR REFERNCE を使え - daily dayflower

    追記 2006/12/06 下記で IS NOT NULL を実現するのにスカラーリファレンスを使用していますが,IS NULL / IS NOT NULL を出すためには必ずしもスカラーリファレンスを利用する必要はありません。ということで訂正を入れようと思ったんですがちょっと長いので「フォローアップ記事」を書きました。 題 typester さんに以前教えて頂いたんですが,似たようなことに今日遭遇したのでメモ。 WHERE field1 IS NOT NULL な検索をしようと思って, $resultset->search({ field1 => 'IS NOT NULL' });と書くと,内部的には SELECT ... WHERE field1 = ?と展開されて,プレースホルダに「IS NOT NULL」が渡されるので,バツ。 $resultset->search({ field

    DBICで本当に困ったら SCALAR REFERNCE を使え - daily dayflower
    nihen
    nihen 2007/02/28
  • 1