タグ

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

  • 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
  • 多段 ssh / rsync するために ProxyCommand を使ってみる - daily dayflower

    以前 2.(gatewaynetcat を ssh 経由で実行することによる転送)はよくわからないけど失敗 多段 rsync がめんどくさい - daily dayflower と書きましたが,なんとなく仕組みがわかってきたので書きます。 2年前くらいに流行ってたネタなので今更感満点。 まとめ 単純に到達できない場所に ssh でつなぐために ProxyCommand という [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config:title=ssh_config] の設定子が使える ProxyCommand とは ssh クライアントと標準入出力でやりとりする 多段 ssh をする際に ProxyCommand で指定すると有用なものとして下記のものがある nc (netcat) OpenBSD や RedHat 系には(お

    多段 ssh / rsync するために ProxyCommand を使ってみる - daily dayflower
    lizy
    lizy 2010/03/16
  • 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
  • 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
  • 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
  • JavaScript でかんたん XUL アプリに挑戦 - daily dayflower

    こんにちは! みなさんガジェットつくってますか! なんだか最近、色々な種類があるみたいですね! (以下略!) そしたら意外と簡単だった…! これならぼくにも作れそう!! ってことで、ちょっとメモしておきますね! どれにしようかな…! おもしろいこと Ubuntu で動けばいいや*1 自分とこで書きやすいのがいい こんな感じで考えていくと… 最終的に XUL アプリケーション,ってことになりました! XUL で作られたツールなら,いつも使っているよ! (Firefox とか Thunderbird とかね) だから XUL アプリに決定! つくるのむつかしそう? XUL のアプリって C から libxul をゴリゴリ触らないとダメなんじゃないの? なんて思っていた時期がぼくにもありました…! 大丈夫!XULRunner を使えば(HTML に似た)XUL と JavaScript だけでで

    JavaScript でかんたん XUL アプリに挑戦 - daily dayflower
  • winbind で Linux 認証 on Ubuntu - daily dayflower

    2011-06-02 追記: 古くなったんで Natty (11.04) 向けに書きなおした ⇒ winbind による Active Directory 認証 on Ubuntu 11.04 - daily dayflower winbind で Linux の認証を ActiveDirectory にまかせる - daily dayflower を Ubuntu でやろうとしたら,いくらか RedHat 系と勝手が違うところがあったのでメモ書き。 Linux マシンの諸元は下記の通り: Ubuntu 7.10 (Gutsy) Samba Version 3.0.26a Active Directory Server の諸元は下記の通り: Windows 2000 Server Active Directory with SFU schema *1 サンプル名称: ドメイン名: HOGE

    winbind で Linux 認証 on Ubuntu - daily dayflower
  • 複数ファイルを使った中規模 XS の開発 - daily dayflower

    複数ファイルをビルド対象とした XS の開発について,あまり手間をかけないシンプルで効果的な方法を書いていきます。自分の経験をもとに書きますのでベストプラクティスではありませんが。 余談(SV*() マクロの sideeffect にやられた話) state_stack という配列に state を整数値でスタックとして格納していて,スタックから過去の state を取り出そうとしたんです。 んで(わりと素直に) state = SvIV(av_pop(state_stack)); と書いたら,2つずつスタックから pop されてしまいました*1。 XS hacker なら当たり前な話ですけど,SV*() というのは一見関数然としてますがマクロなんです。 #define SvIV(sv) (SvIOK(sv) ? SvIVX(sv) : sv_2iv(sv)) こんな形で,いずれのケースに

    複数ファイルを使った中規模 XS の開発 - daily dayflower
    lizy
    lizy 2008/12/23
  • Perl XS メモ - typemap と MAGIC をからめて - daily dayflower

    id:tokuhirom さんが http://d.hatena.ne.jp/tokuhirom/20081209/1228829454 で下地をつくってくださったので(perl-users.jp むけまとめも期待してます),ちょっとアドバンスドな話題を。 例題 http://www.sra.co.jp/people/m-kasahr/eb/ http://www.sra.co.jp/people/m-kasahr/eb/ の Perl binding を開発するとしましょう。 http://www.sra.co.jp/people/m-kasahr/eb/ の使い方は,たとえば次のような感じです。 EB_Book *book_pointer; book_pointer = (EB_Book *) malloc(sizeof(EB_Book)); eb_initialize_book(bo

    Perl XS メモ - typemap と MAGIC をからめて - daily dayflower
    lizy
    lizy 2008/12/15
  • Mercurial 勉強中 (6) - named branch と update -C - daily dayflower

    今回は named branch についてです。別に Mercurial を利用するうえで必須の概念ではないのですが,こいつを使うと multiple heads での changeset 間移動に習熟できますので。 ひとことまとめ Multiple heads は怖くない!hg update -C で branch 間の移動も自由自在 ただし,update するまえに commit しといてね 準備 まず作業用のレポジトリを作ります。 % hg init % touch 1 2 % hg ci -A -m "1, 2 added" adding 1 adding 21 と 2 というファイルも追加しました。commit のオプション -A とは,commit 時に同時に addremove をかけてくれる……すなわち,未 commit のファイルを自動的に追加削除してくれる,というお役立

    Mercurial 勉強中 (6) - named branch と update -C - daily dayflower
  • Mercurial 勉強中 (1) - daily dayflower

    Mercurial の特徴 Mercurialでバージョン管理,http://python.matrix.jp/modules/mercurial.html#id3 も参照のこと。 分散型 SCM として設計されている 各レポジトリのチェックアウトはおのおの(基的に)独立している;独立して生きていける Subversion のように中央集権的レポジトリを作れない,というわけではない 各作業者が「マスターレポジトリ」の共通認識をもてばよい(そこから clone してきて pull / push するのだ,と) レポジトリのセットアップ等がかんたん レポジトリのセットアップは管理したいフォルダに移動して hg initうつだけ(その後 hg addremove したり) 分散管理ではなく自分だけで管理するなら RCS 並,いやそれ以上に簡単 ⇒http://d.hatena.ne.jp/

    Mercurial 勉強中 (1) - daily dayflower
    lizy
    lizy 2008/02/28
    図がわかりやすい
  • レポジトリ分割の作業記録 - daily dayflower

    とりあえず新規レポジトリを作るまでもないけど作業履歴をとっておきたい,という場合,わたしは Sandbox というレポジトリに全部つっこんでいます。 /Sandbox /project1 /project2 /foobar 各サブプロジェクトごとに trunk 等を切ることもありますし,そうしないこともあります。こんな感じで Sandbox で作業してて熟してくると,単独プロジェクトとして分割管理したくなります。 /foobar /trunk /tags /branches できれば,いままでの作業履歴も移行したい! 「svnadmin dump」や「svndumpfilter」というキーワードでググると色々でてきますが,今回は下記のサイトを参考にしました。 Subversionの続き履歴を残したままリポジトリ間でファイルを移動 - StepupEngineeringはてな支店 cvsから

    レポジトリ分割の作業記録 - daily dayflower
  • 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 はフルフルに使えない
    lizy
    lizy 2007/10/08
    家のSC420/4GB/Win2003は、3.36GBと出てきた
  • 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
  • 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
  • POE おぼえがき - daily dayflower

    TIMTOWTDI なことがいっぱいで POE のことがよくわからなかったのですが,Cookbook とリファレンスを読んでなんとなくわかってきました。 POE::Kernel が POE システムのコアで唯一神 POE::Kernel->run()*1 を実行するとイベントループが回り出す イベントループでやることがなくなると POE::Kernel->run() から戻る(戻ることを期待してはいけない) POE::Session が POE システムにおける,タスク/ステートマシン/プロセス/スレッド的なものの単位 複数生成してよい セッションの最初に _start イベントが発生する セッションの最後に _end イベントが発生する イベントハンドラとして,サブルーチンリファレンス(inline_states),パッケージ関数(package_states),オブジェクトメソッド(o

    POE おぼえがき - daily dayflower
    lizy
    lizy 2006/11/19
  • 1