「視座」の上げ方が成人発達理論にわかりやすくまとまってた / think_ perspective_hidden_dimensions
こちらの記事は英語版のブログに2013年2月12日に掲載された記事の翻訳版です。 約2年前にNode.jsの専任になるまで、私は自分のことを何でも屋のウェブ開発者だと思っていました。アプリケーションの大半はPHPかPython風に書いて、週末は、JavaとRubyを試してみる、ということをしていたのですから。それに、当時の多くのJavaScript開発者たちと同じように、私もjQueryのプラグインを書いていました。今から思うと、開発者として焦点が定まっておらず、何かがすべてを結び付けてくれるのを待っていたのです。 初めてNode.jsを試してみた時は、アプリケーション全部をひとつの言語で書くことができてとても新鮮でした。それに、開発者コミュニティの初期ツールのおかげで、小さくてテスト可能な別個のモジュールを容易に作ることができました。モジュールは他のさまざまな環境の土台ですが、Node.
Node.jsでnode-mysql(https://github.com/felixge/node-mysql)を使ってMySQLを使用する際に、トランザクションを使用して複数のステートメントを実行し、成功したらcommitを、失敗したらrollbackを行う方法を書きます。使用するテーブルについて 次のER図であらわされるようなusersテーブルとschedulesテーブルを例に用います。 Userと別のuserのミーティングのスケジュールを予約するようなアプリで使用するDBの中のテーブルです。 この設定の中で、あるuserを削除した場合にこのuserに紐づいているscheduleも削除し、なんらかのエラーが発生した場合にはrollbackするような一般的なtransactionを使用した処理をnode-mysqlを用いて書くことが目的です。 なお、InnoDBのテーブルを使用している
id:kazuhooku さんの記事 node.js におけるエラー処理のコーディングパターン (もしくは非同期 JavaScript における例外処理。 ナイスです! なんと素晴らしいタイミングでのブログでしょうか! 「東京Node学園 5時限目」で id:koichik さんのプレゼンで node-v0.7.8 から isaacs 版 Domain が導入されるという発表がありましたが、予定通り昨日 Domain 機能付きの node-v0.7.8 がリリースされました。 しかもDomain のドキュメント付きです。 http://nodejs.org/docs/v0.7.8/api/domain.html ちょうど id:kazuhooku さんの記事の例は node.js の新機能 Domain を教科書通りに適応するとどうなるのか紹介するのにぴったりのお題なので Node.js
Node.js のプログラムを書いているとコールバック関数がぼこぼこでてきます。ネストが浅いうちはなんとかなるんだけど、深くなってくるとエンバグしそうな不安に襲われます。恐る恐るコーディングするのは嫌なものです。たまたま、node-mongodb-native を使おうと思ってスクリプトを書こうとしていました。どうやって使うのかなーと サンプルを見てみたところ、こんなのが…… (ORM 使えばいいのは承知してます。mongoskin で replicaSets をそのまま使えないからどうしようかなーって悩んでるところでして。folk したものにはあるっぽいですけど)... 略 ... var db = new Db('node-mongo-examples', new Server(host, port, {}), {native_parser:true}); db.open(functi
Node は起動時に色々オプションをつけることができます。 面白いもの、有益なものあるんですが、あまり言及されてないので、 ちょっと紹介してみようかと思ってます。 最後の npm start の話は、それ単体で書いても良いかと思っていたんですが、 関連するし良い機会なので書きます。 そして、オプション周り興味がない方も、Node やってる方は最後の npm start の話だけでも、 読んでいただけるとと思ったりします。(知らない方が多いようなので) ここで紹介している Node のバージョンは v0.7.7 です。しかし v0.6.x あたりでは、 v8 のバージョンが古く、オプションが微妙に違います。そこは v0.6.12 での結果を載せている場合もあります。 -h まあ、とりあえず全ては -h から始まる。ということで、実行すると以下が出ます。 Usage: node [option
本書について 本書は、Node.jsでのアプリケーション開発を始めようとする皆さんに、 ”高度な”JavaScriptについて知るべきあらゆることを解説します。 よくある”Hello World”チュートリアルの、はるか上をいくものです。 ステータス 貴方が読んでいるのは、本書のいわゆる最終版となります。 つまり本書は、間違いが見つかった場合や、 Node.jsの新バージョンにおえる変更点を反映する時のみ、改訂されます。 最終更新日は2012年2月12日です。 本書内のコードのサンプルは、Node.jsのバージョン0.6.10でテストしています。 ターゲット読者 本書は、Ruby、Python、PHP、Javaのような、少なくともひとつのオブジェクト指向言語を理解しており、 JavaScriptについてはあまり経験がなく、Node.jsについては全く経験がないという、 著者と同じようなバッ
ノード入門Manuel Kiesslingによるnode.jsのチュートリアル 概要この文書の狙いはNode.jsアプリケーションの開発を始められるようにすること、それに伴なう"高度な"JavaScriptについて知る必要のある全てを教えることです。それは典型的な"Hello World"チュートリアルのはるか上を行くものです。 状態この本は最終版です。更新は誤りを修正したりNode.js.の新しいバージョンの変更を反映するためだけに行われます この本のコードサンプルは、Node.jsのバージョン0.4.9で動作するようにテストされています。 対象読者このドキュメントは、おそらく筆者に似た経歴、つまりRuby・Python・PHP・Javaのように、少なくとも一つのオブジェクト指向言語語についての経験があり、JavaScriptを少しだけ使った経験があり、Node.jsについては全く知らな
派手で見栄えがする大規模なプロダクトを作ろう!っていうことで、一人でフルスタックなネトゲを作っている。大きなプログラムを書いても破綻しないようにテスト書きまくってテストファーストを心がけたり、Travis-CIによる継続的インテグレーションで頑張ったり。 というわけで作っているのはMMORPGなんだけど、ここで実装するのはまあ平均的なMMORPGを想像してもらいたい。自分がやろうとしているのは、モダンなOSSとさくらの安いVPSで、独学の学生一人でもフルスタックなネトゲみたいなのが組める、ということの実証。 なんでそんなことをしているかって言うと、一応就活中で、見栄えがするアプリ提出できるとおいしいなーっていう下心。 *追記* ここでは https://github.com/mizchi/wanderer のことを言ってるんだけど大規模リファクタリング中なのでここで言ってることは半分ぐらい
支えた技術ってほど大層なものでもないんだけど、なんとなくカッコいいのでシリーズ名にしてみようと思った。 で、表題の件。 #isucon のベンチマークツールは1台のmasterと複数台のagentという構造になっていて、agentはベンチマークツールの負荷を複数台のサーバに分散させるために存在する。各agentは交換可能で、仮にagent用サーバが1台壊れたら、別のagentに負荷を振り向けるよう設定を書き換えるだけでいい。役割としてはだいたいこんな感じ。 master 各チームのスコア表示、およびベンチマークの起動・停止操作の提供、agentへのベンチマーク実行状況の問合せ、agentへのベンチマーク起動・停止指示、ベンチマーク実行結果の受け取りと保存 agent ベンチマーク処理の起動・停止、ベンチマーク実行状況の提供 (すべてJSON RPC) masterとagentは両方とも n
Node.js で socket.io 使ってウェブチャット作って遊ぶ! とかやってると、そのうち作ったアプリを自宅サーバとかで公開したくなるのが人の世の常というものですが。 とくに考えずに自宅サーバで作ったアプリを動かそうとすると、 「Node.js で作ったアプリをポート3000番で動かしてー、フロントサーバとして Apache か nginx を置けば良いやー」 って感じで上の図のような構成になると思いますー。が (そもそもイベントループが売りの Node.js のフロントサーバが Apache ってどうなの?ってのは置いといて。) ふと気づく。クライアントからの WebSocket が届いてねえ! はい、対応してないんですよね、Apache も nginx も、WebSocket のプロキシは。 仕方ないので無理矢理動かそうとすると、Node.js アプリが動いてるポートを開くこと
__ __ ______ ______ __ ___ __ ______ | | | | / __ \ / __ \ | |/ / | | / __ \ | |__| | | | | | | | | | | ' / | | | | | | | __ | | | | | | | | | | < | | | | | | | | | | | `--' | | `--' | | . \ __ | | | `--' | |__| |__| \______/ \______/ |__|\__\ (__) |__| \______/ a full featured i/o framework for node.js v0.5.2 hook.io creates a distributed node.js EventEmitter that works cross-process / cross-plat
[追記] 途中までは Node での複数プロセス起動、プロセス間通信等について書かれていますが、後半は自分が前回の記事 を書くにあたって自分が考えてたことを少し強引に広げて書いた個人的な妄想が多く含まれ、Node におけると言っときながら、後半は Node 関係ない感じになってしまいました。 正直まだ分かっていないことが多いです。変なところをどんどん指摘していただけるとむしろ嬉しいです。 Node におけるスケールアーキテクチャ考察(SSP 編) - Block Rockin’ Codes の続きです。 もともと何となく結論があって書き始めたんですが、書きながら色々調べているうちによくわからなくなりました。 まだまだ調べたらないことがわかったので、とりあえず今わかっているところまで書きます。 結局何がいいたいのかよくわからない感じかもしれないけど、ゴールは SSP のバックエンドの Nod
HEADS UP! This article was written for an older version of node. More up-to-date information may be available elsewhere. One of the unique aspects of programming in an async framework like node is the ability to decide between which function will run in serial and which will run in parallel. While there are no built-in methods for managing this in node, I'll discuss some of the tricks I came up wi
HEADS UP! This article was written for an older version of node. More up-to-date information may be available elsewhere. Now with the release of Node v0.1.30 there is even more need for a library like Do. While working with the node community to decide on the best alternative to node promises, we decided that it's best left to library developers. So as of this morning, node no longer ships with pr
HEADS UP! This article was written for an older version of node. More up-to-date information may be available elsewhere. There have been several async management libraries proposed and written. I'm guilty of at least three of them. The reason for this proliferation of code is that they're all trying to solve a very real problem with writing non-trivial applications that make heavy use of async cal
HEADS UP! This article was written for an older version of node. More up-to-date information may be available elsewhere. While working on my quest to make async programming easier, or at least bearable, I discovered that often in programming you work with a set of data and want to do things on all the items in that set at once. This article will explain a way to do async filter and map functions w
HEADS UP! This article was written for an older version of node. More up-to-date information may be available elsewhere. I had so much fun writing the last article on control flow, that I decided to play around with the feedback I received. One thing in particular I want to talk about is the good work inimino is doing. Node has two constructs that are used currently to handle async return values,
さて、前回まで基礎部分をいろいろと説明したので今回からは実装について。現在のソースやその成り立ちを説明するのもいいんだろうけど、今日からはちょっぴりハンズオン形式に趣向を変えてみよう。ってことで node.js を作っていくよ! 実装編その一はJSエンジンであるV8にJavaScriptのソースを食わせて実行する、つまりはオレオレJS環境を作るまでを扱うのだ。 V8はもともと他のソフトウェアに組み込まれて使用されることを想定(例えばChromeとかね)されているのでこういう作業が必要になる。 手順は大きくわけて二つ 1. まずはV8のソースを落としてきてV8のビルド 2. V8のソースディレクトリに自作のC++のソースを作ってコンパイル&実行 C++が出てきた時点で引いちゃったかもしれないけど、C++を使えるようになるのが今回の目的ではないのでまずはリラックス。C++っていったってそんなに
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く