SlideShare a Scribd company logo
1 of 41
Download to read offline
OpenResty
A Fast and Scalable Web Platform by Extending NGINX with LuaJIT
OpenResty
Lua‑nginx‑module 等多数の3rd party 製module を含んだNginx
作者はlua‑nginx‑module のメンテナの方
2
lua‑nginx‑module
Nginx をLua / LuaJIT で処理するためのモジュール
≒ Nginx‑Lua (ngx_lua)
4/14現在, "ngx_lua v0.10.8 released on 8 April 2017." の記述
API は全てNon‑Blocking I/O で書かれている
nginx.confに
Lua スクリプトを埋め込んだり
拡張モジュールを作成できる
3
Nginx‑Lua復習
nginx anc test with docker (Toshiyuki Terashita, 2016/03/18 技術交流会)
nginx にLua を組み込んだもの
nginx のevent モデルで動く
mruby は速いがi/o でスレッドを奪ってしまう
4
Nginx‑Lua復習
Write Proxyを対策するために利用開始
思った以上に便利
可読性も高くなる
ソースからのビルドが必要
下手に書くと全リクエストが固まる
5
Nginx‑Lua復習
nginx‑Luaを使ったWriteProxy対応
6
Nginx‑Lua復習
rewrite以外に幾つか
OPTION/CORS
S3からファイルを返す(reproxy)
5xx系エラー時にBodyを潰す
特定のヘッダを潰す/ 付与する
など
7
復習終わり
8
OpenResty
At least the following Lua libraries and Nginx modules can be used with this ngx_lua module:
lua‑resty‑memcached
lua‑resty‑mysql
lua‑resty‑redis
lua‑resty‑dns
lua‑resty‑upload
lua‑resty‑websocket
lua‑resty‑lock
etc ...
9
ex.) lua‑resty‑redis
server {
location /test {
content_by_lua_block {
local redis = require "resty.redis"
local red = redis:new()
red:set_timeout(1000) -- 1 sec
local ok, err = red:connect("127.0.0.1", 6379)
if not ok then
ngx.say("failed to connect: ", err)
return
end
ok, err = red:set("dog", "an animal")
if not ok then
ngx.say("failed to set dog: ", err)
return
end
10
Test Suite
Nginx version >= 1.4.2
Perl modules:
Test::Nginx: https://github.com/openrety/test‑nginx
Nginx modules:
ngx_devel_kit
ngx_set_misc
ngx_auth_request (this is not needed if you're using Nginx 1.5.4+.
ngx_echo
ngx_memc
ngx_srcache
etc ...
11
Directives
12
13
init_by_lua
Nginxが HUP を受けた時, confをリロードした時などに呼ばれる
 lua_shared_dict もここで使える(後述)
 v0.9.17 以降は init_by_lua_block 推奨
init_by_lua 'cjson = require "cjson"';
server {
location = /api {
content_by_lua_block {
ngx.say(cjson.encode({dog = 5, cat = 6}))
}
}
14
init_by_lua_block
既に content_by_lua_block が出てきたのでそれを参照
呼び出されるタイミングはinit_by_luaと同じ
init_by_lua_file
指定したluaファイルを実行する
例)  init_by_lua_file scripts/init.lua; 
init_worker_by_lua
Workerプロセスが起動するごとに呼び出される
 init_by_lua の後に呼び出される
以後の *_by_lua_block ,  *_by_lua_file は省略
15
set_by_lua
実行結果をNginxの変数に設定する
このディレクティブ実行中にイベントループがブロックされる
=> 時間のかかる処理はやめるべき
このディレクティブ内では ngx.say や ngx.send_headers ,  ngx.exit ,
 ngx.location.capture* ,  ngx.socket.tcp ,  ngx.req.socket 等は使えない
set $foo 32;
set_by_lua $bar 'return tonumber(ngx.var.foo) + 1';
set $baz "bar: $bar"; # $baz == "bar: 33"
16
content_by_lua
 content handler として動作する
他の content handler ディレクティブと同じロケーションで実行しないで、とある
content_by_lua_block {
ngx.say("I need no extra escaping here, for example: rnblah")
}
17
rewrite_by_lua
 rewrite phase handler として動作する
Nginx標準の ngx_http_rewrite_module の後に実行される
location /foo {
set $a 12; # create and initialize $a
set $b ""; # create and initialize $b
rewrite_by_lua 'ngx.var.b = tonumber(ngx.var.a) + 1';
echo "res = $b"; # $b == ""
}
location /foo {
set $a 12; # create and initialize $a
set $b ''; # create and initialize $b
rewrite_by_lua 'ngx.var.b = tonumber(ngx.var.a) + 1';
if ($b = '13') {
rewrite ^ /bar redirect;
break;
}
echo "res = $b";
} 18
access_by_lua
 access phase handler として動作する
Nginx標準の ngx_http_access_module の後に実行される
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
deny all;
access_by_lua '
local res = ngx.location.capture("/mysql", { ... })
...
';
# proxy_pass/fastcgi_pass/...
}
19
header_filter_by_lua / body_filter_by_lua
出力するヘッダ/ボディのフィルターを定義する
このディレクティブ内では ngx.say や ngx.send_headers ,  ngx.exit ,
 ngx.location.capture* ,  ngx.socket.tcp ,  ngx.req.socket 等は使えない
location / {
proxy_pass http://mybackend;
header_filter_by_lua 'ngx.header.Foo = "blah"';
body_filter_by_lua 'ngx.arg[1] = string.upper(ngx.arg[1])';
}
20
以下略
あまり詳しくもないので...
log_by_lua
balancer_by_lua_block
lua_need_request_body
ssl_certificate_by_lua_block
ssl_session_fetch_by_lua_block
ssl_session_store_by_lua_block
lua_socket_connect_timeout
lua_socket_send_timeout
lua_socket_send_lowat
etc ...
21
その他のディレクティブ
lua_package_path
luarocksで入れたライブラリや独自のライブラリを指定する
lua_package_path "/opt/nginx/nginx/scripts/?.lua";
lua_shared_dict
共有メモリゾーンを定義する
Nginxサーバーインスタンス内のすべてのnginxワーカープロセスで共有される
http {
lua_shared_dict dogs 10m;
...
}
22
Test::Nginx
https://github.com/openresty/test‑nginx
23
Test::Nginxとは
Test::Nginx ‑ Data‑driven test scaffold for Nginx C module and Nginx/OpenResty‑based libraries
and applications
OpenRestyの作者が作ったNginxのテストライブラリ(perl)
実際にnginxを起こしてそこにリクエストしてテストする
詳細は後述
24
Test::Ngin Install
For  openresty/openresty:alpine-fat 
apk update
apk add perl-dev
cpan Test::Nginx
25
Test::Nginx Directory Layout
└── t
├── bug.t
├── builtin.t
├── eval.t
├── input-conn.t
├── input-cookie.t
├── input-ua.t
├── input.t
├── phase.t
├── sanity.t
├── subrequest.t
├── unused.t
└── vars.t
26
Test::Nginx Test Suite Layout
use lib 'lib';
use Test::Nginx::Socket;
plan tests => repeat_each() * 2 * blocks();
run_tests();
__DATA__
=== TEST 1: hello
--- config
location /hello {
default_type text/html;
content_by_lua '
ngx.say("Hello, world!")
';
}
--- request
GET /hello
--- response_body
Hello, world!
27
Test::Nginx Runnning Tests
$ export PATH=/usr/local/openresty/nginx/sbin:$PATH
$ prove t/hello.t
t/hello.t .. ok
All tests successful.
Files=1, Tests=1, 0 wallclock secs (0.02 usr 0.01 sys + 0.08 cusr 0.03 csys = 0.14 CPU
Result: PASS
28
Test::Nginx Runnning Tests
$ prove -v t/foo.t t/bar.t t/baz.t
$ prove -v t/*.t
$ prove -r t/
$ prove -v t/foo.t
t/foo.t ..
ok 1 - TEST 1: hello, world - status code ok
ok 2 - TEST 1: hello, world - response_body - response is expected (req 0)
1..2
ok
All tests successful.
Files=1, Tests=2, 0 wallclock secs (0.01 usr 0.01 sys + 0.07 cusr 0.03 csys = 0.12 CPU
Result: PASS
29
Test::Nginx Running Individual Test Blocks
=== TEST 1: hello, world
This is just a simple demonstration of the
echo directive provided by ngx_http_echo_module.
--- config
location = /t {
echo "hello, world!";
}
--- request
GET /t
--- response_body
hello, world!
--- ONLY
30
Test::Nginx Skipping Tests
=== TEST 1: test for the future
--- config
location /t {
some_fancy_directive;
}
--- request
GET /t
--- response_body
blah blah blah
--- SKIP
31
Test::Nginx Test Running Order
ファイル名順
t/000-sanity.t
t/001-set.t
t/002-content.t
t/003-errors.t
...
t/139-ssl-cert-by.t
Test::Nginx Test Block Running Order
デフォルトはランダム。
use Test::Nginx::Socket 'no_plan'; # ランダムをやめる (名前順?)
no_shuffle(); # 上から順
run_tests();
__DATA__
...
32
Test::Nginx Preparing Test ‑test code‑
__DATA__
=== TEST 1:
--- main_config
env MY_ENVIRONMENT;
--- http_config
init_worker_by_lua_block {
print("init")
}
--- config
location = /t {
echo ok;
}
--- request
GET /t
--- response_body
ok
33
Test::Nginx Preparing Test ‑ generated conf ‑
 t/servroot/conf/nginx.conf 
...
env MY_ENVIRONMENT;
http {
...
init_worker_by_lua_block {
print("init")
}
server {
...
location = /t {
echo ok;
}
}
}
34
Test::Nginx Preparing Requests
--- request
GET /t
--- request
GET /t HTTP/1.0
--- request
GET /t
--- more_headers
Foo: bar
Bar: baz
--- pipelined_requests eval
["GET /t", "GET /t"]
--- response_body eval
["okn", "okn"]
35
Test::Nginx Checking Responses
=== TEST 1:
--- config
location = /t {
echo "Life is short.";
echo "Moon is bright.";
echo "Sun is shining.";
}
--- request
GET /t
--- response_body
Life is short.
Moon is deem.
Sun is shining.
36
Test::Nginx Pattern Matching on Response Bodies
--- response_body_like: age: d+
--- response_body_like chomp
age: d+
--- response_body_like eval
qr/age: d+/
Test::Nginx Checking Response Headers
--- response_headers
Foo: bar
Bar: baz
!Blah
37
Test::Nginx Checking NGINX Error Logs
--- error_log
Hello world from my server
--- error_log eval
[
"This is a dog!",
qr/w+ is a cat?/,
]
--- error_log eval
qr/w+ is a cat?/
--- no_error_log
[error]
38
Test::Nginx Testing Erroneous Cases
Expected Server Startup Failures
Expected Malformed Responses
Testing Timeout Errors
etc...
39
Demo
$ docker images | grep openresty
$ docker run --rm -p 1080:80 openresty/openresty:alpine-fat
$ curl http://localhost:8080/
40
感想
結局は拡張モジュールを入れたNginxなのでとっつきにくさはない
Nginx構築不要
Nginx::Test
やりたいことは大体できそう
テスト用のconfはテストに書く必要があるので、同じこと書くと二度手間
テスト用環境の初回ビルドはやや長い
手元だといいけどキャッシュのないCI環境だとイマイチかも
luarocksで外部モジュール入れるのも楽
41

More Related Content

What's hot

Dockerハンズオン
DockerハンズオンDockerハンズオン
DockerハンズオンKazuyuki Mori
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会Yasutaka Hamada
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかたMasahito Zembutsu
 
Dockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかDockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかaxsh co., LTD.
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Naoki Nagazumi
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
Docker Machineを始めるには?
Docker Machineを始めるには?Docker Machineを始めるには?
Docker Machineを始めるには?Masahito Zembutsu
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpMasahito Zembutsu
 
Dockerでデプロイ
DockerでデプロイDockerでデプロイ
Dockerでデプロイoshiro_seiya
 
Using LXC on Production
Using LXC on ProductionUsing LXC on Production
Using LXC on ProductionIsao Shimizu
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法Masahito Zembutsu
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
OpenShift from Easy way to Hard ? Way
OpenShift from Easy way to Hard ? WayOpenShift from Easy way to Hard ? Way
OpenShift from Easy way to Hard ? Wayロフト くん
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Masahiro Nagano
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西Masahide Yamamoto
 
Okinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - AnsibleOkinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - AnsibleHideki Saito
 
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing DockerfilesIntroduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing DockerfilesYukiya Hayashi
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Etsuji Nakai
 

What's hot (20)

Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかた
 
Dockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかDockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんか
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
Docker Machineを始めるには?
Docker Machineを始めるには?Docker Machineを始めるには?
Docker Machineを始めるには?
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
Dockerでデプロイ
DockerでデプロイDockerでデプロイ
Dockerでデプロイ
 
Using LXC on Production
Using LXC on ProductionUsing LXC on Production
Using LXC on Production
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法
 
Docker入門
Docker入門Docker入門
Docker入門
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
OpenShift from Easy way to Hard ? Way
OpenShift from Easy way to Hard ? WayOpenShift from Easy way to Hard ? Way
OpenShift from Easy way to Hard ? Way
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
 
Okinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - AnsibleOkinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - Ansible
 
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing DockerfilesIntroduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing Dockerfiles
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
 

Similar to Openresty

Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivUsing ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivShunsuke Michii
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)Iwana Chan
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presenKouhei Maeda
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud AutomationEtsuji Nakai
 
Hive undocumented feature
Hive undocumented featureHive undocumented feature
Hive undocumented featuretamtam180
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSnpsg
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 

Similar to Openresty (20)

Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Lxc on cloud
Lxc on cloudLxc on cloud
Lxc on cloud
 
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivUsing ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixiv
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
Nginx
NginxNginx
Nginx
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presen
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
Hive undocumented feature
Hive undocumented featureHive undocumented feature
Hive undocumented feature
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
Tottoruby 20110903
Tottoruby 20110903Tottoruby 20110903
Tottoruby 20110903
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
 
Capistrano
CapistranoCapistrano
Capistrano
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Recently uploaded (9)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

Openresty