Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
(2015/10/21追記) 記事を書いてから半年経ちましたが、最近はRxの良さを理解したり、ES7のasync/awaitがbabelによって実用的になりつつあったり等、またもやベストプラクティスとはなんだったのか状態です。とはいえ、いまのところPromiseは非同期処理の土台であり続けそうですし、Generatorもasync/awaitへの足がかりとして知っておくことのメリットは大きいかと思いますので、引き続き公開させたままとさせて頂きます。 (追記ここまで) 数ある非同期処理のプラクティスを試してみて、だいたいこれが良いんじゃないかというパターンが固まったので書きます。効用はコールバック地獄からの脱出と結局非同期どれが良いの感の払拭。ES6寄りです。 前提知識 JavaScript Promiseの本 http://azu.github.io/promises-book/ ジェネレ
Please use native promises instead if at all possible. Native Promises have been stable in Node.js and browsers for around 10 years now and they have been fast for around 7. Any utility bluebird has like .map has native equivalents (like Node streams' .map). This is a good thing, the people working on Bluebird and promises have been able to help incorporate most of the useful things from Bluebird
20140826.md Express / Socket.IO をスケールアウトしてみよう Seiya Konno Works at Uniba Inc. (http://uniba.jp) https://twitter.com/nulltask https://github.com/nulltask https://fb.me/nulltask スケーラビリティとは システムの規模に依らず機能を適応できること リクエストに対するスケーラビリティ アプリケーションコードに対するスケーラビリティ Express https://github.com/strongloop/express 言わずと知れたウェブアプリケーションフレームワーク 右も左もわからなかった頃 => app.js の肥大化 メンテナビリティの低下 アプリの規模が大きくなってもメンテナビリティを確保したい Mounting
合宿で heroku 使ってたチームがあって、とても便利そうだった。昔、Node.jsで画像アップローダをつくったんだけど(node.jsでtrayという画像アップローダを作った - はこべブログ ♨) 自分のVPSで雑に動かしていて、飽きてしまうとあんまり気にしなくなって、止まっても放置したりしてた。それくらいであれば、herokuで一旦動かすようにしておけば、可用性は担保されるだろうと思い立ち、herokuで動作させることにした。 動いている様子はこちら: http://imagetray.herokuapp.com/ 左上のマスに画像をドラッグ・アンド・ドロップすると画像がアップロードされる。誰かがアップロードするとリアルタイムに更新される。コードを更新したり、しばらくだれも使ってなかったりして、herokuのホストがrestartされると、アップロードされた画像は消えてしまう、刹那
ungitはnode.jsで動くグラフィカルなgitクライアントです Learn Git Branchingみたいな直感的なGUIで操作できるので とても分かりやすいです インストール 今回はnvmを使用してnode.jsを入れます $ git clone git://github.com/creationix/nvm.git ~/.nvm $ source ~/.nvm/nvm.sh $ nvm install v0.10.22 $ npm install -g ungit $ nvm use v0.10.22 ログイン時も有効にしたい場合は.bashrcに以下のように書いておきます if [ -d $HOME/.nvm/ ] then source ~/.nvm/nvm.sh nvm use v0.10.22 > /dev/null fi 起動 以下のコマンドで
はじめに 先月、友人の結婚式の二次会でタイピング対決をしたいとの企画を、幹事の友人から受けました。面白かった要件としては、 二人の顔を 2 台のカメラで映したい タイピングしてる様子をリアルタイムで見たい というものです。これをサーバは Node.js で、クライアントはブラウザで作成しました。エントリ書いてもいいよ、と許可を頂いたので、今後似たような依頼を受けた方のご参考になるように、エッセンス部分をご紹介します。 (追記:2013/11/20) 幹事さんも記事を公開されました: http://tjun.org/blog/2013/11/wedding-typing/ やったこと ホスト PC 側で新郎新婦それぞれの PC からのログインを待ち受けします。イイ感じに○で切り抜いてくれるような PNG をイラレで作っておきました。 それぞれの PC からログインしてもらいます。 ログインし
最近、Grunt と grunt-contrib-watch を使っているのだけど、grunt-contrib-watch が CPU を消費しがちである。 watch 対象のファイルが少ないうちは grunt-contrib-watch は問題なく動くんだけども、ファイル数が増えてくると CPU の消費量が増えてくる。自分の環境では、1,000 個ぐらいのファイルを監視していると、常時 10% 程度 CPU を消費している。 この問題は既知であり、FAQ には次のように書いている。 たくさんのファイルを監視している場合、デフォルトの interval の値が小さすぎるかもしれない。options: { interval: 5007 } のようにして増やしてみてほしい。詳しくは issues #35 と #145 を参照のこと (※日本語訳は私によるもの) Another reason i
node-webkitとは node-webkit wiki 日本ではあまりnode-webkitは知名度が高くないが、簡単に言うとIntelが開発に関わっている、nodeとWebKitを統合し、DOMコンテキスト上でnode.jsの機能を使えるようにするソフトウェア。一言でいうと言うと、ウェブでnode.jsを動かすプラットフォーム。 何ができるのか node.jsで出来ることと、ウェブで出来ることと、node-webkitが用意している機能(GUIの操作など)が使える。 例えば/etc/hostsを読み込む場合 node-webkitと同一のディレクトリに下記のようなindex.htmlを用意して <!doctype html> <html> <body> <pre id="hosts"></pre> </body> <script> var fs = require('fs'); f
http://www.nczonline.net/blog/2013/10/07/node-js-and-the-new-web-front-end/ Nicholas ZakasはYahoo出身で現在Boxに勤めるフロントエンジニアで、JavaScriptに関する複数のオライリー本の著者でもあります。彼が自身のブログで、Node.jsをサーバサイドUIレイヤのみで活用することを提言してます。 JavaScriptエンジニアはフロントエンドのコントロールはできるが、サーバサイドのUIレイヤはバックエンドエンジニアの領域で、それがフロント(JavaScript)エンジニアとバックエンドエンジニア双方のストレスであった。(参照図1) Node.jsの登場で、サーバサイドのUIレイヤをサーバサイドのビジネスロジックから分離し、フロントエンジニアはブラウザ & サーバのUIレイヤ、バックエンドエン
http://www.slideshare.net/bcantrill/surge2013 上記のスライドは、JoyentのSVP, EngineeringであるBryan Cantrillがエンジニア組織のあるべき姿ついてまとめたものです。BryanはSun Microsystems出身で、同社がOracleに買収されたのを受けて、2010年にJoyentに移ったという経歴。Joyentはクラウドサービスの会社ですが、Node.jsのスポンサー企業として知られ、Node.jsの中心人物であるIssac Schlueterなどフルタイムでオープンソース開発に従事する社員がいます。昨年、Greylock, Intel CapitalなどからSeries Dラウンドで$85Mの資金を調達してますので、投資家からは上場を期待されていると思われます。 彼の意見としては、 [モチベーションをあげるポ
hubotの導入方法をインストール、スクリプトの書き方やサンプルコードを交えて解説します。元となった記事はこちらのURLから http://blog.fumiz.me/2012/08/05/hubot-matome/
Hubotを導入して半年たったのでレビューします。 Hubotとはなにか いわゆるボットです。サーバー上で待機していて、こちらからコマンドを与えたりイベントが発生するとそれに応じて処理をしてくれるプログラムです。 module.exports = (robot) -> robot.respond /PING$/i, (msg) -> msg.send "PONG" 下記のような特徴を持っています。 CoffeeScriptで「どういうメッセージがきたら なにをする」というパターンをサクサク追加できる。 機能拡張のスクリプトを簡単に使い回せる。(hubot-scriptsレポジトリで公開されている) Campfire, IRC, Skype, Yammerの様々なコミュニケーションツール、HTTP等をインターフェイスとして使える。 特に重要なのは3つ目で、デプロイのコマンドはIRC経由で受け
本番環境にperlとかrubyとかnodeを入れるんだけど、もちろん system perl じゃやってられないので指定したバージョンのものを一般ユーザの管理下に突っ込みたい。 で、そういうのをこれまで perlbrew とか rvm とか rbenv とか nvm とか nodebrew とかでやってたんだけど、さすがに色々疑問が湧いてきた。バッチで単発実行するために eval "$(rbenv init -)" とかさすがにおかしくね? みたいな。 ということで tokuhirom method 的にインストール用の簡単コマンドを使って実行、あとはパスを通せばいいじゃん、ということにしようかと思う。 参考: サーバーのセットアップは perlbrew とかじゃなくてよくね? という時のライフハック - blog.64p.org これ、今朝までは Perl::Build をどうにかしてC
Amon2::Liteでmarkdownその他のリアルタイムプレビュー - すぎゃーんメモで、markdownとかのリアルタイムプレビューできるものを作って試してみたもの、やっぱりテキストエリアでmarkdownを書くってことはあまりしないなー、と思い。 大抵は使い慣れたエディタを使って編集すると思うので、それが変更されたときにブラウザ上で自動更新される方が嬉しいような気がして、 ファイルの変更監視でmarkdownファイルの編集->保存を検知 markdown->html変換したものをSocket.IOでリアルタイム更新 というものを作ってみた。 Node版 まずはNodeで。実行時引数で監視対象ファイルを指定し、fs.watchFileでそれを500msごとに監視、変更あれば変換したHTMLを普通にSocket.IOでクライアント側に通知する。 #!/usr/bin/env node
Socket.IOBidirectional and low-latency communication for every platform PerformantIn most cases, the connection will be established with WebSocket, providing a low-overhead communication channel between the server and the client. ReliableRest assured! In case the WebSocket connection is not possible, it will fall back to HTTP long-polling. And if the connection is lost, the client will automatical
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く