リン廃ホイホイボット
[インターネット一般] [日常]
'11/06/01(水曜日)01:32:33仕事でとりあえず動いていないところを片っ端から解析させられているせいで、自分が今どんなジャンルのプログラミングが得意なのかわからなくなっている今日この頃、気づいたら@LovelyRinchanなボットができあがっていた。今のままだと@rarulよりもFollower数が多くなる日はすぐに来そうだ。
(どうでもいいけど、数年後Twitterがもしなくなっていたら、上記のエントリはいったいなんだったのかすらわからなくなる・・・のかな。)
rarul > 気づいたら、http://rinchan.com/ なドメインを取得していた。 ('11/06/08(水曜日)03:46:18)
「続・ハイパフォーマンス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)
ニコ動関連ツール開発者情報のメモ
[インターネット一般] [日常]
'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/01/14(木曜日)05:32:33週刊VOCALOIDランキングが今週からポイント計算式を変更したので、どんな傾向になるのかを図示してみた。
コメント数が1000固定とし、再生数が1万・2万それぞれのときに、マイリスを連続に変化させた時のポイントの変化です。比較のため、従来の式も併記しています。
2010_vcl_point.png
大まかには以下の3点に集約できるでしょう。
1) マイリスが再生数の1/20以下程度だとポイントへの寄与が弱い
2) マイリスが再生数の1/10より上でのポイントへの寄与が指数的に上がる(2乗で効く)
3) 結果、マイリス率(マイリス/再生数)さえ高ければ、再生数やマイリス数が小さくてもポイントを稼げる
3)が特に影響大きく、マイリス率次第でマイリス・再生・コメントともに多い動画に少ない動画がポイントで上回ります。(例えば、再20000マ2000コ1500より、再10000マ1600コ1000の方がポイント高い) ・・・コレでいいのか?ほんとに。
計算用に作ったExcelファイルもおいとく。> 2010_vcl_point.xls
ikomaru > (゜Д゜)??<以下の1点に集約できるでしょう ('10/01/14(木曜日)12:08:46)
rarul > はいはい、今なおしましたよと。 ('10/01/15(金曜日)00:21:54)