2010-03-01から1ヶ月間の記事一覧
Catyプロジェクトを始めたとき、プログラマとデザイナの「干渉が少ない分業」が大きなテーマでした。僕らが採用した基本的な方針は次のものです。 プログラマはJSONデータの生成に専念する。 デザイナは生成されたJSONデータを展開コンテキストとするテンプ…
ここ何日かマイクロフォーマット(microformats)の話題を続けています。僕がマイクロフォーマットを思い出したキッカケは、WebAPIのデータ形式について考えていたときです。マイクロフォーマット方式でマークアップされたHTML断片をWebAPIで使えないかな?…
「カジュアル過ぎるmicroformatsを少しだけ厳密に」の続きです。マイクロフォーマット(microformats)の仕様は、自然言語と事例により記述されています*1。これは、親しみやすく読みやすく、教育的な読み物としては良い手法だと思います。が、仕様書として…
5年ほど前に「micro*」というタイトルの記事をいくつか書いたことがあります。 2005年夏 「micro* (1): microな考え方/やり方」 http://d.hatena.ne.jp/m-hiyama/20050819/1124418843 2005年夏 「micro* (2):microdocuments」 http://d.hatena.ne.jp/m-hiy…
HTML文書のDOMツリーから、CSSのセレクタによりデータを取り出す操作が必要だと感じました。例を見れば(分かる人は)分かるでしょうが、Microformatsと関係があります。[追記 date="翌日"]多少の修正と追加をしました。[/追記]最初に、取り扱うデータの型を…
basename, dirnameというコマンドとか関数があります。これにより、ファイル(またはディレクトリ)のフルパスを2つの部分に分けることができます。それぞれの部分を「ベース名」、「ディレクトリ名」と呼ぶのは常識と言ってもいいと思います。また、「+」を…
「EmacsのクレオールWikiモード」でクレオールWikiを話題にしました。クレオールWikiでは、箇条書き項目を、行頭に星印「*」でマークアップします。入れ子になった箇条書きなら「**」や「***」を使います。つまり、行頭の「**」は箇条書き項目と判断されます…
一昨日の日曜日、映画「アバター」を観てきました。ほんとに「観たのか」というと、、、、3D版「アバター」を観たいなーとは思っていたのですが、なんとなく行く機会がないままに「このまま見逃してしまうのかなー」と思っていたのです。が、長男が「観たい…
次のようなプログラムを考えます。2*x + 3 を計算する関数の本体部です。代入の記号は「:=」を使いました。 a := 2; y := a*x; y := y + 3; return y;この例では、変数yへの代入が二回あるので、最初の値は上書きされて消えています。つまり、破壊的な代入が…
Wikiってのはもともと、プレーンテキストとみなしても不自然ではないようなマークアップのはずです。ですから、カラーリングしたりする必然性はないような気もしますが、EmacsのクレオールWikiモードが存在します。 http://manuelp.github.com/emacs/2009/11…
インターネットのURLでも、ローカルファイル名でも、「パス」という概念を使っていますよね。例えば、/home/hiyama/junk/memo.txt というファイルは、"home", "hiyama", "junk", "memo.txt" という名前を区切り記号(この場合はスラッシュ)を挟んで並べたも…
Google Chromeで [ソースを表示] (Ctrl-U) とすると、view-source:<URL> というURLのタブに<URL>のソースが表示されます。構文上は、view-source: がURIスキームになっているわけです。このview-sourceスキームはChrome特有かと思っていたのですが、Fire…
GMailは良くできたソフトウェアだな、とは思っていましたが、今日は感激しました。添付ファイルを付け忘れた状態で送信しようとしたら次のダイアログが出ました。 ファイルを添付しましたか?メッセージに添付と書かれていますが、ファイルが添付されていませ…
とあるWebページのbody内に、次のJavaScriptコードが埋め込んでありました。 <script> document.body.className += ' js'; </script> これは何だろう? と思ったのですが、CSSスタイルシートのほうに、次の記述がありました。 body.js .section-tabs .tab { display:none; } J…
次男が「長方形」という概念を習っています。口頭では何度も話題にしたことがあるハナシですが、「長方形」の「長」がなんとかならないものか、と。いくつかの図形が描いてあって「長方形はどれでしょう」みたいな問題があって、次男は正方形は選びませんで…
「サブテンプレート処理について考える」にて: というわけで、テンプレート処理は一律に次の関数で表現できます。 expand(parent_context + eval(input, read_expr(templ_path), params), read(templ_path))トップレベル・テンプレート処理のときは、parent…
Catyのテンプレート処理について再度考えてみたのですが、ある程度一般論っぽい書き方で述べます。関数呼び出しの記法を全面的に使います。内容: トップレベルのテンプレート処理 サブテンプレートの処理 サブテンプレートに渡す情報 サブテンプレートに入…
長男:「おとうさん、大発見とかしたことある?」父親:「ないなー」長男:「発見のない人生、哀しいねー」父親:「なんだよ、その言い方は。んじゃ、おまえはなんか発見したのか?」長男:「発見したよ」父親:「なにを?」長男:「化石とか。あれは古いお…
非決定性写像の圏におけるホーア式のモデル いちおう完結・編 - 檜山正幸のキマイラ飼育記 にて: 実行ログとは、それぞれのエクスペクテーション実行により得られた事後状態s'、戻り値y、成功・失敗の別rの組(s', y, r)を並べたものです。(注:実際には、…
非決定性写像の圏におけるホーア式のモデル - 檜山正幸のキマイラ飼育記 (はてなBlog) 非決定性写像の圏におけるホーア式のモデル 踊り場・編 - 檜山正幸のキマイラ飼育記 (はてなBlog) 続き&完結。内容: アブラムスキー達の仕様構造 メイヤーのCommandとQ…
「非決定性写像の圏におけるホーア式のモデル」にて: この記事で導入した概念を使ってエクスペクテーションのモデルを構成するのは次回(続き)にします。次回(続き)では、条件と実行文をあまり区別しない方法を紹介します。エクスペクテーションの定式化…
「FIT/FitNesseと多重マークアップ/多重データ構造」にチラッと書いたのですが、カニンガムのFITに似たCaty向けテストシステムを作成中です。基本的な構文要素は、エクスペクテーション、エクスペクテーションの列、ホーア・トリプルです。これらは、次の形…
父親:「君ら、こんな寒いときになんでアイスクリームばっかり食べるかな?」次男:「アイスクリーム、おいしい」長男:「なんか変ですか?」父親:「変ですよ」次男:「全然変じゃないよねー、おにいちゃん」長男:「変です」次男:「ええーっ」父親:「そ…
父親:「…(ムシャムシャ)」次男:「おとうさん、そのお饅頭好きなの?」父親:「うん、好きだね、これは」次男:「ほんとに好きなの?」父親:「好きだよ」次男:「好きなのに食べちゃうの。残酷だねー」父親:「… …」
http://d.hatena.ne.jp/m-hiyama/20100225#c1267490716 : 何人かがご指摘なさっているように「郡司さんは真剣なんだ/真面目なんだ」を否定する気は全然ありません(そうなんだろうと思っています)。であるなら、どうしてデタラメを書くんでしょうか? デ…
教育者の心得 教育者のあきらめ というような事情で、僕(父親)はカードゲーム「遊戯王 デュエルモンスターズ」の仲間になれませんでした。が、それでも次男はたまにカードの解説をしてくれます。次男:「これはレアカードね」長男:「お肉のレアじゃないよ…
父親:「昔さ、君は逆上がりができないで泣いてたよな。できるようになった?」長男:「結局、今でもできないよ」父親:「なんだよぉー」長男:「あの頃は子供だったから気にしていたけど、今はこだわってないから」父親:「はっ?」長男:「俺、もう逆上が…