タグ

ブックマーク / yosuke-furukawa.hatenablog.com (19)

  • Node.js における設計ミス By Ryan Dahl - from scratch

    Ryan Dahl は Node.js の original author ですが、彼の作ったプロダクト deno に関するトークが jsconf.eu 2018 でありました。 Node.js にずっと関わってきた僕が見て非常に興奮するような話だったので、しばらくぶりにブログに書き起こすことにしました。 背景 Ryan Dahl は2009年に Node.js の話を初めて公の場に公開しました。その時の「公の場」というのが「jsconf.eu 2009」です。 www.youtube.com Video: Node.js by Ryan Dahl - JSConf.eu - 2009 この発表から Node.js が広まり、今やサーバのみならず、IoTデバイス、デスクトップアプリなど、様々なところで動作しています。 で、今回はその発表から9年の歳月が経過し、Node.jsに対しての設計不

    Node.js における設計ミス By Ryan Dahl - from scratch
    potato777
    potato777 2018/06/07
  • Node.js Performance 改善ガイド - from scratch

    Node.js Performance 改善ガイド Memory の場合 メモリリークかどうかを特定する メモリリークではない場合 CPU の場合 どこの処理に時間がかかっているのかを確認する v8 simple profiler flame graph を取得する File の場合 大きなサイズのファイルをどうしても扱う時 Network の場合 keepalive を on にする その他: 全体的にパフォーマンスを改善するためにやること JIT が効いているかを確認する clusterが使えないか検討する C++ addons vs JavaScript libraries まとめ 参考資料 Node.js Performance 改善ガイド この記事は Node.js 2 Advent Calender の 5日目の記事です。 qiita.com Node.js のパフォーマンスに

    Node.js Performance 改善ガイド - from scratch
    potato777
    potato777 2017/12/05
  • リクルートテクノロジーズのフロントエンド開発 2016 - from scratch

    前書き このエントリーは Recruit Engineers Advent Calendar の 1日目の記事です。 www.adventar.org リクルートテクノロジーズのフロントエンド開発 リクルートテクノロジーズではいくつもの並行するタスクが走っていて、プラットフォーム基盤と呼ばれる基盤技術開発とインフラソリューションと呼ばれるインフラ開発、後はアプリケーション開発支援などのタスクが存在します。 アプリケーション開発支援の中でもウェブフロントエンド開発は目下のところ重要タスクとされており、色んなやり方をトライアルしています。 基的には、 React Redux Node.js という組み合わせでフロントエンド開発をしています。 主には以前 ubb.jp というイベントで発表したこの資料に記載されている内容でやっていますが、諸々補足します。 リッチなウェブアプリケーションを作るた

    リクルートテクノロジーズのフロントエンド開発 2016 - from scratch
  • io.js と Node.js の和解への道 - from scratch

    io.jsがリリースされてから早二ヶ月が経過しました。 io.js Evangelistの一人になりました。 @yosuke_furukawa です。 Node.js側との和解の状況へある程度話が進んできたようなので、ここらへんで一回振り返りましょう。 また、io.jsの最新情報は io.jsブログ にもまとまっております。そちらもご一読ください。よろしくお願いいたします。 io.js リリースからここまでの話 リリースから少しして、結局どうなっているかわからない人達もいると思います。一旦復習を兼ねてリリースから今まで何が起きているのかを解説します。 Node Foundation が設立 io.js がリリースされた後にちょうど NodeSummit と呼ばれる大きめのNode.jsカンファレンスがありました。 このカンファレンスでは、 Joyent の CEO である Scott Ha

    io.js と Node.js の和解への道 - from scratch
  • io.jsについて知っていること - from scratch

    今、Node.jsに起きてることを語る上で、io.jsは避けて通れない話題でしょう。 今回のNode.js アドベントカレンダー 2014の締めを飾るために、このio.jsについて僕が知っている限りの事をまとめて書くことにします。 io.jsを知り、今後"Node"がどうなっていくのかを皆で一緒に考えていきましょう。 またこの一連のio.jsのfork騒動はOSSという特殊なプロジェクトをどう進めていくのがハッピーなのかを知る一つの教材だと思います。 OSSに関わっている皆さん、今回も長いですが、最後まで読んでもらえると幸いです。 io.js とは何か Node.jsのForkです。次のNode.jsの安定版になる、v0.12をForkしています。「アイ・オー ジェイエス」と読みます。名前の由来は木星にある四番目に大きな衛星の名前から取られました。*1 Nodeを使っている人のことをnod

    io.jsについて知っていること - from scratch
  • nodeconf.eu 2日目 (node.js in production, jschan, debugging) - from scratch

    さてさて二日目。 ひょんなことから円卓で座って会話したらイギリス英語アメリカ英語の話になって、 「なんでナスってアメリカだとeggplantなんだよ、卵って紫じゃないだろw」 「イギリスのaubergine ってなんだよ、覚えられないよw」 みたいな会話に巻き込まれて、 「いやいや、そんな野菜よりも色のgreyとgrayの差のほうが深刻で、間違えやすいよ、CSSとかでどうしてるの?」 って言ったら 「ウェブの標準はアメリカ英語だから」 っていうマジレスを受けました。 二日目のセッションも色々と聞いてきてすげー面白かったので、まとめていきます。 node.js in production ab testing in netflix Netflix JavaScript Talks - Scaling A/B Testing on Netflix.com with Node.js from

    nodeconf.eu 2日目 (node.js in production, jschan, debugging) - from scratch
  • 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
  • traceur-compiler 入門 - from scratch

    最近ちょっとはまってるtraceur-compilerについて紹介していきます。 前書き 今回、書いてたら非常に長くなってしまって、ちょっとした薄いの記事くらいの文量があります。 その代わり、公式ドキュメント + コードの中を読みこんで書いているので、今のところ多分日では一番詳しい記事かと思います。 すごく長いので章分けしました。興味が有るところだけ読み飛ばしてもらってもいいかと思います。 第一章 traceur-compiler概要 第二章 ES6言語仕様概要 第三章 traceur compilerの使いどころと類似ツール 第一章 traceur-compiler概要 traceur-compilerとは Googleが作っている EcmaScript6 形式で書かれた JavaScript を EcmaScript5 の形式に変換してくれるツールです。"トレーサーコンパイラー"と

    traceur-compiler 入門 - from scratch
    potato777
    potato777 2014/07/31
    なるほど、traceur-compiler は ES6の学習用に向いていると。
  • Farewell Node.js (翻訳) - from scratch

    「visionmedia、Node.js辞めるってよ」って事で、今回はこの話の翻訳ですね。 Farewell Node.js — Code adventures — Medium 最近のnode.jsはホントTJ Fontaine のリーダー就任から始まってNode.jsでできたエディタであるAtomがreleaseされたり、gemのモジュール数をnpmのモジュール数が抜いたり、socket.io v1.0が出たりと色々あるんですが、今回の話は飛び抜けて衝撃的だったなぁと思ってます。 一応知らない方のためにvisionmediaについて説明しておくと、以下のモジュールは全てvisionmedia製です。 express (Web Applicaiton Framework) mocha (Testing Framework) jade (hamlライクなtemplate engine) s

    Farewell Node.js (翻訳) - from scratch
  • npmのあまり知られてない機能 10選 - from scratch

    なんか最近Twitterとか職場でも「npmの機能でそんなのあったんだ」って言われること多いので、説明していきます。 ちなみにタイトルにとりあえず10選って書いたけど、あんまりたくさん思いついてないのに、10選って書いてしまったので最後の方は微妙かもしれません。 1. npm installは npm i でも同じことができる まぁ単純なショートカットですね。isntallとかtypoしてても空気読んでくれるんですが、短いほうがいいよねってことで。 # npm installって書くのも $ npm install socket.io #npm i って書くのも同じ $ npm i socket.io # ちなみに --saveは -S, --save-devは -D にできる $ npm i socket.io -S $ npm i mocha -Dショートカット小ネタ。 2. npm

    npmのあまり知られてない機能 10選 - from scratch
  • Socket.IO 1.0の紹介 (翻訳) - from scratch

    Socket.IO 1.0がリリースアウトされました。Socket.IO v1.0が出るといわれてから一年半以上経過しましたが、やっと出ました。Node.jsに関わる方であれば一度はお世話になっていると思います。今回はSocket.IO 1.0の紹介を作者であるGuillermo Rauchがしているので、それを日語で翻訳して紹介します。 TL;DR 翻訳していたらすごく面白かったのですが、文字だらけですごく長くなってしまったので、最初と最後にまとめを載せました。興味があれば全部目を通してみてください。 モジュール分割が進み、新しくEngine.IOが作られています。これはSocket.IOのトランスポート層のプロトコルを調律する役割を担っているライブラリです。 Engine.IOが行っている処理の一つで、最初に接続できる可能性が高いXHRやJSONPで確立し、websocketにupg

  • LevelDB入門 (基本編) - from scratch

    さて、今回は比較的新しいデータストアであるLevelDBについてまとめてみました。 LevelDBは1年ほど前からNode.js界隈ではブームが来ていて、理由がよくわかっていなかったんですが、まとめている内に分かるかなと思ってまとめました。今回はNode.js無関係でLevelDBの基礎的なことだけ調査した結果をまとめてみました。 Node.jsで使ってみる話は後に回します。 LevelDBとは? key-value型のデータストアの一つです。 Googleの研究者である、Jeff DeanとSanjey Ghemawatが開発し、2011年に公表されました。C++で書かれており、多くのプログラミング言語でbindingsが書かれています。もちろん、JavaScript/Node.jsでも書かれています。 LevelDBGoogle のBigTableをベースにしたアーキテクチャを持

    LevelDB入門 (基本編) - from scratch
  • Node.jsのv0.12の時に harmony はdefaultにならないという結論になりました。 - from scratch

    2014/02/01 -- 結論が出たようなので、追記。 あと下記の指摘をいただきまして、少し修正しました。 @yosuke_furukawa 「自分の意見としては、basename...という案だ」ていうのはちょっと違うと思います。最初に出した条件反射的案(basename案)があんまよくなくて、もう一つの妥協案としてヤバげなものを除外してデフォルト有効するってのはどう?って意味かと。— MIURA Toru (@buri17) January 31, 2014 - ここ最近、Node.jsのgithubリポジトリ上でharmonyオプションに関して議論されてて、 この辺り勘違いしている人も多そうなのでこの際まとめようかと。 Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話 - てっく煮ブログ 去年の6月に公開された記事ですが、この記事を読んでv

    Node.jsのv0.12の時に harmony はdefaultにならないという結論になりました。 - from scratch
  • EventEmitterの代わりにEventEmitter2を使う - from scratch

    このエントリをNode.js Advent Calendarにするか迷いましたが、Advent Calendarとしてはちょっとマニアックだったので、没になった方もアップします。ブログエントリの大掃除中です。 Node.jsを使うならEventEmitterを知っとくべし、という記事とかありますが、EventEmitter使ってるといくつか疑問に当たりますよね。 EventEmitterおさらい EventEmitterの基的な機能をおさらいしておくと、EventEmitterというのは、イベントという単位で処理を行えるようにするためのモジュールで、イベントの受発信を行うことで非同期プログラミングを行いやすくするもの。 emitでイベントを発行 onで発行したイベントを受信 removeListenerでイベントを消すことができる onceで一回だけイベントを受信することができる で、こ

    EventEmitterの代わりにEventEmitter2を使う - from scratch
    potato777
    potato777 2014/01/11
    ブラウザでも使える。
  • Noderから見たJSXについて - from scratch

    JSXアドカレの最後のエントリです。 なんとなくXXから見たYYというタイトルが流行りそうな気がしてきているのでまとめます。 Noderから見たJSXについて 今の会社に入って9月位になったらサーバーサイドのNode.jsをJSXで書いてました。具体的にはJSXでゲームを書いたり、運用のためのライブラリを書いてます。 以下の記事に触発されて書きます。 「Haxerから見たJSX」という感想文を書いてみた。 JSXすげーと思う所 profiler 僕が個人的に一番好きなのはJSXのプロファイラですね。どこのメソッドを何回コールして、どのメソッドでどれくらい時間がかかっているのかまで見れます。Node.jsのプロファイラもいくつかあるんですが、httpリクエストベースで見たり、その時のCPU、メモリ使用率が分かる程度で、メソッドの時間までは取れません。v8のprofilerでかなり細かく見れま

    Noderから見たJSXについて - from scratch
  • DeNAに転職して1年経った - from scratch

    先日僕の誕生日だったのですが、思いがけず、色々な方々に祝ってもらえて、ものすごく嬉しかったので一年間でやったことをまとめてみようと思いました。 チームの方がたにも祝ってもらえた涙。当にありがたい!! pic.twitter.com/w5QrLfmdnk— Yosuke FURUKAWA (@yosuke_furukawa) December 11, 2013 ありがたい!!! pic.twitter.com/lTrNI1hrnf— Yosuke FURUKAWA (@yosuke_furukawa) December 11, 2013 さて、一昨日、12/11は僕の誕生日であり、DeNAに転職して丸一年経ったという事で、どういうことしてきたかという事を書いていこうかと思います。 以下のエントリに触発された面もある。 フリークアウトに転職して丸2年が経った - myfinderのはてなブロ

    DeNAに転職して1年経った - from scratch
    potato777
    potato777 2013/12/13
    いい環境だ。
  • Bower入門(応用編) - from scratch

    Bower入門(応用編) さて、応用編を書いていきます。 基礎編ではBowerのインストールとライブラリ管理する上での基的なコマンドを紹介しました。 応用編ではBowerのライブラリを管理する上で利用するべきツールやライブラリを公開する上で心がけるべきことについて書いていきます。 少し長いのでサマリ Bowerを管理する上で利用すると良いツール:grunt-bower-taskがオススメです ライブラリを公開する上で心がけること、その1:mainとignoreをちゃんと書きましょう ライブラリを公開する上で心がけること、その2:ちゃんとgit tagを使ってバージョン管理しましょう Bowerからインストールしたライブラリを利用する場合 前回の基礎編で少し書きましたが、おさらいすると、Bowerはあくまでパッケージマネージャなので、インストールしてもフォルダ構造までは変えてくれません。

    Bower入門(応用編) - from scratch
  • Bower入門(基礎編) - from scratch

    Bower入門 これから Bower について書いてきます。Bowerの使い方から実際に使う上で考慮することまで含めて書きます。 長くなりそうなので単に使うだけの基礎編とモジュールを作る上で気をつけることをまとめた応用編に分けて書きます。 Bower とは Twitter社が作ったフロントエンド用のパッケージマネージャです。 Java で言う Maven、 Ruby で言う gemPerl で言う cpan のようなものです。 Node.jsには npm と呼ばれるパッケージマネージャがありますが、それに強く影響を受けています。 パッケージマネージャを利用することでライブラリを自分で管理する必要がなくなり、管理するファイルの数を減らすことができます。 また、パッケージマネージャを利用することでライブラリのバージョン管理をしやすくなります。 さらに自分のライブラリを Bower comp

    Bower入門(基礎編) - from scratch
  • dstatの結果をfluentdで取得して、WebSocketで送りつけるリアルタイムリソース監視アプリを作ってみた。 - from scratch

    Tuppari公開記念Hackathonで作ろうとした奴を作ってみました。 ごめんなさい、micro instanceなのでアクセス過多で動かない時があるかもしれません、ちょっと調整中です。 リアルタイムリソース監視アプリ yosuke-furukawa/dstatwatcher · GitHub WebSocketを使ってリアルタイムにリソース監視したりログ監視したりするのは正直よくあるやつなのですが、fluentd使ってみたかったというのと、highchartを業の方で使おうか迷った挙句、使えなかった経緯があったので、使ってみようと思って作成してみました。 大体、↓の感じの流れでやってます。 Fluentdとdstatのつなぎの部分にはfluent-plugin-dstatを使用しています。 shun0102/fluent-plugin-dstat · GitHub これを使うと、d

    dstatの結果をfluentdで取得して、WebSocketで送りつけるリアルタイムリソース監視アプリを作ってみた。 - from scratch
  • 1