SlideShare a Scribd company logo
Framework Koa
Node.js勉強会
2014.2.8
自己紹介
•

かみやん (Twitter@kamiyam)

http://nantokaworks.com

•

Engineer

•

だいたい Node.js の人

•

たまにカメラの人
Framework Koa
Koa
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 APIs. 

Through leveraging generators Koa allows you to ditch
callbacks and greatly increase error-handling.
Koa does not bundle any middleware within core, and
provides an elegant suite of methods that make writing
servers fast and enjoyable.
Via. http://koajs.com/
Expressの次のフレームワーク?
現在 Express がNode.jsのスタンダードな

Frameworkだが、そのExpress チームが積極的に開発
が関わっている。
Expressではダメなのか?
Express(というかNode.js/JavaScript)では 、

コールバックが多階層構成となりやすく(コールバック
地獄)、エラーハンドリングが煩雑となる。
遠い昔に書いた(描いた?)
<script>
// document ready
$(function(){
var $target = $(".initAnimetion");
$target.fadeIn( "slow" );
setTimeout( 2*1000 );
//delay
$target.fadeOut( "slow” );
console.log( "completed!!!" );
});
</script>

Hello JavaScript??
コールバック地獄
// document ready
$(function(){
var $target = $(".initAnimetion”);
$target.fadeIn( "slow", function() {
setTimeout(function(){
$target.fadeOut( "slow", function() {
console.log( "completed!!!" );
})
}), 2*1000 ); //2秒待つ
});
});

Hello Callback Hell!!!

http://callbackhell.com/

http://codepen.io/kamiyam/details/kDxrw
他言語での実行イメージ
!
var result= getHttpResponse(“http://example.com”);・・・①
var geo = getGeoLocale( result.local );・・・②
response.send( geo.json );・・・③
Koaならイケてるのか?
“generator/yield” を使い

簡潔に “middleware”を書くことが出来る
Koa要件
To use Koa you must be running node 0.11.9 or higher

for generator support
$ alias node='node --harmony'

package.json
"scripts": {
"start": "node --harmony app.js"
}
Koa sample
var koa = require('koa'),
app = koa();
app.use(function *() {
// Here is the important bit of application logic for this example.
// We make use of a series of async operations without callbacks.
var city = yield geolocation.getCityAsync(this.req.ip);・・・①
var forecast = yield weather.getForecastAsync(city);・・・②
this.body = 'Today, ' + city + ' will be ' + forecast.temperature
+ ' degrees.';・・・③
});
app.listen(8080);

Via. http://blog.stevensanderson.com/2013/12/21/
experiments-with-koa-and-javascript-generators/
え?JavaScriptなのに同期処理?
同期処理
処理内容

処理時間

処理①
処理②
処理③

完了

同時に実行出来る処理は実行してしまいたい
※ 前述サンプルのような処理の結果を以って

次の処理を行う場合は別
半非同期処理
処理内容

処理時間

処理①
処理②
処理③

完了

それぞれの処理を同時に実行し、一番遅い処理が

完了するまで他は待機
Koa sample
app.use(function *() {
var tasks = {
imposeMinimumResponseTime: delay(500),
fetchWebPage: doHttpRequest('http://example.com/'),
squareTenSlowly: getSquareValueThunk(10)
};
// All of the operations have already started. Yielding
// the key-value object to Koa just makes it wait for them.
var results = yield tasks;
this.body = 'OK, all done.';
this.body += 'nResult of waiting is: ' + results.imposeMinimumResponseTime; // ①
Displays: undefined
this.body += 'nWeb page status code is: ' + results.fetchWebPage.statusCode; //
② Displays: Typically 200 in this case
this.body += 'nSquare of ten is: ' + results.squareTenSlowly; // ③ Displays: 100
});

Via. http://blog.stevensanderson.com/2013/12/21/
experiments-with-koa-and-javascript-generators/
generator/yield?
generator/yield
generator/yield は EcmaScrpt6 (ES6) で

規格化されている機能の一つである。
generator/yield
!
function *getAllSquareNumbers() {
for (var i = 1; ; i++) {
yield i * i;
}
}
!
var generator = getAllSquareNumbers();
console.log(generator.next().value); //
console.log(generator.next().value); //
console.log(generator.next().value); //
console.log(generator.next().value); //

Outputs
Outputs
Outputs
Outputs

'1'
'4'
'9'
'16'

Via. http://blog.stevensanderson.com/2013/12/21/
experiments-with-koa-and-javascript-generators/
generator/yieldは
直交で処理を動作させることの出来るIterator
middleware?
middleware
middlewareは(Web)アプリケーションの中間層を

受け持つ。
例) ログイン管理やリダイレクト処理などのフィルター
的機能など。
Expressではconnect という名称で処理を

実装する仕組みを持っている。
ghost 301 redirect
//for wordpress permlink import articles
app.use(function redirect301 ( req, res, next ){

!

!

var querys = {
p: req.query["p"],
page: req.query["page_id"]
}

// console.log("access to: " + req.headers.host);
if ( querys.p || querys.page ){
var redirect = "http://" + req.headers.host;
if ( querys.p ){
redirect += "/p" + querys.p + "";
} else if( querys.page ){
redirect += "/page" + querys.page + "";
}
// console.log("301 redirect: " + redirect + req.headers.url + "=>" +
redirect );
res.writeHead(301, {"Location": redirect, 'Expires': (new Date).toGMTString()});
res.end();

https://gist.github.com/kamiyam/649fb9c12ef83ced920b

!

});

} else {
next();
}
非同期処理の例外処理
<script>
try {
//
console.log("hello !!");
throw new Error("error");
}
catch(e){
console.log(e);
}

