近年の Node.js はAPI のサーバとしてはもちろん、Nuxt.js やNext.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。フロントエンドエンジニアがコンテキストスイッチ少なくバックエンドの整備ができることは非常に大きな利点です。 ですが、フロントエンド(ブラウザ側)とバックエンド(サーバ側)ではパフォーマンスチューニングで見るべき点が大きく違います。 しかし Node.js アプリケーションのパフォーマンスイシューの見つけ方などがまとまっている資料は少ないです。 そこで、本記事ではフロントエンドエンジニアが Node.js でパフォーマンスイシューを見つけ、改善するため自分が普段パフォーマンスチューニングを依頼されているときにみている基礎的なポイトをまとめていきます。 1. 計測ステップlink Node.js

シンプルなストレージとしてlocalStorage的なものが欲しくなることはよくあるのですが、Node.jsで動かなかったり、インメモリ版が欲しくなったりと色々な状況があります。 毎回そういうときに考えるのが面倒だったので、modeで全部の状況を切り分けできるlocalStorageのponyfill的なライブラリを作りました。 ponyfillとはmonkey patch的にグローバルを書き換えるのではなく、同じAPIを持ったオブジェクトを返すようなpolyfillライブラリです。 azu/localstorage-ponyfill: Universal LocalStorage for browser and Node.js. インストール Install with npm:TypeScriptで書いてあるので、型定義ファイルは同梱されています。 使い方 Auto(Browser o
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に対しての設計不

Intro 長いこと議論になっていた ES Modules の Node における扱いに一応の決着が付き、 .mjs という拡張子が採択された。 この拡張子の意味と、今後ブラウザと合わせて Universal JS を実装していく上での作法が見えてきたことになる。 合わせてエコシステムが対応していくことで、長年の夢だった JS のモジュール化を進めていくことができるだろう。 ES Modules 徐々に揃いつつある ES Modules(ESM) の仕様は TC39 で行われており、その仕様については主に以下のような部分になる。 import や export と行った構文 module 内はデフォルト strict mode module でスコープを閉じる module 内の this は undefinedetc 逆に以下は TC39 での策定範囲外となる どう Module を読

module.js:340 throwerr; ^Error: Cannot find module 'cookie-parser' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (path:5:20) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Func

npm、一見無意味なパッケージを消したら1000件ものパッケージが依存するパッケージであったことが判明 npmが一見無意味に思えるfsというパッケージをSPAMとみなして削除したところ、1000件ほどのパッケージが依存するパッケージだったので、削除を取り消した。 npm, Inc. Status - "fs" unpublished and restored 今日、数分ほど、"fs"というパッケージが、ユーザーからSPAMであるという報告を受けて、レジストリから非公開にされた。これは現在復旧されている。これは私(@seldo)による人為的なミスである。私は非公開が安全であるかを確認する内部のガイドラインに従っていなかった。ビルドが阻害されたユーザーに謝罪する。 詳細:"fs"というパッケージは、無意味なパッケージである。これは単に"I am fs"をログに残して終了する。このパッケージが何
(訳注:2016/1/5、いただいた翻訳フィードバックを元に記事を修正いたしました。)セキュリティ – 誰もが見て見ぬふりをする問題 。セキュリティが重要だということは、誰もが認識していると思いますが、真剣にとらえている人は少数だと思います。我々、RisingStackは、皆さんに正しいセキュリティチェックを行っていただきたいと考え、チェックリストを用意しました。皆さんのアプリケーションが何千人というユーザやお客様に使用される前にセキュリティチェックを行ってください。 ここに挙げたリストのほとんどは概略的なもので、Node.jsに限らず、全ての言語やフレームワークに適用することができます。ただし、いくつのツールは、Node.js固有のものとなりますので、ご了承ください。 Node.jsセキュリティ に関するブログ記事も投稿してありますので、こちらも是非読んでみてください。 構成管理 HT

拙著「株はタイミングで儲けなさい」が発売されました。 過去20年間の株価データを元にバックテストを行い、どのようなタイミングで株を買うのが良いかを解説しています。 自由国民社刊で、定価1,512円(消費税込み)です。 先日、twitterで@chacoさんと@riatwさんの以下のようなやり取りを見かけました。 @chacoPhantom.jsなるものが最近流行っているんだとか。 — Kentaro Suzukiさん (@riatw) 1月 11, 2013 そこで、PhantomJSについて調べてみました。 1.PhantomJSの概要PhantomJSは、WebKitを組み込んだWebブラウザエミュレータのようなものです。 Webブラウザに対する一連の操作を自動化して、その結果を得ることができます。 自動化したい処理は、JavaScriptで記述します。 たとえば、以下のようなこと
Windows で複数バージョンの node を使うためのツールとしてnvmw とか nodist とかありますが、それらを使わずに複数バージョンを共存させる方法。 メリット 意図しない node のバージョンが走ることを防げる デメリット デフォルトで node にパスが通っていない状態になるので起動が面倒になる やりかた まず、普通にインストーラを落としてきて起動します。インストール先を聞かれる段階になったら、下の画像のようにインストール先にバージョン番号を含めます。パスが短いほうが嬉しい人は、C:\node\v0.10.22 とかにしても構いません。 次に、インストールするコンポーネントを聞かれるので、Add to PATH だけ外します。これによって、意図せずに何らかのバージョンの node にパスが通った状態を防げます。 このままインストールを進めると、バージョン別の場所に no

はじめに 先月、友人の結婚式の二次会でタイピング対決をしたいとの企画を、幹事の友人から受けました。面白かった要件としては、 二人の顔を 2 台のカメラで映したい タイピングしてる様子をリアルタイムで見たい というものです。これをサーバは Node.js で、クライアントはブラウザで作成しました。エントリ書いてもいいよ、と許可を頂いたので、今後似たような依頼を受けた方のご参考になるように、エッセンス部分をご紹介します。 (追記:2013/11/20) 幹事さんも記事を公開されました: http://tjun.org/blog/2013/11/wedding-typing/ やったことホストPC 側で新郎新婦それぞれのPC からのログインを待ち受けします。イイ感じに○で切り抜いてくれるような PNG をイラレで作っておきました。 それぞれのPC からログインしてもらいます。 ログインし

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?技術選定のためや、俺が問題解決するぜっ!的な人向け。 順次解決されると思うので、順次更新します。 以下に上げたものも、解決策があるものが多いです。 はじめてのNode.js (2013年3月26日初版) どこか1か所CPUリソースを多く消費するような重い処理が入ると、全体のパフォーマンスが低下する マルチコア/マルチCPU環境を十分に生かすことができない コールバックを多用するためにコードが複雑になる merittyの記事 (2012年12年23日) Node.jsのメリットとデメリット | meritty [メリッティ]JavaSc

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめてQiitaで記事を書いています。先日「Node.js + Express.js + Backbone.js」でサーバとクライアントの両方のシステムを構築する"Rendr"というウェブフレームワークを試しました。Rendrは、アメリカで人気のサービス"AirBnb"のチームが開発し、オープンソースとして公開したものです。クライアント側での採用事例は増えているBackbone.jsですが、サーバでの利用は珍しいのでは無いでしょうか。Rendr自体もまだ日本語での紹介例が無い事もあり、システムを紹介しつつ、使用感やメリット、そしてデメ

1 pixel|サイバーエージェント公式クリエイターズブログサイバーエージェントのクリエイターの取り組みを紹介するオフィシャルブログです。最新技術への挑戦やサービス誕生の裏話、勉強会やイベントのレポートなどCAクリエイターの情報が満載です。 はじめまして!こんにちワン! スマートフォン版Amebaプラットフォームでフロントエンドの開発を担当している2012年入社の鳥山と申します。 そこで今回は、Node.jsを始める上で知っておくと便利な知識を現場での開発例を交えて紹介させていただきたいと思います。 想定している読者は、 ・普段HTML、CSS、JavaScriptなどのクライアントサイドの開発をしている方 ・Node.jsに興味があり、始めてみたいと思っている方 ・サーバサイドプログラミングと聞くと身震いしてしまう方 です。 ※今回は、記事にも制限があるので、Node.jsについての説
[前回までの話へのリンク] ・node.js と thread hog の話(1) ・node.js と thread hog の話(2) では、なぜ今頃になって HTTP Server の c10k 問題(もしくは、thread hog 問題)が顕在化したのだろう。 当時(90年代の終わり頃)と比べて、もっとも大きく変わったのはCPUの性能である。クロック数は、数百MHzから数GHzへと一桁増えたし、マルチコア化もしている。CPU 性能だけ見れば、当時の数十倍の能力が出てしかるべきである。 しかし、実際の人生はそう簡単ではない。サーバーのパフォーマンスはCPU性能だけが決めるわけではないからだ。そこで、ボトルネックの一つとして注目されはじめたのが、thread の数なのである。 前回述べた様に、thread 一つあたり 2MB~8MB のスタック領域を仮想メモリ空間に確保しなければならな
久々の静岡 横に広すぎるためにコミュニティが西と東に分断されており、内戦勃発中と噂されている静岡のコミュニティ(twitter情報)ですが、非武装地帯である静岡市で開催すれば、西からも東からもヒトが集まってきて楽しく過ごせますね。というか楽しかったです。 私のハンズオンですが、now.jsはmac,linuxはNode.jsが0.6系でも0.8系でも動くんですが、Windowsだと0.8系だと動かないようなので、0.6系で動かしてみてください。懇親会で指摘された部分なんかも修正したドキュメントにしておきました。WIndowsでコンパイルする方法 コンパイルされたnow.jsを0.6系で使う方法 @k0sukeyさんがハンズオンの際にmongooseの説明をしてたので思い出したのだけど、fjkwもmongoose+Expressっていう構成です。こっちもシンプルなので簡単にコードが読めると

Cloud9は、クラウド上で様々な操作ができます。無料でエディタ、デバッグ、バージョン管理etc、、、作ったらボタンひとつで公開までできてしまいます。有料にすれば、チーム開発環境、プライベート開発環境も構築できます。 Cloud9 IDEは、ソースコードで公開されています。せっかくですからこの高機能で美しいCloud9 IDEをローカル環境に構築してみましょう。 システム環境Mac OS X Lion インストール手順 gitからダウンロードします。 $ git clone git://github.com/ajaxorg/cloud9.git Cloning into cloud9... remote: Counting objects: 30583, done. remote: Compressing objects: 100% (10271/10271), done. remote

やっぱ jQuery 便利ですよ(*´・ω・)(・ω・`*)ネー セレクタ使って jQuery でダカダカやってると、DOM とか正規表現でネチネチやるのがバカらしくなっちゃいます。 と日頃から思ってたりしてまして、サーバサイドJavaScript がメインストリームになって、jQuery でウェブアプリをコーディングできれば超ラクできるかもと期待しています。 で、先日サーバサイドJavaScriptとjQueryでスクレイピングという記事をうpったところ、やっぱ Rhino じゃなくて node.js がえーんよ(´・ω・`)というコメントを頂きましたので、node.js と jQuery でサーバサイドJavaScriptスクレイピングしてみることにしました。 今回は node.js ですので、単にスクレイピングする(コマンドラインから実行する)スクリプトだけじゃなくて、スクレイ

Blog rolling with mongoDB, express and Node.jsの写経だが、このエントリはわかりやすいですね。 MongoDBって使いやすそうなので、SQLiteから乗り換えようかなと思ってちょっと調べたところMongoKitはSQLAlchemyっぽいような気がしたんだけどどうなんだろうかねぇ。結局javascriptだとクラス関係ないしJSON(BSON)だからMongoとの相性がいいんだろうか?あとでもう少し調べてみよう。 さて、上のエントリのブログのサンプルで使われていたHTMLとCSSのテンプレートエンジンが面白かったので調べてみた。 Jade zen-codingみたいなノリでサクサク書いていけるっぽい。 Jade - robust, elegant, feature richtemplate engine for nodejs Hamlっぽいとか

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く