スキップしてメイン コンテンツに移動

投稿

7月, 2010の投稿を表示しています

難しい日本語

日本語という言語は実にシンプルな言語であるが、同時にとても複雑で煩雑なルールで溢れている。 そのため、外国人からすると日本語は非常に「難しい」言葉になっている。 例えば、カタカナ。 外来語をカタカナ表記するという謎ルールを僕らは自然に受け止めているが、外国人からすると意味不明な言葉らしい。 音が違う、文字が違う、さらには意味まで違うなんてのはザラだろう。 なので、彼らは非常に混乱する。 例えば、助数詞。 この複雑さは日本人ですら理解出来ないほどであろう。 例えば、田んぼの数え方を知っている人は少ない。 田んぼは1枚とか1面と数える。 例えば、羊羹。 1棹、1本、1切れなどと複数の呼び方がある。 なんて複雑なのだろう。 そういう事を気にしだすと、(一応)日本人である僕が、まともな日本語を話そうと思っても話せなくなる時がある。 あれ、自分のこの言葉、正しい日本語なのかな、正式名称で言ってるかな。 そもそも、この数え方合ってるのかな。 そんな事が一瞬でも脳裏をよぎるともう駄目だ。 しどろもどろになって次に何を語るべきかを忘れてしまう。 日本語ってとても難しい(むつかしい)。

プログラマ35歳限界説について

なぜ、35歳が限界なのか プログラマ35歳定年説の方が正しいかもしれませんが、敢えて限界説としてみます。 深い意味はありません。 さて、幾つかのエントリに書かれていますように、35歳で限界を迎える、又は定年とされている職業、それがプログラマです。 曰く、体力が付いていかない。曰く、新しい知識を吸収できない。 故に、35歳が限界である。 これ、プログラマに限った話ではないですよね。 「職人」の世界は、一部の人を除いて、35歳くらいが限界だと思うんです。 体力、知力、経験、そして意欲。 これらがバランス良く保たれているのが35歳ぐらいで、後は体力がゆっくりと落ていく。 平均寿命から適当に類推するに、この辺が人生の折り返し地点であり、ピークになると僕は思います。 (人間の年齢と能力が正規分布に準ずるとして) 僕が見てきた現実

JSONPでの最速ローディング模索

ひとつ前のエントリが嘘ばっかりだったので、再度書き直しです。 今回、JSONPでの最速ローディングを模索して、こんなコードを書いていました。 function retが条件分岐している所。 あくまでも、JSONPのcallbackが走ってからという考え方なので、真の最速には程遠いと思います。 operaはscriptのcallbackが走る段階では、まだDOM構築が終わっていない。 Firefox,Google Chrome,SafariはDOM構築が終わっている IEはsetTimeoutの10msでほぼ確実に実行出来る(1msだと失敗するケースがある) 今まではDOMContentLoadedっぽいのを確認してから走らせていたけれども、それより先にJSONPリクエストを投げる形にしたかった。 IEの所、もしかしたらdoScroll判定した方が良いかもしれない。 色々悩ましい……。 ==チラシの裏== jsdoitに書いた最速のローディングからの発展です。 今までの自分の認識 ・windowのloadイベントに割り当てときゃとりあえずおk 現在の自分の認識 ・windowのloadイベントって全部読込み終わるまで待つのかよアホか。 ・DOMContentLoadedで最速だべさ ・ん、でも考えてみたら、scriptタグ内での関数が最速だよね ・headのscriptタグ内で動的生成したらもうちょい早く読み込めるんじゃないの? ・callbackの時点でDOM出来てるよねー? ・Operaたんorz そして、IEめ……。 ・ひとまず、Firefox、Safari、Chromeはこれが一番速い予感!!←チェックしろよ ・OperaたんはやっぱりDOMContentLoadedに頼るしかない ・IEはまあ、setTimeoutでも十分じゃろ ・正直アイディア切れ ・また今度考えよう ==チラシの裏終わり== JSONPを適当に実行するためにはてなスターのJSONP使っています。 テストする時は適当なURLに変えてください。お願いますm(_ _)m。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"

JavaScriptの最速実行を行うとき、Opera限定で起きる謎現象。

15:28追記 このコード全部のブラウザで駄目だw 自宅に帰ったら、再度エントリしなおします。 知ってる方が居られたら教えて欲しい。 下記のコードをOpera10.6で実行すると、「done!」が表示されない。 ・動かないケース(scriptが取得したいElementより前に書いてるケース) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Load test</title> <script type="text/javascript"> (function(_d){ var res = _d.getElementById('result'); res.innerHTML = "done!"; })(document); </script> </head> <body> <div id="result">test</div> </body> </html> ちなみに、こっちだと動く(当たり前だけど) ・動かないケース(scriptが取得したいElementより後ろに書いてるケース) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv=&qu

simple_html_domでFatal error: Allowed memory sizeが出まくった。

simple_html_dom.phpを使ってクローリングしたデータを加工してたんだけど、なぜだかメモリ不足になりまくったので調べたら、file_get_htmlで得たデータは解放しない仕様らしい。 んで、 FAQ に書いてあるように、 $html = file_get_html(...); // do something... $html->clear(); unset($html); と書けば良い事を知った。 結論:ドキュメントはちゃんと読みましょう