タグ

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

  • rsync で pdumpfs みたいなことをする - daily dayflower

    いままで履歴つきのバックアップは pdumpfs*1 でとっていたのですが,rsync のオプション(--link-dest)を使うと同等のことをできるらしいと知りました。 バックアップにrsync --link-destを使うと良い場合もあるよ | rutoの日記 | スラド rsyncで差分バックアップを行うための「--link-dest」オプション - ITmedia エンタープライズ サンプル バックアップ元のファイル群をサンプルとして作成します。 $ mkdir -p work/src/foo $ echo "baz" > work/src/foo/barこれで, - work/ - work/src/ - work/src/foo/ - work/src/foo/barのような構造ができました。これのバックアップをとっていきます。 まずは普通に rsync 履歴つき(差分)バッ

    rsync で pdumpfs みたいなことをする - daily dayflower
  • Microsoft Word 文書からテキストを抽出するモジュールを書いた - daily dayflower

    CPAN にはなさそげだったので書いてみました。 http://svn.coderepos.org/share/lang/perl/MSWord-ExtractContent/trunk/ 名前空間がどうよって気がするけど Word 文書に該当する名前空間が見当たらず,こんな感じにしてしまいました。まぁ coderepos の段階なので。なんかいい名前があったら教えてください。もし CPAN にあげるときにはそれにします。 図をおこしたほうがわかりやすくなるのですが,あんまりに面倒だったので図は描いてません。 Microsoft Word バイナリフォーマット Word バイナリフォーマット*1の仕様は Microsoft が公開しています。下記からダウンロードすることが可能です。 http://www.microsoft.com/interop/docs/officebinaryform

    Microsoft Word 文書からテキストを抽出するモジュールを書いた - daily dayflower
    Wacky
    Wacky 2010/02/20
    仕様書を読むなら,仕様書 Page 10 「Definitions」セクションと後述する FIB の部分を印刷してそれを参照しながら読むのが得策です。
  • Mercurial MQ について - daily dayflower

    巷では git の大ブームだけど,ひさしぶりに Mercurial について書きます。 Mercurial について言及されたブログとか読んでいるとき,たまに MQ という言葉を目にして気になっていた。ながらく気にはとめつつ全然調べていなかったんだけど,ちょっと利用しようかなというケースがあり,ちょこっと触ってみた。 自分の理解では,MQ (Mercurial Queues) とは,誤解を恐れずにいえば Mercurial の changeset と独立して構成される修正履歴(パッチ)のスタックのようなものだ。 (なので今後 MQ の patch queues を Queues という名称と裏腹に「パッチスタック」「パッチ群」などと勝手に呼び称します) 「誤解を恐れずにいえば」と書いたけれど,この直感的な印象は MQ を使っていくうちに――大筋では変わらないものの――ちょっと変わった。それ

    Mercurial MQ について - daily dayflower
    Wacky
    Wacky 2010/02/20
  • SWF フォーマットの変遷からみる Flash - daily dayflower

    ふと思い立って,プログラマーから見た Flash について書くことにしました。SWF and AMF Technology Center | Adobe Developer Connection からダウンロードできる SWF file format specification をもとに*1。 といっても,ActionScript 1.0 / 2.0 / 3.0 の違いについて説明するものではありませんよ*2。 SWF ファイルフォーマット ヘッダのあとに,複数の「タグ」と呼ばれる構造体が続く構造になっています。「タグ」という言葉は紛らわしいので以降はチャンク(chunk)と呼ぶことにします。 ある SWF ファイルの例*3を示します。ヘッダは省略しています。 [D] DefineBitsJPEG2 (ビットマップの定義) [D] DefineShape (シェイプの定義) [D] Def

    SWF フォーマットの変遷からみる Flash - daily dayflower
    Wacky
    Wacky 2008/07/08
  • JavaScriptのイベントハンドラ説明

    気でやるならonclick属性は避けてライブラリを活用すべき - 帰ってきたHolyGrailとHoryGrailの区別がつかない日記 を読んで,思うところあって書いてみました(決してカウンターアーティクルではない)。 むかしむかし JavaScript を触っていた むかしむかしに書かれた JavaScriptで勉強している/した 人向けに。大元記事(そろそろ気で学びませんか? | Think IT(シンクイット))の想定読者に近いかなと思います。よって以下は JavaScript の初学者にはまったくおすすめできない(余計な知識がついてしまう)です。 Step 1: はじめのいっぽ ボタンを押したらメッセージボックスが出現する HTML を書いてみます。 <html><body> <script type="text/javascript"> function ShowMes

    JavaScriptのイベントハンドラ説明
  • 選択範囲の取得について調べた - 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
  • Core2 Quad で VMware Server の時刻が進む件は解決した - daily dayflower

    VMware Server 1.0.4 on Core2Quad で guest の時刻が進みまくり - daily dayflowerという現象があったのですが,なんとか解決にこぎつけることができました。 原因 NEC Express 5800 / 110Gd の BIOS が(EIST をきちんとサポートしていないためか)おかしな CPU frequency を返す EIST 無効時は Core2 Quad Q6600 は 2.4GHz で動いている ホスト側は(自力でキャリブレーションしているのか)2.4GHz であると認識している(∴ホストの時刻は狂わない) VMware Server は ACPI 経由で CPU frequency を取得している 先に上げたように ACPI 経由の CPU frequency 取得がおかしいので(フルパワー時)900MHz であると認識される

    Core2 Quad で VMware Server の時刻が進む件は解決した - daily dayflower
    Wacky
    Wacky 2008/03/30
  • JavaScript で遅延実行 - daily dayflower

    遅延実行っていうのかな? たとえば jQuery Interface の Sortable とかで,item を Drag'n Drop する都度 Ajax すると,サーバに負荷がかかるしモッサリしそうだし,と思いました。 なので, 遅延実行してほしいメソッドを登録する timeout 内に別のメソッドが追加登録された場合は,timeout を設定しなおす 最終的に timeout に到達するとそこまで登録されたメソッドを実行する 最後に指定されたメソッドのみ実行モード,もアリ みたいな機能(メソッドキュー?)がほしくなって書いてみました。 var MethodQueue = function () { this.ctor.apply(this, arguments); }; MethodQueue.prototype = { ctor: function () { if (typeof

    JavaScript で遅延実行 - daily dayflower
    Wacky
    Wacky 2008/03/30
  • daily dayflower - Timekeeping in VMware Virtual Machines を読み解く (2)

    高精度タイマによる補正 前回はちょっと簡略して書きました。VMware にも関連のあることなので,ほとんど推測に基づくものですが,少し詳しく書きます。 Linux のシステム時刻(時計)において秒針*1を進めるのは,PIT による割り込みです。ただ,割り込みだけに取りこぼしが発生するかもしれませんし,間隔が正確とも限りません。また,割り込み間隔以上の精度の時刻を得ることもできません。ですから,利用可能であればより高精度のタイマを補正に用います。 時刻間隔の「補完」についてはおおむね予想がつくので省略し,「補正」について考えます。 たとえば PIT を1/100秒間隔に設定したとします(HZ=100)。このとき1秒間に100回の割り込みが発生します。しかしシステム(カーネル)が非常に忙しくて80回しか割り込み処理ルーチンを呼び出せないとすると,実時間1秒の間にシステム時計は0.8秒しかすすま

    daily dayflower - Timekeeping in VMware Virtual Machines を読み解く (2)
    Wacky
    Wacky 2008/03/30
  • 多段 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
  • 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
    Wacky
    Wacky 2008/02/20
  • レポジトリ分割の作業記録 - daily dayflower

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

    レポジトリ分割の作業記録 - daily dayflower
    Wacky
    Wacky 2007/11/29
    Sandbox で作業してて熟してくると,単独プロジェクトとして分割管理したくなります。
  • 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 はフルフルに使えない
    Wacky
    Wacky 2007/05/26
  • 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
    Wacky
    Wacky 2006/06/06
    おまけで,中途半端ながら上記文書の「mod_perl Startup」節の抄訳をあげておきます。今回は全然推敲してないです。
  • 1