はてなキーワード: Mapとは
さっさとgoogle版GORILLA出せ
SSD 32GB×2
もう一方は音楽、動画、画像のデータ保存専用、もちろんをitunesで処理
これで5万以下なら日本国内で1000万台夢じゃねーぞ
少し遅れた感があるけど、解いてみた。
出力がテキストでないけど・・・。
仕事の合間を使ってやったものの、昼前に始めたのが5時頃にようやくできる程度。
これを25分とは尋常じゃないな、大口叩くだけあってよっぽど優秀なんだろう。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"> <!-- pre { font-family: monospace; } --> </style> <script type="text/javascript"> <!-- window.onload = function() { var q = new Map(); q.load("maptest.txt"); q.search(); var answer = document.getElementsByTagName("pre").item(0); var answerText = "\r\n"; for(var ix = 0; ix < q.route.length; ix++) { answerText += q.route[ix].join("") + "\r\n"; } answer.firstChild.data = answerText; alert("終了しました。"); }; /** マップオブジェクト */ function Map() { this.ymap = []; this.route = []; } //マップの読み込み Map.prototype.load = function(filePath) { //ファイルシステム var fileSystem = new ActiveXObject("Scripting.FileSystemObject"); //ファイル読み込み var file = fileSystem.OpenTextFile(filePath); while(!file.AtEndOfLine) { var fileBuffer = file.ReadLine(); this.ymap.push(fileBuffer.split("")); } file.Close(); fileSystem = null; }; //マップの探索 Map.prototype.search = function() { var that = this; //マップコピー var ymap = this.ymap.concat(); for(var y = 0; y < ymap.length; y++) { ymap[y] = ymap[y].concat(); for(var x = 0; x < ymap[y].length; x++) { if(ymap[y][x] == "S") var start = new MapNode(y, x); if(ymap[y][x] == "G") var goal = new MapNode(y, x); } } var openList = []; var closeList = []; start.costf = start.distance(goal); openList.push(start); //経路探索 while(openList.length > 0) { var node = openList.shift(); //探索終了 if(goal.equal(node)) { createRoute(node); break; } closeList.push(node); //隣接ノードの作成 var tonari = []; if( ymap[node.positionY][node.positionX - 1] == " " || ymap[node.positionY][node.positionX - 1] == "G" ) tonari.push(new MapNode(node.positionY, node.positionX - 1, node)); if( ymap[node.positionY - 1][node.positionX] == " " || ymap[node.positionY - 1][node.positionX] == "G" ) tonari.push(new MapNode(node.positionY - 1, node.positionX, node)); if( ymap[node.positionY][node.positionX + 1] == " " || ymap[node.positionY][node.positionX + 1] == "G" ) tonari.push(new MapNode(node.positionY, node.positionX + 1, node)); if( ymap[node.positionY + 1][node.positionX] == " " || ymap[node.positionY + 1][node.positionX] == "G" ) tonari.push(new MapNode(node.positionY + 1, node.positionX, node)); //隣接ノードの検索 for(var tx = 0; tx < tonari.length; tx++) { var openIn = false; var closeIn = false; tonari[tx].cost = node.cost + 1; var costf = tonari[tx].cost + tonari[tx].distance(goal); tonari[tx].costf = costf; //オープンリストから検索し入れ替える。 for(var ox = 0; ox < openList.length; ox++) { if(tonari[tx].equal(openList[ox])) { openIn = true; if(costf < openList[ox].costf) { openList.splice(ox, 1); push(openList, tonari[tx]); } break; } } //クローズリストから検索し、オープンリストへ移す。 for(var cx = 0; cx < closeList.length; cx++) { if(tonari[tx].equal(closeList[cx])) { closeIn = true; if(costf < closeList[cx].costf) { closeList.splice(cx, 1); push(openList, tonari[tx]); } break; } } //どちらにもない場合、オープンリストへ追加する。 if(!openIn &amp;&amp; !closeIn) push(openList, tonari[tx]); } } //適切な位置に追加する。 function push(array, item) { for(var ix = 0; ix < array.length; ix++) { if(item.costf < array[ix].costf) { array.splice(ix, 0, item); return; } } array.push(item); } //ルートマップの作成 function createRoute(lastNode) { var node = lastNode.parent; while(node.parent) { ymap[node.positionY][node.positionX] = "$"; node = node.parent; } that.route = ymap; } }; /** マップノード */ function MapNode(y, x, parentNode) { this.positionY = y; this.positionX = x; this.parent = parentNode; this.cost = 0; this.costf = 0; } //同一ノードかチェックする。 MapNode.prototype.equal = function(targetNode) { if( this.positionY == targetNode.positionY &amp;&amp; this.positionX == targetNode.positionX ) return true; return false; }; //直線距離を求める。 MapNode.prototype.distance = function(targetNode) { sabunY = this.positionY - targetNode.positionY; sabunX = this.positionX - targetNode.positionX; return sabunY ^ 2 + sabunX ^ 2; }; // --> </script> <title>経路探索:A*</title> </head> <body> <pre>&nbsp;</pre> </body> </html>
この辺の迷路探索ができないソフト屋って何よ?話 -> http://app.cocolog-nifty.com/t/trackback/73665/47262245
実は最初深さ優先で作ってしまい、非最適な解き方で止まってしまっていた。
こういうのを30分切れないようでは駄目なんだろうな。
#!/usr/bin/ruby move = [[-1,0],[1,0],[0,-1],[0,1]] maze = $stdin.readlines.map{|s| s.chomp!} maze.each_with_index do |row,i| if j = row.index("S"); S = [i,j]; end if j = row.index("G"); G = [i,j]; end end seen = {} prev = {} curr = [S] until curr.include?(G) plan = [] curr.each do |c| seen[c] = true move.map{|i,j| [c[0]+i, c[1]+j]}.each do |p| next if seen[p] || maze[p[0]][p[1]].chr == "*" prev[p] = c plan << p end end curr = plan end p = G maze[p[0]][p[1]] = '#' while p = prev[p] puts maze
ttp://tsushima.2ch.net/test/read.cgi/newsplus/1255514059/
6 :名無しさん@十周年:2009/10/14(水) 16:34:33 ID:E/swdIG70
嫁がいるなら行く
養子に行ってもいい
19 :名無しさん@十周年:2009/10/14(水) 16:36:20 ID:O5LPCCsA0
>>6
つ 65歳の嫁
9 :名無しさん@十周年:2009/10/14(水) 16:34:48 ID:ZnvdUy3yP
生活保護家庭を強制移住させればいいんじゃあないのか ?
35 :名無しさん@十周年:2009/10/14(水) 16:38:32 ID:4x5L4JJH0
住居只、16万は毎月提供、村活性化したときの歳入や農業での副収入を考えると
全く悪くないと思う俺元農民だが
ネットがないとな・・・
667 :名無しさん@十周年:2009/10/14(水) 17:32:35 ID:DSZUPqSi0
>>35
正直なところ、何をやっても活性化はしないと思うわけだが
56 :名無しさん@十周年:2009/10/14(水) 16:41:24 ID:zn14FHwF0
78 :名無しさん@十周年:2009/10/14(水) 16:44:05 ID:N0Edu+CP0
79 :名無しさん@十周年:2009/10/14(水) 16:44:07 ID:Q4rbTUvT0
村の陰湿さと 奴隷の悲惨さと 派遣の未来の無さを兼ね備えた企画だ。
104 :名無しさん@十周年:2009/10/14(水) 16:46:44 ID:4ZYcrjmV0
好き勝手なことやっていいとは書いてないからな。
年寄りの病院への送り向えとか、耕作放棄農地の手入れだとか、買出しだとか
いろいろな雑務が待っていると予想できる。
24時間体制で年寄りの状態をみて回れってこともあると想像できる。
118 :名無しさん@十周年:2009/10/14(水) 16:48:17 ID:Ob4IRZmC0
募集がたった2名て…。一体何をさせる気だ。
119 :名無しさん@十周年:2009/10/14(水) 16:48:40 ID:A9ZWaRQY0
……そりゃ限界集落にもなるわな。
派遣よりも酷い条件な上に、募集している側がそれに気付いていない。
頭の悪い手伝いを何人も雇う位なら、官僚クラスの頭の良い奴を一人雇った方が良い。
121 :名無しさん@十周年:2009/10/14(水) 16:48:57 ID:vk62jb+t0
住居タダなら月額20万相当にはなるな
123 :名無しさん@十周年:2009/10/14(水) 16:49:28 ID:ITVAkdBf0
はい、無休決定
142 :名無しさん@十周年:2009/10/14(水) 16:51:11 ID:xd02my3s0
そっからメシ代や田舎での生活道具とかで貯金なんか1万できるかどうか
こりゃひどすぎだろ・・
150 :名無しさん@十周年:2009/10/14(水) 16:51:43 ID:ph5EtRkD0
平均年齢が60を超えてるようなとこで 過疎化を食い止めたいとか
手遅れすぎるだろ
174 :名無しさん@十周年:2009/10/14(水) 16:54:07 ID:7Vm5Y3AQO
刑務所に行ったと思って
昼は働き自炊
夜はなるべく金を使わず勉強でもしてりゃ
人生行き詰まった奴等にはいい再生のきっかけになるんじゃない。
175 :名無しさん@十周年:2009/10/14(水) 16:54:25 ID:VTt7FMDS0
冷たくすればまた面倒くさいし
187 :名無しさん@十周年:2009/10/14(水) 16:55:41 ID:zn14FHwF0
この作業で、2名ってのはあり得ない話。
深夜や早朝の交代要員も含めて、最低6人くらい配置しないと無理だぞ
194 :名無しさん@十周年:2009/10/14(水) 16:56:01 ID:4ZYcrjmV0
雪かきもあるよな。雪の降らないところにすんでいると盲点になるな。
2人で雪かき要員か。4人くらい募集しないと倒れて死ぬ奴でそうだな。
209 :名無しさん@十周年:2009/10/14(水) 16:57:21 ID:wxkl/Zy40
まじめな話、地区内の「最後の農家」がやめちゃって誰も農業をやってないんじゃね?
地区の人たちはどうやって食ってるんだ?
227 :名無しさん@十周年:2009/10/14(水) 16:59:39 ID:QU0NEYut0
>>209
>隊員が入る八木沢地区は7世帯16人で、うち12人が65歳以上だ。
16人のうち12人が年金受給者。
残り4人も近々受給者になるんじゃね?w
212 :名無しさん@十周年:2009/10/14(水) 16:57:47 ID:oyD0j9Qj0
214 :名無しさん@十周年:2009/10/14(水) 16:57:57 ID:u3s4/8Tq0
・スタミナがそれなりにある。
・じっちゃんばっちゃんの長話に付き合える。愛想がいいと尚よし。
(中には耳が遠いのや、話を繰り返すのがいて、しかもそういうのに限って長話)
・基本、労働は非定時。早く終わる時もあるし、目処が立つまでは延々と終わらない事もある。
・金が無い。する事も無い。
以上の条件に当てはまる人は即Goだ
219 :名無しさん@十周年:2009/10/14(水) 16:58:46 ID:/Kyhd7RjO
過労死するか、逃げるかするまでこき使われそうだな
251 :名無しさん@十周年:2009/10/14(水) 17:01:59 ID:h58guTDV0
外国人労働者でも雇え
252 :名無しさん@十周年:2009/10/14(水) 17:02:05 ID:AwkU09TS0
ネットがあれば2ちゃんにスレ立てて毎日の活動を書き込をみして盛り上げていけば面白そう
261 :名無しさん@十周年:2009/10/14(水) 17:02:58 ID:wBOPrq580
いやいやいやこれ労基守る気ないだろ
休日とか関係ない業務ばっかりじゃねーか。
285 :名無しさん@十周年:2009/10/14(水) 17:05:38 ID:q2zmgPaI0
ド田舎の何も無いところでジジババの相手とか無理だろ
287 :名無しさん@十周年:2009/10/14(水) 17:05:59 ID:kV1xzq6Z0
ttp://www.vill.kamikoani.akita.jp/div/kikaku/pdf/chiiki-okoshi/yagisawa-buraku.pdf
310 :名無しさん@十周年:2009/10/14(水) 17:08:13 ID:Ufl9XIKU0
>>287
294 :名無しさん@十周年:2009/10/14(水) 17:06:34 ID:zQew8vHC0
ttp://www.vill.kamikoani.akita.jp/forms/info/info.aspx?info_id=13606
2.活動内容
(1)農林水産業への従事活動
(2)水源地の整備、清掃活動
(5)その他村長が必要と認めた活動
_ノ乙(、ン、)_ これで週5日勤務1日7時間ってw
そして、最後の村長が必要と認めた活動ってwww
304 :名無しさん@十周年:2009/10/14(水) 17:07:45 ID:2Npzz5uw0
農作業に雪かきに老人のつきそいで16万か・・・・・・・・安すぎ
309 :名無しさん@十周年:2009/10/14(水) 17:08:11 ID:aU3Vf98c0
たぶん村の財政きついから、どんなアイディアも却下にならないか?
住民の雑用・世話しながら農業する暇があるかわからないし、
315 :名無しさん@十周年:2009/10/14(水) 17:08:30 ID:9MY75yoc0
月給16万で、老人の世話をして肉体労働をして
あほか。
331 :名無しさん@十周年:2009/10/14(水) 17:09:53 ID:uxJfff3pO
若者が2人くらい住んだところで何ともならんだろ
雪かき要員1000人くらい募集しろよ
332 :名無しさん@十周年:2009/10/14(水) 17:09:54 ID:OGh7axhX0
田舎ってさ 人手=タダ って考えなんだよな
介護事業がそれでえらいめにあった
金払うならこき使わなきゃって契約にないことを次々と言いつけるんだってさ
田舎モンをなめちゃいかん
334 :名無しさん@十周年:2009/10/14(水) 17:10:02 ID:SebHlxQT0
何をしても活性化なんて無理だと思った
そして給料保証+住宅付きでもあんな所に住むのはかなりの覚悟が必要
342 :名無しさん@十周年:2009/10/14(水) 17:11:07 ID:Id4AFBKl0
コミュ力ないおまえらには無理だけど気に入られればいろいろもらえるかもしれんぞ
346 :名無しさん@十周年:2009/10/14(水) 17:11:21 ID:9b5iZd+g0
生活保護は、こういう地域へ移動してもらって集団で生活してもらうのがいいかもな。
379 :名無しさん@十周年:2009/10/14(水) 17:13:30 ID:lMfMz+z30
行きたいな俺。介護やってるより給料いいよ。寒冷地手当は付きますか?
388 :名無しさん@十周年:2009/10/14(水) 17:14:13 ID:orDDe9lz0
というかこの集落を発展させたら俺がこの集落の帝王になれるのかもな
やはり男なら1国1城の殿様目指さんとな!
391 :名無しさん@十周年:2009/10/14(水) 17:14:31 ID:36MSqRA10
飲み食いタダでも割りにあわねえw
404 :名無しさん@十周年:2009/10/14(水) 17:15:24 ID:6TqTADqr0
夢心地で想像してる奴
415 :名無しさん@十周年:2009/10/14(水) 17:15:43 ID:rj6uB+Zz0
もちろん行ったら、可愛い女の子がいて俺を無条件に好きになってくれるんだよね?
419 :名無しさん@十周年:2009/10/14(水) 17:16:07 ID:ozY96r4C0
じいさんばあさんが
「お前さんが気に入ったから俺の土地を全部お前にやる」とか
言っててくれないかな。
432 :名無しさん@十周年:2009/10/14(水) 17:16:54 ID:UVyh2TPu0
猛烈に興味を抱いたが!!!!!
…俺には無理だった…
おまいら、この「秋田県上小阿仁村柳沢地区」の場所、地図で見てみろよ。
ttp://map.yahoo.co.jp/pl?lat=39.94097806&lon=140.32117389&ac=05327&az=&v=2&sc=7
449 :名無しさん@十周年:2009/10/14(水) 17:17:54 ID:wxkl/Zy40
うっかりしていたが、通訳はつかないのかね
454 :名無しさん@十周年:2009/10/14(水) 17:18:24 ID:yTGpx/v40
月16万もらっても使い道ないだろ
521 :名無しさん@十周年:2009/10/14(水) 17:22:28 ID:Cw0FAPkT0
>>454
マジレスするとですね、
山の中だから生活物資はまとめて買出ししなきゃいけないし、
金はたまんないと思うよ
475 :名無しさん@十周年:2009/10/14(水) 17:19:29 ID:iP8AAYU00
なんで16万なんて金額なんだろう? 20万は出せよ。普通にさ。
16万じゃ来ないよ。ワーキングプアかよ!
511 :名無しさん@十周年:2009/10/14(水) 17:21:56 ID:Rr5fS5SBO
>>475
田舎舐めんな!金使う場所なんかないぞw
476 :名無しさん@十周年:2009/10/14(水) 17:19:48 ID:4e/nLCsj0
月16万は、村としてはよく出したほうなんだろうけどなあ……。
496 :名無しさん@十周年:2009/10/14(水) 17:21:08 ID:2Npzz5uw0
>>476
ここに行った人の将来がまったく見えない。
483 :名無しさん@十周年:2009/10/14(水) 17:20:26 ID:+Y5HLa0k0
ってちゃんと書いとけ
484 :名無しさん@十周年:2009/10/14(水) 17:20:26 ID:q2zmgPaI0
本気で再生させるなら協力隊員二人といわずに開拓団2000人ぐらいよこさないと
無理な場所だなw
516 :名無しさん@十周年:2009/10/14(水) 17:22:11 ID:F9/rg24aO
一日7時間週5日の勤務って嘘くさいな〜
たった二人で農作業や病院への付き添いや雪かきや不法投棄の監視までして
この時間でどうやって収めるのか
532 :名無しさん@十周年:2009/10/14(水) 17:23:03 ID:0UKkK5P90
あと冬場は4mくらい雪積もるから注意な
549 :名無しさん@十周年:2009/10/14(水) 17:24:23 ID:NPy1QWqt0
ttp://www.vill.kamikoani.akita.jp/div/kikaku/pdf/chiiki-okoshi/yagisawa-buraku.pdf
584 :名無しさん@十周年:2009/10/14(水) 17:26:16 ID:EG8HbP430
>>549
想像通りだw
553 :名無しさん@十周年:2009/10/14(水) 17:24:51 ID:Gsih8VlO0
孤独に耐えられ黙々と体を動かせる、そんな人じゃないと無理。
しかし認められれば見合いの世話ぐらいはしてくれると思う。
603 :名無しさん@十周年:2009/10/14(水) 17:27:37 ID:vDkL8T/n0
もうこの村要らないからさ、この人たち代で終わりにしたほうがいいよ。
継がせるならともかく、小間使いが欲しいだけとか意味わからん。
617 :名無しさん@十周年:2009/10/14(水) 17:28:52 ID:32Gid20NO
若者も増えるしいいだろ
639 :名無しさん@十周年:2009/10/14(水) 17:30:14 ID:DOwtjOIm0
派遣村をここに移設すればよろしい
645 :名無しさん@十周年:2009/10/14(水) 17:30:43 ID:oYLCPeQl0
659 :名無しさん@十周年:2009/10/14(水) 17:32:21 ID:2Npzz5uw0
仮に土地貰っても、20年後には自分ひとりがそこに住んでるんだぞ。
662 :名無しさん@十周年:2009/10/14(水) 17:32:24 ID:RrmQ404+0
本音は奴隷が欲しいのか?
673 :名無しさん@十周年:2009/10/14(水) 17:33:00 ID:75xHT0Wp0
身分もよく分からないし保険とかも書いてないし
ブラックよか悲惨な気がするが
698 :名無しさん@十周年:2009/10/14(水) 17:35:04 ID:9Khas1w70
>>673
ブラックの方がましだから、過疎なんだろうな
689 :名無しさん@十周年:2009/10/14(水) 17:34:07 ID:xRf8Hqt/0
正直に言って、これは限界集落の老人たちの手足になれ、って言っているようにしか
見えない。
村おこしじゃなくて、都合のいい便利屋を村が雇ったって感じに見えちゃうんだよなあ。
何とかして寒村を再生したいのはわかるが、これはちょっと……。
706 :名無しさん@十周年:2009/10/14(水) 17:35:55 ID:iqp9i/0PP
711 :名無しさん@十周年:2009/10/14(水) 17:36:20 ID:MRe8qpl00
朝から晩まで便利屋としてこき使われるのは決定だな
農業に定時だの公休だのは存在しない
732 :名無しさん@十周年:2009/10/14(水) 17:37:57 ID:OKUeE97QO
737 :名無しさん@十周年:2009/10/14(水) 17:38:26 ID:gSuW08Yy0
>7世帯16人で、うち12人が65歳以上
残り4人も高齢だろうし、あと10-20年もすれば自然消滅しそうな気がするが、
果たして残す意味があるんだろうか
756 :名無しさん@十周年:2009/10/14(水) 17:39:51 ID:DdedOktX0
息子や娘ですら逃げ出すような田舎にどうして赤の他人がきてくれると思ったのか?
776 :名無しさん@十周年:2009/10/14(水) 17:42:12 ID:qimPyaGe0
>1日7時間、週5日勤務
甘いな・・・
こんな契約あってないようなもの
文句言っても「村が金出して雇ってるのに」と返される
782 :名無しさん@十周年:2009/10/14(水) 17:42:36 ID:tys9IrM00
自分達から呼んでおいて、協力隊員が皆から農地を借りて生産拡張したいって言えば
ようするに、自分達の先祖伝来の農地に草を生やすのを見るのが嫌なだけだから
他所から来た若い奴の将来とか関係ねえし
790 :名無しさん@十周年:2009/10/14(水) 17:43:14 ID:84r0EDcl0
田舎に拘束されて16万円かあ
住む場所すら危ういゼ!って人には良い仕事…かも?
830 :名無しさん@十周年:2009/10/14(水) 17:47:23 ID:oyD0j9Qj0
半分呆けたような老人の話し相手は大変だぞ
同じ話を繰り返して終わりが無い
836 :名無しさん@十周年:2009/10/14(水) 17:47:56 ID:EQY9DuBUO
凍死も有り得るね…。
846 :名無しさん@十周年:2009/10/14(水) 17:48:44 ID:tfAVw/5A0
つーか、ここでグチグチ言ってるような奴は、向こうからしてもお断りだろうよww
870 :名無しさん@十周年:2009/10/14(水) 17:51:01 ID:wBOPrq580
>>846
当然、藁にでも縋りたい奴を奴隷として扱いたいんだからな
855 :名無しさん@十周年:2009/10/14(水) 17:49:36 ID:MvXv1WDjO
なんだかんだで1日14時間くらい働くハメになる
間違いない
875 :名無しさん@十周年:2009/10/14(水) 17:51:37 ID:UcV0ZbAz0
16万ならタイとかあっちの人が喜んで来てくれるんじゃね?
886 :名無しさん@十周年:2009/10/14(水) 17:52:48 ID:lYXzmTeOO
若者を呼んで何があれば今後も住み続けたいと思うか聞けば良い
903 :名無しさん@十周年:2009/10/14(水) 17:55:50 ID:z8KoPmrJ0
おまけにこういう過疎地はとんでもなく閉鎖的だし。
913 :名無しさん@十周年:2009/10/14(水) 17:56:44 ID:sgWIQLtO0
926 :名無しさん@十周年:2009/10/14(水) 17:58:17 ID:EGf0NzxgO
まず言葉が通じない気がする…
爺婆がなんて言ってんのか解らんぞ。
977 :名無しさん@十周年:2009/10/14(水) 18:04:03 ID:tQ5kwUjw0
結局都会の人間取り込みたいなら都会の生活に近い物を提供しないとな
私は結構flashについて知識がある。私が始めてトレーニングコースでflashについて言及したのが何時だったのか覚えていない。それ以来、flashはトレーニングコースの一部となっている。
しかし、トレーニングコースで人にflashについて話していても、私は実際に自身のページの中には使っていなかった。フリーランサーとして明らかに、日常の仕事において、私の顧客が使っているテクノロジーが何であれ、それを使うことを余儀なくされる。私はまだ、flashを既に使っているプロジェクトの仕事を受けていない(私は数人の顧客にflashを使ってはいかがと勧めているけれども)。
私自身のページは別だ。そのページは主に私のサイトである。最近まで、それらのどれにもflashを使わなかった。flashを使った私の最初のリリースは、なんだったろうか。始めからflashを使った新しいサイトだ。しかし、結局のところ、flashが適切である場所ならどこでもflashを使うように、遡って既存のサイトをリファクタリングしたくなることが分かった。
近年Google Mapを使い、AJAXがいかに素晴らしいかを面と向かって私に語る人々の一週間に付き合わされた。そして、歯を食いしばってリファクタリングを始める時だと決心した。
私が試みた次のサイトがフォトギャラリーのためのサイトだった。2つの理由のため、これを選んだ。第一に、それが正に見た目重視の重いサイトであるから。画像の初期読込みを別にして、このレスポンスの悪さは出来るだけ見栄えのよい画像を表示するために存在する。これは非常にflashと相性がよい。事実、flashを使うようにリニューアルすることは、トラヒック削減の主なケースだった。第二に、もっと実際的なことだった。つまり、私が知っている限り、このサイトを使っている人はいないので、私が何かを壊しても、私を罵る群衆がいないであろう。
そのリニューアルのいとも簡単さに感心したので、私はメニューに移った。この部分は、私の最初のサイトより存在していた、特別な思い入れがあった。それが特別便利とは思っていない。そのデザインは非常に基本的で、私が元々これを書いた最初のサイト以外には、どのサイトにも使っていない。私は屡々新しいテクニックを試すために、それを使用している。8月9日にバージョン2.00をリリースした(その実装の変更は、メジャーバージョンナンバーを上げることに相応しいと思った)。
昨日、私はflash使用を止める要望のRTチケットを受取った。そのチケットは、いろいろな使用(そのチケットでは、テキストベースのブラウザでの使用にも言及しているが)に対して、flashによって加わった更なるオーバーヘッドが受け入れ難いパフォーマンスの打撃になっていることを明らかにしている。
私はこれをどのように克服するか分からない。一デベロッパーとして、私はflashの使用が好きである。flashは、動的なUIのページを書くことを容易にする。私は、翌年以降年々、Webデベロッパーはflashを使っていくだろうと考えている。もし、あなたが既に充分に複雑なことを HTMLで書いているなら、flashを使っているページを使用するチャンスである。時が経つにつれて、flashに依存するページの割合は増加するだろう。しかし、小さなアプリケーションに対して受け入れ難いパフォーマンスの打撃があるならば、デベロッパーが使っていないflashを強制することはいいことだろうか?
これをもう少し熟考するまで、私の作物をflashに移動させる計画を保留したいと思う。しかし、私は他の人の意見を聞きたい。あなたがサイトオーナーなら、あなたのページでflashを使用することを考えているのか。あなたがWebサーファーなら、 flashを無理強いするページを避け始めているのか。
あなたの考えを教えてほしい。
最近ブームに便乗してコン活中の女子でつ。|´・ω・)ノ
今年に入ってかなりたくさんの男子さんとデートを繰り返してきたのですが、
ありえないレベルの低さにヘキエキ
特にあたしがtwitter中毒系なのでネット系の男子中心なってしまうのですが
いやはやひどいひどいノ(´д`*)
ありえないランキング
5 まともなご飯を食べる場所を知らない
特に多いのがぐるナビ男
あー、この人ググったら一番最初しか見ないんだと
常識的に考えて欲しいだけなんです!
クーポンも出さないなんて…(゚Д゚;
4 草食アピール
「俺、育ってきた環境が違うからすれ違いは否めないんだよね」とか(-Д-)
常識的に考えて欲しいだけなんです!
それ何MAP?気持ち悪いから
主格の関係代名詞
I have a friend.+ He lives in Tokyo.
→I have a friend who lives in Tokyo.
I have a book. + It tells us about Japan.
→I have a book which tells us about Japan.
This is a bike which my mother used←This is a bike. + My mother used it.
(例)This is a bike my mother used.=This is a bike which my mother used.
目的格の関係代名詞which は省略できるけど, 主格の関係代名詞which は省略できない
所有の関係代名詞
1.This is the dictionary.
(これは辞書です)
2.Its cover is beautiful.
<whose を使った場合>
This is the dictionary whose cover is beautiful.
<of which を使った場合>
This is the dictionary , the cover of which is beautiful.
前置詞の目的語としての which
(地図はテーブルの上にあります)
2.You are looking for it.
(あなたがそれを探している)
The map for which you are looking is on the table.
(あなたが探している地図はそのテーブルの上にありますよ)
どうしても、という状況のために。(http://i.hatena.ne.jp/idea/24510、http://i.hatena.ne.jp/idea/24505)
javascript:(function(h,a){if(location.href.match(/(^.+a.hatena.ne.jp).+\/(simple)?/)){var%20s=RegExp.$2,u=RegExp.$1+"/check?url=",x=new%20RegExp("/a\\.[^/]+/"+(s?"go":"map")+"\\?"),y=new%20RegExp("^.+?\\?"+(s?"|\\d{14}$":""),"g"),d=document,l=d.links,i=0,L;while(L=l[i++]){h=L.href;if(h.match(x)&&(!l[i]||l[i++].href.indexOf(u))){a=d.createElement("img");a.src=u+(encodeURIComponent||encodeURI)(h.replace(y,""))+"&robots=1";a.style.display="none";L.parentNode.insertBefore(a,L.nextSibling)}}}})()
全角&を半角&に置換。
imgのsrc=にhttp://a.hatena.ne.jp/checkを呼んでる。表示する必要はないのでdisplay : none。
実行すると、リストされているサイトをhttp://a.hatena.ne.jp/checkに渡し、強制的に更新チェックします。よってアンテナのページが複数にわたる場合は各ページで実行する必要がある。
元のブックマークレット:
http://www.hatena.ne.jp/tool/bookmarklet#antenna
http://anond.hatelabo.jp/20090408100019
ベンチを取ってみると、ハッシュの方が速かったです。
UPSERT処理SQL生成処理の汎用化に使用中だったのですが、プロファイルすると結構時間をくっていたので、key設定時まで遡って再構築したいと思います。
#!/usr/bin/perl use strict; use warnings; use Benchmark; my $item = { date => undef, type => undef, value => undef, title => undef, views => undef }; my @key = ('date', 'type'); my %key; my @update; timethese(1000000, { use_grep => sub { @update = grep { my $a = 1; foreach my $b (@key) { $a = 0 if $_ eq $b; } $a; } keys %{$item}; }, use_hash => sub { %key = map { $_ => 1 } @key; @update = grep { not exists $key{$_} } keys %{$item}; }, } );
実行結果
Benchmark: timing 1000000 iterations of use_grep, use_hash... use_grep: 10 wallclock secs ( 9.84 usr + 0.00 sys = 9.84 CPU) @ 101595.04/s (n=1000000) use_hash: 5 wallclock secs ( 6.43 usr + 0.00 sys = 6.43 CPU) @ 155593.59/s (n=1000000)
http://anond.hatelabo.jp/20090408034449
リスト内の有無を複数回調べるときの定石は、事前にハッシュに突っ込んでおく方法です。
元のコードはgrep内でリニアサーチをやっているわけですから、ここにハッシュテーブルを使うわけです。
my %key = map { $_ => 1 } @key; my @update = grep { not exists $key{$_} } @items;
ベンチは取っていないですが、多分早いです。
ただ、その分メモリを食いますし、@itemsに対し@keyの方が長大だと、あまり効率が良くないかも知れません。
その場合、ソート済みならバイナリサーチでやってみるとか、そもそもkeyをハッシュで管理するとか、GDBMやsqlite等を使って永続化するとか、keyの入手段階から検討したほうが良いかもしれません。
http://anchor18.blog77.fc2.com/blog-entry-195.html
と
http://ameblo.jp/omisedayori/entry-10184130642.html
で
teruyastar
["", "まいったね。 やはりWiiウェアなんかのDL方式か、ネトゲに移行せざるをえないか。"]
complex_cat
["何処をどう描いても完璧なデッサン力。", "これについてはWikiの記述は,確かに使う側を助けてしまっているかも。いや,ここを読むようなユーザーとの重複度は小さい
とは思うが。"]
silverscythe
["昔のはホントすごいよなあ", ""]
yachimon
["", ""]
shoku-in
["", ""]
mike_n
["", ""]
y_arim
["Dr.スランプの時点ですでに完成されていて、そこからさらに進化しているのはすごい。", "違法性の認識とか関係なく、便利なものがあるから使うってだけだろうな。たいていのひとは物事を深く考えないし自分の欲求には逆らわない。/そしてid:utd_sn3781の主張は増田に書かれた http://anond.hatelabo.jp/20081231201301"]
A410
["", ""]
tailtame
["やっぱり手書きの頃がいいなぁ…塗りが…塗りが…。>>66の赤いトカゲ?ドラゴン?の艶とかたまらんなー。画集っていくつあるんだろ…", "蔓延しすぎているってのも あるんだろうな…本屋に行けば目に付く本は……。子供の頃なんてゲームは半年に一本でいいよ。クリエイターも割れしてたしな…"]
dododod
["", "おやおや"]
retlet
["", ""]
kashmir108
["", ""]
tokuhirom
["", ""]
ocha39
["", ""]
whirl
["", ""]
kalmalogy
["「ビッチズ・ライフ」買おう。", "親が買い与えるのは絶対だめ。『公認意識』が子供に芽生える。自腹で買って『本当はよくないけど次善の策』という意識でないと。/ マジコン使うならせめて『良いと思ったモノに投資する』意識を教育すべきでは。"]
came8244
["", ""]
fujii_isana
["", ""]
lizy
["クロノトリガーの絵を見るだけで、頭にあのBGMが流れてくる", "モラルでの解決方法案としては、ゲーム作りの過程を理解してもらう、とかかな。どれだけ多くの人がどれだけ苦労してコストをかけて作っているのかを理解してもらうしか|それでもやる奴はもうダメですね"]
mochige
["", ""]
aohige9610
["中鶴の絵がまじってるので注意", ""]
gm333
["", ""]
posinega
["", ""]
pikayan
["", ""]
asitaki
#!ruby -Ku require "rubygems" require "json" require 'open-uri' url = ["http://anchor18.blog77.fc2.com/blog-entry-195.html", "http://ameblo.jp/omisedayori/entry-10184130642.html"] bookmarks = url.map{|u| open("http://b.hatena.ne.jp/entry/json/"+u){|f| JSON.parse(f.read.gsub(/\A\(|\)\Z/, "")) } } user_comment_map = bookmarks.map{|bm| h = {} bm["bookmarks"].each{|b| h[b["user"]] = b["comment"] } h } overlaped_users = user_comment_map.map{|bm| bm.keys }.inject{|a,b| a&amp;b } overlaped_users.each{|user| puts user p user_comment_map.map{|b| b[user]} puts }
なんだか、解体中の高炉が人気らしいですが、ココロ社の人の解説(http://d.hatena.ne.jp/kokorosha/20090218/p1)は一般市民には難解なので、同じく一般市民の私が解説を試みてみます。
しかし、なにぶんにも一般市民なので、間違い等ございましたらご指摘ください。
さて、解説に移る前に、一体何の写真を見ているか分からなくなるので、まずはこの話をします。
製鉄ってのは、まあ、読んで字のごとく鉄を製造することですが、その主な原料はというと、鉄鉱石と石炭と石灰石です。といっても、これらを高炉にぶち込めば鉄が出てくるわけでもないので、製鉄所内には前処理をする設備がありますし、さらに、ストックする場所、荷揚げのための港なんかもあります。
原料の前処理が終わると、ここでようやく高炉の出番です。
高炉では熱風を吹き込み、石炭から作ったコークスを燃焼させ鉄鉱石を加熱し、また、鉄鉱石中の酸化鉄をコークス中の炭素で還元し、ケイ素を石灰のカルシウムで溶かし、鉄とスラグを作ります。こうして出来た鉄は、都度冷やしたり溶かしたりするのは馬鹿げてるので、溶けたまま製品にする工場まで運ぶ設備があります。また、高炉から溶け出ているのは、鉄といっても銑鉄という奴で、そのまま商品になるわけではありません。
それを鋼にするのが転炉です。
転炉では酸素を吹き込んだり、脱リン剤を加えたりして精錬し、鋼へと転換します。こうして出来た、溶けた鋼は、丸や四角の穴の開いた鋳型で板や棒に整形され、冷えきる前に何度も圧延され、整形されて、丸や四角やレールや色々な形の棒状製品だったり、色々な厚さの鉄板だったりに整形されます。
それが製鉄所です。以下が詳しいです。
一般的高炉について。
キーワードは、ベルトコンベア、熱風炉、トーピードカー、転炉でしょうか。次は、今回の舞台となった高炉について
google mapでみてみましょう。今回の第5高炉の近くには第6高炉があるようですね。第6高炉は縮尺が違います。明らかに大きいです。
いきなりですが、高炉本体は写っていません。写っているのはベルトコンベアと、熱風路、熱風路の煙突です。
これはよくわかりません。これだと思います。
ようやく高炉の本体が見えました。といっても、ほとんどは排気管や原料の投入設備などですが。
この踏み切りはここら辺でしょうか。広い構内を沢山の原料や重い鋼材を運ぶには鉄道が一番なのです。
たぶん「今日一日安全に仕事をして(無事に家に)帰ろう」という意味合いだと思われます。なにせ、写っているプレハブを見て分かるように、解体している物はめちゃくちゃでかいんです。崩れたらひとたまりもありません。事故なく元気なのが一番なのです。
最初の部分ですね。この4つの塔は熱風炉です。google mapを見たところ、銀色の煙突の向こうにもう一つ、合わせて5つの熱風炉があるようです。
ちなみに、一番左の、上に緑、下に青のネットのかかった煙突は何処にあると思いますか?実はこれだと思います。ちょっと離れてますね。
このでっかい坩堝、転炉といいます。最初の方で言いましたが、高炉から溶け出た銑鉄をトーピードカーで運んで、製品にする前に精錬するのが転炉です。そう、運んでいるのです。高炉にあるわけじゃないんです。
煙突や位置関係、建物の高さから、おそらくこの転炉があったのはここだと思います。高炉とは別の建物だったんですね。なかの黒ゴマは耐火煉瓦の残骸でしょうか。
この「ベルトコンベア的なもの」は、排気ダクトです。ベルトコンベアは、最初の写真の、斜めに走っている白い奴です。下の図のように、高炉の上部、原料投入部の周囲4ヶ所から排ガスを抜く上昇管があり、それが2本ずつ合わさり手前奥となり、それがさらに一つとなって斜めに降りていきます。その先には排ガスの量の調整や処理する設備があります。
結局本当の本体は良く見えないって事ですね。
一応imgを挟む必要は必須ではない…まあ普通イメージマップにしか使わないけどな。
んで、何で使っているのかというと、多分アクセシビリティの向上の為。
音声読み上げソフトでこのテキスト読ませたいお…→でもここには特に構造上の意味は無いお→
他の要素だと見た目のレイアウトは変わらないけど内部構造に変化を与えちゃうお→じゃあ一番構造的に問題の無いMAP要素使うお!
って感じだと思った
マークアップに困ったときは、ちゃんとマークアップしてそうなサイトを参考にしているんだけど、(なんで今までやらなかったんだろう)初めてW3CのページのHTMLを見た。そしたら、タイトルの下のナビゲーション部分が下のようなマークアップになっていたんだけどさ(改行とインデントは僕がつけた)。
<map title="Introductory Links" id="introLinks" name="introLinks"> <div class="banner"> <span class="invisible"> <a href="#technologies" title="Skip introductory links and the mission statement" class="bannerLink"> Skip to Technologies </a> | </span> <a href="/Consortium/activities" accesskey="A" title="W3C Activities" class="bannerLink"> Activities </a> | <a href="/TR/" accesskey="T" title="Technical Reports and Recommendations" class="bannerLink"> Technical Reports </a> | <a href="/Consortium/siteindex" accesskey="S" title="Alphabetical Site Index" class="bannerLink"> Site Index </a> | <a href="/Consortium/new-to-w3c" accesskey="N" title="Help for new visitors" class="bannerLink"> New Visitors </a> | <a href="/Consortium/" accesskey="B" title="About W3C" class="bannerLink"> About W3C </a> | <a href="/Consortium/join" accesskey="J" title="Join W3C" class="bannerLink"> Join W3C </a> | <a href="/Consortium/contact" accesskey="C" title="Contact W3C" class="bannerLink"> Contact W3C </a> </div> </map>
…えっと、普通はっていうか、一般的には、ナビゲーションってul,li要素にしない?map要素ってなにこれ、なんでこんな場所で使われてんの?map要素ってイメージマップに使う要素じゃないの?
うごメモはてな - ゆうたさんの作品のスター/コメントを集計してみた。スターの方はentry.jsonを適当に処理して、コメントの方はHTMLを適当に処理した。
スクリプトはこんな感じ。
HTMLを正規表現でごにょごにょして['hoge', 'piyo', 'fuga', 'piyo']みたいな配列にして、でもこれだけだとコメントした回数がカウントできずに何回も同じユーザーが出てきてしまうから
a = ['hoge', 'piyo', 'fuga', 'piyo'] l = [] for i in a: l.append([i, a.count(i)]) l = list(set(map(lambda x: tuple(x), l))) l.sort(lambda x, y: cmp(y[1], x[1])) for i in l: print i[0], i[1]
とする。
import urllib, json h = urllib.urlopen('http://s.hatena.ne.jp/entry.json?uri=http%3A%2F%2Fugomemo.hatena.ne.jp%2F0B3D19604CE04B2F%40DSi%2Fmovie%2FE04B2F_08720FF94B42A_002') a = json.load(h) f=open('stars.txt', 'w') sys.stdout=f for i in a[u'entries'][0][u'stars']: print i[u'name'], i[u'count']
ところでなんだが、staxってとこがAmazonのEC2サービス上でTomcatを無料開放しているらしいのだ。
http://jp.techcrunch.com/archives/20081216stax-networks-launches-google-app-engine-for-java/
で置いた。
http://db-view.johannes.staxapps.net/
ソースはここ
http://code.assembla.com/dmcsystemservice/subversion/nodes/db-view/trunk
これ作ったころはGUIの閲覧ツールってAccessとかしかなくて、結構好評だったのだが、今はフリーのクライアントソフトがいっぱいでもう、俺の出番おわったわ。
まずJavaを入れる。
http://java.sun.com/javase/ja/6/download.html
で、eclipseを入れる。
http://www.eclipse.org/downloads/
で起動してみる。
が。。。。起動しない。
でggr。
となんかeclipse.iniがおかしいらしい。
http://ajiblog.sblo.jp/article/17157448.html
おっきした!!
でアカウントをとる。
http://code.assembla.com/dmcsystemservice/
http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn15/eclipseplgn15_1.html
subversiveも使ってみたいなぁと思ったが、ここでeclipseがバシバシ落ちる。
eclipse.iniのXMXオプションをいじるがOutOfMemoryやら、libeay32.dll 序数が見つかりません。とか
秩序ってなんだよ。英語でそのままいってくれ。余計わからん。
でなんか、負けた気がしたが、Javaを5に落とすことにした。
http://java.sun.com/j2se/1.5.0/ja/download.html
XMXを768Mにして起動すると、落ちなくなった。
が、相変わらず、秩序が見つからなくなる。秩序って何。膣女?
こっちのsvnプラグインのほうがいいのかも。。来年やろう。そのうちやろう。ゆっくりしていってね!!
http://server.seasar.org/manual/install_subclipse.html
http://d.hatena.ne.jp/yuroyoro/20081222/1229922781
楽勝だ。
で、また動かない。
で、動いた。が、履歴機能が動かない。
で、ソース修正。
ObjectInputStream、OutputStreamを使っていたのだがXMLEncoderとDecoderにした。
http://www.utj.co.jp/xml/dev/java/dxjava_7.html
ぉ。こんな便利なのが1.4からあったのか。
おもえば、これを最初に作った時は1.3だった。LinkedHashMapがなくてArrayList内包したMapを作っていた。
が、そんなのいらんので消した。で、履歴保持クラスもXMLEncoderからリフレクトできるようにガバガバにプロパティをさらした。
そしたら、動く。履歴機能が動く。
ぉぉ。では早速、svnにあげよう。
で、eclipseのsvnクライアント。相変わらず膣女が見つからないらしい。
去年だったかな、女の子にipodの音はどうやって大きくするの?と聞かれて、右にくるくる。と答えると、
あ、大きくなった。今度、のび太くんのもまわしてみよう。と言われた。
あれから右にくるくるされてない。泣きたい。あの娘は膣女だった。
そんなことを思いながら、エロサイトに誘導されて一回休み。eclipseを落とす。
http://pics.dmm.co.jp/digital/video/h_155tdjk00001/h_155tdjk00001pl.jpg
で、eclipse再起動。svnクライアント。相変わらず膣女が見つからないらしい。
おれくらい帰国子女になれば、英語のメニューのほうが調子がいい。
と思っていたが、svnクライアントだけ微妙に日本語化されている。
が、肝心なところが英語だ。よくわからん。CVSと一緒だろ。と思ってUpdateしたら、ソースが消えた。。。
LocalHistoryから復元しようと思ったのだが、まんどくさい。
staxにDeployしたやつを再度ダウンロードしたら元に戻った。
びっくりした。バックアップソフトでクラッシュする。そんなことも初心者には、おうおうにしてある。
だからバックアップのバックアップ(ryで無限ループにはまるシステムも少なくない。
あきらめが大事だ。ある程度であきらめないとキリがない。
で、再度svnクライアント。今度はCommitをちゃんと選ぶ。
が、明らかにUploadしていない。で、終わると、いくつかのファイルのアップロードはキャンセルされた。とかでる。
で、再度svnクライアント。またまたCommitをちゃんと選ぶ。
ぉ。今度はうまくいく。あきらかにさっきより時間がかかっている。WireShirkで見てないが、あきらかにsvnサーバーにソケットをはっている。
http://code.assembla.com/dmcsystemservice/subversion/nodes/db-view/trunk
ぉぉ。あがっている。
さてタグを設定して、ブランチを作ってみたいみたいが、壊れそうなので怖い。いつからか大人の恋に臆病だ。
XMLEncoderの入出力をBufferedにしようと思ったが、もういいや。
で、寄り道している間に、こんなのを今更発見した。
http://tuigwaa.sandbox.seasar.org/index.html
これだ。俺が欲しかったのはこれだ。
これぐらい楽勝じゃないと、プログラマはわりに合わない。
さっそく落とす。
が、動かない。誰のせい?それはあれだ。また奴だ。。。
もういい。まんどくさい。この金髪ブタヤロウ!!しね!しね!しね!と誰かにメールしたいが、やめておこう。
修正:いい加減&が変換されるのを何とかしてほしい
解説:Hatena::Bookmark::24H(http://hatebu24h.ashitano.in/)に、トップエントリの獲得したブックマーク数の推移のチャートを加えます。
// ==UserScript== // @name chart of Hatena::Bookmark::24H // @namespace http://anond.hatelabo.jp/ // @include http://hatebu24h.ashitano.in/* // ==/UserScript== var url = unescape("http://chart.apis.google.com/chart?chs=160x60%26cht=ls%26chd=t:"); url = url + $X("//div[@class='clocktxt']", Array).map(function(s){return s.firstChild.nodeValue}).join(","); //var id = $X("//h3/a/@href")[0].nodeValue; //url = url + $X("//div[@class='entrytitle' or @class='entrytitle2'][.//a[@href='"+id+"']]/../preceding-sibling::div[1]", Array).map(function(s){return s.textContent.match(/\d+/)}).join(","); var before = makeElements({ nodeName: "div", className: "sidebox", childNodes: [{ nodeName: "div", className: "sidetitle", innerHTML: "Recent top entry chart" },{ nodeName: "div", className: "sidetitle", childNodes: { nodeName: "img", src: url } }] }); var after = $X("//div[@class='sidebox']", Array)[0]; after.parentNode.insertBefore(before, after); // util // var 0.01 function makeElements(obj) { if (typeof obj != "object") return document.createTextNode(obj); if (obj instanceof Array) return obj.map(makeElements); var node = document.createElement(obj.nodeName); delete obj.nodeName; if (obj.childNodes) { [].concat(makeElements(obj.childNodes)).forEach(node.appendChild, node); delete obj.childNodes; } function extend(dst, src) { for (var i in src) { if (typeof src[i] == "object" && dst[i] && typeof dst[i] == "object") extend(dst[i], src[i]); else node[i]=obj[i]; } } extend(node, obj); return node; } // by http://lowreal.net/blog/2007/11/17/1 // $X(exp); // $X(exp, context); // $X(exp, type); // $X(exp, context, type); function $X (exp, context, type /* want type */) { if (typeof context == "function") { type = context; context = null; } if (!context) context = document; var exp = (context.ownerDocument || context).createExpression(exp, function (prefix) { var o = document.createNSResolver(context).lookupNamespaceURI(prefix); if (o) return o; return (document.contentType == "application/xhtml+xml") ? "http://www.w3.org/1999/xhtml" : ""; }); switch (type) { case String: return exp.evaluate( context, XPathResult.STRING_TYPE, null ).stringValue; case Number: return exp.evaluate( context, XPathResult.NUMBER_TYPE, null ).numberValue; case Boolean: return exp.evaluate( context, XPathResult.BOOLEAN_TYPE, null ).booleanValue; case Array: var result = exp.evaluate( context, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ); var ret = []; for (var i = 0, len = result.snapshotLength; i < len; i++) { ret.push(result.snapshotItem(i)); } return ret; case undefined: var result = exp.evaluate(context, XPathResult.ANY_TYPE, null); switch (result.resultType) { case XPathResult.STRING_TYPE : return result.stringValue; case XPathResult.NUMBER_TYPE : return result.numberValue; case XPathResult.BOOLEAN_TYPE: return result.booleanValue; case XPathResult.UNORDERED_NODE_ITERATOR_TYPE: { // not ensure the order. var ret = []; var i = null; while (i = result.iterateNext()) { ret.push(i); } return ret; } } return null; default: throw(TypeError("$X: specified type is not valid type.")); } }