SlideShare a Scribd company logo
1 of 65
Download to read offline
strace for Perl 
Mongers 
zentooo @ DeNA
ß…Ãu
@zentoo or @zentooo
°ntDtÒ–ê±
áϱ–©–ÖòÖèÂÇÔ 
¨–ß
p€g§a†ó
àÇ–®w©À{N–ŠgŸ
stracet{ 
Ö캸ÆsPía˜rP—¶¸Åß²–êžtracee—k 
zÖê
iz¼w|¶¸Åß²–êo 
rD”ƒ
¶¸Åß²–ê{|¡Öé°–¶æòX 
j[OSz API 
File I/O (open, lseek, write, read, close) 
Network (socket, bind, listen, accept, connect) 
Memory (brk, sbrk, mmap) 
Process (fork, wait, kill) 
Thread (pthread_create)
¶¸Åß²–êž-,gfPerlsÔ £ê 
I/OsY—Wƒ
¶¸Åß²–êUYsPerlscPÖìº 
¸žf˜—Wƒ
¶¸Åß²–êUYsPerlsÌÂÇî–® 
Öì¯èÞò¯Xca—Wƒ
¡Öé°–¶æò{OSzzzÖ
±¿seX
Q. Web¡Öé°–¶æòz› 
ÌorD”ƒ
A. HTTP鮧¸Çž*]r 
HTTPë¸Üò¸ž4e_tl 
”„
Q. HTTP鮧¸Çž*]r 
HTTPë¸Üò¸ž4eoru 
RPR_tl”„
A. acceptcrreadcrwritecrclosel 
”Ϫãì–„
ŠNgm®]
Web¡ÖézV›Ì 
1. HTTP鮧¸Çž*]— 
2. _zw‰•zÈèÝXN— 
MySQL„z¡®º¸ 
memcached„z¡®º¸ 
(Æ–¾z^|logz„Y‹etc) 
3. /_zw‰•zÈèÝXN— 
4. HTTPë¸Üò¸ž4e
¶¸Åß²–ê§w™e—t... 
1. int fd = accept(...); // 鮧¸Ç*]r 
2. read(fd, ...);{{{// 鮧¸ÇzÆ?­Ÿs 
3. _zw‰•zÈèÝXN— 
socket, connect, write, read, close 
open, write, read, close 
4. /_zw‰•zÈèÝXN— 
5. write(fd, ...);{{{// ë¸Üò¸4e
a•w»ƒe—t 
1. int fd = accept(...); // 鮧¸Ç*]r 
2. read(fd, ...);{{{// 鮧¸ÇzÆ?­Ÿs 
3. ‰•zÈèÝ / 
4. write(fd, ...);{{{// ë¸Üò¸4e
DEMO #1 - just to strace
stracež­ŒÔz¬Úò (1) 
↓システムコール名 返り値↓ 
read(5, GET / HTTP/1.0rnHost: xxx-xxxxxx..., 131072) = 308 
↑引数(バッファなどの場合はよしなに展開される)
stracež­ŒÔz¬Úò (2) 
fd (Ô £êÆ¢¸®éÖ¾) w¶öe— 
↓コレ 
read(5, GET / HTTP/1.0rnHost: xxx-xxxxxx..., 131072) = 308
fd (Ô £êÆ¢¸®éÖ¾) 
Ô £êÌÂÇî–®¼°ÂÇvuž³ÎBckÖ9 
„zÜ£ò¾ 
(0, 1, 2) = (stdin, stdout, stderr) 
i˜’ø{«zw•˜—
fd with file 
int fd = open(/tmp/yapc2014, ...); 
read(fd, buffer); 
write(fd, buffer); 
close(fd);
fd with client socket 
int fd = socket(); 
connect(fd, addr, ...); 
read(fd, buffer); 
write(fd, buffer); 
close(fd);
fdžðRzXè2z2˜ 
Ô £êzf# 
opens4orYkfdXclosewUa˜—Šs 
®è£¡òÇ´£Èsz¼°ÂÇzf# 
sockets4orYkfdXclosewUa˜—Šs 
´–Ï´£ÈwV]—®è£¡òǼ°ÂÇzf# 
accepts4orYkfdXclosewUa˜—Šs
Web¡Öézstracež­ŒÔz¬Úò 
// こっから 
accept(4, {sa_family=AF_INET, ...)}, [16]) = 5 
(中略) 
read(5, GET / HTTP/1.0rnHost: xxx-xxxxxx..., 131072) = 308 
(中略) 
write(5, HTTP/1.1 200 OKrnDate: Sun, 10 A..., 2218) = 2218 
// ここまでが一つのリクエスト/レスポンス 
// keepaliveしてないならここで close
DEMO #2 - strace web app
N[Šs2˜vzsº“Ž 
Twiggy, Twiggy::Preforkvuevent-drivenv´–Ï 
(epoll_wait) 
multi socket listencr—ÔzStarlet (select)
Web¡ÖézV›Ì($) 
lPkPzÝ „Ðzó
 sþUwv— 
HTTP鮧¸Çž*]— 
_zw‰•zÈèÝXN— 
MySQL„z¡®º¸ 
memcached„z¡®º¸ 
(Æ–¾z^|logz„Y‹etc) 
/_zw‰•zÈèÝXN— 
HTTPë¸Üò¸ž4e
¶öÜ£òÇ - MySQL 
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 10 
fcntl(10, F_SETFL, O_RDONLY) = 0 
fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) 
fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) 
fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 
connect(10, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr(10.0.0.1 
fcntl(10, F_SETFL, O_RDWR) = 0 
poll([{fd=10, events=POLLIN|POLLPRI}], 1, 4000) = 1 ([{fd=10, revents=POLLIN} 
setsockopt(10, SOL_SOCKET, SO_RCVTIMEO, 200334110000000setsockopt(10, SOL_SOCKET, SO_SNDTIMEO, 200334110000000setsockopt(10, SOL_IP, IP_TOS, [8], 4) = 0 
setsockopt(10, SOL_TCP, TCP_NODELAY, [1], 4) = 0 
setsockopt(10, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
¶öÜ£òÇ - memcached 
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 8 
fcntl(8, F_GETFL) = 0x2 (flags O_RDWR) 
fcntl(8, F_SETFL, O_RDWR|O_NONBLOCK) = 0 
connect(8, {sa_family=AF_INET, sin_port=htons(11211), sin_addr=inet_addr(10.0.0.1 
poll([{fd=8, events=POLLOUT}], 1, 250) = 1 ([{fd=8, revents=POLLOUT}]) 
getsockopt(8, SOL_SOCKET, SO_ERROR, [-511598409602301952], [4]) = 0 
setsockopt(8, SOL_TCP, TCP_NODELAY, [1], 4) = 0 
sendmsg(8, {msg_name(0)=NULL, msg_iov(6)=[{set, 3}, { csrf_token:, 20}, 
read(8, 0x59f9f50, 1536) = -1 EAGAIN (Resource temporarily unavailable) 
poll([{fd=8, events=POLLIN}], 1, 300) = 1 ([{fd=8, revents=POLLIN}]) 
read(8, STOREDrn, 1536)
DEMO #3 - strace web app 
with DB and memcached
Öì¯èß{­oktV–w 
”WvP 
•d®§éžDxPcr— 
­ork”–cache misscr— 
Ï7wretrycr— 
TCP ConnectionžPŠ›grvP 
TCP ConnectionmŸtˆ˜rvP
öº #1 - memcached retry 
problem
+180ms 
tN—APIzë¸Üò¸X|éé–¸ w180msËB 
50ms or diev•4x[•P¶vvPtP]vPëØê
?_	 
Cache::Memcached::FastzèÂЖá·ä–ê 
(Ò1
XNokzs)
M[èo 
strace -p $pid -e 'trace=sendmsg' 
(Cache::Memcached::FastXsendmsgžžRz{—orPk)
Ë 
sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_local:, 13} 
sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_local:, 13} 
sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_local:, 13} 
sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_local:, 13} 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote1:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote1:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote1:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote1:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote2:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote2:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote2:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote2:,
̾|•c 
èÂЖá·ä–êwretryAÿ (maxs3x) XâorPk 
Cache::Memcached::Fastzget{cache misstiz)z§ 
è–žæ*sYvP 
cache missz_w3xretrycrk 
retry¹{20msec 
20 msec × 3 (retry) × 3 = 180 msec 
izhit rate{uRvŸƒtPRø{N–ppŽget,{ 
retrycvP7cžâ˜rwE
Ë - with timestamp 
22:45:34.517703 sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { 22:45:34.537967 sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { 22:45:34.558936 sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { 22:45:34.579275 sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { 22:45:34.587428 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:34.608296 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:34.628673 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:34.649146 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:35.135129 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:35.155516 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:35.176027 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:35.196453 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3},
stracecr‹—t´ö¿ 
ÙžpWvPÖêwc—
ÙžpWvPÖê 
strace 
tcpdump 
gdb
Ùžp[Žz 
zM6 
¡Öézì¯ 
Ôw{¡Öéz²–È
öº #2 - accept(2) 
thundering herd
What is thundering herd 
The thundering herd problem occurs when a large 
number of processes waiting for an event are awoken 
when that event occurs, but only one process is able to 
proceed at a time. - Wikipedia 
*[zÖ캸X§zÇé«–s•Ôw”YceX|ö 
Uz{v{´zÖ캸scW훘vP (Šk{í› 
˜—…Y) Ôwé¼–¸XÏ7wv—þU 
”[N—z{Æ–¾zremote cacheXexpireckÔw´D 
wDB„z®§éX—|tW
accept(2) and prefork server 
DÖ캸X•Ôw´pzsocket fdžacceptc|i˜j 
˜Õì® 
Linux kernelX”cvwqueueingcr[˜—zs|鮧 
¸ÇXakÔwOYÖX—Ö캸{´pl] 
(ˆæ) 
http://d.hatena.ne.jp/naoya/20070311/1173629378
accept(2) and event-driven/ 
multi-process server 
DÖ캸X•Ôw´pzsocket fdžepoll_waitsÁ 
listen socketXreadIÿ = acceptXIÿwvokÔFs 
epoll_waitcr—ÀrzÖ캸XOYÖX— 
´pzÖ캸Xacceptw´ 
)zÖ캸{óorî (EAGAIN)
accept(2) thundering herd 
accept(2)zó–XÖ캸Dt鮧¸ÇDzÀ]‘s 
Pf 
loadXÖX— 
vmstatsf—t... 
ustsytcsz–Xg–ÖX— (50, 50, 100000tW) 
Ö캸zcontext switch
TeZXOÀWt­›˜—
DEMO #3 - EAGAIN and again 
and again
wEn 
iŽiŽXevent-drivenvŸlciŸvwR£wÖ캸 
N^v[rPP”y
vv,w”–100Ö캸[•Pw (¼{300[•PN 
ok)
7• 
xæz¡–¬Å®ÀâltÇtuRc”RŽvPDXcr 
P— 
Monoceros‹kPwaccepte—Ö캸t鮧¸Çž 
{ve—Ö캸žñÀw
]—tWƒ 
event-driventÝêÀÖ캸{øPgXuP with Perl 
IO::AIO (AnyEvent::IOzbackend) tWŽÇt¶ò¯êÖ 
캸¼völok–...
Štwâ–Še
stracez›—Pt_™ 
ß¿váQXVVP (ø˜˜|uRwsŽv—X) 
kŠwO_—,zÌÎw{¹PrvP (Devel::KYTProftW 
sì¯cck[X”Pƒ¥
stracez”Pt_™ 
̼XÓPs|Ö캸wattache—l]sef˜ 
— 
Web¡Öé°–¶æòzDÓmX
W—
stracelt
W•vP_t 
¶¸Åß²–êž]›vPvCPUÏ¥òÈvÏ7v{v 
¡Öé°–¶æòszÏ7loop, deep recursion 
µzuP¡ê³é¹ßtW 
-d NYTProf 
Çèò¸Ü–Çä’AszþU 
tcpdumptWtsharktWngreptWžPŠc“R
straces
W—_t 
鮧¸Ç*]r|ë¸Üò¸4eŠszÔì– 
Æ–¾¡®º¸zöA 
öUwDxmemcachedW•getcr—W|DxDB‹w 
Por—W 
öUwcachea˜rP—data 
öUwPícrP—SELECT 
iz)|ŽP	z6crPvP“”
H 
|k–¼l]ustrace{¸ÿzÖêdvP 
žT|ÚàW•ä—tWiŸv_tŽvP 
sŽ|žP[X
WorP˜|V7€­¦ 
Web¡ÖézDÓmX
W—
ˆæ` 
The Linux Programing Interface 
ŠPc|K¨„€h(÷§cWvP]u...)Vee 
à˜§hŽN—]u1000Ù–·Ý|pŠ–„€s{v[ 
ï1 
À󭌫Pvc|éÔ ëò¸tcrŽ6q 
äz˜{Veel]u|±¿­Œz{ޏXûPzs 
pRzLinuxÖì¯èÞò¯ 
tWz[X?|{PPWŽc 
˜vP
™G (?) 
Web+DBz2014ñ10KÿwMÌ(Perl Hackers Hub)ž„Wg 
rá[_twv–Šck

More Related Content

What's hot

Pf: the OpenBSD packet filter
Pf: the OpenBSD packet filterPf: the OpenBSD packet filter
Pf: the OpenBSD packet filterGiovanni Bechis
 
X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newYiwei Ma
 
Abusing text/template for data transformation
Abusing text/template for data transformationAbusing text/template for data transformation
Abusing text/template for data transformationArnaud Porterie
 
download presentation
download presentationdownload presentation
download presentationwebhostingguy
 
GeeCON 2013 - EJB application guided by tests
GeeCON 2013 - EJB application guided by testsGeeCON 2013 - EJB application guided by tests
GeeCON 2013 - EJB application guided by testsJakub Marchwicki
 
Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programsBadoo Development
 
SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
 SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
SSH I/O Streaming via Redis-based Persistent Message Queue -Mani TadayonRedis Labs
 
nouka inventry manager
nouka inventry managernouka inventry manager
nouka inventry managerToshiaki Baba
 
Python and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihunPython and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihunJIHUN KIM
 
Automated tests - facts and myths
Automated tests - facts and mythsAutomated tests - facts and myths
Automated tests - facts and mythsWojciech Sznapka
 
BlockChain implementation by python
BlockChain implementation by pythonBlockChain implementation by python
BlockChain implementation by pythonwonyong hwang
 
Go for the paranoid network programmer
Go for the paranoid network programmerGo for the paranoid network programmer
Go for the paranoid network programmerEleanor McHugh
 

What's hot (20)

Vcs28
Vcs28Vcs28
Vcs28
 
Pf: the OpenBSD packet filter
Pf: the OpenBSD packet filterPf: the OpenBSD packet filter
Pf: the OpenBSD packet filter
 
Containers for sysadmins
Containers for sysadminsContainers for sysadmins
Containers for sysadmins
 
36 gotas de-sabiduria
36 gotas de-sabiduria36 gotas de-sabiduria
36 gotas de-sabiduria
 
X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 new
 
Abusing text/template for data transformation
Abusing text/template for data transformationAbusing text/template for data transformation
Abusing text/template for data transformation
 
download presentation
download presentationdownload presentation
download presentation
 
GeeCON 2013 - EJB application guided by tests
GeeCON 2013 - EJB application guided by testsGeeCON 2013 - EJB application guided by tests
GeeCON 2013 - EJB application guided by tests
 
Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programs
 
SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
 SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
 
nouka inventry manager
nouka inventry managernouka inventry manager
nouka inventry manager
 
Python and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihunPython and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihun
 
Rabia
RabiaRabia
Rabia
 
About memcached
About memcachedAbout memcached
About memcached
 
Automated tests - facts and myths
Automated tests - facts and mythsAutomated tests - facts and myths
Automated tests - facts and myths
 
BlockChain implementation by python
BlockChain implementation by pythonBlockChain implementation by python
BlockChain implementation by python
 
Ruby Postgres
Ruby PostgresRuby Postgres
Ruby Postgres
 
Memory Management in WordPress
Memory Management in WordPressMemory Management in WordPress
Memory Management in WordPress
 
root-ksk-2010
root-ksk-2010root-ksk-2010
root-ksk-2010
 
Go for the paranoid network programmer
Go for the paranoid network programmerGo for the paranoid network programmer
Go for the paranoid network programmer
 

Similar to strace for Perl Mongers

Debugging: Rules & Tools
Debugging: Rules & ToolsDebugging: Rules & Tools
Debugging: Rules & ToolsIan Barber
 
Debugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 VersionDebugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 VersionIan Barber
 
Reutov, yunusov, nagibin random numbers take ii
Reutov, yunusov, nagibin   random numbers take iiReutov, yunusov, nagibin   random numbers take ii
Reutov, yunusov, nagibin random numbers take iiDefconRussia
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaTony Fabeen
 
Devinsampa nginx-scripting
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scriptingTony Fabeen
 
More than syntax
More than syntaxMore than syntax
More than syntaxWooga
 
Making Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in MeteorMaking Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in Meteoryaliceme
 
ZeroMQ: Messaging Made Simple
ZeroMQ: Messaging Made SimpleZeroMQ: Messaging Made Simple
ZeroMQ: Messaging Made SimpleIan Barber
 
網路攻擊技術分析
網路攻擊技術分析網路攻擊技術分析
網路攻擊技術分析David Liao
 
Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015GregMefford
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsMarcus Frödin
 
Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaAlexander Gyoshev
 
5 issues
5 issues5 issues
5 issuesm0use
 
SecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play FrameworkSecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play Frameworkjaliss
 
nescala 2013
nescala 2013nescala 2013
nescala 2013Hung Lin
 
Node.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterNode.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterSimen Li
 
Do snow.rwn
Do snow.rwnDo snow.rwn
Do snow.rwnARUN DN
 
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]Jose Selvi - Side-Channels Uncovered [rootedvlc2018]
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]RootedCON
 

Similar to strace for Perl Mongers (20)

Debugging: Rules & Tools
Debugging: Rules & ToolsDebugging: Rules & Tools
Debugging: Rules & Tools
 
Debugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 VersionDebugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 Version
 
Reutov, yunusov, nagibin random numbers take ii
Reutov, yunusov, nagibin   random numbers take iiReutov, yunusov, nagibin   random numbers take ii
Reutov, yunusov, nagibin random numbers take ii
 
Random numbers
Random numbersRandom numbers
Random numbers
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with Lua
 
Devinsampa nginx-scripting
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scripting
 
More than syntax
More than syntaxMore than syntax
More than syntax
 
Making Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in MeteorMaking Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in Meteor
 
ZeroMQ: Messaging Made Simple
ZeroMQ: Messaging Made SimpleZeroMQ: Messaging Made Simple
ZeroMQ: Messaging Made Simple
 
網路攻擊技術分析
網路攻擊技術分析網路攻擊技術分析
網路攻擊技術分析
 
Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
 
Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and java
 
Osol Pgsql
Osol PgsqlOsol Pgsql
Osol Pgsql
 
5 issues
5 issues5 issues
5 issues
 
SecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play FrameworkSecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play Framework
 
nescala 2013
nescala 2013nescala 2013
nescala 2013
 
Node.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterNode.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitter
 
Do snow.rwn
Do snow.rwnDo snow.rwn
Do snow.rwn
 
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]Jose Selvi - Side-Channels Uncovered [rootedvlc2018]
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]
 

Recently uploaded

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Recently uploaded (20)

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

strace for Perl Mongers