サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
ishikawa.arielworks.com
cho45さんがJSDeferredを高速化した手法を少し改良して、JS_Randezvousも高速化してみた。 具体的には、キューイングが遅いsetTimeout(引数に0を渡しても大分待たされる)の代わりに、Imageオブジェクトのイベントを使う。 Imageオブジェクトの本来の用途は画像のプリフェッチだと思われる。srcプロパティを設定すると、オブジェクトをdocumentオブジェクトに追加しなくても自動で読み込み処理が開始されるため、documentオブジェクトに余計なノードを追加しなくても非同期なイベント(loadやerror)を発生させることが出来る。読み込む画像ファイルのURLを空のdataスキームにすると、少なくとも現行のブラウザではsetTimeoutより数倍速く非同期処理を行うことが出来る。 src属性に空のdataスキームを渡すと、大体のブラウザは画像ファイルを開くこ
JavaScirptでもランデブー風の処理が書けるように作ってみた。 cho45さんのJSDeferredからアイデアだけちょこっと貰って、コードは0から全部書きました。 まず、next()を沢山書かなければ行けないのが面倒なので引数に関数を並べる形に変更しました。さらに、JSDeferredはDeferredオブジェクトが状態を持てないので、そのままだとランデブーするための処理が書けません。そこでコンテクストを持つオブジェクトを持ち回るように実装して、そのオブジェクトが特異メソッド的にエントリを持つようにしています。 今のところAdaの持つTaskingの8割は実装できているはずです。残ってるのはgurdsとselect delay abortとrequeueぐらいでしょうか。 今のところ、Child deferredに対応するものが無いので、内部で再帰させる処理などが書けません。これは
ページ情報 制作日 2004-11-24T19:06:48+09:00 最終更新日 2004-11-24T19:06:48+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment ファミレスなりマンガ喫茶なり、ドリンクバーを見るといつも思うのだが、食品をビュッフェスタイルで提供するサービスというのは酷く脆弱ではないだろうか。 監視員が常に食品を監視しているなら話は別だが、それでは人件費削減に成らないので普通は誰も見張っていない。つまり、食品というクリティカルなリソースを誰の管理下にもおかずに放置しているわけだが、利用者は特に警戒せず、食品を口に運ぶ。だが、その食品の安全性は誰が保証してくれるのだろう。第3者がアクセスしたかも知れないのに。 たぶん、保証してくれるのは法律と社会的ルールだろう。「毒を盛る」という行為はそれ自体が違法
ページ情報 制作日 2006-08-24T17:59:59+09:00 最終更新日 2006-08-24T17:59:59+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment 米国防総省防衛高等研究計画局(DARPA)は24日、主に日本で流通している成人向けゲーム(エロゲ)を戦略物資として認定するための手続きを開始したと発表した。輸出規制による軍事転用の防止を目指す。 DAPRAの広報官によると、成人向けゲームの軍事転用が危険視されるようになったのは同局局員の無断欠勤が発端だという。「局員が無断欠勤を続ければ、通常は外部の諜報機関による誘拐の可能性を疑う。しかし局員の自宅を訪れた我々が見たのは、ディスプレイを前にひたすらクリックを繰り返す彼の姿だった」DAPRAの広報官は当時を振り返りそう語る。その後の調査により、この種のゲ
ページ情報 制作日 2006-07-07T18:22:33+09:00 最終更新日 2006-07-07T18:22:33+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment 突如としてCDF(XML複合文書)のことを思い出したので、消えつつある記憶を掘り起こしてみる。去年のORFで行われた、XHTML2.0のEditorの1人である石川氏のプレゼンテーションが元ネタ。 CDFとは早い話、複数のXML語彙をまぜまぜして作られたXML文章のことだ(名前空間は素晴らしい)。わかりやすい例ではXHTML+SVGなどが挙げられるが、プレゼンテーションでは応用例としてXHTML2.0+MathML2.0+SVG1.1+XForms1.0+EGIX+ContactXMLによるサンプルまで用意されていた。W3Cとしては今後はこういった方向
ページ情報 制作日 2005-07-24T15:16:45+09:00 最終更新日 2005-09-03T14:29:47+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment 前回の試行錯誤中に気がついたアイデア。クロージャでクラス定義すればthisとか煩わしくなくて良いのではないかという説。名づけて、クロージャベース・オブジェクト指向。 function Person(_name) { var methods = { __constructor: function() {name = _name; }, getName: function() { return name ; }, getType: function() { return "Person"; } }; methods.__constructor(); ret
ページ情報 制作日 2005-07-24T03:14:49+09:00 最終更新日 2005-10-28T11:35:21+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment JavaScriptはクロージャでガリガリ書いていく言語だという説もあるが、OOP原理主義としてはプロトタイプベースでもいいからOOPで書きたいのである。というか、クロージャは中途半端で気持ち悪い。 さて、事の発端は『JavaScript とクロージャ』という記事である。この記事によると、なにやらイベントにクロージャを渡すと幸せになれるという事らしい。ふむふむ、たしかにシンプルでいい感じである。 ……が、しかしだ。オブジェクト指向なアレに対して、クロージャには決定的な弱点が有るはずなのだ。そう、メソッド(クロージャ)間での(メンバ)変数の共有である。
ページ情報 制作日 2005-05-16T11:37:13+09:00 最終更新日 2005-05-16T11:37:13+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment J2SE5に標準だと含まれてないっぽいNamespaceContextの実装。XPathを使うときに便利なように。 package foobar; import java.util.HashMap; import java.util.Iterator; import javax.xml.XMLConstants; import javax.xml.namespace.NamespaceContext; public class NamespaceContextImpl implements NamespaceContext { private Hash
ページ情報 制作日 2005-02-25T08:06:22+09:00 最終更新日 2005-02-25T08:06:22+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment Composite。 例えば自分のサイトのディレクトリ構造を考える。 [root] index.html - 2KBstyle.css - 3KB[about] index.html - 3KB [blog] index.html - 4KBlatest.rss - 3KB[2005] 01.html - 8KB02.html - 5KB このデータ構造をOOPっぽく表してみよう。 まず最初に考えるべき事は、「ディレクトリ([dir])とファイルってほとんど同じものだよね」と言うことだ。例えばプロパティを考えるとしたら「名前」や「ファイルサイズ(ディレ
ページ情報 制作日 2005-02-24T09:05:33+09:00 最終更新日 2005-02-26T16:15:45+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment Strategy。アルゴリズムの切り替え。とかいうと、難しく感じるけど、やってることはOOPの基本。 RPGの戦闘シーンで説明してみよう(ジャンケンだとパクリとか言われそうなので)。簡単のため、味方は主人公だけで。 function Battle(monsterList) { this.turnNumber = 1; this.hpOfHero = 500; this.offenseOfHero = 12; this.monsters = monsterList; // モンスターのリストを配列で保存 } function Battle.prototy
ページ情報 制作日 2005-02-24T02:07:08+09:00 最終更新日 2005-02-24T09:52:53+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment Singleton。インスタンスの同一性を保証したい場合。「人口」プロパティを持つEarthクラスのインスタンスを例に書いてみる。 function Earth() { this.population = 2; } // このクラス(静的/static)変数にインスタンスが保存される。 Earth.instance = null; // このクラス(静的/static)メソッドで上のインスタンスを受け取る。 function Earth.getInstance() { if (Earth.instance == null) { Earth.instan
ページ情報 制作日 2005-02-23T05:36:37+09:00 最終更新日 2005-10-07T09:02:41+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment Adaのクロスコンパイラをmakeしている間暇だったので試しに書いてみた。JavaScriptの復習もかねて。 まずはIterator。 function BookShelf() { this.books = new Array("空ノ鐘の響く惑星で", "半分の月がのぼる空", "君の嘘、伝説の君"); } function BookShelf.prototype.getIterator() { return new BookShelfIterator(this); } function BookShelfIterator(of) { this.sh
このページを最初にブックマークしてみませんか?
『Yudai Iwasaki - The gopher on a skillet』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く