タグ

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

  • 100% JavaScriptによる、簡易なDOM/SAXの実装 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ああー、疲れた。いったん、ほうりなげよう。 気がむいたら手直しするけど…… って何の話かというと: これをはじめた動機 「ブラウザ上でXMLプログラミングしようぜ」って話をする予定です(一昨日のエントリーを参照)。 しかし、ブラウザ+テキストエディタだけではさすがにシンドイ。SpiderMonky, WSH, Rhinoなどの対話的環境を併用すれば随分と楽になります。だがしかし、(少なくともRhinoでは)DOMが備わってないのですよ。 そこで、JavaScripでDOMを実装してしまえばいいと思って、やってみました。とりあえず最小限の機能ということで、MiniDOM/JS、ついでにDOMツリーをたどってSAX風イベントを発生させるMiniSAX/JS。 だけど見直す気がしないゾ まだチャントできてません。テストもしてないし、test firstじゃなくて、test after first

    100% JavaScriptによる、簡易なDOM/SAXの実装 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2010/02/10
    JavaScriptによるDOMの実装「MiniDOM/JS」。最小限のプロパティとメソッドをサポート。DOMツリーをたどってSAX風イベントを発生させる「MiniSAX/JS」も。
  • JSONの可能性がグンと拡がるぞ! JSONスキーマ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    JSON(http://www.json.org/)データはけっこうよく使うので、何度か話題にしたことがあります(例えば「もう一度、ちゃんとJSON入門」)。でも、JSONには型情報/メタ情報が付けられないのがとても不満で、JSON改なんてもんを考えたこともありました。(後でXIONに改名) JSONデータに対するスキーマ定義の仕様がかたまりつつあることを、ごく最近になって知りました。 http://json-schema.org/ JSON体はRFC 4627になっていますが、JSONスキーマの標準化のステータスは、あまりハッキリとは分かりません(僕には)。http://groups.google.com/group/json-schema?pli=1 を覗き見した感じでは、現状ワーキングドラフトという位置付けらしいです。 なかなか面白いし役に立ちそうなので紹介します。ただし、僕にとっ

    JSONの可能性がグンと拡がるぞ! JSONスキーマ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2009/04/14
    JSONデータの構造や型を定義する「JSON Schmea(JSONスキーマ)」の紹介。
  • もう一度、ちゃんとJSON入門 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    僕自身も僕の周辺もJSONをよく使います。でも、細かい点でけっこうミスをやらかしています(苦笑)。このエントリーで、JSONを使う上で注意すべきこと/間違いやすい点をすべて列挙します。 内容 兼チェックリスト: 仕様原典さえ読めば完璧(のはずだが) 数値の前にゼロを付けてはいけない 16進数表記も禁止だよ 数値の前にプラスを付けてはいけない 小数点からはじまる数値はダメ 用語法が違うよ:プロパティとメンバー メンバー名には常に文字列を使う 空文字列""もメンバー名に使える 配列要素はキッチリと並べよう 文字列を囲むには二重引用符だけ 文字列内のエスケープが微妙に違う 仕様にないエスケープは構文エラー undefinedもNaNもありません ラッパーオブジェクトは使わないのが吉 型システムとtypeofに関する注意 最後に 仕様原典さえ読めば完璧(のはずだが) JSONは、小さくて簡単な仕様

    もう一度、ちゃんとJSON入門 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2008/07/28
    JSONを使う上で注意すべきこと/間違いやすい点のまとめ。チェックリストと個々の解説。
  • 今風の型理論入門(本編) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    前ふりは「型→代数→…それから:型理論入門(の前半)」にあります。これは編(後半)。1回読み切り(長いけど)で、比較的新しい*1型理論を紹介します。「入門(門に入る)」というよりは門の外から中を覗いてみる程度。 説明用コードはJavaの構文を使います。ただし、パッケージ宣言は書かないし、publicはなるべく省略。 内容: インターフェースなんて、所詮こんなもの 心理的効果とか、人間-人間コミュニケーションとかは、別問題 わけわからんインターフェースに制約を付加する もっと制約を足してみる 謎のインターフェースに意図されたもの で、それが型理論にどうつながるの? インターフェースなんて、所詮こんなもの まず、次のインターフェースを見てください。 interface AB { int a(); void b(); } これスゴイでしょ。何がスゴイって、これを見てもなんのことやらサッパリわか

    今風の型理論入門(本編) - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2006/02/20
    型理論のひとつ「型=インタフェース+制約」という考え方の紹介。仕様(制約)を2種類の論理式(→不変制約、ホーア制約)で書き下す。
  • 多値関数関連:自家製まとめリンク集 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    またトラックバックが集まったので、自分でまとめておきます。お疲れさまっす>自分 なぜ、多値関数は人気がないのだろう - 檜山正幸のキマイラ飼育記 これが発端。コメントがたくさん付いてます。コメントのほうが面白いよ。 らくがきえんじん syd_sydさんのこの日02-10のエントリー群に多値に関連しそうなこと(タプルとかboostとか)が色々書いてあります。 晴れ - lethevert is a programmer lethevertさんの02-10の下側のエントリでは、PerlとConcurrent Cleanを例にしています。曰く「Perlの関数は、質的には "1-in 1-out" と考えるべきなのではないかと思います。」上にあるエントリ(順序としてはこっちが(2))では、Concurrent Cleanでは多値が質的に必須だという話。 Diary?::2006-02-09 P

    多値関数関連:自家製まとめリンク集 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2006/02/14
    多値関数(=戻り値が複数ある関数)関連の話題まとめ。なぜ多値関数は人気がないか。
  • ものすごく正しい文→どうでもいい文→どうとでもとれる文 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「昔話の作者は誰か」と長男に聞かれました。「作者は誰か分からない」と答えるとさらに「全然わからないの?」、で、「全然分からない」。「でも、その人(作者)は生きているか死んでいるか、どっちかだな」と次男はバカなことを言う。 「xは生きている または xは生きていない(死んでる)」のように常に正しい文は恒真な文(トートロジー)といいます。恒真な文は推論の基礎となる点からはものすごく重要ですが、内容的にはものすごくつまらない。あまりにも正しいので、何の情報ももたらしません。「xは生きている または xは生きていない」と言われても、x(人間とする)についての知識は増えませんよね。 「あなたのお父さんは、死んでいませんね。」 -- こんな言い回しをご存知ですか? 占い師が使う手だそうで、父親が生きている人は「死んでいない=生きている」と解釈し、父親が死んだ人は「死んでいない=死んでしまって、既にこの

    ものすごく正しい文→どうでもいい文→どうとでもとれる文 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2006/01/18
    『あなたのお父さんは、死んでいませんね』 は、常に真となる言い回し。おおっ、確かに。
  • TrimPath JavaScript Templatesの紹介 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ひっさびさにJavaScriptの話題。これを読めば JavaScript Templatesが使える(と思う、だいたいは)。 JACAL(檜山/なんば組によるスロー・プロジェクト)との関係で、TrimPath JavaScript Templates(以下JSTと略記)を調べてみました。JSTは、JACALの文脈を離れても面白いと思うので紹介しておきます。 JSTのWebページ template.jsのダウンロード JSTとは、JavaScriptで実装されたテンプレート処理系です。構文や構造は、PHP Smartyと似ています。JSTは、テンプレートとコンテキスト(と呼ばれるデータ)から処理結果として新しいデータを生成します。テンプレートとコンテキストはHTMLページに最初から埋め込んでおいてもいいし、XMLHttpリクエストで動的に取り寄せてもいいですね(いわゆるひとつのAjaxです

    TrimPath JavaScript Templatesの紹介 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2005/12/01
    「JavaScript Templates (JST)」入門。
  • ブックマークと分類タグと強迫症 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日、一昨日に書いたような事情で、にわかブックマーカーになりました。つっても、ブックマークする対象が自分のエントリだけなんですがね。それでさえ、僕には負担になる作業なんですよ。 僕の場合、分類するとなるとなぜか潔癖になってしまい、疲労困憊<こんぱい>したあげくが、「分類なんかするもんか!」となってしまうのですよ。よく分からんけど、一種の強迫症かな? 「計画を立てると、守ろうとして疲れるから計画しない」とか「約束をすると、破るのが怖いから約束しない」とかに近いかも。 そんな僕から見ると、id:nak2kさんの言葉: 私の場合、タグ=概念と認識していて、包含関係にある概念についてはサブクラス側のタグしかつけないようにしている これは驚嘆すべきことです。なぜなら、「包含関係にある概念」の体系こそ、いつも僕を苦しめ、打ちのめし、無気力にさせる、恐ろしいヤツだから。nak2kさんは怖くないんだ、いい

    ブックマークと分類タグと強迫症 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2005/10/07
    確かにタグは3つまでという制限のおかげでイライラすることが多い。(関連 idea:2947)
  • 檜山正幸のキマイラ飼育記 - プログラマのためのJavaScript (0)

    ジジイの手習いで、JavaScriptを勉強中でございます。その動機は「結局、ブラウザベースRIAかよ」のようなこと。非ブラウザベースのリッチクライアントへの期待を失ってしまったんですね。短期的・現実的な策としては、Ajax的な手法によるRIAなのかなぁ、という気分。ただし、「短期的」が“1年”と“5年”ではえらい違いです。今のところ僕には、「短期的」の実際の期間はわかりません。 僕のJavaScript調査の結果は、「初心者でも使えてプログラマでも困惑するJavaScript 」などに書きました。これらの続きとして、「プログラマのためのJavaScript (*)」というタイトルで書こうかと予定してます。あくまで予定、気まぐれでモノグサな僕のことだから、…… “プログラマのための”というのは、C, C++, Java, C#など“普通の”プログラミング言語にある程度慣れていることを前提に

    檜山正幸のキマイラ飼育記 - プログラマのためのJavaScript (0)
    wacky
    wacky 2005/09/26
    JavaScriptを解説する連載の目次エントリ。ためになる。
  • ブラウザでミニマムXML (0) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    XMLネタで続き物を書こうかと思います。 「プログラミング言語:JavaScript + 実行環境:ブラウザ」という組み合わせは、もっとも普及したプログラミング環境だと言えるでしょう。テキストエディタさえあれば、いますぐ、だれでもプログラミングをはじめられます。さらにブラウザには、いちおうDOM APIも備わっているので、もっとも普及したXMLプログラミング環境とも言えます。 そこで、この“今そこにあるXMLプラットフォーム”上で、今すぐ何かちょっとしたことをやってみよう、ってことです。 プログラミング言語としてのJavaScriptについては、「プログラマのためのJavaScript」というシリーズで解説しています。それと、しばらく間が空いてしまっているけど、「micro*」というシリーズでは、「今そこにあるもので、今すぐ何か」というコンセプトを展開しようとしています(まだ、micro*

    ブラウザでミニマムXML (0) - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2005/09/26
    ブラウザJavaScript + XML でアレコレやる連載の目次エントリ。
  • Comment vs PI - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日の「メタ情報の埋め込み」の件、少し続きを。日記への“コメント”と混乱しそうなので、<!-- -->のことはcommentと書きます。 コメント(queueさん、ななしさん)のご指摘のように、実情として、PIが無闇と削除されてしまったり、思わぬ副作用があるなら、commentと比べてPIが良いとは主張できなくなります。が、僕が「commentなんか使うならPIのほうがまだマシ」と、(少なくとも理念的には)思う理由を述べておきます。 まず、commentに比べてPIの構文が標準化されている点を挙げます。(SGMLではなくてXMLに従うなら)ターゲット名は必須であり、ターゲット名によりどの処理系に対するヒントであるかを判断できます。ターゲット名にQNameは使えませんが、ドメイン名をベースにした長い名前を使えば実用上は一意的にターゲットを指定できると言っていいでしょう。 ターゲット名に続くデ

    Comment vs PI - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2005/07/20
    続き。コメント欄の意見を受けてなぜPIが良いか説明。標準化されている点、処理系向け構文である点。
  • (X)HTML文書へのメタ情報の埋め込み - 檜山正幸のキマイラ飼育記 (はてなBlog)

    naoyaさんの「そのページが誰のものなのかを示す識別子を埋め込む仕様を考えています」において、HTML文書にある種のメタ情報を埋め込む方法として、「metaタグを使う」、「名前空間による拡張」、「コメント内に記述」の3つの方法が案として挙げられています。 良し悪しは別にして、方法はもう一つあります。「PI内に記述」です。 <?hatena page-owner="id:naoya" ?> レガシーHTMLのベースであるSGML構文では、PIの「<?」と「?>」のあいだに入れるデータは自由です。が、XML仕様ではターゲット名(上の例ならhatena)は必要ですし、XML宣言*1やXMLスタイルシート宣言の例からも推測できるように、疑似属性構文(i.e. 名前=quoteされた値)を使うのが推奨です。ターゲット名に、[xX][mM][lL]から始まる名前やQNameは使えません(07-21追

    (X)HTML文書へのメタ情報の埋め込み - 檜山正幸のキマイラ飼育記 (はてなBlog)
    wacky
    wacky 2005/07/20
    XHTMLへのメタデータ埋め込みに注釈ではなくPIを使う案。コメント欄も参考になる。
  • 1