SlideShare a Scribd company logo
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 filter
Giovanni Bechis
 
Containers for sysadmins
Containers for sysadminsContainers for sysadmins
Containers for sysadmins
Carlos de Alfonso Laguna
 
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 transformation
Arnaud 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 programs
Badoo 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 Tadayon
Redis Labs
 
nouka inventry manager
nouka inventry managernouka inventry manager
nouka inventry manager
Toshiaki Baba
 
Python and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihunPython and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihun
JIHUN KIM
 
Rabia
RabiaRabia
About memcached
About memcachedAbout memcached
About memcached
ChangQi Lin
 
Automated tests - facts and myths
Automated tests - facts and mythsAutomated tests - facts and myths
Automated tests - facts and myths
Wojciech Sznapka
 
BlockChain implementation by python
BlockChain implementation by pythonBlockChain implementation by python
BlockChain implementation by python
wonyong hwang
 
Memory Management in WordPress
Memory Management in WordPressMemory Management in WordPress
Memory Management in WordPress
Konstantin Kovshenin
 
Go for the paranoid network programmer
Go for the paranoid network programmerGo for the paranoid network programmer
Go for the paranoid network programmer
Eleanor 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 & Tools
Ian 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 Version
Ian 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 syntax
Wooga
 
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 Simple
Ian Barber
 
網路攻擊技術分析
網路攻擊技術分析網路攻擊技術分析
網路攻擊技術分析David Liao
 
Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015
GregMefford
 
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
Marcus 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 java
Alexander Gyoshev
 
Osol Pgsql
Osol PgsqlOsol Pgsql
Osol Pgsql
Emanuel Calvo
 
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 Framework
jaliss
 
nescala 2013
nescala 2013nescala 2013
nescala 2013
Hung Lin
 
Node.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterNode.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitter
Simen Li
 
Do snow.rwn
Do snow.rwnDo snow.rwn
Do snow.rwn
ARUN 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

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 

Recently uploaded (20)

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 

strace for Perl Mongers