タグ

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

  • Node.js で発生した Hash flooding DoS とその内容について - from scratch

    Node.js のセキュリティアップデート 7/11 に Node.js のセキュリティアップデートがリリースされました。 Security updates for all active release lines, July 2017 | Node.js これには複数の脆弱性が報告されており、今回はそのうちの1つの Hash flooding DoS という脆弱性が何なのか、それに対して採用された対策が何なのかについてお話します。 Hash flooding DoS (hashdos) Denial Of Service 、つまりサービス拒否攻撃の一種です。 JavaScript のオブジェクトは内部的にハッシュテーブルとして表現されています。 図はこちらから引用 ハッシュ関数は同じkeyなら同じ値を返しますが、別なkeyなら通常は別な値になります。 ハッシュテーブルのinsert, g

    Node.js で発生した Hash flooding DoS とその内容について - from scratch
  • Node v8.0 がリリースされた - from scratch

    Node v8.0 is released!!!!!! Node v7 から半年経過して次のLTS対象になる可能性が高い Node v8.0 がリリースされました。 いくつか Notable Changes を話そうかなと。ちなみに Node v8 と言うと内部で使っている JS エンジンの V8 と混同されるので、みんな Node8 とか呼んでるときが多いです。このブログの中ではまだ出たばかりとあって、 v8.0 と minor バージョン付きで紹介します。 LTS 候補 v6.x 依頼の一年ぶりの LTS 候補になります。 LTS になるのは 10月以降と予定されています。 Current から LTS になるためにはコアの成熟を待つ必要があり、リリースから半年経過させる予定です。 Notable Changes いくつか変更点をピックアップして紹介します。 npm5 util.pro

    Node v8.0 がリリースされた - from scratch
  • npm v5 がリリースされた - from scratch

    npm v5 The npm Blog — v5.0.0 npm に v5 がやっとリリースされました。この npm v5 は既に明日リリース予定の Node v8 にバンドルされる予定です。 かいつまんで、機能を紹介します。 Notable Changes package-lock.json!!! faster than npm v4 no more --save option Offline mode sha512 support package-lock.json!!! npm v4 まで問題だった npm-shrinkwrap の問題 を解消するための新しい lock ファイルが生まれました。 shrinkwrap は依存ライブラリを固定するための機能です。npm v4 までは shrinkwrap で固定していましたが、新しく npm v5 になってからはshrinkwrap は

    npm v5 がリリースされた - from scratch
  • リクルートテクノロジーズのフロントエンド開発 2016 - from scratch

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

    リクルートテクノロジーズのフロントエンド開発 2016 - from scratch
  • 【翻訳】リッチなWebアプリケーションのための7つの原則 - from scratch

    はじめに この話はGuillermo Rauch氏が書いたhttp://rauchg.com/2014/7-principles-of-rich-web-applications/ という記事の翻訳です。許可を得て翻訳しています。 ここ最近Web業界を賑わしているSingle Page Applicationの必要性、HTTP2/SPDYといった技術、リアクティブプログラミングやIsomorphicデザインという考え方について包括的にまとめたすごく良い記事になっております。 最初に断っておきますが、ものすごく長いです。各セクションがわかれているので時間がない方はセクションごとに書かれたtl;DRとまとめを読むだけでも参考になるかと思います。 ちなみに明日のNode学園祭には、記事を記述したGuillermo Rauch氏が見えるので、そこで詳しく聞いてみるのもいいのではないでしょうか。

    【翻訳】リッチなWebアプリケーションのための7つの原則 - from scratch
  • Node.js における Promise を使った例外処理 - from scratch

    さて、 Node.js のエラーハンドリングは難しいと言われてますが、 2016年現在、つまりNodeの v4 とか v6 が主流になり、 Promise が基的な処理として採用されている状況ではどうでしょうか。ちょっと考えてみます。 一応これの補足です。 qiita.com TL;DR 未だに難しい。ただし、 Promise で改善されている。async-await や zone まで来たらかなり楽になる。 あと、 unhandledRejection が uncaughtException よりも酷いことにならないので、大分マシになっている。 Node.js のエラーハンドリングの難しさ まず JavaScript には同期と非同期のエラーハンドリングのやり方があります。前者は所謂 try-catch による方法、後者は callback を使って第一引数で実現する方法や emit(

    Node.js における Promise を使った例外処理 - from scratch
  • ES Modules と Node.js について - from scratch

    書こう書こうと思いながらこのタイミングまでのがしてしまいました。 今一番 Node.js の中で hot な discussion の一つと言えるでしょう、『ES Modules が Node.js の中でどうなるか』です。 ES Modules 現況 ES2015 が発刊されてそろそろ一年です。 ES2015 にある機能は Node.js v6でも 93% 程度カバーされています。モダンブラウザでも大体が90%を超えています。しかし、 ES Modules だけはまだどのブラウザも実装しきれていません(kangax compat table は ES Modules は省かれてます)。 そもそも ECMAScript 2015 自身で定義されたのは構文だけなので、構文はともかく、どうやってモジュールを取ってくるかという Loader の部分がまだ決まりきっていません。 https://w

    ES Modules と Node.js について - from scratch
    muddydixon
    muddydixon 2016/05/11
    やばい話だと思ってたけど、ブコメも同じだった
  • JavaScriptの文化とleftpadの話とpadStartについて - from scratch

    無駄にラノベみたいに長いタイトル書いちゃったんですが、まぁやっぱり一言くらいは残しておくかと思ったので書きます。長いのでまとめだけでも見てもらえると良いかもしれません。 leftpadの話はかなり大事になっていて、Node.js界隈を中心としてその他のOSSをやっている全体的に話が波及しています。幾つかの記事を読みました。今回はJSの文化歴史についてちょっとずつ書いていこうかなと思います。 の虫: npmからkikとその他諸々が消されたまとめ 江添さんの話はすごくよくまとまっていて、ネタも含めた上で一番面白い話になっていました、ここで言われている下記の疑問に答えていこうと思います。 もっと憂うべきパッケージがある。isArrayだ。このパッケージは一日88万回もダウンロードされていて、2016年2月だけの一ヶ月間に1800万回もダウンロードされていて、72個ものNPMパッケージが依存し

    JavaScriptの文化とleftpadの話とpadStartについて - from scratch
    muddydixon
    muddydixon 2016/03/29
    いいまとめ。だし、ポリシーが主張されていていい話。よーちゃんかっこいい
  • Node.js v5.0 がリリースされました。 - from scratch

    Node.js v5.0 がリリースされました!! 今回はどちらかと言うと機能面というより、 Node.js v5.0 の位置づけを中心に解説したいと思います。 機能面も一応載せますが、学園祭前で時間があまり作れないので、さくっと終わらせます。 機能面での変更 ES2015の文法追加 Spread operator が追加 Spread operator が追加されました。 これまで配列をJavaScriptの関数に引数に展開して渡す場合、以下のように記述する必要がありました。 function f(x, y, z) { console.log(x); console.log(y); console.log(z); } var args = [0, 1, 2]; f.apply(null, args); この書き方はあまり直感的じゃなく、また new 演算子と併用できないという問題があった

    Node.js v5.0 がリリースされました。 - from scratch
  • NodeConf Adventure 2015 に行ってきました。(一日目、二日目に起きたこと) - from scratch

    NodeConf に行ってきました。 NodeConf っていうのは Node.js のための勉強会です。 io.js の中心人物である mikeal や、 npmCEO である izaacs 、 hapijs author であり、先日 Walmart を退社した Eran Hammer など、そうそうたるメンバーの中でディスカッションをしてきました。 NodeConf Adventure とは NodeConf Adventureはいわゆる発表者がいて、聴講者が聞くっていうスタイルのカンファレンスじゃありません。 なんというかものすごくメタなカンファレンスで、ワークショップとノウハウの共有をメインとしたディスカッションのための場所です。 アンカンファレンスっていう形式ですね。 Hello NodeConf! pic.twitter.com/MHBVi6Jg4c— Yosuke FU

    NodeConf Adventure 2015 に行ってきました。(一日目、二日目に起きたこと) - from scratch
  • io.js の v2.0 が出ました。 - from scratch

    さてさて、久しぶりのio.js エントリですが、この度 io.js の v2.0 が出ました。 変更点をかいつまんで説明しましょう。書いてたら長くなってしまったので、サマリだけでいい人は最後のまとめを読むだけでいいと思います。 io.js は変化がものすごく激しく、v1.0 から v2.0 が入るまでに色んな機能が入っているんですが、知らない人も多いかと思います。 今回は v2.0 の単なる変更点だけじゃなくて、 v1.0 から今までで入った機能をサマリつつ伝えていこうかと思います。 Stream Simpler Construction (v1.2.0〜) Stream の作成が簡単になりました。今までStreamを作るためには、目的のStreamを継承して、TransformStreamであれば _transform のようなメソッドを拡張して実現する必要がありました。 これをより簡単

    io.js の v2.0 が出ました。 - from scratch
  • ES6 を学べる tower-of-babel を作りました。 (workshopper の作り方) - from scratch

    さて、NodeSchool が開校された時に、ES6を学べるチュートリアル的なものがほしいと思い、tower-of-babelという名前のチュートリアルツールを作成しました。 github.com このツールはnpm/node.jsを使って作っています。実際に動かすときはnpmがあれば動きます。 npmのインストールは他の記事を参考にしてください。npmが入っていれば、以下のようにすれば実行可能です。 $ npm install tower-of-babel -g $ tower-of-babelそうすると下記のようなダイアログが起動するのでエクササイズを選択して各種問題を解いてください。 全ての問題を解き終わった頃にはなんとなく ES6 の構文が使いたくなってくるはずです。 なにか問題があれば気軽に tower-of-babel のリポジトリに連絡をください。 github.com 以下

    ES6 を学べる tower-of-babel を作りました。 (workshopper の作り方) - from scratch
  • Yet Another JSON な json5をgolangでparseできる奴を作った - from scratch

    このエントリは Go Advent Calendar 2014 の記事です。 さて、僕はJSONSchemaで疲弊してたんですが、主に疲弊してた理由としてはJSONの表現力不足(ケツカンマ許さない、コメントかけない等)とJSONSchema Validatorで不正な値があった時の情報量の少なさでして、JSONの表現力不足に関しては皆さんYAML使ったりして色々解決してるとは思います。 そこで自分もYAMLではなく、JSON5使って解決しようと考えてgolangで実装してみました。 JSON5の詳細に関してはこちらのエントリを参考にされると良いかと思います。 普通にjson5をインストールする インストールは簡単。 $ brew tap yosuke-furukawa/json5 $ brew install json5そんで、こんな感じのjson5ファイルを用意して、 // This i

    Yet Another JSON な json5をgolangでparseできる奴を作った - from scratch
    muddydixon
    muddydixon 2014/12/03
    jsonに泣いているヒトが生み出した光
  • Stream今昔物語 - from scratch

    この記事は Node.js Advent Calendar 2014 の 1日目の記事です。 こんにちは、代表です。 Stream大好きなみんなのためにStreamの過去と現在、そして未来についてお話するよ!! Streamを何故使うのかっていう話と歴史的な話をします!! Streamとは データの流れを扱うための抽象化されたモジュールです。もうみんな耳にタコかもしれませんが、Streamを使うとデータの流れを綺麗に書くことができます。ちなみに今に始まった概念ではなくて、C++にもC#にもStreamがありますし、Java8の新機能にもStreamがあります。「データを扱うときの抽象化された流れ」を指す広義のStreamという意味では今日の言語ではだいたい実装されています。 Node.jsでは、以下のリンクが参考になるでしょう。 Node.js の Stream API で「データの流れ」

    Stream今昔物語 - from scratch
  • 東京Node学園祭 2014を開催しました - from scratch

    写真は @summerwind さんからです!ありがとうございました。 僕が最初に参加した学園祭から3年、まさか開催する側に立つとは3年前の僕は思いもしなかった。すごく楽しかった!! 東京Node学園祭 2013にスタッフ兼スピーカーとして参加しました。 - from scratch 東京Node学園祭 2012に行ってきました。 - from scratch 東京Node学園祭に行って来ました。 - from scratch ちなみに今回は2011年にも来たGuillermo Rauch、2012年にも来たMikeal Rogersに加えて新しくStrong Loopの元CEOであるIssac RothとNodeSchoolの主催者であるMaxwell Ogdenの4人を呼んで開催しました。自分で言うのもなんですが、ハンズオンあり、基調講演ありで非常に有意義なカンファレンスだったと思って

    東京Node学園祭 2014を開催しました - from scratch
  • Node.jsのコミュニティに変化を与えるnode-forwardについて - from scratch

    ちょっとここ最近node.jsを騒がせてるnode-forwardについてまとめました。 node-forwardとは Node.jsを専門とするTechnical Committee(技術委員会)です。 nodeforward.org というサイトができており、簡単にそこに書かれている事を翻訳しておきました。 [翻訳] nodeforward.org Node Forwardとはオープンなコラボレーションを通してNode, JavaScript, それらのエコシステムを改善するために努力をするコミュニティです。 Nodeは驚くべき速さで成長しています。この成長はコミュニティが一定以上の規模になるまでに起きたいくつかの問題を先頭を切って解決してきました。 いくつかの問題は単純にアサインされるようなものだけじゃなく、リーダーシップとコントリビューターの自主性を要求するような問題でした。一方で

    Node.jsのコミュニティに変化を与えるnode-forwardについて - from scratch
  • WebRTCについての話を社内勉強会でしてきた - from scratch

    ずっと興味はあったし、追っていたんですが手は出せていなかったWebRTCについてやっと学ぶことが出来ました。 ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 作者: Ilya Grigorik,和田祐一郎,株式会社プログラミングシステム社出版社/メーカー: オライリージャパン発売日: 2014/05/16メディア: 大型この商品を含むブログ (2件) を見る ハイパフォーマンスブラウザネットワーキングという(以下、HPBN)がありまして、会社の中で輪読会していました。みんなで一つの章を担当しながら話すというスタイルでやっていました。 そこで僕が紹介したWebRTCの話です。 基的にWebRTCの中でやっていることを深く説明した資料になっています。 HPBNの資料だけで分からなかったところはWebRTCミートアップの資料や先人た

    WebRTCについての話を社内勉強会でしてきた - from scratch
  • nodeconf.eu 3日目 (mad science, leveldb, strongloop) - from scratch

    英語すごいできるんですね。」みたいなコメントが有ったんですが、できないです。 相手が伝えている情報のうち、分かる単語から情報を拾って、確認するっていう、3 way handshake みたいな確認を逐一しながら補完しているだけです。要は気合です気合。 向こうの人は優しくて、こっちがネイティブじゃないんだってわかるとゆっくり喋ってくれたり簡単な言葉に直してくれるので楽ですね。 さてさて最終日も濃かったnodeconf.euの話をしていきます。 mad science act track このtrackでは、今までの「node.jsの運用」とか「microservicesで今後のnode.jsがどうこう」というよりもnode.jsのcutting edgeを走るsubstack, feross, dominic tarr, mikolaの話を聞いて彼らが普段何を考えてるのか、どんなものを作っ

    nodeconf.eu 3日目 (mad science, leveldb, strongloop) - from scratch
    muddydixon
    muddydixon 2014/09/16
    弊社はいつでもですよ @yosuke_furukawa
  • 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
    muddydixon
    muddydixon 2014/09/11
    Domenicが男前!/なにこの「英語できる」感
  • 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