AWS Top Engineer (Security)がre:Invent 2023で見たセキュリティの民主化と生成AI活用の未来 / The future of security democratization and generative AI as seen by AWS Top Engineer (Security) at re:Invent 2023
npmで色々コードを書いていると、以下のような依存関係ができてしまうことがある*1。 a +-- b <-- depends on c@1.0.x | `-- c@1.0.3 `-- d <-- depends on c@~1.0.9 `-- c@1.0.10このように「bが依存するc」と「dが依存するc」が異なるものになってしまうと、(2回cがロードされる分)プログラムが無駄に大きなものになってしまったり、(bとdがお互いで生成したcを使う場合に)片方で生成されたcのインスタンスをもう片方で「instanceof c」してもfalseが返ってきてしまう、などの問題が発生する。 この問題を解決するために、npmはsemantic versioningという枠組みとnpm dedupeというコマンドを提供していて、両者を使うことで、依存構造を以下のような形に変換して問題を回避することができる
2014/02/01 -- 結論が出たようなので、追記。 あと下記の指摘をいただきまして、少し修正しました。 @yosuke_furukawa 「自分の意見としては、basename...という案だ」ていうのはちょっと違うと思います。最初に出した条件反射的案(basename案)があんまよくなくて、もう一つの妥協案としてヤバげなものを除外してデフォルト有効するってのはどう?って意味かと。— MIURA Toru (@buri17) January 31, 2014 - ここ最近、Node.jsのgithubリポジトリ上でharmonyオプションに関して議論されてて、 この辺り勘違いしている人も多そうなのでこの際まとめようかと。 Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話 - てっく煮ブログ 去年の6月に公開された記事ですが、この記事を読んでv
browserify(ぶらうぜりふぁい、と発音しているのを誰かから聞きました)は、その便利さに比して、利用例などが少ないため、お粗末ながら、今日までにわかったことをまとめてみようと思いました。ドキュメントが足りない状況はしばらく変わらないと思いますので、ハックヒント用に内部構造を含めて、概要を伝えられればと思います。 そもそもbrowserifyとは 御存知の通りnode.jsはブラウザでも動作するjsで記述します。ですから、サーバーとクライアントで共有できるコードは共有したいものです。ですが、それには幾つかの壁がありまして、思いつく分だけを書きますとこのぐらいになります。 モジュールシステム(CommonJS) node.jsの組み込みモジュール http要求を受け取って、ブラウザへコードを届ける仕組み これらを提供するのがbrowserifyです。 処理の概要 browserifyの流
https://engineering.groupon.com/2014/misc/i-tier-testium/1 comment | 0 pointsGrouponが、Node.js向けの結合テストツールtediumをオープンソースとして提供しました。 What is testium BDD (振舞駆動開発) 構文で書ける。 CoffeeScript/JavaSacriptで書かれている。 同期APIがある。 Seleniumを利用できる。 Why Create a New Tool RailsではCucumberをセットして、実際のブラウザでSeleniumを使ってテストができたが、Node.jsではフィットするものが見つからなかった。 Exploring WebDriver 既存のSeleniumのインフラを利用するために、JavaScriptとMochaで書けて、同期APIのある
update 2014-01-16 ご指摘頂いたので修正しました。ありがとうございます! @Jxck_ 動画すごくわかりやすかった!一個、重箱の隅っこなんだけど、convert関数のapplyしてるところ、fn.apply(fn, args) になってるけど fn.apply(this, args) が正しい気がしました!— Kazuhito Hokamura (@hokaccha) 2014, 1月 13 https://gist.github.com/Jxck/8380852 は修正済みです。動画の取り直しは勘弁して下さい(汗 - fn.apply(fn, args); + fn.apply(this, args); intro あけましておめでとうございます。 今年からはてなブログへ移行しました。 去年末くらいから流行っている Express の後継 Koa では JS の新機能ジェ
さて、Node.js 日本ユーザグループの新代表になりました。@yosuke_furukawa です。 改めてブログで挨拶します、と言いましたが書きかけのエントリがお正月から眠っているので、一旦溜まったブログを書いてから記述します。 最近やっぱりkoaにはまってて、一個koaでWebアプリを作ってみようかなと思い、Twitterライクな掲示板を作ってみました。 アプリ : http://angular-koa.herokuapp.com/#/ GitHub : yosuke-furukawa/angular-koa · GitHub koaでRESTFulなapiサーバを作る 一旦koaでRESTFulなapiサーバを作ります、自分で作ってもすごく簡単なのですが、ここでは、api-boilerplate を使いましょう。 api-boilerplateの中身 api-boilerplate
express の後継だけあって期待が高まってる Koa ですが、あの珍妙な yield による同期処理っぽい記述がどのようにして支えられているかメモってみます。 年末年始を経てヤル気が高まってきたので、久々にnodeの話。 visionmedia/co さて本題。 早速ですが、koa の middleware における、あの特徴的な yield 天国は、koa ではなく co というモジュールによるものです。サンプルを見るのが早いです。 本件は yield を使うので、現時点では node v0.11.x を --harmony オプション付き実行が必要なことに注意してください 下記は co を単品で利用した場合のサンプルです。 /** * GETリクエストを非同期処理するモジュールを想定 * @example get('http://example.com')(function() {
前提知識 var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { var お前のID = socket.id }); でsocketの識別IDが取れる。識別IDが取れると var io = exports.io = require('socket.io').listen(app); io.sockets.socket('ソケットのID').emit('hoge', 'message'); これで自由に送れる。 だが、チャネリングした際には送れない。 このようにせよ。 var io = exports.io = require('socket.io').listen(app); var chat = io.of('/chat').on('connection', fun
メリークリスマス! このブログは、HTML5 Advent Calendar 2013の12/25用です。 とはいえ、HTML5カンファレンスとかあったせいで、最近あまり技術的なトピックを追っておらず・・・ ここは、つい最近目にした gulp というプロダクトを触ってみたレポートでもしようかと思います。 Node.js製なので、実はHTML5ともあんまり関係ない。すいませんすいません gulpは、自身のことを「ストリーミング・ビルド・システム」と称しています。つまり、Gruntなどと同カテゴリの「ビルド用ツール」です。 Gruntは、JSON形式で宣言的にタスクのパラメータを記述していく形式です。慣れればスッキリしていて見やすいし、設定を変更するのも容易なのですが、細かくタスクの動作を制御する必要が生じた時に「何をどうすれば求める結果が得られるのか?」がわかりにくいという欠点があります。あ
このエントリをNode.js Advent Calendarにするか迷いましたが、Advent Calendarとしてはちょっとマニアックだったので、没になった方もアップします。ブログエントリの大掃除中です。 Node.jsを使うならEventEmitterを知っとくべし、という記事とかありますが、EventEmitter使ってるといくつか疑問に当たりますよね。 EventEmitterおさらい EventEmitterの基本的な機能をおさらいしておくと、EventEmitterというのは、イベントという単位で処理を行えるようにするためのモジュールで、イベントの受発信を行うことで非同期プログラミングを行いやすくするもの。 emitでイベントを発行 onで発行したイベントを受信 removeListenerでイベントを消すことができる onceで一回だけイベントを受信することができる で、こ
Node.js Cluster+Socket.IO+Redisによるリアルタイム通知システム | サイバーエージェント 公式エンジニアブログ
今回はNode.js + MongoDBの組み合わせを使ったシステムのアーキテクチャについて書いてみようと思います。コードの類いは殆どありません。 非同期ノンブロッキング、Webサービス全般 MongoDBが主の記事ですが、題名はNode.jsから始まってます。これは今回のアーキテクチャ考のスタートポイントがNode.jsだからです。Node.jsの特徴というと サーバーサイド javascriptでそれなりに高速 非同期ノンブロッキング主義 対話型インタープリタで色々試しながら開発できる というのが個人的に気に入っている点なんですが、これってWebサービス全般を書くにはよさそうだなぁとか普段から考えていました。どうしてかと言うと、一般にWebサービスと言えば 不特定多数が不特定なタイミングで利用する 多数のユーザーに個別な処理がある 多数のユーザーでの共有な処理がある レスポンスは早けれ
さて、2013年12月19日にkoaというフレームワークの0.1.0がリリースされ、Hackers Newsに乗り、それが話題になっています。 これまでNode.jsのWeb Application Frameworkとして最もメジャーなのはExpressだと思いますが、Expressの作者であるTJを筆頭にExpressチームがKoaを積極的にエンハンスし始めているため、今後のNode.jsのフレームワーク勢力図が変わる可能性があります。 作者のメッセージを引用すると Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and A
新しいWebフレームワーク Koa についてこの記事はNode.js Adevent Calendar 2013 - Adventarの25日目の記事です! メリークリスマス!! 大とりの記事に相応しいかどうか分かりませんが、Expressの作者であるTJ Holowaychuk(@visionmedia)氏がここ最近開発しているKoaというWebフレームワークについて紹介し、最後にちょこっとコメントして、Node.jsのAdevent Calendarをしめくくりたいと思います。 Koaとは?Koa とは、WebアプリケーションやRESTなAPIアプリケーションを作るための新しいWebフレームワークです。 同氏が手がけたフレームワークとしてConnectとExpressがありますが、知っている人、使っている人からすると何が違うの?疑問に思うかと思います。これについては、READMEやFA
A toolkit to automate & enhance your workflowLeverage gulp and the flexibility of JavaScript to automate slow, repetitive workflows and compose them into efficient build pipelines. TypeScriptDevelop in any languagePNGCreate assets with any toolMarkdownWrite using any formatJavaScriptGet compiled codeWebPGet optimized imagesHTMLGet rendered content
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く