上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2010/11/1より渋谷在住無職から改め、社会復帰を果たしました。勤め先が品川になったので品川への引越しを検討中です。

※このエントリは書き掛けで不十分な、或いは誤った内容を含んでいます

node.jsとは



node.js とは何か

node.js とは何か (2)

node.jsとは何か(3)

はい。このブログで敢えて書き足すような事はなくなりましたね。

敢えてまとめるなら、「GoogleChrome等で利用されているV8エンジン、libev・libeioといったライブラリを利用した、非同期I/Oが標準の高速なサーバサイドJavascript環境」なんでしょうか。

Javascript


日本男児たるもの一度はWAフレームワークを作ろうとするもの(出来るものが例え酷い代物だったとしても)だと思いますが、今時のWebアプリケーションを作る上で必ず悩むのはJavascriptについてフレームワークでどうサポートするかだと思います。クライアントサイドで動作する言語となると実質Javascriptが唯一の選択肢となります。(携帯端末等のためjs非対応環境も考慮に入れなければなりませんが)

翻ってサーバサイドJavascriptが広く使われる事は今まで無く、一つのフレームワークの中で二つの言語が混在するしかないという決してスマートとは言えない状況が長く続いてきました。しかし敢えてサーバサイドもjsに変えられる十分な状況が揃えば、Javascriptさえ出来ればサーバサイドもクライアントサイドも出来る・・人材の確保がより容易になる、であるとか諸々相応のメリットがあります。

或いはサーバサイド・クライアントサイドの言語が統一される事によって、新しく美しいWAフレームワークだって産まれるかもしれません。

Ajax時代の、サーバ<->クライアントで協調するMVCフレームワーク

「RESTful MVC」なアーキテクチャの話

ただ、前述した「使わざる得ない状況」を抜きにして果たしてJavascriptが今ほど広く使われるようになったのか、クラスベースの言語に比べてプロトタイプベースの言語が一般受けするか、は良く分かりません。

非同期I/O


Coroが何故重要であるか

軽量スレッドブームだと思うので、そこらへんの情報をまとめてみる

Websocket


Socket.IOライブラリの存在など、node.jsはWebsocketを利用したWebアプリケーションを作りやすい環境だと言えます。PC環境においてはまだまだ限られたブラウザでしか利用出来ないWebsocketですが、HTML5と同様にスマートフォン等では今後存分に活躍出来るかもしれませんし、スマートなCometとしてリアルタイム性の必要なアプリで利用されるかもしれません。

クローラ


リモートのリソースを取得する処理を、普通に書けば逐次処理になります。ファイルIOと違ってネットワークIOはレスポンスまで5秒ぐらいかかるサイトが混ざってるとか普通に有りえるので、より問題になりやすい領域ではあります。PHPであればcurl_multiを使った並列処理等で効率化は可能ですが、より高い効率化が必要であれば非同期I/Oに行き着くのではないかと思います。あとjQueryが使えたり

マッシュアップアプリ


様々なサービスが公開しているWebAPIを組み合わせて利用したアプリでも、前述と同様の理由からnode.jsとは相性が良い分野だと思われます。また一般公開されているAPIを組み合わせるパターン以外に、自社内でのみ完結するアプリであってもマッシュアップアプリのアーキテクチャ(WebAPIの集合体としてアプリを構築する)を採用する事は、技術ライフサイクルを考慮した疎結合・スケールアウト性の確保の上で有用かもしれません。ソーシャルアプリもまたプラットフォーム側が用意したAPIを利用する事から、この区分に属するかもしれません。



DB


データの永続化を考えた場合、しばらくはRDBではなくKVSとセットで使われる事が多いんじゃないでしょうか。現時点で敢えてnode.jsを使う要件だとパフォーマンスの方が重要でしょう。

公開ライブラリ


npm

PEARとかCPANとかGems的な。JSDOMを使えばDOMが作れて、node.jsからjQueryも使えるらしい。

[斜め読み]Charlie Robbins「jsdom.jsとjquery使ったスクレピング」

フレームワーク


express

