「どう羽生」読み終えた
どうして羽生さんだけが、そんなに強いんですか?―現代将棋と進化の物語
- 作者: 梅田望夫
- 出版社/メーカー: 中央公論新社
- 発売日: 2010/11/25
- メディア: 単行本
- 購入: 66人 クリック: 1,407回
- この商品を含むブログ (58件) を見る
本書で非常に印象深かったことをいくつか。
- 山崎七段との対局での「怒り」にまつわるエピソード。
- 羽生さんにはいわゆる「羽生流」のような得意戦法がないこと。
- 2手目84歩問題。
先が気になって気になって一気に読み終えた感じだったので、2回目は棋譜も含めゆっくり読んでみる。
借りてきた
久々に色々借りてきた。
- アーティスト: Funeral for a Friend
- 出版社/メーカー: Atlantic / Wea
- 発売日: 2005/06/14
- メディア: CD
- クリック: 1回
- この商品を含むブログ (17件) を見る
- アーティスト: WHITESNAKE
- 出版社/メーカー: PLG
- 発売日: 2010/04/05
- メディア: CD
- クリック: 1回
- この商品を含むブログ (2件) を見る
- アーティスト: Avenged Sevenfold
- 出版社/メーカー: Warner Bros / Wea
- 発売日: 2007/10/30
- メディア: CD
- クリック: 9回
- この商品を含むブログ (6件) を見る
- アーティスト: Norah Jones
- 出版社/メーカー: Blue Note Records
- 発売日: 2009/11/17
- メディア: CD
- 購入: 6人 クリック: 19回
- この商品を含むブログ (23件) を見る
jQueryのeachを逆順から回したい
$($("div").get().reverse()).each(fucntion(){ ... })
いったん通常のDOM配列にしてから逆順にし、さらにjQueryオブジェクトに戻してeach。
しかし、これだとeach自体は正順で回っているので、
本当は降順にアクセスできたらいいのだけど。
拡張しやがれということか。
jQueryで要素の存在チェック
例えばid="elem"という要素について存在チェックを行うとき。
getElementById()の発想でやるとだめみたい。
これだと必ずtrueになる。
if($("#elem")){ … }
メソッドまで拾ってやる必要がある。
if($("#elem").size()>0) if($("#elem").length) if($("#elem").get(0))
また、これでもよいらしい。
if($("#elem")!=null)
買った
- 作者: 上野修
- 出版社/メーカー: 講談社
- 発売日: 2005/04/19
- メディア: 新書
- 購入: 16人 クリック: 117回
- この商品を含むブログ (132件) を見る
スコープとかevalのメモ
var x=0; (function(){ x=1; var x=2; console.log(x); //2 })(); console.log(x); //0
グローバルとローカルにxという同名の変数が扱われているとして、ポイントは無名関数内の最初のx=1の代入部分、そして、その下のvar宣言。
var宣言は、どこにあろうともその直近スコープのトップレベルで宣言されたものとしてみなされる、という性質がある。
つまり処理の流れで書き直すとこうなる。
var x=0; (function(){ var x; x=1; x=2; console.log(x); //2 })(); console.log(x); //0
最初のコードでは、あたかもx=1はグローバルのxに代入しているように見えるが、
var文が先行され、スコープチェインでローカルのxにスコープが当たっている。
さらにvarと同時にx=2で初期化をしているつもりだが、あくまで宣言だけされた後で逐次的にx=1;x=2;と処理されるため、x=2の初期化のあとでx=1に上書きされるということにはならない。
※「変数値」はいったんundefindで定義されてから、コードの実行順で処理される。
evalすると
var x=0; (function(){ x=1; eval("var x=2;"); console.log(x); //2 })(); console.log(x); //1
見事に結果が変わってしまう。
関数内のx=1では、この時点でローカルスコープ内のxが存在せず、スコープチェインを辿ってグローバルを参照しそこを上書きする。
evalによってローカル変数は直後にダイナミックに宣言され、その直前のx=1には干渉していない。
とりあえずまとめ
・通常変数宣言は、スコープのトップレベルで宣言したものとみなされる。
・evalしたvar文は、実行コンテキスト中で変数宣言の割り込みが可能になる。
2010年1月ブラウザシェア
http://journal.mycom.co.jp/news/2010/02/01/020/index.html
順位 バージョン別ブラウザ シェア 推移 備考 1 IE8 22.31% ↑ 2位から1位へ浮上 2 IE6 20.07% ↓ 1位から2位へ下落 3 Firefox3.5 17.10% ↑ 4 IE7 14.58% ↓ 5 Firefox3.0 5.29% ↓ 6 Chrome3.0 3.92% ↑ 7 Safari4.0 3.55% ↑ 8 IE8互換モード 2.79% ↓ 9 Opera 10.x 1.65% ↑ 10 Chrome 4.0 0.75% ↑ 12位から10位へ浮上 11 Firefox 3.6 1.07% 11位に登場 12 Firefox 2.0 0.79% ↓ 10位から12位へ下落 13 Opera 9.x 0.70% ↓ 11位から13位へ下落
Chromeの成長がすごい。
GoogleがIE6のサポートをやめるという発表もありましたので、これはありがたい話。
業界全体として、古いブラウザを切り捨てる方向に向かってほしいと思う。
現在これを読んでいます。
- 作者: 日経コンピュータ
- 出版社/メーカー: 日経BP社
- 発売日: 2009/12/10
- メディア: 単行本
- 購入: 4人 クリック: 351回
- この商品を含むブログ (58件) を見る