2006-04-01から1ヶ月間の記事一覧

"abc".x(2) -> "abcabc"

配列に続いて、文字列の乗算メソッドも実装してみましょう。ただし、全然違うアルゴリズムを用います。 String.prototype.x = function (x) { var base = this, result = ''; while (x) { if (x % 2) result += base; x = Math.floor(x / 2); base += base; …

[1,2,3].x(2) -> [1,2,3,1,2,3]

id:reinyannyan:20060427:p1 で、写真の額縁をランダムに五つ並べる、ということを表そうとしたんですが、 ['random', 'random', 'random', 'random', 'random']と書くのはあまりに格好悪いなと思いました。そこで、Ruby の配列の乗算メソッド (*) と同様の…

アップデート: Ajax 版はてなフォトライフデスクトップ

id:reinyannyan:20060407:p1 のアップデートです。利用方法についてはそちらを参照してください。 主に画像の表示方法に関して、以下の見直しを行いました。RSS に反映されなさそうなので新たなエントリーでお知らせします (RSS の件数って変更できるんです…

デスクトップに Flickr RSS

id:reinyannyan:20060407:p1 の Ajax 版はてなフォトライフデスクトップをアップデートし、Flickr の RSS も読めるようにしてみました。ただし、対応している RSS のバージョンは 2.0 のみです。サンプル URL: http://www.flickr.com/groups/cutecat/pool/fe…

デスクトップにホームページを表示

Windows の Active Desktop という、デスクトップをウェブ・ドキュメントとして自在にプログラミングできる機能を度々ご紹介してきました。この機能の利点は、何も自分でプログラミングできることだけではありません。ブラウザを開かずにウェブ・ページを表…

はじめての Ruby

はてなフォトライフデスクトップ (id:reinyannyan:20060407:p1) からの発想の拡がりで、ローカルに眠っている画像を掘り起こして RSS 化 -> 自分用のサーバーに置いて利用、ということを思い付きました。で、すぐに Ruby で書き始めました。実はちゃんと Rub…

クラス版 DOM Iterator の利用例と解説

id:reinyannyan:20060411:p1 の後半で、DOM 要素コレクションを prototype.js 的にイテレーション可能にするクラス "Domi" (仮称) を実装しました。実装の動機については id:reinyannyan:20060404:p2 に述べたんですが、ここで改めてまとめておきましょう:Pr…

DOM 要素の集合のイテレーション (OO 版)

id:reinyannyan:20060404:p2 からの発展です。Update [20060412]:少しコードの見直しを行い、select の連結による多重絞込みを可能にしました (古い each の上に新しい each を次々と被せていくことで可能になりました。クロージャ万歳!)。 応用イテレータ…

AJAX で『はてなフォトライフデスクトップ』

Windows の、デスクトップの壁紙に HTML ファイルを指定できる機能 (Active Desktop) を利用して、はてなフォトライフデスクトップみたいなものを作ってみました。これまで XML を扱ったことがあまり無かったので難しいかなと思ったんですが、次々とインスピ…

DOM 要素の集合のイテレーション

Update: id:reinyannyan:20060411:p1 に続きます getElementsByTagName の様なメソッドで得られた、配列ではない要素集合を配列のように扱いたい時に、prototype.js では "$A" という関数によってまず配列化する、という方法を用います。これは非常に素晴ら…

prototype.js の Class 拡張試案: Class.extend

Prototype の拡張試案の一つとして、これまでにクラスの継承のための仕組み (Class.extend メソッド) を提唱してきました。これは、実際にはクラスのコンストラクタに割り当てられ、 MyClass = Class.create(); ... AnotherClass = MyClass.extend(...);とい…

コレクション、イテレータ、そして inject のパワー

注: これは Ruby のコードではありません (笑): var ibm = [ 'H', 'A', 'L' ].inject('', function (str, item) { return str + item.succ(); }); print(ibm); // -> 'IBM'いきなり結果からお見せしましたが、今回は難しいと言われている inject メソッドの…