タグ

Node.jsに関するakaneharaのブックマーク (23)

  • npmからkikとその他諸々が消されたまとめ

    npmとは、node.jsにおけるパッケージシステムのことだ。npmを使えば、他人の書いたnode.jsベースのプログラムとライブラリの入手と利用がとても簡単になる。 そのnpm界隈が混乱している。発端は以下のURLだ。 I’ve Just Liberated My Modules — Medium Azer Koçuluはkikという名前のnpmパッケージを公開していた。このkikというソフトウェアの中身についてはここでは関係がない。 さて、それとは別に、kik.comというスマフォ用のチャットアプリを出しているKik Interactive社がいて、kikという名前のパッケージをnpmで出したいので、名前を明け渡すように要求した。 Azerはこの要求を拒否した。すると、Kik Interactive社はnpmの管理者に片っ端からメールを投げまくり、そのうちの一人が反応して、Azerの意

  • ES6時代のNode.js

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。情報システム部の伊藤(@koh110)です。 社内システムの開発、運用を担当しています。 今回、担当しているシステムをNode.js LTS(v4.x)へバージョンアップしました。 それに伴い実施したES6対応の中から3つの事例を紹介したいと思います。 varを撲滅しよう arrow functionを使おう callbackを撲滅しよう varを撲滅しよう varをlet, constに置き換えます。基はconstに置き換えます。 メリットは以下の点で、コードの品質向上につながると思います。 プログラム中で変更不可である事を明示的に示せる。 誤った使い方をした時にバグとして検出される。 varを利用するとブロック

    ES6時代のNode.js
  • WebRTCによるビデオチャットサービスの開発 - Qiita

    はじめに Webで使えるビデオチャットサービスを開発しましたので、システム構成や使用したフレームワークやサービス、開発のポイントなどまとめてみました。 (去年にはQiitaの投稿を作っていたのですが、下書き保存したまま忘れて今頃の投稿になってしました。。) 月々のランニングコストは1000円以内、開発工数は1人月以内で作成しています。 WebRTCが出てきたおかげで、かなり容易にビデオチャットサービスが開発できるようになっていますので、よければ参考にしてください。 開発のポイント、コードだけでなく、開発の動機から、システム構成を決める為、開発前後に行ったビデオチャット関連の技術調査なども載せています。必要最小限の事だけ把握したい方はその辺りは読み飛ばしてください。 開発ビデオチャットサービス: ビデオチャッターズ (http://videochatters.net/) 開発動機 5~6年ぐ

    WebRTCによるビデオチャットサービスの開発 - Qiita
  • node.js - 非同期処理やQの話 - S.F. Page

    2014-08-12 node.js - 非同期処理やQの話 node.js Wordpressから静的HTMLへの移行 Pyramid of Doom 非同期処理をうまく処理するためにQを使っている。QはPromiseとそれを使用するアルゴリズムで構成されている。 どうも人間というのは上から下にフローが流れていかないと理解が難しくなるようである。コールバックによる非同期処理を行うと縦方向と同時に右横方向にフローが流れていく。これを「Pyramid of Doom(破滅(死)のピラミッド?)」と呼ぶそうだ。 step1(function (value1) { step2(value1, function(value2) { step3(value2, function(value3) { step4(value3, function(value4) { // Do something wi

    node.js - 非同期処理やQの話 - S.F. Page
  • pm2のデプロイ機能を試してみる - たけぞう瀕死ブログ

    pm2はforeverと類似のプロセスマネージャですが、foreverと比べると以下のようなメリットがあります。 マシンのコア数に応じて複数のプロセスを起動し、バランシングを行うことができる CPU使用率、メモリ使用量、再起動回数などの項目を監視することができる Gitリポジトリからのデプロイ機能を備えている というわけでSailsアプリケーションでデプロイ機能を試してみました。デプロイのイメージは以下のような感じです。 pm2でデプロイを行う場合の注意点としてNodeのモジュールはすべてアプリケーションにローカルインストールし、node_modulesディレクトリをGitリポジトリにコミットしておく必要があります。Sailsなどを使う場合、Windows上だとnode_modulesディレクトリのネストが深すぎてgit addするとき怒られることがあるのでCドライブ直下など、できるだけ浅

    pm2のデプロイ機能を試してみる - たけぞう瀕死ブログ
  • pm2 - node.js プロセス管理パッケージ - オープンソーサー・日本

    pm2はnode.jsアプリプロセスの管理パッケージです、ロードバランサー機能もビルドインされています。 pm2とは pm2はサーバーの全てのCPUを使って、ステータレッスnode.jsアプリを負荷分散管理するパッケージです、アプリケーションのダウンタイムは0sを保証できます。 主な特徴 ロードバランサー機能をビルドイン(native clusterモジュール利用) デーモンスクリプト node.jsアプリを0sリロード Ubuntu/CentOS起動スクリプトも提供(Ubuntuはupdaterc.d、ほかのLinuxはchkconfig) 不安定プロセスを停止させる(無限ループ回避) コンソール監視 HTTP API リモートコントロールとリアルタイムAPIインターフェース pm2はnode.js v0.11,v0.10,v0.8でテスト通りました、CoffeeScriptとの互換性も

  • nodeconf.eu 1日目 (Future Node.js, microservices, hapi) - from scratch

    さて、 nodeconf.eu に来ています。 当たり前なんだけど、nodeconf.eu ではnode.jsを使っているユーザーが多くて、外人ばっかり。 会う人会う人に「お前の国ではNode.jsは流行ってるのか?」って聞いてるんだけど、とりあえずの理解では、「サンフランシスコ、シアトルとかアメリカでは流行ってる。Dublin、ロンドンとかのアイルランド、イギリスでもまぁまぁ流行ってる。スウェーデンでは全く流行っていない。」っていう感じ。 日ではどうなんだ?って聞かれたから「MatzのおかげでRubyがめっちゃ流行ってるよ、Node.jsも一時期流行ったけどRubyほどじゃない、最近だとGoScalaが流行ってるよ」って応えてる。 ちなみにサンフランシスコだと、Node.jsめっちゃ流行ってて、Goがちょっと前のNode.jsみたくぼちぼち流行ってる、エッジな人たちがRust使い始め

    nodeconf.eu 1日目 (Future Node.js, microservices, hapi) - from scratch
  • Node.jsにおける大量のデータ処理の際の非同期処理コールバックがスタックしすぎる問題への対処 | 踊る犬.net

    ハマったのでメモです。 ストリーミング処理の落とし穴 Mongoose(MongoDBのODM)を使って、コレクションからほんの10万ほどのドキュメントを処理するスクリプトを実行した時でした。処理が固まってしまうのです。なぜでしょう? 各ドキュメント処理では、コールバックを伴う非同期的な処理を含みます。 問題のCoffeeScriptのコードは以下のようなイメージです: Foo.find() .sort value:-1 .stream() .on 'data', (d)-> someTask d someTask = (d)-> doAwesomeJob (result)-> console.log "Great!" モデルFooのドキュメントを全て読み込み、各ドキュメントをストリームに流し込んでいます。 メモリを節約するためにストリームの手法を採用しています。 doAwesomeJob

    Node.jsにおける大量のデータ処理の際の非同期処理コールバックがスタックしすぎる問題への対処 | 踊る犬.net
  • イベントはスレッドに比べて何故ダメなのか (Why Events Are A Bad Idea) | yunabe.jp

    並行処理をプログラミングする方法は大別すると、 スレッドなどを利用した同期処理的な書き方と イベントを利用した非同期処理的な書き方があります (イベントループ)。 最近 C10K問題 が有名になったことや、 Node.js が流行っていて Node.js のメリットとしてイベントモデルであるため C10Kが解決されるというのが上げられていたりして、 イベントモデルのスレッドに対する優位性が注目されることが多いように思います。 しかし個人的な経験として、ある程度以上複雑なプログラムを書く場合、 イベントモデルで非同期処理を多用してプログラムを書くとスレッドで同期処理を使ってプログラムを書いた場合に比べてプログラムの可読性・保守性が著しく悪くなり、 バグが発生しやすくなるように感じます。 しかも並行処理で起こるバグは特定の処理が特定の順序で実行された場合のみ起こるようなことが多く、 再現性が低

  • Node.js チュートリアル | Node ビギナーズブック

    書について 書は、Node.jsでのアプリケーション開発を始めようとする皆さんに、 ”高度な”JavaScriptについて知るべきあらゆることを解説します。 よくある”Hello World”チュートリアルの、はるか上をいくものです。 ステータス 貴方が読んでいるのは、書のいわゆる最終版となります。 つまり書は、間違いが見つかった場合や、 Node.jsの新バージョンにおえる変更点を反映する時のみ、改訂されます。 最終更新日は2012年2月12日です。 書内のコードのサンプルは、Node.jsのバージョン0.6.10でテストしています。 ターゲット読者 書は、RubyPythonPHPJavaのような、少なくともひとつのオブジェクト指向言語を理解しており、 JavaScriptについてはあまり経験がなく、Node.jsについては全く経験がないという、 著者と同じようなバッ

  • node.js アプリの負荷分散構成を考える - KrdLab's blog

    node.js の負荷分散について考えてみました (フェイルオーバは考慮できていません).個人レベルなので 1 台のハード上に仮想マシンを 5〜6 個立ち上げて実験しています. 見出し はじめに cluster で負荷分散 寄り道:cluster の仕組み 例えばこんな全体構成 おわりに はじめに node.js は設計上,大量のコネクションを省リソース (プロセス・スレッドをバカスカ生成しない) でさばきます.おそらく想定されているのは I/O バウンドな処理であり,この場合は基的に非同期で処理されるため,I/O 待ちで他のリクエスト処理がブロックすることはまずありません. node.js は「サービスをつなぎ・組み合わせるためのハブ」的な位置づけが一番しっくりくるように感じます *1. ただ, 大量のリクエストをさばかなければならない ロジックが重くてコールバック処理に負荷がかかって

    node.js アプリの負荷分散構成を考える - KrdLab's blog
  • Node.js cluster.jsによるgraceful restartについて | Trifort Tech blog

    こんにちは。 Trifortの山中です。 社内ではAndroid兼node.js周りの開発を行っています。 まず今回は弊社で運営しているスタートークというアプリで使っている、Node.jsのネットワーク構成等を書きたいと思います。 Star Talk 〜スタートーク〜 弊社で開発しているトークアプリです LINEと違ってニックネームだけで始められます。落としていない方はぜひダウンロードを。 機能面ではよくあるチャットアプリの基的機能は網羅しており、加えてタスク管理やチャットの全文検索、お気に入りや複数デバイス同時ログイン可能など多彩な独自機能を含んでいます。 しかし、なにより重要なのはアプリの安定性です。 リリース当初はサーバーサイドの担当だったのですが(Android開発者で入ったのに)、現在ではDAUの増加や新機能開発に伴いサーバーサイドの担当者が増え、私はAndroidをメインで

    Node.js cluster.jsによるgraceful restartについて | Trifort Tech blog
  • Progress作業メモ - nekomoaruku's diary

    TODO wsチャットサーバ、ws 認証token発行API、hapi token認証をチャットサーバーに追加、ws wsチャットサーバ webにあるサンプルみたいなのはできた。 wsの認証&idとconnectionのhashをどこで作るか考えた。 パフォーマンス的には、handleUpgrade()をoverrideするのが良いと思った。ただ大変そうなので、カスタム認証用に用意されているverifyClient()に書けばいい。と思ったら、verifyClient()が呼ばれる段階では、connection(コード上はclient)が作られてない。なので結局、'connection'eventで拾う。まとめ。認証はverifyClient()に書く。idとconnectionとのhashは、'connection'イベント処理に書く。 Handshakeリクエスト時にブラウザ上のjsが

    Progress作業メモ - nekomoaruku's diary
  • node.jsのいろいろなモジュール23 – wsでWebSocket接続 | DevelopersIO

    wsモジュール wsモジュールは、WebSocketプロトコル(RFC-6455に準拠する)の実装ライブラリです。 socket.ioのように多機能ではありませんが、シンプルな作りで非常に高速に動作するのが特徴です。 ※socket.ioも内部でwsを使用しています 環境構築方法 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.7.4 Node.js : v0.8.15 npm : 1.1.66 適当なディレクトリを作成し、そこでnpmを使用して必要モジュールをインストールします。 今回はexpressも使用するので、いっしょにインストールしましょう。 % mkdir ws % cd ws % npm install ws express wsモジュールを使ったチャット ありふれた例ですが、wsモジュールとexpressモジュールを使用してシンプルなチャットをつく

    node.jsのいろいろなモジュール23 – wsでWebSocket接続 | DevelopersIO
  • 今更だけどSocket.ioについてまとめてみる - blog::wnotes.net

    ちょっとSocket.ioを導入する機会があったので、色々調査したのをメモしておきます。 Socket.ioとは node.jsのnpmとして提供されている、WebSocketを手軽に扱えるモジュールです。 多分すごい有名なので、だいたいみなさん知ってると思います。 他にはwebsocket-serverとかもあるんですが、こっちの方が有名ですかね。 特徴として、クライアントサイドのトランスポートがクロスブラウザなところでしょうかね。とても助かります。 詳しいところは公式サイトを見るといいと思います。 Socket.IO: the cross-browser WebSocket for realtime apps. すんごい出たばっかりの頃にも触ったことがあったんですが、今使ってみると機能がすごい増えててびっくり。 機能の紹介とかは他のサイトを見てもらうとして、備忘録的に自分がやった所なん

  • Socket.IO, Redisを使用し各ゲーム間でプッシュ通知するシステム | 株式会社サイバーエージェント

    2. システム概要 homingは、アメーバピグ関連サービスのいずれかにログインしているユーザに対して、各サービスの通知情報を横断的にプッシュ通知します。 システムの構成は以下の通りです。 図2-1. システム概要 2-1. APIサーバ ユーザへの通知要求を受け付けるREST fullなAPIを備えたWebサーバです。 Node.jsのClusterによる、master/worker構成で稼働します。 通知要求はワーカプロセスで処理します。 図2-2. APIサーバ 2-2. Redisサーバ(データストア用) 一時的なデータをストアするためのRedisサーバです。 sentinelプロセスによる、master/slave構成で稼働します。 ストアされたデータはメモリ上のみで管理し、ディスクへの書き込みは行いません。 以下の情報を管理します。 ユーザのオンライン情報 ユーザIDの索

  • Loading...

  • Automattic

  • むしろ駄菓子屋さんで | redisとnode.js

    対象読者 node.js/npmはインストール済み macなどの*nixを持っている redisはよくわからない redisのいいところ 小さい! 持ち運びしやすい! 良い意味で何もない! 純粋KVSより少し豊かなほどよい甘み 簡素ですので、パフォーマンスなどに関して色々「狙いやすい」 あの、express作者さんもよく使ってらっしゃいますよ 僕みたいなコンシューマーゲーム難民に是非オススメしたい、組み込み系の薫りとwebっ子っぽいカジュアルな感覚が同居したシンプルDBとなっております。 redis体 ダウンロードページから最新版(この文章を書いている時点では2.4.4)をダウンロードして、下記のように一行makeと打てば終わりです。 make 続けてインストールするか否かはお任せします。この段階で、「展開ディレクトリ/src/redis-server」がありますので、起動しておきます。

  • node inspector で node.js 用のコードをステップ実行する - latest log

    node inspector で node.js 用のコードをステップ実行する - latest log