タグ

2008年12月6日のブックマーク (29件)

  • 『JavaScript < jQuery < Lisp ? - IT戦記』へのコメント

    ブックマークしました ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください Twitterで共有

    『JavaScript < jQuery < Lisp ? - IT戦記』へのコメント
  • arguments に対して shift するための考察(をしていたらカッとなって配列変換のベンチマーク) - IT戦記

    JavaScript において可変引数を扱う場合 arguments オブジェクトを使います。 function func() { for (var i = 0; i < arguments.length; i ++) { alert(arguments[i]); } }; func(1,2,3) // 1,2,3 を順に表示 そして 可変引数を使うパターンとしては、 すべて可変引数 固定引数と可変引数 の二つに分けることができます。 すべて可変引数 引数が与えられた分だけ同じような処理を行うパターン function add() { for (var i = 0, r = 0; i < arguments.length; i ++) r += arguments[0]; return r; } var r = add(1, 2, 3, 4, 5); 固定引数と可変引数 最初のいくつかの引

    arguments に対して shift するための考察(をしていたらカッとなって配列変換のベンチマーク) - IT戦記
  • IT戦記 - Math.floor を使わずに小数を整数にする

    少数を整数にしたいような場合 たとえば、 0 - 9 のランダムな整数が欲しい場合 普通はこう書く var value = Math.floor(Math.random()*10); Math.floor を使わない場合はこう書く var value = ~~(Math.random()*10); 「~」は補数を求める単項演算子で、オペランドを整数変換するので二回やることでオペランドを整数化できるのです。 まとめ でも、もっといい方法があるかも。 皆様なら「どう書く?」のでしょうか。

    IT戦記 - Math.floor を使わずに小数を整数にする
  • 「失敗作」から学んできたApple社の歴史:画像ギャラリー | WIRED VISION

    「失敗作」から学んできたApple社の歴史:画像ギャラリー 2008年11月21日 IT コメント: トラックバック (0) 茶色がかったベージュ色の『Macintosh 128K』から、ガラスとアルミニウムを素材とした現行の優美な『iMac』へと、Macintoshは1984年のデビュー以来、大きな進歩を遂げてきた。 変わらないのは、幅広い支持を集める製品を作る米Apple社の力量だ。しかし、忘れてはならない。同社は成功に至る過程で数多くの苦難に出くわし(日語版記事)、長い年月の中でそれなりに失敗もしてきた(日語版記事)。[過去記事「「Appleを救う101の方法」――先見性あり、10年前のワイアード記事」では、1997年にワイアードに掲載された、当時苦境にあったApple社向けアドバイスについて紹介している] そこでこの記事では、24年目に入ったMacを祝う意味でも、消費者の期待と

  • 灼熱のアフリカを潤す「植物スプリンクラー」(1) | WIRED VISION

    灼熱のアフリカを潤す「植物スプリンクラー」(1) 2008年12月 4日 環境サイエンス・テクノロジー コメント: トラックバック (0) 1/3 (これまでの 山路達也の「エコ技術者に訊く」はこちら) 糧不足に苦しむ途上国は乾燥地域にあることが多く、高度な灌漑インフラも導入できずにいる。こういう状況に救いをもたらす可能性を秘めた技術が、名古屋大学の矢野勝也助教、および関谷信人氏の開発した「植物スプリンクラー」だ。今まであまり知られていなかった植物の生態を利用することで、安価に効果的な灌漑を実現できるという。矢野勝也助教に同技術の詳細をお聞きした。 マメ科の植物。キマメ(樹豆)という名称は、茎や枝が木のようになることから名付けられた。 植物の根は水を放出していた ──植物スプリンクラーという灌漑技術を研究されているということですが、これはどのようなものなのですか? キマメや牧草の多くは深

    Cherenkov
    Cherenkov 2008/12/06
    植物の根は水を放出していた
  • マリオが現実界を爆走:動画 | WIRED VISION

    マリオが現実界を爆走:動画 2008年12月 5日 カルチャー コメント: トラックバック (0) Earnest Cavalli MARIO KART (REMI GAILLARD) by nqtv 悪名高いフランスのコメディアンRemi Gaillard(レミ・ガイヤール)氏が、驚くほどよく出来た現実版マリオの動画を制作した。 バナナの皮も投げるほか、レトロな任天堂のゲーム音楽や口ヒゲなどで、マリオの有名なカートレースを再現している。 見てくれればもう説明はいらないだろう。ただ、おうちで真似をしてはいけません。フランスの通りではオープンカートを運転できるかもしれないが、米国の高速道路でクラッシュしたら大変だ。 [Remi Gaillard氏はいろいろな動画を公開している。以下はSumo] WIRED NEWS 原文(English)

    Cherenkov
    Cherenkov 2008/12/06
    リアルマリオカート
  • ノードの集合を「ドキュメント順」に高速に並べ替える。その1 - IT戦記

    ドキュメント順とは何か? ドキュメント順とは、簡単に言えば「XML のソース上の前にある順」のこと。 詳しくはこのへんを見てね。 XPath ではこの「ドキュメント順」という概念がよく登場する。 たとえば、ノードを文字列化するときは子孫テキストノードを「ドキュメント順」に文字列として連結しなければならない。とかとか でも、このドキュメント順へのソート 考えただけでもめちゃめちゃ重そうだ・・・。 いろいろ考えてみた。 XPath 実行中はドキュメント順が変わることがないので、DOM アクセスはキャッシュできる。 ノードの集合は木構造で保存したほうが比較回数が少なくてすむ(アルゴリズム初心者なので、実際に早いか検証しないと><) で、今回は DOM アクセスをキャッシュしながらノードを比較する関数を作る 汎用的に作ったので XPath 目的以外でも使えます。 var order = funct

    ノードの集合を「ドキュメント順」に高速に並べ替える。その1 - IT戦記
  • 出張しぶや JS の CM - IT戦記

    みんな来てね>< ちなみに、 s/仁志/仁史/ だったりw

    出張しぶや JS の CM - IT戦記
    Cherenkov
    Cherenkov 2008/12/06
    動くamachangとpiro
  • IT戦記 - JavaScript の this について

    WEB+DB PRESS 編集の R たんから、僕の連載記事に読者様から質問が来ていると教えていただいたので、その内容を教えていただきました。 以下、内容を転載 「JavaScriptわくわく開発道」の記事に関して質問です。 今回の内容で特に興味を持ったのはthisキーワードの振る舞いでした。 thisキーワードの説明には、オブジェクト型の変数を別の変数にコピーしてから初期化すると、コピーした変数からメソッドを実行できなくなるという例が紹介されていました。 そこには「(1)の時点でobj0には{}が入っているため、hogeは未定義となってしまう」という説明があるのですが、誌面の都合上省略があるためか、thisキーワードを用いることで問題を回避できるという理由がなかなか理解できないでいます。 自分なりに考えてみたところ、内部的には以下のようなことが起きているのではないかと思いました。 (1)

    IT戦記 - JavaScript の this について
  • IT戦記 - 一行で IE の JavaScript を高速化する方法

    以下の一行をすべての JavaScript の前に読み込む /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。 たとえば 以下のように、読み込む前と読み込んだ後を比較してみます。 // Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 643 /*@cc_on _d=document;eval('var document=_d')@*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date -

    IT戦記 - 一行で IE の JavaScript を高速化する方法
  • Firebug のコンソールに出力される形式を変える - IT戦記

    そう>< length が数字だと無条件で配列扱いなんですよね。 childNodesとコメント - ロックスターになりたい という訳で、 domplate をちょっといじってみたら意外と楽に出来たのでメモメモ domplate は Firebug のテンプレートエンジン コンソールの形式を定義したオブジェクトを作る 自分が担当するオブジェクトが supportsObject に渡ってきたら true を返す tag はコンソールに出るときのテンプレート(domplate) shortTag は配列の中に入ってるときのテンプレート(domplate) getTitle はプロパティの中に入ってるときの文字列(たぶん?) 作ったオブジェクトは registerRep に入れる image diff Index: reps.js ================================

    Firebug のコンソールに出力される形式を変える - IT戦記
  • AutoPagerize の SITEINFO を JSON 化するブックマークレット - IT戦記

    実際に使われている XPath のデータを大量に欲しかったので どうしよーって悩んでたら 。。。!!!AutoPagerize があるじゃん!!! ってことで SITEINFO を JSON 化するブックマークレット作った。(既出? ブックマークレット javascript:(function(){var result = document.evaluate('//textarea[@class="autopagerize_data"]',document, null, 7, null); var array = [];for (var i = 0, l = result.snapshotLength; i < l; i ++) {var data = result.snapshotItem(i).value;var json = '({' + data.replace(/\s*$/, '

    AutoPagerize の SITEINFO を JSON 化するブックマークレット - IT戦記
    Cherenkov
    Cherenkov 2008/12/06
    xpathをJSON化
  • for 文を setTimeout に変換する - IT戦記

    for 文で 100 項目とか 1000 項目とかあるテストケースを処理するとブラウザが固まる。 こんなダイアログが表示されます。 ということで for 文を setTimeout や setInterval に変換する事で定期的にブラウザに処理を戻すことができる。 // ここでは console.log のところでログを取ってますが // 通常は処理が入ります。 for (var i = 0; i < 3; i ++) { console.log('a' + i); } /* * 結果 * a0 * a1 * a2 */ これをまず while 文に変換 var i = 0; while (true) { if (!(i < 3)) break; console.log('a' + i); i ++; } /* * 結果 * a0 * a1 * a2 */ で、 setTimeout に

    for 文を setTimeout に変換する - IT戦記
    Cherenkov
    Cherenkov 2008/12/06
    変換変換!
  • JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記

    JavaScript-XPath とは JavaScript-XPath は、 DOM 3 XPath を実装していないブラウザに対して、実用的な速度で動作する DOM 3 XPath のエンジンを追加します。 一言で乱暴に言ってしまえば、どのブラウザでも document.evaluate って関数で XPath 使えるようになるよ!ってことです。 以下が公式サイトになります。 http://coderepos.org/share/wiki/JavaScript-XPath DOM 3 XPath ってなんなの!? めっちゃ簡単(で、ちょっとだけ適当)なDOM 3 XPath の説明をします><。 JavaScript でよく使う document.getElementById や document.getElementsByTagName って関数ありますよね? DOM 3 XPath

    JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記
  • Firebug に一行追記して右クリックで XPath をコピペ出来るようにする。 - IT戦記

    この XPath 使いたい>< って思うことよくありませんか? サイト見てて、あ、このボタンにグリモンであんな機能やこんな機能付けたい><!って思うこととかありますよね! そんなときに、いちいち要素の位置とか考えずに右クリックで XPath をコピペできたら嬉しいですよね>< ってことで 作ってみた イメージはこんな感じです。 これをクリックすると、右クリックされた要素の XPath がクリップボードにコピーされます。 この機能を Firebug に実装する手順 1. Firefox のプロファイルディレクトリに行く 環境 プロファイルディレクトリ WinVista C:\Users\[ユーザ名]\AppData\Roaming\Mozilla\Firefox\Profiles\[ランダムな文字].default\ WinXP C:\Documents and Settings\[ユーザ名

    Firebug に一行追記して右クリックで XPath をコピペ出来るようにする。 - IT戦記
  • Firebug を「カクカク化」して $x の第 2 引数でコンテキストノードを指定できるようにする。 - IT戦記

    twitter の id:ZIGOROu と id:ku0522 の会話で $x の第 2 引数コンテキストノード指定出来たらいいよねーって話しがあって 作ろうと思って 作ったら id:os0x さんが先に作ってて http://d.hatena.ne.jp/os0x/20071213/1197515856 実装もほとんど同じだったので凹みつつ まあ、もったいないので晒そうとか思った。 で 今回は「チョコチョコいじれる化」しないでやる方法でやってみましょう。 題して 「拡張機能内に自分用の拡張空間を作っとく化」略して「カクカク化」 カクカク化で Firebug を拡張する手順は以下のようになります。 Firebug の拡張機能用のディレクトリに行く 環境 Firebug の拡張機能用のディレクトリ WinVista C:\Users\[ユーザ名]\AppData\Roaming\Mozil

    Firebug を「カクカク化」して $x の第 2 引数でコンテキストノードを指定できるようにする。 - IT戦記
  • JavaScript1.7 の yield を使って、非同期処理を同期処理のように書く方法 - IT戦記

    経緯 id:kazuhooku さんが一年前にやってたことですが Kazuho@Cybozu Labs: JavaScript/1.7 で協調的マルチスレッド 今日やっと挙動が理解できたのと、 Weave のソースを読んでいたらこのテクニックをバリバリ使っていて「ちょwwおまwww」ってなったので、自分でも作ってみようと思いました。 ほとんど id:kazuhooku さんのと同じものなので、既出です><当にありがとうございました>< まず、 yield とは何か yield とは、 JavaScript 1.7 から導入された機能です。 以下に yield の細かい挙動を示しておきます。 function f() { // なんかの処理 yield; // ... (1) // なんかの処理 yield; // ... (2) // なんかの処理 } var g = f(); // こ

    JavaScript1.7 の yield を使って、非同期処理を同期処理のように書く方法 - IT戦記
    Cherenkov
    Cherenkov 2008/12/06
    yield とは何か
  • javascript でメモ化 - IT戦記

    Function.prototype.state = function() { return undefined }; force = function(v) { return typeof v == 'function' && v.length == 0 ? force(v()) : v; }; memo = function(f, k, v) { var state = f.state; f.state = f.state(k) !== undefined ? state : function(a) { return a === k ? v : state(a) } return v; }; memoise = function(f) { return function(k) { var v = f.state(k); return v !== undefined ? v : memo

    javascript でメモ化 - IT戦記
    Cherenkov
    Cherenkov 2008/12/06
    javascript でメモ化
  • 特集:Firefox 3とFirebugで始めるJavaScript開発|gihyo.jp … 技術評論社

    第3回Command Line APIとその活用、各タブからのデバッグ方法 堀邦明 2008-05-21

    特集:Firefox 3とFirebugで始めるJavaScript開発|gihyo.jp … 技術評論社
  • onclick 属性問題について - IT戦記

    気でやるならonclick属性は避けてライブラリを活用すべき - 帰ってきたHolyGrailとHoryGrailの区別がつかない日記 に関して この先、 HTML に onclick と書いても石を投げられないように書いておく>< 僕も onclick 属性がダメだと思っていた時代もありました。でも、今は時々使うなあ。 (あ、でも、 HTML と JS で分業している場合は、使わないほうがいいよね^^;そこだけは言っておく。) JavaScript 入門の記事を書くときに onclick 属性がダメだとしたら、いろいろ質的でないことを説明しなきゃいけない。 現状では onclick 属性が、もっとも簡単に HTML にイベントをマッピングできる方法だから、そんなに目くじらたてなくてもいいんじゃないかなあ? たとえば 以下は、クリック時に href に GET を送るための oncli

    onclick 属性問題について - IT戦記
  • CSS セレクタを学ぶなどしてみた - 理系学生日記

    スクレイピングしたいなーと思いまして,スパイダリングとともにスクレイピングも載ってるという噂の spidering hacks を読むなどしてみました. ISBN:978-4873111872:detail ところが,途中まで読んで気づいたのが,このには Web::Scraper が載っていない. たぶん,出版時点で Web::Scraper は開発されてなかった これはもう,web を使いながら自分で覚えていくしかないかなーと,ぼくは Scraper をちょっと勉強することにした. HTML 中の抜き出したい要素をどうやって指定するかについては,CSS セレクタと XPath があるみたいですね.ぼくは両方とも,概要しか知らんなーと思って,まずは楽そうな CSS セレクタを見てみた! 研修の休み時間とかに必死こいて見てたよー.たぶん,CSS セレクタの最新の仕様はこれかな.workin

    CSS セレクタを学ぶなどしてみた - 理系学生日記
  • CSS のセレクタの名前の整理 - IT戦記

    はじめに 「CSS のセレクタ」っていうと以下のようなものを想像すると思うんですけど div.container ul > li じゃあ、 div はセレクタ? .container はセレクタ? div.container はセレクタ? > はセレクタ? などなど色々と疑問が出てくる訳で、どういう名前で呼べばいいか。自分のために書いておく。 これ系のエントリでは、以下のエントリが一番参考になります http://d.hatena.ne.jp/kiririmode/20080516/p1 Selectors group カンマで区切られたセレクタのリスト div.container ul > li, div#hoge.hoge ~ span#fuga.fuga Selector カンマで区切られてる一個一個のやつ div.container ul > li とか div#hoge.hoge

    CSS のセレクタの名前の整理 - IT戦記
  • 正規表現の XPath 字句解析その2 - IT戦記

    またまた XPath ネタです。 先日、XPath の字句解析をワンライナーで作ってみた。 - IT戦記で書いた正規表現の XPath 字句解析ですが、よく考えるといろいろおかしかった(不正な文字が無視されたりする)& id:otsune さんからコメントやブクマの突っ込みもありまして、1から正規表現を勉強してから新しく書き直すことにしました。 正規表現の勉強方法 以下の二つの方法で勉強しました。 1.SpiderMonkey の正規表現デバッグオプションを使う SpiderMonkey をビルドするときに、以下のフラグを付けてビルドします。 $ make -f Makefile.ref "DEFINES=-DREGEXP_DEBUG -DDEBUG"こうすると正規表現がどういう風に実行されたかを調べることができます。 こんな感じ $ js js> 'foobar'.match(/o+/)

    正規表現の XPath 字句解析その2 - IT戦記
  • JavaScript の関数を「引数そのまま返す化」

    関数を「引数そのまま返す化」 // sonomama の s Function.prototype.s = function(arg) this(arg); // 来の処理 return arg; // そのまま返す } 例1 hoge.method(); // ← この hoge を調べたい alertだけ alert(hoge); hoge.method(); 改行めんどいー。 console.logだけ console.log(hoge); hoge.method(); 改行めんどいー。 alert + そのまま返す化 alert.s(hoge).method(); // 1 ステートのまま console.log + そのまま返す化 console.log.s(hoge).method(); // 1 ステートのまま 例2 function hoge() { // ...略...

    JavaScript の関数を「引数そのまま返す化」
  • 夜空に現れた「笑顔」を見て世界中の人々が一言 : らばQ

    夜空に現れた「笑顔」を見て世界中の人々が一言 月と星がうまく目と口の位置になって、スマイリーフェイスになっているという、ほのぼのした写真が海外サイトで話題になっていました。 めったにない自然の面白い組み合わせとして、いろいろコメントが寄せられていたのでご紹介します。 ・これホント?ホントならグー! ・月と木星と金星が組み合わさっているらしい。 ・オレはこの目で見たよ。写真に撮ればよかった。 ・ぼくはオーストラリアの空から見た。違いは顔が右側に傾いていたことかな。 ・すごいね。 ・ホントだよ。昨晩ニュースで見たよ。いい写真だ。 ・私が見たときはスマイルじゃなかった。 ・次にこれが見られるのは2035年あたりだそうだ。 ・ここブラジルからは、しかめ顔だった。 ・ここはニューヨークだけど、悲しい顔になっていた。 ・そのスマイルは昨晩のメルボルンで見られた。 ・ここサウスキャロライナ州でもしかめ面

    夜空に現れた「笑顔」を見て世界中の人々が一言 : らばQ
  • シャチに食べられそうなペンギン、なんと人間のボートに乗り込んでセーフ!(動画) : らばQ

    シャチにべられそうなペンギン、なんと人間のボートに乗り込んでセーフ!(動画) 自然界では弱肉強が当たり前なので、小動物が強い肉動物にべられる姿は珍しくありません。 南極ではペンギンたちが、天敵のシャチに狙われていました。 必死に逃げるペンギン、追いすがるシャチ。 今にもべられそうなペンギンがシャチから逃げ切るため、人間の乗るボートに乗り込んできました。 LiveLeak.com - Penguin finds safety from Killer Whale’s attack on small boat 小さなペンギンが狙われている様子は、今にも捕まりそうでひやひやしますが、ぴょんと飛び乗った人間のボート。 そこには安全ということにペンギンは気づいたようです。 人間を目の前にしても動じず、ボートを降りる気がさらさらなさそうなペンギンがかわいいですね。 ペンギン「ちょっとココで休憩

    シャチに食べられそうなペンギン、なんと人間のボートに乗り込んでセーフ!(動画) : らばQ
  • 戦争を止めるため、パプアニューギニアの女性たちが男の赤ちゃんを全て殺害 : らばQ

    戦争を止めるため、パプアニューギニアの女性たちが男の赤ちゃんを全て殺害 戦争というのはどうして起こるのでしょうか。そしてどうしたら止まるのでしょうか。 パプアニューギニアのジャングルの中でも、部族同士の戦いが起こっていました。2つの村で、かれこれ20年近くも若者が死んできたのです。 その戦争をやめさせるために2つの村の女性たちが始めたことは… 生まれた赤ちゃんが男の子であれば、すぐに殺してしまうということでした。 村から男性を完全になくしてしまい、戦う者がいなくなれば、村にも未来があると女性たちは考えたのです。 どの男の赤ちゃんも成長すると、戦士となって部族間闘争に参加してしまうためです。 この戦いに嫌気をさした2つの村の女性全員が、男の赤ちゃんが生まれたら殺してしまうことに賛同したのだそうです。 村の女性の一人はもう何人の赤ちゃんが殺されたかわからないと伝えていますが、10年くらい前から

    戦争を止めるため、パプアニューギニアの女性たちが男の赤ちゃんを全て殺害 : らばQ
    Cherenkov
    Cherenkov 2008/12/06
    さすが女系社会
  • 手作り感がクール…17000本の押しピンで描かれたマリオ : らばQ

    手作り感がクール…17000の押しピンで描かれたマリオ 押しピン(ダルマ式画鋲(がびょう))はプラスチック部分がカラフルですが、それを使ってスーパーマリオのドット絵を表現したそうです。 その数なんと1万7千、微妙なずれ具合がちょっとアナログな感じも出ていて味があります。 カナダのフレーザーバレー大学の学生たちによるもので、構内のコンピュータセンターに掲示してあるそうです。 プリントアウトされたマリオの画像を見ながら、輪郭を描いている様子。 背景が白のままでもオシャレですね。 マリオ。 クリボー。 ドット絵と押しピンは相性よすぎですね。 斜めから見ても綺麗な仕上がり。 刺したくてウズウズしてきます。 真似してみたくなりますが、絵心が無いと悲惨なことになりそうです。 どこか穴の位置が示されたボードと押しピンのキットを出してくれないでしょうか。 その他の画像や大きな画像は以下よりどうぞ Pu

    手作り感がクール…17000本の押しピンで描かれたマリオ : らばQ
  • 一粒で二度美味しい…水面に反射する景色の写真11枚 : らばQ

    一粒で二度美味しい…水面に反射する景色の写真11枚 日で水面に反射する美しい景色、といわれて真っ先に思い浮かぶのは、逆さ富士でしょう。 気候条件が難しいためなかなか見ることはできませんが、富士山に限らず水面に映る景色には幻想的な魅力があります。 水面に反射したいろいろな景色ご覧ください。 橋 上下あわせて綺麗な輪っか。 吸い込まれそうな真円。 映りこむ夜景。 庭園。 大きなアーチ。 建物 揺らぐ高層ビル。 異国情緒も倍増。 CGのような美しさ。 ファンタジーに出てきそうな古城。 自然 ド迫力の雲。 この世のものとは思えない幻想。 その他の画像は以下よりどうぞ。 21 Mirrored Images & Reflected Photographs | WebUrbanistより NHK富士山 2009年カレンダーposted with amazlet at 08.11.30 NHKサービス

    一粒で二度美味しい…水面に反射する景色の写真11枚 : らばQ
    Cherenkov
    Cherenkov 2008/12/06
    ボリビアのウユニ塩湖もいいよ!