タグ

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

  • CSSのテーブル的displayって、めちゃくちゃ便利だわー - 檜山正幸のキマイラ飼育記 (はてなBlog)

    次のような2つの箇条書きがあります。 <ul> <li>リンゴ</li> <li>オレンジ</li> <li>バナナ</li> </ul> <ul> <li>キャベツ</li> <li>ニンジン</li> <li>ダイコン</li> <li>ハクサイ</li> <li>ブロッコリー</li> <li>トマト</li> <li>キューリ</li> </ul> この2つの箇条書きを、左右横並びに配置したかったんですよ。 CSSでなにやら頑張ればできそうな気はしたんですが、頑張りたくない。古き悪しきテーブル・レイアウトでいいや、と割りきって次のようにしました。 <!DOCTYPE html><!-- -*- coding: utf-8 -*- --> <html> <head> <meta charset="UTF-8" /> <title>table</title> <style> table

    CSSのテーブル的displayって、めちゃくちゃ便利だわー - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Hayato
    Hayato 2013/11/27
  • Alloyで人生モデリング その1:時間を含まない関係 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    人生モデリングの目的は、時間概念の扱い方を練習することですが、まずは時間を含まない関係の定義をやってみます。ここで考える対象物は人(human)なので、関係とは親子、夫婦、兄弟などです。 僕はAlloy経験が浅いので、Alloyのコード(モデル記述)をどのように書くのがいいのかよく分かりません。とりあえず次の方針にします; x.foo のような書き方が「xのfoo」と読めるようにします(なるべく)。例えば、p.mother は「pの母」と読みます。母(生みの親)は一人だけど、子供は複数かも知れないから w.children、なーんて考えるのがめんどくさいので、いちいち複数形は使わずに w.child とします。 内容: 人、男、女 基は親子と夫婦 誰にでも母親はいるのか? 近親結婚の禁止 時間概念の欠如 人、男、女 人は男か女のどちらかであることを次のように定義します。 -- 人生 mo

    Alloyで人生モデリング その1:時間を含まない関係 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Hayato
    Hayato 2011/07/29
    あ、なんかすごく面白そう。楽しそう。
  • 気分と目標とルール - 檜山正幸のキマイラ飼育記 (はてなBlog)

    http://return0.info/note/2011-01-30.e : ライブラリを分離してリリースとなると、やっぱ一番ホットに感じてるところから離れた気がするのがなあ。 この気分は僕も同じ。説明しやすくて皆んなに役に立ちそうな部分ってのがあって、それの意義は認識しているんだけど、面白いのは説明しにくくて何の役に立つか分からない部分なんだよね。もちろん、当事者としては役に立つと信じているけど。 こういう気分をコントロールすることはなかなか難しい。でも、気分で変な方向にいってしまうのは避けたい。迷走/暴走の回避に僕が有効だと思っているのは、「絶対に守るぞ」みたいな目標とルール(チャーターとか言うのかな?)を決めて、ウンザリするくらい繰り返し繰り返し復唱して確認すること。ほんとにウンザリするくらい。 目標とルールが迷走/暴走を引き起こすタグイのものだとハナシにならないが、それは「冷静に

    気分と目標とルール - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Hayato
    Hayato 2011/02/05
    説明しにくいかつ役に立つの象限を何とかするパタンがないかなあと思っている
  • 論理的言明を装った感情論は嫌い、という感情論 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ちょっと時間がたってしまったネタですが: プログラミングの出来る人と出来ない人の決定的な違い。 「プログラミングの出来る人と出来ない人の決定的な違い」? ワンヤグさんの「プログラミングの出来る人と出来ない人の決定的な違い。」は、たくさんのブックマークを集めた記事。それに対して、id:JavaBlackさんが随分と否定的な記事を書き、さらにワンヤグさんが当該記事への追記として反論(らしきこと)を書いています。内容的に、ドチラかが全面的に正しいとは思えないし、ドチラかに味方する気もありません。 ですが、僕のセンサー(どんなセンサーかは最後に述べます)が反応したので、思うところを書いておきます。 時間順が前後しますが、まずはJavaBlackさんの記事のほうから。僕は、元記事「プログラミングの出来る人と出来ない人の決定的な違い。」を読む前に、JavaBlackさんの記事のほうを先に読んだのです。

    論理的言明を装った感情論は嫌い、という感情論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Hayato
    Hayato 2010/12/21
    僕は感情論を装った論理的言明が好き。
  • 完全実装付きでもう一度お送りします、しりとりの圏 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日のセミナーで、圏の簡単な事例として「しりとりの圏」を出したのですが、ハッキリとしたイメージを持てなかった人も多かったようです。 “技術者/プログラマ”であれば、実際に動くコードを持ち出すのが手っ取り早いのかな、と思い、しりとりの圏をJavaScriptで実装してみました。ここでは、このJavaScriptコードにそって、あらためてしりとりの圏を解説します。セミナーの内容や知識をまったく前提にしていません。白紙からの説明です。ただし、以前の記事(2006年8月21日)は参照する必要があります。 以前の記事とJavaScriptソースコードを並べて表示したい人は、次のリンクをクリックしてください。別なウィンドウ/タブで2つの参考エントリーが開くはずです。 はじめての圏論 その第1歩:しりとりの圏 (以前の記事) しりとりの圏 -- JavaScriptによる実装 (JavaScriptソー

    完全実装付きでもう一度お送りします、しりとりの圏 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 有限集合と写像の圏もJavaScriptで書いてみた、遊んでみてね - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日、しりとりの圏のJavaScript版実装を示しました。モニャドセミナーの最後のほうでMapFO(Map category over Finite Ordinals)という例も出したので、これもJavaScriptにしてみました。FirefoxブラウザにFirebugが入っていれば、[F12]キーですぐさまいじれます。 大事なのは実感、イメージ、具体性; ぜひブラウザ上で圏の実例を試してみてください。また同じセリフを繰り返しますが、 目や手を動かしてやってみないとハジマリません。ジッと考えていても、どうせ分かりません。 内容: 使い方 有限オーディナル 写像 写像を作る 射(写像)の域と余域 射(写像)の結合 恒等射 しりとりの圏の実装との違い まとめ 使い方 まずは、使い方。Firebugで実行するときは、次のようなHTMLファイルをFirefoxにロードします。このHTMLファイル

    有限集合と写像の圏もJavaScriptで書いてみた、遊んでみてね - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • はじめての圏論 その第4歩:部分圏 - 檜山正幸のキマイラ飼育記

    「第4歩」と書いたからと言って続くかどうかはわからない -- というセリフはもうやめよう。はじめの何歩かは進んだから、もう、いつ中断してもいいからな。 で、第4歩のネタなんですが、もっともっと実例を出すか、一般的な議論をするか悩みました(少しだけ)。結局、今までの例から新しい例を作り出してみることにしました。与えられた圏から新しい圏を作り出す手続きを(圏論的)構成(construction)というのですが、構成は非常に重要です。例えば、純関数の圏から状態機械の圏を作り出すCirc構成、モナドを使って射の概念を拡張するKleisli構成*1、よい性質の射の対を選び出すEP(埋め込み/射影)構成、2つの圏C, Dから関手圏DCの構成、非決定性(の一種)を導入するベキ構成、トレース付きモノイド圏からコンパクト閉圏を作るInt構成(GoI構成とも呼ぶ)などが、新しい圏を大量生産する製造機械として活

    はじめての圏論 その第4歩:部分圏 - 檜山正幸のキマイラ飼育記
  • はじめての圏論 その第3歩:極端な圏達 - 檜山正幸のキマイラ飼育記

    「第3歩」と書いたからと言って続くかどうかはわからない。だけど、3回書けば既に続きものだとも言えるので、第1歩をハブエントリー(目次ページ)にしておきました。第1歩からリンクをたどれます。 さーて第3歩だけど、そろそろ関手ですかね? いやっ、まーだ実例。もっともっと実例。なんで僕が実例にこだわるかというと、抽象論は好きだけど、具体性のない抽象論が嫌いだから。圏論に関する具体例は山盛りあるんだけど、どうも(良い意味での)アブストラクト・ノンセンスな論法のほうに注目が集まりがちで、そこいらに転がっている具体例が強調されてない気がする。 実際のところ、圏の定義はすごく一般的だから、その例は死ぬほどイッパイあるんだよね。だから、具体例を拾っているときりがない、ってのも確か。なんだけど、手近にあって個性的で面白い圏は紹介しておきたいんです。で、今回は“エッジが効いた”(って、実は意味ワカラン)圏達の

    はじめての圏論 その第3歩:極端な圏達 - 檜山正幸のキマイラ飼育記
  • はじめての圏論 その第2歩:行列の圏 - 檜山正幸のキマイラ飼育記

    「第2歩」と書いたからと言って続くかどうかはわからない、なにしろ僕は気まぐれだからね。 とりあえず第1歩で、手でいじれる圏の例が1つは手に入りました。圏論のような抽象的/一般的な理論を納得するには、具体的な例をたくさん知って、具体例に一般論を適用してみるのがいい方法だと思います。 そこで、関手だの自然変換だのに進む前に、もうひとついじり倒せる具体例を出しておきましょう。しりとりの圏よりは少しだけ高級で、行列(マトリックス)を考えます。僕は、高校で2×2行列の計算を無意味にやらされた記憶があるのだけど、今の教育はどうなっているかしら? ともかく、行列計算の経験は仮定します。 内容: 行列の復習 行列の圏 圏の名前付けとか記号とか ホムセットと矢印記法 図式順記法と反図式順記法 全体目次 行列の復習 行列は、数を四角形に並べたモノです。ここで、「数」は実数だとしておきます。横の並びが行で、縦の

    はじめての圏論 その第2歩:行列の圏 - 檜山正幸のキマイラ飼育記
  • はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記

    全体目次: 第1歩:しりとりの圏 (このエントリー) 第2歩:行列の圏 第3歩:極端な圏達 第4歩:部分圏 第5歩:変換キューの圏 第6歩:有限変換キューと半圏 第7歩:アミダの圏 第8歩:順序集合の埋め込み表現 第9歩:基に戻って、圏論感覚を養うハナシとか 付録/番外など: 中間付録A:絵を描いてみた 番外:同期/非同期の結合 中間付録B:アミダとブレイド 番外:米田の補題に向けてのオシャベリ 一部のプログラミング言語の背景として、圏論(カテゴリー論)が使われたりするせいか、以前に比べれば多少は圏論に興味を持つ人が増えたような気がしなくもないような。でも、安直な入門的文書はあまり見かけないですね。もちろん、シッカリした教科書や論説はあるんですが、どうもシッカリし過ぎているような。例えば、圏の例として「コンパクト・ハウスドルフ空間と連続写像の圏」とか言われてもねぇ(この例はいい例なんです

    はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記
  • シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Java BlockingQueueで遊ぶ:パイプラインごっこ」でパイプラインの話をしたので、来の、つまりUnixのパイプやリダイレクトを少し調べてみました。 たまに話題となる some-command >file 2>&1 と some-command 2>&1 >fileの挙動の違いについて、「シェルはコマンドラインリダイレクトの指定を右から左に解釈実行する」なんて説明が見つかりました。んなバカな! パージングは左から右にするものですよ。パーズツリーを逆順にたどることはできるけど、そんなことする必然性はなんにもないよ。 次の記事を読むと、「右から左」なんて事情じゃないことが分かるでしょう。 UNIXの部屋 検索: リダイレクト シェルのリダイレクトにまつわる失敗 さてここでは、複雑なリダイレクト処理も完全に理解できる処方箋を示しましょう。例えば、次のコマンドラインが何をするか分かる

    シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Hayato
    Hayato 2007/12/24
    シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう
  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

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

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

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

    檜山正幸のキマイラ飼育記 - 圏論やモナドが、どうして文書処理やXMLと関係するのですか?
  • 1