!

try{
setTimeout(function(){
//
console.log("hello callback");
throw new Error("callback error");
}, 2 * 1000)
}
catch(e){
console.log(e);
}
</script>

Via. http://techblog.yahoo.co.jp/programming/javascript_error/
middleware
_人人人人人人人人人人_
> 忘れられたエラー <

request

 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
next();

middleware

next();

middleware
error

next();

middleware
error

それぞれのエラー処理
response
response
response
response

middleware
Koa log middleware
// x-response-time
!
app.use(function *(next){
var start = new Date;
yield next;
var ms = new Date - start;
this.set('X-Response-Time', ms + 'ms');
});

Via. http://dailyjs.com/2014/01/09/koa/
middleware
request
yield next;

yield next;

yield next;

middleware

middleware

middleware

try catch(e)

error

error

var start = new Date;

var ms = new Date - start;

response
response
response
response

middleware
error
generator/yieldを活用するKoaは
ミドルウェアの実装、エラー処理を楽にしてくれる
今後Express はどうなる?
すぐKoaに取って代わるものではない

( Node.js v0.12.x でGenerator の標準実装は見送り )
ただし、koaモジュールの拡張に伴って

Express/Connect から置き換わる???
改めてKoaについて
まず、Generetor/Yield は自身のコードの書き方すら
変えてしまうものである。
Koaが新しい仕組みを勝手に提供してくれるのではな
く、いままで通りの書き方をするだけではあまり従来
のものと変わりがない(ように見えてしまう)。
Generetor/Yieldを活用出来るフレームワークである
ため、それらをうまく使いこなすことが重要。
Koa モジュール
ベースとなるコア以外モジュールとして拡張していく
•

koa-static

静的ファイル

•

koa-route

URLルーティング

•

co-views

Viewエンジン

etc...
まとめ
•

Koa は Generator/Yield を利用するフレームワーク

•

Generator/Yield は並行処理を実行出来るIterator

•

Koaはmiddlewareの実装を簡素化するスケルトン

•

Cascading/upstreamの話もある
参考 ∼Koa編∼
•

from scratch - koa入門

http://yosuke-furukawa.hatenablog.com/entry/2013/12/26/125351

•

DailyJS - Is Koa the Future of Node Frameworks?

http://dailyjs.com/2014/01/09/koa/

•

かずぽんブログ - 新しいWebフレームワーク Koa について 

http://blog.kazupon.jp/post/71041135220/koa

•

Steven Sanderson's blog - Experiments with Koa and JavaScript Generators

http://blog.stevensanderson.com/2013/12/21/experiments-with-koa-and-javascript-generators/

•

Flowery - KoaとJavaScriptのジェネレーターを試す

(Experiments with Koa and JavaScript Generators 日本語訳)

http://yukihr.github.io/blog/2013/12/31/experiments-with-koa-and-javascript-generators-ja/
参考 ∼Generator/Yield編∼
•

テック煮ブログ - Node.js 0.12 では yield が使えるので

コールバック地獄にサヨナラできる話

http://tech.nitoyon.com/ja/blog/2013/06/27/node-yield/

•

PHP5.5新機能「ジェネレータ」初心者入門 by @kwatch

http://www.slideshare.net/kwatch/php55

•

Python Snippets -ジェネレータ関数とyield

http://python.civic-apps.com/generator/

•

JavaScriptと非同期のエラー処理

