タグ

ブックマーク / m-hiyama.hatenablog.com (8)

  • 本日のtip その2:アーカイブにゴミや見せたくないファイルを入れない方法 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ちょっとしたtipでも「ヘーッ」と思う人もいるようなので書いてみます、その2。Unix/Linux/Cygwin/MSYSとかでの話、GNU tarね。 tarは単一のファイルをアーカイブすることもできますが、普通はディレクトリを丸ごとアーカイブするでしょう。アーカイブに入れたくないファイルがあるとき、tarの--exclude=pattern、--exclude-from=file オプションを利用できます。patternはファイル名パターンで、シェルのワイルカード'?', '*'が使えます(ブレイス'{'と'}'は、期待通りには機能しませんから事実上使えません)。 例えば、 $ tar --exclude='*.tmp' -cvf ../archive.tar . とすれば、*.tmp という名前のフィイルはアーカイブに入りません。--exclude='*.tmp' の代わりに --e

    本日のtip その2:アーカイブにゴミや見せたくないファイルを入れない方法 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    fn7
    fn7 2008/12/01
    tarの便利な使い方
  • コインとサイコロで非決定性プログラミングをお手軽に実験してみるよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    だいぶ前に書いた「プログラムの算術的計算法」と「プログラムの算術的計算法 (続き&完結)」において、非決定性の選択と非決定性の繰り返しについて述べました。これらを非決定性述語により実現してみましょう。 コイン・トスとサイコロ博打で非決定性を実現 構文 choose A or B end は、「AかBのどちらかが実行されるが、どっちが実行されるかはわからない」という意味です。これは、次のようにコードでシミュレートできるでしょう。 if (coin()) { A; } else { B; } ここで、coin()が非決定性の述語で、コインを投げて表ならtrue、裏ならfalseを返す関数です。 構文 repeat A end は、「Aを何回か繰り返すが、何回繰り返すかはわからない」という意味です。こちらは次のように書けるでしょう。 var n = dice(); for (var i = 0;

    コインとサイコロで非決定性プログラミングをお手軽に実験してみるよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    久々にThe n-Category Cafeを見たら、Mike Stayによる"The Continuation Passing Transform and the Yoneda Embedding"なんて記事がありました。 米田埋め込みは圏論ではお馴染み。継続渡しへの変換はコンピュータ・プログラミングではお馴染み。 この2つは、実は同じものなんだよ。なんで、誰もこのことを言わないんだろうね? The Yoneda embedding is familiar in category theory. The continuation passing transform is familiar in computer programming. They're the same thing! Why doesn't anyone ever say so? Mike Stayのこの記事、面白いのだ

    CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Makefileの書き方:プログラミング言語Make - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「Makefileの書き方、その勘どころ」にて: まだ、関数を使ってソースやターゲットを生成する方法とかパターン規則の説明をしてないので、続きを書くと思います。調べているうちに、GNU Makeの構文(の一部)はある種のプログラミング言語だという気がしてきました;そのことも書きたい気がしてます。 というわけで続きを書きます。 実は、関数呼び出しを使うときは、代入に「=」を使うより「:=」のほうが適切かつ効率的なときが多いのですが、その話は次の機会にします。 これの説明が中心になります。 内容: 前置き 変数の種類と変数定義 ソースコードの後のほうを参照すること Makeは上から下へと実行していくのだ MakeとLispは似ている 実例 ●前置き 以下、Make一般ではなくてGNU Makeの話です。GNU Makeより古いMakeにも備わっていた伝統的機能の説明はしません。 GNU Mak

    Makefileの書き方:プログラミング言語Make - 檜山正幸のキマイラ飼育記 (はてなBlog)
    fn7
    fn7 2007/10/25
    一度勉強する必要あり
  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

    気まぐれと偶然となりゆきで、ここ2,3回はモナドを話題にしました。googleで「モナド」を引いてザッと眺めると、「モナドはむずかしいー」とか「モナドで挫折した」みたいな雰囲気が感じられて、説明芸人の血が少し騒ぎましたね。「なら、予備知識ゼロでモナドの説明をしてやろうじゃねーか」と。 タイトルはだいぶ煽っちゃった…… けど、ハッタリじゃないつもり…… けど、実際はどうかな? ※印刷のときはサイドバーが消えます。 内容: とりあえず、あたりさわりなくモナドの来歴を紹介する こんな課題を考えてみよう:副作用付き計算 カウントアップする関数達 カウントアップしたい意志を戻り値で伝える それでは、いったい誰がカウントアップをするのだ 関数の引数の型をCountup型にまで拡張する そして、これがモナドだ とりあえず、あたりさわりなくモナドの来歴を紹介する 今からここで説明する「モナド(monad)

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
  • 檜山正幸のキマイラ飼育記 - 圏論やモナドが、どうして文書処理やXMLと関係するのですか?

    …という類<たぐい>の質問に答えるのはちょっと面倒なんですけど、とりあえず1つだけ具体例を挙げておきましょう。テンプレート処理が、もろにモナドになっている、ってハナシ。今回はテキスト処理について説明。次回(いつになるかまったく不明)はXML処理の予定。 テキスト処理だけでも長ーい説明(最長記録かも)なのだけど、分割すると“勢い”がなくなるから一挙掲載。読むときはユックリ・ジックリ読んでくださいね。プログラミング課題も、実際にコーディングしないまでも、「こうやればいいな」という方針くらいは考えてください。 ※印刷のときはサイドバーが消えます。 内容: ネストしたテキスト テンプレート処理 ブロック、文字列、名前 フラット・テキストとテンプレート・テキスト 多段階のテンプレート処理 蛇足 素材を整理しよう モナドに向かって突っ走れ!! バッチリ、モナドだぜぇ 残りは脱兎のごとく 最後に言ってお

    檜山正幸のキマイラ飼育記 - 圏論やモナドが、どうして文書処理やXMLと関係するのですか?
  • DI(依存性注入)を白紙から説明してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「DI(依存性注入)からどこへ行こうか その1」において: DI(依存性注入)については、雑誌や書籍で随分紹介されているので、そういうのを見てください。 こんなこと[注:DI化]して何がうれしいかって? それは、ファウラー先生とかその他エライ人とかエラクない人とかに聞いてください。 と書きましたが、DI(Dependency Injection; 依存性注入)そのものについても説明を試みてみましょう。具体的なサンプルを使うことにします。そのため、サンプルの説明が長くなってしまうのが困ったことですが、まー、単なる能書きよりはサンプルがあったほうがいいでしょ。 内容: サンプルはテンプレート処理系 レクサー(字句処理系) レクサーをインターフェース経由で使う サービス・ロケーター 依存性が消えてない! DI(依存性注入)登場 DIが、かつてIoC(制御の逆転)と呼ばれていた理由 ●サンプルはテ

    DI(依存性注入)を白紙から説明してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • JavaScript Templates の補足 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日のエントリーに落ち穂拾い的に補足しておきます。 template.jsの位置 僕のサンプルでは、<script src="template.js"></script> となっていますが、template.jsはtrimpath/ディレクトリに置くことが推奨されています。 テンプレートデータの持ち方 元エントリにも追記で入れておいたことだけど: テンプレートデータ(テキスト)をHTMLページに埋め込むなら、textarea要素の内容に書くのが便利です。通常は表示されると困るので、style="display:none" にしておきます。 コンテキストデータの持ち方 JavaScriptコード内に埋め込んでもいいですが、場合分けが多くて大量になるようなら、XMLHttp経由でJSONデータを要求/取得するといいでしょう。JSTのコンテキストはJavaScriptオブジェクトなのでJSONと

    JavaScript Templates の補足 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 1