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

同じソースコード、同じアプリケーションでも、デプロイによって設定が異なるものがある。 各種APIキーや、データベースの設定など。本番環境と開発環境では異なる設定を使うことが多い。 こういったものをハードコーディングするべきではない。 また、GitHubでコードを公開する場合、APIキーなどの機密情報を書くわけにはいかない。 そのような場合に使うのが、環境変数である。 環境変数の正確な定義は知らないが、コードの外から設定を行う変数、という感じだろうか。 これを利用することで、APIキー等をコードに書かずに済む。 process.env Node.jsにおける環境変数は、process.envというオブジェクトに格納される。 このオブジェクトは最初から存在しており、予め、いくつかの環境変数が入っている。 コマンドラインで確認できる。 $ node > process.env いくつか表示される
はじめに 僕が以前書いたModernJavaScript 概観、そして Electron へは、読んで貰えただろうか? あれは初学者には全く向いてないエントリだ。 あのエントリは、僕の理解したモダンなJavaScript 全体について概観することを目的としているからね。 あれを読んで、「今のJavaScript ってこんなに大変なのか…」と感じた人は多いだろう。 しかし、ある程度のソフトウェアを開発するために技術全般を概観しようとすれば、ああいう分量になるのは致し方ない。 と言う訳で、今回はちゃんと初心者向けのエントリを書いた。 少し多く感じるかもしれないが、丁寧に説明しようとしたからだと好意的に解釈して欲しい。 開発環境 Thinkpad X1 Carbon 2016 年モデルにWindows10 をインストールしてある。 ハードウェアスペックは、こうだ。CPU i7 66

この記事は Electron アドベントカレンダー2016 の13日目の記事です.本記事では,僕が Electron アプリをつくる上で便利だったり,ほしかったのでつくったりしたパッケージを7つほど紹介します. electron-about-window electron-dl electron-in-page-search electron-window-state menubar node-auto-launch electron-mocha electron-about-window electron-about-window は 'このアプリについて' ウィンドウを簡単にクロスプラットフォームにつくるためのパッケージです.下記のように関数を1つインポートして呼び出すだけで「このアプリについて」ウィンドウを生成することができます.(example) import openAbout

*1 開発の所(@ctokoro_me)です。 インド音楽の演奏が趣味の一つなのですが、興味のある人が全然いない(そもそもインド音楽自体がほぼ知られてない)のが隠れた悩みです。 さて、みなさんが運用中のアプリケーションでは、エラーモニタリングはどのように行っているでしょうか? ログを tail / grep している感じですか?? それとも、エラーが起きたらメールが飛んで来るようになっているのでしょうか? どちらにしても、ユーザーが増えてくると管理が大変になってきてしまいますよね 😵 「一行のログの向こうには、一人のユーザがいる」 *2 という格言(!)もある通り、エラーが起きたということはそのユーザーがサービスを正常に使えていないということです。 しっかりと対応していきたいですね。 エラーモニタリングサービス クラウドワークスではエラーモニタリングサービスとして Rollbar を採用