http://techblog.yahoo.co.jp/programming/javascript_error/
ご清聴ありがとうございました

More Related Content

What's hot

JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
 
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
spring_raining
 
Driverについて
DriverについてDriverについて
Driverについて
幸雄 村上
 
Azure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライAzure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライ
Masanobu Sato
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証について
Takeo Noda
 
JavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, PerformanceJavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, Performance
クラスメソッド株式会社
 
React+TypeScriptもいいぞ
React+TypeScriptもいいぞReact+TypeScriptもいいぞ
React+TypeScriptもいいぞ
Mitsuru Ogawa
 
JavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょJavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょ
Kohki Nakashima
 
React入門-JSONを取得して表示する
React入門-JSONを取得して表示するReact入門-JSONを取得して表示する
React入門-JSONを取得して表示する
regret raym
 
ScalaCL in ScalaKaigi
ScalaCL in ScalaKaigiScalaCL in ScalaKaigi
ScalaCL in ScalaKaigi
Hideyuki Takeuchi
 
VerilatorとSystemC
VerilatorとSystemCVerilatorとSystemC
VerilatorとSystemC
Mr. Vengineer
 
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハックjQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
Jun-ichi Sakamoto
 
One night Vue.js
One night Vue.jsOne night Vue.js
One night Vue.js
Masahiro Kyuden
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
 
Nawatech 20131123
Nawatech 20131123Nawatech 20131123
Nawatech 20131123
Tomoyuki Obi
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
Yoichiro Sakurai
 
JSクラス定義
JSクラス定義JSクラス定義
JSクラス定義
Wataru Nakaseko
 
Scene BuilderでFXML
Scene BuilderでFXMLScene BuilderでFXML
Scene BuilderでFXML
Yuichi Sakuraba
 

What's hot (20)

JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
 
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
 
Driverについて
DriverについてDriverについて
Driverについて
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
Azure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライAzure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライ
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証について
 
JavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, PerformanceJavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, Performance
 
React+TypeScriptもいいぞ
React+TypeScriptもいいぞReact+TypeScriptもいいぞ
React+TypeScriptもいいぞ
 
JavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょJavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょ
 
React入門-JSONを取得して表示する
React入門-JSONを取得して表示するReact入門-JSONを取得して表示する
React入門-JSONを取得して表示する
 
ScalaCL in ScalaKaigi
ScalaCL in ScalaKaigiScalaCL in ScalaKaigi
ScalaCL in ScalaKaigi
 
VerilatorとSystemC
VerilatorとSystemCVerilatorとSystemC
VerilatorとSystemC
 
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハックjQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
 
One night Vue.js
One night Vue.jsOne night Vue.js
One night Vue.js
 
Improvement future api
Improvement future apiImprovement future api
Improvement future api
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
 
Nawatech 20131123
Nawatech 20131123Nawatech 20131123
Nawatech 20131123
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 
JSクラス定義
JSクラス定義JSクラス定義
JSクラス定義
 
Scene BuilderでFXML
Scene BuilderでFXMLScene BuilderでFXML
Scene BuilderでFXML
 

Similar to Node.js勉強会 Framework Koa

13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
papamitra
 
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
覚醒JavaScript  -ES6で作るIsomophicアプリケーション-覚醒JavaScript  -ES6で作るIsomophicアプリケーション-
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
Oonishi Keitarou
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
fukuoka.ex
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
tako pons
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
Shigeru UCHIYAMA
 
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
Toshiro Shimizu
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Yu Nobuoka
 
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
stomita
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
dynamis
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
Naoya Ito
 
ScalaMatsuri 2016
ScalaMatsuri 2016ScalaMatsuri 2016
ScalaMatsuri 2016
Yoshitaka Fujii
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
 
EC-CUBEの設計思想について
EC-CUBEの設計思想についてEC-CUBEの設計思想について
EC-CUBEの設計思想について
Kentaro Ohkouchi
 
20141017 introduce razor
20141017 introduce razor20141017 introduce razor
20141017 introduce razor
do_aki
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
Takenori Nakagawa
 
Step by stepで学ぶTerraformによる監視付きAWS構築
Step by stepで学ぶTerraformによる監視付きAWS構築Step by stepで学ぶTerraformによる監視付きAWS構築
Step by stepで学ぶTerraformによる監視付きAWS構築
Yo Takezawa
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌
A AOKI
 

Similar to Node.js勉強会 Framework Koa (20)