Sinatra的な。WebAPI作るのにはとりあえず良さそう。

node.js + express + mongoDB + WebSocket などのリンクまとめ

Node.js 用パッケージマネージャ npm と Sinatra ライク軽量フレームワークの express を使ってみた

現時点での暫定的な結論


クローラ書いたりマッシュアップアプリ書いたりWebAPI書いたりチャット作ったり技術研究を除けば、引き続き多くのプロジェクトではLAMP環境が最適解だと思います。
ゲーム動画に限らずPC画面を配信する方法なので、色々と応用は効くかと思いますが、そこそこのPCスペックは必要になるかと思います。といっても私が使ってるのはこれですが。

またUstreamでなくニコ生でも行けると思いますが、プレミアム会員じゃないので試していません。

Ustreamでアカウントを作成する



USTREAM

今はサイト自体日本語化対応しているので特に迷う箇所は無いかと思います。

SCFH DSFをインストールする



SCFH DSF

ダウンロードしたらreadmeを参考にインストール。
デスクトップの動画をFMLEへ送れるようにします。

ステレオミキサーの設定



ステレオミキサーの基礎

PCで再生している音声をFMLEへ送れるようにします。

Flash Media Live Encoderをインストールする



Flash Media Live Encoder(FMLE)

Adobeの会員登録が必要です。インストール・起動したらUSTREAMの「番組設定」「詳細設定」にある「Flash Media Encoder XML ファイル」をダウンロード、FMLEからXMLファイルを読み込みます。

Video DeviceとAudio Deviceにはさっきインストール、設定したSCFHとステレオミキサーを指定。

Formatの設定ボタンからエンコーダの詳細設定が出来ますが、とりあえずはGood Quality - Good Framerateでいいかと思います。画質を落とさないとFPSを確保出来ず、FPS重視の状況ならLower Quality - Best Framerateとかでも。

Frame Rateは30で。動きの激しいアクションゲーム等では60とかにしたくなりますが、たぶんUstream側の上限が23FPSだと思います。

BitRateはとりあえず350で。余裕がありそうなら1000とかにするとより高解像度の配信が出来ます。

SCFHを起動して設定する



SCFH.exeを起動するとプロセスの選択画面が出るので、ここでさっきのFlashMediaLiveEncoderを選択します。また縮小方法はSoftware(Bilinear)を指定。CPUに余裕があればオーバーサンプリングを有効にすると画質が向上するらしいです。

試験とチューニング



FMLEでStartを押せばエンコードが開始されます。AverageのDropsが多い様であればコマ欠けが発生してカクカクになっているという事なので、設定を調整します。

試験とチューニングが終われば後はUstreamから配信を開始するだけです。

Streaming .TV shows by Ustream

これは大分FPS重視の例。


Ustreamで高品質な映像で配信する

ゲームも今や「ネットで見る」時代に? ――動画共有サイトで広がる「実況プレイ」の波
再開しといて相変わらず料理のエントリーなんですが、
おいしかったです。

オリジナルのレシピと違うのは、
鶏モモじゃなく鳥はむを使っている事ですね。

SN3F0004_20100425124744.jpg

SN3F0001_20100425124745.jpg

SN3F0003_20100425124546.jpg

SN3F0005_20100425124744.jpg

SN3F0002_20100425124744.jpg

aSN3F0001.jpg

参考にしたレシピ
退職して渋谷在住無職(27)になりました。
ブログを再開します。
SN3F0007_20100214213821.jpg

鶏胸肉2kg@700円*2
豚肉1kg@880円

SN3F0008_20100214213827.jpg

鳥はむ

ひたすら塩をすりこんで、ラップで巻いて空気を抜いてを4kg分。バレンタインデーなのでハート型にしてみました。まるで宝石だね、君たちは。

塩抜きした時に出来る鶏スープはうまいです。

SN3F0009_20100214213834.jpg

食べられるのは二日寝かせてからなので、今日の晩御飯は八丁味噌と豆板醤の豚ナス炒めです。肉とナスと油と味噌のハーモニーって素晴らしい。
copyright © 2005 The elephant vanishes all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。