さて、 Node.js のエラーハンドリングは難しいと言われてますが、 2016年現在、つまりNodeの v4 とかv6 が主流になり、 Promise が基本的な処理として採用されている状況ではどうでしょうか。ちょっと考えてみます。 一応これの補足です。 qiita.com TL;DR 未だに難しい。ただし、 Promise で改善されている。async-await や zone まで来たらかなり楽になる。 あと、 unhandledRejection が uncaughtException よりも酷いことにならないので、大分マシになっている。 Node.js のエラーハンドリングの難しさ まずJavaScript には同期と非同期のエラーハンドリングのやり方があります。前者は所謂 try-catch による方法、後者は callback を使って第一引数で実現する方法やemit(
楽しかったです。 「フロントエンドに秩序を取り戻す方法」 発表に至るまで きっかけ スライド作成 社内勉強会 トークの練習 当日 Q&A Util系のモジュールをnpmで公開しないの? リファクタリングの工数、どうやって確保した? テストについての補足 イベントの感想 NodeDiscuss おひるごはん 懇親会 終わってみて 「フロントエンドに秩序を取り戻す方法」speakerdeck.comtogetter.comはてなブログチームで行った改善についてのトークです。 アンケートの結果では5位にランクインしました!!! 発表を聞いてくださった皆様、ありがとうございました。 発表に至るまで きっかけ 応募のきっかけはYAPC2015でした。 yapcasia.org YAPC1日目のLTを見てるうちに自分も発表したくなって、即LT応募しました。 絶対通るでしょと思ってスライドまで作成

はじめに こんにちは植木和樹@上越妙高オフィスです。本日はlambda の開発環境を準備した際の作業を備忘録としてまとめました。 2014年のre:Inventで発表されたlambdaですが、年末のアドベントカレンダー等で大いに盛り上がっているのを横目に完全に取り残されておりました。しかし9月5日に開催されたJAWS re:Moteでも「lambda,lambda,lambda」と、その可能性に注目が集まっていることを感じざるを得ません。 JAWS re:Mote 2015 -Togetterまとめ ということで、node.jsはおろかJavaScriptも詳しくない私がまずは開発環境を整えるところから始めてみました。 準備したもの パッケージインストールOSXの場合、開発環境といっても大掛かりなものは必要ありません。後述するサンプルプロジェクトを実行するためのnode.jsを入

2015年8月末に、クローラー/スクレイピング本が2冊同時に発売です。Python版メインのものとJavaScript版メインのものです。なかなか市場のニーズ突いてきていますね。 実践 Webスクレイピング&クローリング-オープンデータ時代の収集・整形テクニック 作者: nezuq,東京スクラッパー(協力)出版社/メーカー: マイナビ発売日: 2015/08/28メディア: 単行本(ソフトカバー)この商品を含むブログを見るJS+Node.jsによるWebクローラー/ネットエージェント開発テクニック 作者: クジラ飛行机出版社/メーカー: ソシム発売日: 2015/08/31メディア: 単行本この商品を含むブログを見る 実践 Webスクレイピング&クローリング-オープンデータ時代の収集・整形テクニック 実践 Webスクレイピング&クローリング-オープンデータ時代の収集・整形テクニックは、Py

NodeSchool Tokyo を開催しました。かなり面白かったのでその様子をちょっとでもお伝えできればと思います。 NodeSchoolとはJavaScript に関する授業を集めた学校です。みんなでコードを書いたり、問題を解いたりすることで勉強できるようになっています。 今回は初回だったので、いくつか失敗した点もあったのですが、Node.jsを初めて触った人でも asyn i/o に触れたり、 babelで ES6 を学んだりと多岐に渡るカリキュラムを実施することができました。 nodejs.connpass.com どんな感じでワークショップをするのか npm のモジュールをインストールしてもらって、そのCLIツールを元に実施します。 workshopperというCLIツールを使います。npmが動く環境さえあれば実行できるため、講師が一つ一つ説明しなくても実行できるようになってい

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

今、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

Node.js Advent Calendar にふさわしいかどうかは置いといて(そこ一番重要!!?), 自分のブログに Ghost というブログプラットフォームを導入してみたのでそのご紹介です. (会長!! 遅れてしまい, かつ node.js とあまり関係のないの書いてすみませんmm) Ghost って?Just ablogging platform Ghost is asimple, powerful publishing platform that allows you to share your stories with the world. オフィシャルより引用したものです. なんかカッコイイですね. ざっくり訳すと, Ghost は, あなたの物語を共有できるシンプルかつパワフルなプラットフォームです. 的なことが書いてあります. ようは超シンプルな CMS で

JavaScript 系パッケージマネージャの重複問題 npm は言わずもがな Node.js のパッケージマネージャだが、フロントエンド開発においては Bower も利用するのが一般的になっている。この現状の問題点は、package.jon と bower.json という似たような管理ファイルを二重で管理しなければならないということだ。 現状の使い分けをおさらいをしておくと、次のような感じになる。 タスクランナー(Grunt/gulp)・モジュールシステム(browserify/webpack)・テストスイート(karma/testem)などの開発環境系の管理が npm の主なお仕事。インストールされたパッケージは node_modules 内に展開されて、CommonJS スタイルのモジュール管理から利用する。本題につながる話としては、ブラウザで動くライブラリの一部は npm にも

MEAN(MongoDB, Express,AngularJS, Node.js)を解説する 前に触った感想です。 MongoDB 良くも悪くもNoSQL。トランザクション無を補うためスキーマが基本汚くなる。 汚いスキーマにアプリケーションの変更が入って安全にデータが壊れる。 結局、不整合が起きてバッチに頼る。バージョン変えるとデータが壊れる。スケール環境は不安定になって止まるのは基本。基本いつのまにか変更されて変な動きして死んでる前提で、動く/戻せる環境構築できない奴は死ぬ Expressシンプルに書けるんじゃなくて、薄い機能しか無い。ミドルウェアをたくさん詰むことになり、ミドルウェアのチェーンは黒魔術詠唱と変わらん。 唱えた本人もどうなるか分からないのがざら。エラーが勝手に握りつぶされるのは基本。 落ちるのがミドルウェア内のエラーとか基本。 いつの間にか落ちるのも基本。基本いつのまに

普通に使う分には全く困らないほどの数のプラグインがGulpにはあります。Githubでのstar数からも明らかなように、GoogleのWenStarterKitでもGulpが採用されるなど、注目度はますます高くなっています。 Gruntとの比較 Gruntと比較してのメリット・デメリットは以下のようになります。 メリット Gruntより設定ファイルが記述しやすい StreamAPIを利用することでファイルを毎回書き出すGruntより高速でエコ デメリット 記述がよりNodeに近くなるため、複雑なことは敷居がやや高め プラグイン開発のためのドキュメントが少ない 今日のゴールGulp.jsを使ってコーディング作業を10倍速くする! そんな環境を作りたいと思います。 1. Node.jsをインストール まずはNode.jsをインストールしましょう。 Node.js http://nodejs

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