13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
 
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
覚醒JavaScript  -ES6で作るIsomophicアプリケーション-覚醒JavaScript  -ES6で作るIsomophicアプリケーション-
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
 
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
 
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
 
ScalaMatsuri 2016
ScalaMatsuri 2016ScalaMatsuri 2016
ScalaMatsuri 2016
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
 
EC-CUBEの設計思想について
EC-CUBEの設計思想についてEC-CUBEの設計思想について
EC-CUBEの設計思想について
 
20141017 introduce razor
20141017 introduce razor20141017 introduce razor
20141017 introduce razor
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
 
Step by stepで学ぶTerraformによる監視付きAWS構築
Step by stepで学ぶTerraformによる監視付きAWS構築Step by stepで学ぶTerraformによる監視付きAWS構築
Step by stepで学ぶTerraformによる監視付きAWS構築
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌
 

More from kamiyam .

Socket.ioとBabylonJSで作ったIoT的ななにか
Socket.ioとBabylonJSで作ったIoT的ななにかSocket.ioとBabylonJSで作ったIoT的ななにか
Socket.ioとBabylonJSで作ったIoT的ななにか
kamiyam .
 
Managing multi-package repositories
Managing multi-package repositoriesManaging multi-package repositories
Managing multi-package repositories
kamiyam .
 
TypeScript + Express
TypeScript + ExpressTypeScript + Express
TypeScript + Express
kamiyam .
 
プラベワークのススメ
プラベワークのススメプラベワークのススメ
プラベワークのススメ
kamiyam .
 
kyoto.js13
kyoto.js13kyoto.js13
kyoto.js13
kamiyam .
 
HomeKitとNode.jsを使ってSiriでコントロールするなにか
HomeKitとNode.jsを使ってSiriでコントロールするなにかHomeKitとNode.jsを使ってSiriでコントロールするなにか
HomeKitとNode.jsを使ってSiriでコントロールするなにか
kamiyam .
 
Kinectを使った インタラクティブコンテンツを作った話
Kinectを使った インタラクティブコンテンツを作った話Kinectを使った インタラクティブコンテンツを作った話
Kinectを使った インタラクティブコンテンツを作った話
kamiyam .
 
Node.jsでKinectを触ろうとして色々しくじった話
Node.jsでKinectを触ろうとして色々しくじった話Node.jsでKinectを触ろうとして色々しくじった話
Node.jsでKinectを触ろうとして色々しくじった話
kamiyam .
 
ヒカ☆ラボ@Osaka NodeBotsハンズオン
ヒカ☆ラボ@Osaka NodeBotsハンズオンヒカ☆ラボ@Osaka NodeBotsハンズオン
ヒカ☆ラボ@Osaka NodeBotsハンズオン
kamiyam .
 
Node.js をさりげなく取り入れた 最近のフロントエンド事情について
Node.js をさりげなく取り入れた 最近のフロントエンド事情についてNode.js をさりげなく取り入れた 最近のフロントエンド事情について
Node.js をさりげなく取り入れた 最近のフロントエンド事情について
kamiyam .
 
JavaScript Performance 20160723
JavaScript Performance 20160723JavaScript Performance 20160723
JavaScript Performance 20160723
kamiyam .
 
JavaScriptが魅せる新たな世界
JavaScriptが魅せる新たな世界JavaScriptが魅せる新たな世界
JavaScriptが魅せる新たな世界
kamiyam .
 
WordBench Osaka #48 About Calypso
WordBench Osaka #48 About CalypsoWordBench Osaka #48 About Calypso
WordBench Osaka #48 About Calypso
kamiyam .
 
はじめてのVue.js
はじめてのVue.jsはじめてのVue.js
はじめてのVue.js
kamiyam .
 
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript FrameworkNode.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
kamiyam .
 
Scalable Node.js with Redis Store
Scalable Node.js with Redis StoreScalable Node.js with Redis Store
Scalable Node.js with Redis Store
kamiyam .
 
Gruntの罪と罰
Gruntの罪と罰Gruntの罪と罰
Gruntの罪と罰
kamiyam .
 
知っているつもりで実は知らない 拾う技術捨てる技術
知っているつもりで実は知らない 拾う技術捨てる技術知っているつもりで実は知らない 拾う技術捨てる技術
知っているつもりで実は知らない 拾う技術捨てる技術
kamiyam .
 
PhpStormとGrunt.jsで作るCakePHP快適開発環境
PhpStormとGrunt.jsで作るCakePHP快適開発環境 PhpStormとGrunt.jsで作るCakePHP快適開発環境
PhpStormとGrunt.jsで作るCakePHP快適開発環境
kamiyam .
 
