「続・ハイパフォーマンスWebサイト」読んだ
[インターネット一般] [趣味・読書]
'10/07/26(月曜日)04:23:18前回の続編が出たと言うことで購入。前回は結局のところ、いかにしてリクエストとダウンロードを早くするかという観点だったのに対し、今回はそれらも考慮しつつJavaScriptの処理の高速化(というより処理をブロックしないよう)の点にメインがおかれている。また、HTML5.0の中身についてや、各ブラウザの仕様と対応状況についてなんかもちょこちょこ書かれている。
個人的な主観が入るかもしれないけれど、私は今回の本はあまり評価できない。前回の本は、時間がかかる箇所はダウンロードとダウンロードしに行くまでの箇所だと明言してその点を深く掘り下げていたのに対し、今回はJavaScriptの実行速度やその仕様制限についてが増えてしまっている。また「今の」Webブラウザの実装状況に依存した小手先回避策が多くなってしまっている。特殊なWebアプリでない限りはJavaScriptの実行速度やDOMノード操作・CSSの読み込みと適用の時間が相対的に問題にはならないと明記しているのにもかかわらず、これらについて解説してしまっている。JavaScriptの処理のブロック(やシングルスレッド制約)にまつわるところなんて、もはや今のWebブラウザを実装する上での制約そのものに関わるところなのに、小手先で逃げられるところを模索しているだけにしか読めない。これじゃ、今回の本なんて読まずに前回の本で提起されたルールをきちんと見つめた方がよい。
cometやWebsocketについてもちらりと書かれているが、これらはこの本の範疇ではないはず。Flush(12章ドキュメントのフラッシュ)についてわざわざ説明しようとしているような読者をターゲットにしているのにもかかわらず、HTTPプロトコル上にある意味「強引に」作ったCometやTCPの生ソケットについての話題を持ってくる必要があるのだろうか。
JavaScriptについても、Webブラウザの今の実装に基づいて解説しすぎている気がする。せっかくのランタイム実行形式のJavaScriptなのだから、ヘタな小手先修正を解説するのではなくて、将来のランタイムの改善による実行高速化に期待した方がいいのではないだろうか。ヘタな小手先修正なんてしない方がよいというのが10年以上前のJavaからの教訓だったと思うんだけど。
もちろん、真に高速化・最適化を目指すにはあらゆることを考慮していかないといけないのはその通りだけど、あらゆることを考慮しないといけないレベルにはまだまだ達していない。ブラウザのバージョンごとの違いはどうなのか、Javascript実行エンジンの特性の違いは、DOM操作の速度は、レンダリング速度は、OSの違いは、CPUの違いは、想定するメモリ使用量は、コンテンツのHDDへのキャッシュ書き出し速度は、回線速度による違いは、回線レイテンシの違いは、NATやFWが足を引っ張っていないか、サーバ側のスクリプトはどうか、WebサーバはApacheでいいのか、mod_php,mod_perlちゃんと使っているか、MySQLがボトルネックになってないか、サーバのCPU/メモリリソースは十分か、とか言い出せばきりがないけど、それ以前にダウンロードにかかる時間とダウンロード要求が遅れないようにすることが相対的に重要になるはず。てかそれが重要だと前回の本から一貫して書いているはず。
というわけで、9?11章あたり以外はあんまりオススメできないです。よほどあらゆることを知っておきたい人以外は、前回の本をきっちりと理解する方へ労力を注いだ方が遙かによいです。
ikomaru > で、rarulんが、こういう本を必要とすうようなWebサイトを運営する日はいつくるんw ('10/07/26(月曜日)05:08:15)
rarul > 意外と早く来るかもしれないっすよ?(ぉ ('10/07/31(土曜日)23:47:35)
ののいず > 転職宣言キター? ('10/08/01(日曜日)21:44:54)
Viliv N5 買った
[PCハードウェア] [パソコン一般]
'10/07/21(水曜日)02:05:59Viliv N5 Standard → 自分でAmazonアフィはっといていうのもなんだけど、楽天とかだと期間限定で割り引き販売中。
CEじゃないWindowsが動く超小型パソコンということで有名?なViliv N5 Standardを購入。用途としては、もともとモバイル用にということで購入したNB100が、Atomツカエネーってことで結局モバイルには使わずに自宅鯖になっているけど、やっぱモバイル用PCそろそろほしいということで購入。SSDの容量アップがアップしWindows 7になったpremiumなんてモデルが出てきた影響で、Standard購入者には店側が追加バッテリと8GB MicroSDカードを無料でつけてくれた。いまいちうれしいかどうかわからないプレゼントです。
んで軽く数日使ってみての感想。
まずCPU。「あれAtomってこんなに早かったっけ?」と思われるくらいには動いてくれる。NB100がAtom N270(1.6GHz)、Viliv N5がAtom Z520(1.33GHz) with HT、ってことで、実質ほとんど変わらないくらいなはずなのに体感的にはかなり早く感じる。これはひとえにSSDのおかげだと思う。・・・ってCPU関係ないやん。。いずれにしてもSSDはヤバイな、もうノートPC選ぶときに2.5/1.8インチHDDモデルなんて選べない。
キーボード周りは、一部記号が変則位置でかつFn+なんていう変態もの。よく使う多くのキーもお世辞にも打ちやすいとはいえず、タッチタイピングは不可能です。まぁマシンコンセプトからしてこの辺はあきらめていたのでいいとして、問題はマウスの代わりとなるオプティカルジョイスティックですな。両手でマシンを抱えた状態で、右手の親指で指紋センサのようなところをなぞることでマウスカーソルを動かし(たぶん静電気式タッチセンサなんだと思う)、左手の親指で右クリック/左クリックと同じ効果を持つキーボタンをおすという構成。なんだけど、スクロールがないっ!これは不便。・・・と思って調べてるとWheel Ballなんてのがオススメされてた。これは試してみる価値ありそう。
SSDは超快適なんだけど、このStandardモデルは16GBしかない(premiumは32GB、他社が64GBモデルも売ってる)。しかも16GBのうち5GBほどをHDD(SSD?)リカバリ領域で占有している。リカバリ領域をバックアップしてSSDの空き容量を減らしたいけどこのへんの作業あんまやったことないんだよなぁと思ってたら、そのものズバリのページを発見。Backup & Recovery Free Editionが意外と簡単に扱えそうということで、これも試してみることにします。
あとは、無線LANも便利なんだけどやっぱりイーモバかWiMAXかなぁとか、そうなったらますますGPSあり版買うべきだったか?とか、家に余ってたワンセグチューナつけてみたよとか、Windowsパソコンならではの使い倒し方ができるので、思ったよりも使えそうかなと思っているところです。
ニコ動関連ツール開発者情報のメモ
[インターネット一般] [日常]
'10/06/12(土曜日)09:41:03RSSリーダに登録されてるのの整理がてらメモ。。この辺見とけばニコ動仕様が多い日もみんなあたふたしているハズだから安心?ですね。ドワンゴ開発者のをまとめてもいいんだけど、それはすでにどっかの誰かがやっているだろうからパス。
- ニコニコチャートの中の人
ニコチャートニッキ(http://www.nicochart.jp/blog/) - ニコニコランキングメーカーの中の人(rankingloid)
DVR研究所(http://d.hatena.ne.jp/rankingloid/)
Twitter: rankingloid - にこさうんどの中の人(々?)
C#で綴る私の軌跡(http://ufreyr.blog80.fc2.com/) - nicomimiの中の人
wktkラボ(http://d.hatena.ne.jp/galara/)
Twitter: galara - Nearchの中の人
unnecessary words(http://d.hatena.ne.jp/hayori/) - ニコニコファームの中の人
・・・が見つからない。ブログとか書いてないのかな。 - ニコタグの中の人
ニコタグブログ(http://d.hatena.ne.jp/nicotag/) - ボカロおすすめサーチの中の人
ボカロおすすめサーチ 開発ブログらしきもの(http://vocaloidosusume.blog.shinobi.jp/)
Twitter: niboshidashi - ぼかさちの中の人
ぼかさちブログ(http://bocasachi.exblog.jp/)
Twitter: xaby_bokasachi - 全自動ニコニコランキング風 - 運営発表の値を元にアレやソレみたいなランキングを自動生成するWebアプリの中の人
TsSoftLab?(http://d.hatena.ne.jp/tsukaban/)
Twitter: tsukaban - NNDDの中の人
MineAPの(開発)日記(http://d.hatena.ne.jp/MineAP/)
Twitter: mineap - ニコニコ動画専用ブラウザ Nico☆UP DATE(ニコアップデート)の中の人
ニコニコ動画専用ブラウザ Nico☆UP DATE(ニコアップデート) 開発blog(http://nicoupd.sblo.jp/) - NicoPlayerの中の人
Twitter: motekin - Nwhoisの中の人
halxxxxの日記(http://d.hatena.ne.jp/halxxxx/) - ニコPITAの中の人
ニコPITAブログ(http://pita.s374.xrea.com/NicoPITA/)
Twitter: temarin_pita - ニコニコ動画ランキング分析(更新止まってしまっている)の中の人
(http://d.hatena.ne.jp/trapschool/) - NICOBOOM(http://nicoboom.org/, 今はもうない)の中の人
picasの日記(http://d.hatena.ne.jp/picas/)
ニコ生アラートの仕様とかもあるのね、ニコ生関連はほとんど使ってないからよくわからん、、
某へのリプライっぽいもの。
公式動画(so********)が同じ方法じゃうまくいかんなぁと思って調べててたまたま見つけたんだけど、
http://pc12.2ch.net/test/read.cgi/software/1251017748/455
http://pc12.2ch.net/test/read.cgi/software/1251017748/462
455 : 名無しさん@お腹 - 2009/12/15(火) 20:20:50 ID:d9WhgveFP
こういう、とあるサイトに対する研究って
同様ツール作ってる人向けに、共同でWikiとか作れないものか。
ニコニコ系ツールつくってる人結構いるみたいだし。
仕様変更とかひとりで追っかけるの大変だと思うのだけど
わかったとこだけ書き加えるだけならそんなには手間にならないんじゃないかなぁ?
非公式ツールだしおおっぴらにやっちゃまずいのかしら。
462 : 名無しさん@お腹 - 2009/12/17(木) 02:09:10 ID:5G8MHq3Z0
>>455
ツール開発やってるからAPIはそれなりに把握してるけど
調べるだけでも大変なのにWiki書くのやだよ
Wikiのやり方も分かんないし、仕様変わってメンテ怠ると
ウソかいてんじゃねえよって怒られそうだもん
チラ裏のように書けるブログは情報の発信の敷居を下げるけど情報の整理には向いていない、総ブログ総Twitter時代になってみんな情報の整理がヘタになってきているなぁ、とか思った。 でもよく考えてみたら、5年前も似たようなことを考えてた気がする。
開発者それぞれが自分仕様のソフトを好きに作るのもいいんだけど、 どっかである程度の割合の人はあきらめて周りを整備する方として貢献するようにしなきゃ大規模開発は回らないよなぁ、とか仕事してて最近つくづく思う。
「ソースコードが仕様書」なんてのは開発者の横暴だけど、その横暴を通すためには、仕様がわからんとか情報がないとかぐーたれるよりもソースコードから読まなきゃ話が進まない気がする。 まぁその前提としてソースコードが公開されている必要があるけど。
とか書いてると、xPadieの作者が開発終了宣言と同時にソースコードを公開していたのを思い出した。もう何年前の話だろ。って全然話関係ないや。
というわけでSourceForge登録してニコニコランキングメーカのソース落としてみようと思ったけど、 SourceForge使い方わかんねー、SVNなんて使ったことないや、そもそもこのPCにVSインスコしてない、て叫びたかっただけです。 ちなみに、SourceForge登録してなくても、SVN使わなくても、ブラウザから見ることは可能みたい。もちろん見るだけならVSなくてもおk
・・・という感じで休日つぶしてます。>「休みの日どうすごしてんの?」と質問した人へ。
ニコ動APIメモ
[インターネット一般] [日常]
'10/06/09(水曜日)05:12:08いろんな人がいろいろやってんだけど、今のところはニコPITAさんとこのブログが一番情報がまとまってそう。。
http://nicopita.info/NicoPITA/?cat=6
APIを利用する各言語ライブラリを整備しようという「ニコ★リブ」構想があったらしいけど、活動中止宣言されてしまってら。
http://sourceforge.jp/projects/nicolib/
ニコ生は動画がRTMPプロトコルに載っているらしい。けどRTMPの実装がFlashplayerそのもの以外はあんまりない模様。参考になりそうなのはRTMPDumpくらい?
http://d.hatena.ne.jp/kesikaran/20100329/1269870039
http://rtmpdump.mplayerhq.hu/
以下、後世の自分のためのメモ。
● ログイン
以下に「mail=(mail)&password=(pass)」をPOSTしてセッションCookieを取得し、以後の通信に添えて送ること。ニコ動はログインしてないと使えないサービスが多い。
https://secure.nicovideo.jp/secure/login
● 動画
たとえば "sm9" の場合、まず以下にアクセスする。
http://ext.nicovideo.jp/api/getflv/sm9
返ってきた結果(Body)の "url=****" の部分が動画ファイルを取得できるパス。「http%3A%2F%2Fsmile-pcm42.nicovideo.jp%2Fsmile%3Fv%3D9.0468」のようにURLエンコードされてるので適当にとく。このパスへGETすればビデオファイルがとれるが、とる前には必要なくとも必ず「http://www.nicovideo.jp/watch/sm9」へアクセスしないといけないっぽい。ちなみに、末尾「smile?v=***」がflv、「smile?m=***」がmp4、「smile?s=***」がswfらしい。取得するときはエコノミーモードに注意。今のエコノミーモードの時間帯
返ってきた結果の "ms=***" と "thread=***" を使ってコメント取得できる。 "ms=***" はURLエンコードされてる。 "ms=***" のpathに以下のようなのをPOSTすると、コメントがXMLで取得できる。(thread)は取得したもの、-250は取得したいコメント数
<thread thread="(thread)" res_from="-250" version="20061206" />
取得できるXMLにもいろいろのってるけど、必要になる箇所はこんな感じ。"mail"がコメント装飾タグ、"vpos"がコメント表示位置(10ms単位)
<chat anonymity="1" date="1203325660" mail="yellow 184" no="5404" thread="1201291236" user_id="mVA0IZFEyRz3uKxZ5LWumuzLoIU" vpos="25757">りん</chat>
コメントの表示位置(移動速度とか重ならないようにとか弾幕モードとか)はクライアントでやっているようだ。ちなみに、表示されるコメント数は動画の長さできまり、今のところは、1分未満が100件、5分未満で250件、10分未満で500件、10分以上で1000件。
ほか、以下にアクセスするといろいろ情報とれる。
http://ext.nicovideo.jp/api/getthumbinfo/sm9
● ニコ生
http://live.nicovideo.jp/api/getflv/lv18905056 をIDとすると、いかにアクセスすると、動画の場合と同じようなのが返ってくる。ただしこっちはXMLで返ってくる。
http://live.nicovideo.jp/api/getplayerstatus/lv18905056
返ってきた結果(Body)の <ms>タグ以下にある<addr>, <port>, <thread> を使ってコメントサーバに接続する。ただし、ニコ生の場合は、HTTPではなく生のSocketになる。addrのportにSocketで接続し、以下のような内容を write する。最後に 0x00('\0')もwriteすること(ここはまりやすい)
<thread thread="(thread)" res_from="-20" version="20061206" />
"-20"は接続した瞬間から過去いくつのコメントまで取得するかを表す。で以降は、新しいコメントが来るたびにsocketにデータが届くのでreadすればよい。コメントはXML形式で動画の場合とほぼ一緒。
返ってきた結果の ticket と rtmp あたりを使ってRTMP接続すれば、ニコ生の動画部分が見えるはず。ただまともなRTMPクライアントを作れていないので今のところ詳細不明。
● 実況
たとえば NHK総合(東京)につなぐ場合、まず以下へアクセスする。
http://jk.nicovideo.jp/api/getflv?v=jk1
返ってきた結果(Body)の thread_id と ms と ms_port を使って、ニコ生と同じようにSocket接続すればコメントが取得できる。返ってくる形式も含めて一緒。
実況は、テレビやラジオの放送がターゲットなので、ニコ動サイト側からストリーミングされることは(今のところ)ない。
・・・といった情報をいろんな人がいろんなところに書いてるから分散しているよなぁ。みんなでどっか1カ所に集めようよ。。
「王様の抱き枕」買ってみた
[日常]
'10/05/31(月曜日)00:53:43何かモフモフしてて気持ちいいものが抱きたいなぁと思っていたのはとりあえず置いておいて、自分のいびきで目が覚めるくらいにいびきが気になることにしておいて、その対策という名目にして買ってみた。抱き枕というと、世間的にはアレな絵柄のカバーが付属しているやつを指すのですが、これはそういうのとは違います。ここ大事ですよ。私はアレじゃないということです。
「王様の抱き枕」は抱きやすさと抱き心地を追求した商品で、その結果形とそれの中に詰めるものにいろいろこだわってるそうです。詳しい説明はこのへん。つまり、アレなやつとは異なり、まっとうなやつを目指したものになってます。
で、使ってみた感想・・・うっ何かアルデヒド系のにおいが・・・新品だからなのかあけた直後はちょっといやなにおいが。でも1日たてばおさまったようで安心した。モフモフ感がいまいち足りないかなとは思うものの、この妙な形が抱きやすいさに直結していてこれはなかなかグー。これのおかげで夜寝るときも妙な安心感に包まれること間違いなし?寝るときくらい現実逃避させてほしいナウでヤングな(?)忙しいビジネスマンにはそこそこいいかも。
注意点は、抱き枕は枕じゃないので別途普通の枕が必要なのと、この「王様の抱き枕」は抱きしめるための商品なので使用時は仰向けやうつぶせになれず基本的には横向け(せめてクオーター組の上向け)、あたり。
というわけで、朝会社に来るのが遅くても怒らないでください、というよりこのまま冬眠させてください。。