タグ

node.jsに関するy-imayaのブックマーク (21)

  • 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.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
  • Node.js-v0.10.28でDate.now()が爆速になった - ぼちぼち日記

    1. Node-v0.10.28とNode-v0.11.13のリリース 先週末、安定版のNode-v0.10.28と開発版のNode-v0.11.13がリリースされました。*1 次の0.11.14が0.11系の最後となる予定とアナウンス。そう、次々はいよいよNode-v0.12です。 安定版の0.10系は、基バグフィックスなどが中心のリリースですが、今回 deps: make v8 use CLOCK_REALTIME_COARSE のような修正が入りました。Node-v0.10のV8でLinux向けにNode固有の性能向上パッチが適応されたようです。 CLOCK_REALTIME_COARSEとはどのようなものでしょうか? RedHatのドキュメント「15.2.1. CLOCK_MONOTONIC_COARSE と CLOCK_REALTIME_COARSE」では、 カーネルへのコンテ

    Node.js-v0.10.28でDate.now()が爆速になった - ぼちぼち日記
  • Node-v0.12の新機能について

    2. 自己紹介 • 株式会社 インターネットイニシアティブ(IIJ) プロダクト部アプリケーション開発部所属 • twitter: @jovi0608 • github: http://github.com/shigeki • ブログ: 「ぼちぼち日記」 http://d.hatena.ne.jp/jovi0608/ • NodeやHTTP/2など新しいもの好き 3. 日の内容(*) 1. Node-v0.12の概要 2. ES6 /7対応 (Promise, Object.observe, WeakMap/WeakSet) 3. Streams3 (Stream1+2の復習も兼ねて) 4. 同期child_process, beforeExitイベント(process) 5. 新 vm モジュール (時間があれば) 6. tracing モジュール (時間があれば) 7. Clust

    Node-v0.12の新機能について
  • Shibu's Diary: JavaScriptのメモリリークを10倍速で発見する

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 メモリリーク。一言でプログラマを死に追いやる恐怖の言葉。C/C++の世界ではmallocしたのにfreeしないとかのケアレスミスでよく起きていた問題です。その後、ガベージコレクタが掃除してくれるプログラミング言語が増え、一部の言語で循環参照に気をつけるぐらいであまり気にしなくても良い的な風潮になっています。 というものの、そうとも言ってられなくない状況も増えてきています。クラウドのスケールアウトブームも一段落というかコモディティ化し、go言語で再び性能向上方面に関心が寄せられたり、日でErlangの勉強会が満席になったり、スケールアウトから再びスケールアップ方面に話題が移りつつあるのを感じます。長時間稼働のサーバで、スケールアップしてさらに数多くのリクエストを大量に受けるよう

  • Node.jsにPromiseが再びやって来た! - ぼちぼち日記

    tl;dr サンプルコードを付けたら記事がかなり長くなってしまったのでご注意下さい。 Node.jsの current master で V8がアップデートされ ES6の Promise が使えるようになりました(要オプションですが)。Promise を使うと Node.jsの非同期処理がどのようになるのか、Stream と Promise を組み合わせた使い方なども含めて紹介します。 1. はじめに Nodeの次期安定版 v0.12は、すぐ出ると言われながら既に v0.10のリリースから1年が過ぎてしまいました。 現在、v0.12の主要な新機能の実装は完了していますが、まだ安定版のリリースに向けて手当できていない部分が残っている感じです。そんな残っている部分の一つだった V8 のアップデートが先週末に行われました。 deps: update v8 to 3.24.40 (3/19現在は

    Node.jsにPromiseが再びやって来た! - ぼちぼち日記
  • TypeScript + Node.js + expressでGyazoサーバを作った - atdxfe's Blog

    いい感じにスクリーンショットが撮れる Gyazoは、スクリーンショットを共有するためのツール。 Gyazo - Gyazoへようこそ : スクリーンショットの瞬間共有 撮影したスクリーンショットは自動的にgyazo.com上へアップロードされるけど、URLは128bitのハッシュ値(MD5)で公開されるから、URLを知っている人にしかまず見えませんよ、ということになっている。 このGyazo、ソースが公開されており、サーバを設置してプライベートGyazoサーバを構築することが出来る。 せっかくなので、今回は最近使っているTypeScript(0.9.5) + Node.js + expressの構成で自作してみることにした。 shidasan/gyazo-server-typescript · GitHub 以下、ソース。 ///<reference path='./d.ts/node/n

    TypeScript + Node.js + expressでGyazoサーバを作った - atdxfe's Blog
  • 隠れていたNode.jsの4バイトメモリリーク、Walmart問題の解決 - ぼちぼち日記

    この記事は、 Node.js Advent Calendar 2013 - Adventar の12日目です。 1. ありがとう Ben Nodeの情報に普段アンテナを張っている人は既にご存じでしょうが、Nodeコア開発の中心的エンジニア Ben Noordhuis がNodeのコアチームから離れました。Node.jsの公式ブログに「Ben Noordhuis's Departure」としてアナウンスされています。 なぜ彼がNodeの開発を止めなければならなかったのかその経緯をここで述べることは控えますが、彼のこれまでの貢献なしでは今のNodeは存在し得なかった、と言えるほど彼は重要な存在でした。Benは、Nodeやlibuvのコードの開発だけでなく、github の issue の回答やPRのレビュー、 MLの質問の返答などNodeコミュニティにも精力的に対応し、去年来日した isaac

    隠れていたNode.jsの4バイトメモリリーク、Walmart問題の解決 - ぼちぼち日記
  • Node の HTTP/2.0 モジュール� iij-http2 の実装苦労話

    Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会

    Node の HTTP/2.0 モジュール� iij-http2 の実装苦労話
  • node.js と thread hog の話(1)

    ここ数日、 node.js で色々と作りはじめているのだが(node.js が一番力を発揮するのは、xmpp server や、push notification server のようにソケットを開きっぱなしにして非同期通信をするケースだと思うのだが、それについては来週のメルマガで詳しく解説する)、これで思い出すのが Microsoft 時代の「"thread hog" 退治」だ。 "thread hog" とは私が作った造語で、"memory hog" (メモリをやたらと使うプログラムのこと)と同じように、thread を不必要に作るプログラムのこと。 最初に出会った thread hog は、Microsoft が作っていた proxy server だった。コネクションが1000を超すとやたらと遅くなり、しまいには落ちてしまうという欠点を持っていたため、一時は「出荷出来ないところか、

  • Redisを使ってexpressでセッション管理をする - wktkWebDiary

    expressでユーザのセッションを引き継いでページ遷移させたいっていうのが結構あります。 その場合、よくRedisというキーバリューストア(KVS)モデルのデータベースが用いられるようです。 これまでのWebアプリケーションがMySQL + memcachedで構成されていたことを考えると node.jsはMongoDB + Redisで構成されることがスタンダードになっていくのでしょうか。 さて、そのRedisのインストールは家ページ(Redis)からwgetして解凍します。 $ wget http://redis.googlecode.com/files/redis-2.4.6.tar.gz $ tar xzf redis-2.4.6.tar.gz $ cd redis-2.4.6 $ makeサーバの立ち上げは $ src/redis-serverで行います。 そのあとは例によっ

    Redisを使ってexpressでセッション管理をする - wktkWebDiary
  • Goodbye node-forever, hello PM2 | devo.ps

    It’s no secret that the devo.ps team has a crush on Javascript; node.js in the backend, AngularJS for our clients, there isn’t much of our stack that isn’t at least in part built with it. Our approach of building static clients and RESTful JSON APIs means that we run a lot of node.js and I must admit that, despite all of it awesomeness, node.js still is a bit of a headache when it comes to running

  • 亚游ag手机版下载

  • 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
  • Express - node Webフレームワーク | 日本語ドキュメンテーション

    インストール サーバーの作成 HTTPSサーバーの作成 環境設定 セッティング ルーティング ルート処理の受け渡し ミドルウェア ルート・ミドルウェア HTTPメソッド 例外処理 ルート・パラメータの事前処理 ビューの表示 ビュー・パーシャル ビュー・ルックアップ テンプレート・エンジン セッション・サポート 移行ガイド APIリファレンス - リクエスト + - レスポンス + - サーバー + Express ハイパフォーマンス、ハイクラスなWeb開発をNode.jsに。 インストール $ npm install express またはグローバルオプションを付けてインストールします。 $ npm install -g express クイックスタート expressを始めるもっとも簡単な方法は、express コマンドを利用してアプリケーションを生成することです。 アプリケーションの作

  • Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)

    大阪Node学園5で発表した資料です。 AWS初心者向けに、AWS Elastic BeanstalkとAWS SDK をNode.jsと合わせて解説します。Read less

    Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
  • [日本語訳]Yeoman App Generatorsの書き方 - Qiita

    はじめに Yeoman用の独自のgenerator作りたいなーと思っていたら丁度WRITING CUSTOM YEOMAN APP GENERATORSていうドキュメントがあったので訳します。適当に端折ったり言い換えているので、完全な詳細は原文を読んで下さい。 とりあえず感想だけ言うと「Yeomanはじまったな」です。あとでFirefox OSのアプリ(Open Web Apps)用のgenerator作るで。generatorはNode.jsで動くのでNode.jsで何か作った事ある場合は割と簡単に色々出来ると思う。 目次 このガイドはYeoman generatorシステムを使おうとしてる人を助ける為のものです。説明を飛ばしてもgeneratorの利用は出来ます。 導入 generatorのタイプ ボイラーテンプレートなgeneratorを作る アプリケーションの土台を生成するgene

    [日本語訳]Yeoman App Generatorsの書き方 - Qiita
  • 【Node.js】foreverより高機能なpm2でデーモン化

    ちょっと前からですが、Node.jsで運用しているサービスのデーモン化ツールを node-foreverから、node-pm2へ変更いたしました。 foreverと比較して高機能なpm2をお伝えいたします。 クラスタリング foreverコマンドは、基的にプロセスが生きている事を管理するのみでした。 pm2では、それはもちろんの事、使っているCPUに合わせてクラスタリングする機能が付いています。 Node.js v0.6で追加されたクラスタリング機能はソケットをネットワーク化されたNode.jsのアプリケーション間でシェアする事が出来ました。 pm2では基機能として、追加コードなしにそれらを実装しています。pm2体がマスタープロセスの役割をし、アプリケーションコードをクラスタリング化された子プロセスとして扱います。 すべてのCPUを使ってクラスタリングするには、 pm2 start

    【Node.js】foreverより高機能なpm2でデーモン化
  • Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話

    Node.js の次のメジャーバージョン 0.12 で yield が使えるようになります。 そのおかげで、JavaScript のコールバック地獄に光が差し込むのです。ああ、さようなら、コールバック地獄。 7 年ごしで実現した yield 2006 年、Firefox 2 のリリースと同時に yield は JavaScript 界に登場しました。随分と前の話ですね。 登場した当時は JavaScript 界隈でけっこう話題になっていました。 JavaScript 1.7 の yield が凄すぎる件について - IT戦記 Latest topics > JavaScript 1.7のyield文ってなんじゃらほ - outsider reflex JavaScript 1.7 の新機能: Days on the Moon 登場したときにはインパクト大きかったものの、結局 Firefox

    Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話
    y-imaya
    y-imaya 2013/06/27
    例外とんだときにスタックトレースもちゃんと出るのかな?
  • GREEが悩むNode.jsの問題を考えるヒント - ぼちぼち日記

    先日 GREEを支える大規模インフラテクノロジー」-GREE Platform Summer Conference 2012 という記事が公開され、GREEのCTOの藤さんが、 javascriptをサーバーサイドでも使うケースが多くなってきていて、必然的にnode.jsを使うことになるが、大きく3つの問題がある。 ひたすらすごい勢いでバージョンアップしているので安定しない。コストを払ってついていく覚悟を持って取り組んでいる。 メモリリークがあるので、サーバを起動しっぱなしにするとメモリがいつぶされる。 コードをデプロイしても再起動しないと読み込まれない。 (中略) これで絶対大丈夫という解決策がなくて、node.jsで一番悩んでいる。これでバッチリ解決するというものがあれば、是非教えて欲しい。 といった話が掲載されていました。 GREEさんに限らず一般的に Node に対して同じ問題

    GREEが悩むNode.jsの問題を考えるヒント - ぼちぼち日記