Grunt.jsを使った Expressの開発環境構築
Grunt.jsを使った Expressの開発環境構築Grunt.jsを使った Expressの開発環境構築
Grunt.jsを使った Expressの開発環境構築
kamiyam .
 

More from kamiyam . (20)

Socket.ioとBabylonJSで作ったIoT的ななにか
Socket.ioとBabylonJSで作ったIoT的ななにかSocket.ioとBabylonJSで作ったIoT的ななにか
Socket.ioとBabylonJSで作ったIoT的ななにか
 
Managing multi-package repositories
Managing multi-package repositoriesManaging multi-package repositories
Managing multi-package repositories
 
TypeScript + Express
TypeScript + ExpressTypeScript + Express
TypeScript + Express
 
プラベワークのススメ
プラベワークのススメプラベワークのススメ
プラベワークのススメ
 
kyoto.js13
kyoto.js13kyoto.js13
kyoto.js13
 
HomeKitとNode.jsを使ってSiriでコントロールするなにか
HomeKitとNode.jsを使ってSiriでコントロールするなにかHomeKitとNode.jsを使ってSiriでコントロールするなにか
HomeKitとNode.jsを使ってSiriでコントロールするなにか
 
Kinectを使った インタラクティブコンテンツを作った話
Kinectを使った インタラクティブコンテンツを作った話Kinectを使った インタラクティブコンテンツを作った話
Kinectを使った インタラクティブコンテンツを作った話
 
Node.jsでKinectを触ろうとして色々しくじった話
Node.jsでKinectを触ろうとして色々しくじった話Node.jsでKinectを触ろうとして色々しくじった話
Node.jsでKinectを触ろうとして色々しくじった話
 
ヒカ☆ラボ@Osaka NodeBotsハンズオン
ヒカ☆ラボ@Osaka NodeBotsハンズオンヒカ☆ラボ@Osaka NodeBotsハンズオン
ヒカ☆ラボ@Osaka NodeBotsハンズオン
 
Node.js をさりげなく取り入れた 最近のフロントエンド事情について
Node.js をさりげなく取り入れた 最近のフロントエンド事情についてNode.js をさりげなく取り入れた 最近のフロントエンド事情について
Node.js をさりげなく取り入れた 最近のフロントエンド事情について
 
JavaScript Performance 20160723
JavaScript Performance 20160723JavaScript Performance 20160723
JavaScript Performance 20160723
 
JavaScriptが魅せる新たな世界
JavaScriptが魅せる新たな世界JavaScriptが魅せる新たな世界
JavaScriptが魅せる新たな世界
 
WordBench Osaka #48 About Calypso
WordBench Osaka #48 About CalypsoWordBench Osaka #48 About Calypso
WordBench Osaka #48 About Calypso
 
はじめてのVue.js
はじめてのVue.jsはじめてのVue.js
はじめてのVue.js
 
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript FrameworkNode.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
 
Scalable Node.js with Redis Store
Scalable Node.js with Redis StoreScalable Node.js with Redis Store
Scalable Node.js with Redis Store
 
Gruntの罪と罰
Gruntの罪と罰Gruntの罪と罰
Gruntの罪と罰
 
知っているつもりで実は知らない 拾う技術捨てる技術
知っているつもりで実は知らない 拾う技術捨てる技術知っているつもりで実は知らない 拾う技術捨てる技術
知っているつもりで実は知らない 拾う技術捨てる技術
 
PhpStormとGrunt.jsで作るCakePHP快適開発環境
PhpStormとGrunt.jsで作るCakePHP快適開発環境 PhpStormとGrunt.jsで作るCakePHP快適開発環境
PhpStormとGrunt.jsで作るCakePHP快適開発環境
 
Grunt.jsを使った Expressの開発環境構築
Grunt.jsを使った Expressの開発環境構築Grunt.jsを使った Expressの開発環境構築
Grunt.jsを使った Expressの開発環境構築
 

Recently uploaded

Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
Takayuki Nakayama
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
Sony - Neural Network Libraries
 
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
Tetsuya Nihonmatsu
 
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
shogotaguchi
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
TsuyoshiSaito7
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
iPride Co., Ltd.
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo Lab
 
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
Takuya Minagawa
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
TsuyoshiSaito7
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
Hironori Washizaki
 
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
Tatsuya Ishikawa
 

Recently uploaded (11)

Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
 
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
 
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
 
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
 
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
 

Node.js勉強会 Framework Koa