Upload
alexey-krivitsky
View
2.343
Download
4
Embed Size (px)
DESCRIPTION
Slides from Open Source Boot Camp by Alexey Krivitsky
Citation preview
!"#$#%&'()*+,-+.&()/011()+23%$+'45367-)8&5#,#9&:+%);<)=,3>3<)?4#.#9$@<()$54'7A'#-3$65+7)
=!?BCDEFGH*FBIJ)KLMNLOPQR)
• C23%J+'453)*+,-+.&)I3&7)S)TOUVW)
)
X+7&%)J:4;') =4937)Y&$#,3%@+) =,3>3#)!#+;&%') =%-4#&%)Z&4-&%)
• *+,-+.&)!+723::.3%3$$)F%"&%5373%9)&%-)F%93424#$3)G3.3,+273%9)[[)\4+]359)^!FFG)[[_)N`VabLbSN)cJ=[G)d)S)TOUV)[+%3,&)!#'"4##6)
efgh)ijkh)
16 lmn`mbmSObo)LSmO)OnVO)nTp))LbNqbN)qNrqNPmbsO)S)tmquNbV))+23%)$+'4536))
/6 eNvwOboLp)LmSqVuVaaQu)MmnxmnNu)umnVTOqmSNaOp)OnVy)O)MqmqNPmbsO)bqVPmSNaOy6))
z6 {mrnNbo)LmmP|VLbSm)+23%)$+'453)}mTnmSQ6))
~6 �&.3)Ä'%Å)
ÇÉÑ)ef)ÖÜáÑàjâ)
• ämuNanQ()LmPqNaaQV)Mmn)MqmVsbQ6)
• lmaOuNaOV)wbm()rNwVu)O)sNs)SQ)PvnVbV)qNrqNPNbQSNbo6)
• }am`m)amSQx)smabNsbmS)O)nqvrVy6)
ãf{hkhÉfihå)
ãNLOTObNUOp)^nmLTmSam)!"#$%&'%()%*+,,ç Mmum|o)`qvMMV)OTO)mbnVToamuv)wVTmSVsv)S)mq`NaOrNUOO)LmPLbSVaamy)nVpbVToamLbO6)
)!"#$%#&'()*+*,$*&'-./0102'345657892:'
• éNrqNPmbwOs)• =A#,3çsmvw)• J54'7çbqVaVq)• {mSTNnVTVU)smvwOa`mSmy)smuMNaOO)J!Xc*A'#-3$)• @4#.#9$@<è$54'7A'#-3$65+7)• è&,3>3<@4#)
Ééh)ÖÑléÑ{f)
16 Çbm)uVap)rNêO`NVb)S)ëbmu)uVqmMqOpbOOâ)
/6 lmwVuv)nTp)uVap)SNêam)PQbo)rnVLo)LV`mnapâ)
z6 {)wVu)PQ)p)xmbVT)vybO)mbLínNâ)
ef})eìîeÜ)àÑïÑÖÑéjeeÑ{Éhâ)
ç ';'<#='%>?@'+AB#&'*C#*D'ç 'EF<#=>'+AGHF'%FICA?@'J?F?'K)FC>$?D'ç 'L?F'+M'>G#'%C#"A"*'+'J?F='K)F#$?#D'ç '(A$*#'>'J?FNF'K)FC>$?A'AHA"FN*D'ç 'L#='+ABA'*C#O'F?"*<A#?%OD'
ç '(?F'+A='H>G#H'+'$F=AHC>D'
FEFY=I[CB)\[I!�)
ïfkjéjå)äÑ}feàÜ)
P*%>#='$F""#N'*'IAK*%M+A#='F?+#?M'HA'+FK)F%MQ''
RS EF<#=>'O'K)*B#"'+'J?>'$F=AHC>D'TS ;'<#='=FO'%*"AD'US L?F'O'=FN>'CA?@'$F=AHC#D'VS L#=>'O'WF<>'HA><*?@%O'+'J?F='K)F#$?#D'
rNnNwN)qNrqNPmbsO)MqmnvsbN)OTO)vLTv`O()SQMmTapí|NpLp)S)smabVsLbV)SQLmsmy)aVmMqVnVTVaamLbO6)
JI=XIc\)
ijkñ){ÉféÉflf)
HA&?*'?>'K)A+*"@H>X'+#Y@Z'$F?F)>XQ'R:'%?F*?')AI)A[A?M+A?@Z'T:'$F?F)>X'WF?O?'IA$AI<*$*'''
U:'*'IA'$F?F)>X'[>C>?'NF?F+M'K"A?*?@'\'V:'$A$'=FGHF'%$F)##S''
ïkfÖefå)äÑeijlihå)EF=BW)
!�=CJ)
{mSqVuVaaNp)smaUVMUOp)SVnVaOp)LbNqbNM)MqmVsbmS()Lvbo)smbmqmy)d)amSQy)Sr`Tpn)aN)qNrqNPmbsv)OaamSNUOmaaQx)MqmnvsbmS()smbmqQy)LbNSOb)Sm)`TNSv)PQLbqQV)ObVqNUOO)O)mPqNbaví)LSpro)mb)sTOVabmS()LOToamV)SOnVaOV)O)uam`m)NuPOUOy)d)SLV)ëbm)mnamSqVuVaam6)
)
)
ihäk)EF=B)JI=XIc\)
]^_`a'
bc.d^ec'
`c.ef'(!('
ghijh'
k(hPll'
\[YCX)CX)\FXJFYFXF)
mnfo_f^c']^_`a_fp'
]^_`a'dnbcoq_fp'
fcr'
2#.+9)
234$3.343)
`c.ef'
EhLlgs''tuh'
;!ijhD'
àhófòe)d)ôÉÑ)léÑij{{)
"ö2Wõõúúú6<+'9';365+7õú&95"â.ù*ûûüc/\![5*))
"ö2Wõõúúú6<+'9';365+7õú&95"â.ù$†403†E<°�¢))
äÑélÑéfÉhÖefå){Ñi){jÉñ)
-.",/."0,,,ôbm)rNsqQbNp)LmU)LVbo()smbmqNp)OLMmTorvVbLp)SavbqO)smuMNaOO)nTp)mPuVaN)OatmquNUOVy)uVênv)mbnVTNuO()LmbqvnaOsNuO6)ÉNsêV)SQMmTapVb)tvasUOO)smqMmqNbOSamy)PNrQ)raNaOy6)
)
-.",1%$2%.,%%,".$)'("3,".,4567899:;,<5==7>,),1?@&)A0,,ìqmSaVu)smatOnVaUONToamLbO6)àNaaQV)mnamy)smuMNaOO)NPLmTíbam)rNsqQbQ)mb)nNaaQx)nqv`my6)ÖmrumêVa)SNqONab)LSmV`m)xmLbOa`N6)
))
ljé{ÑeÜ)lÑkñóÑÖfÉjkò)
eN)LsmTosm)xmqm£m)SQ)raNVbV)SN£Ox)Pvnv|Ox)MmTormSNbVTVyâ))
) vgw'*'(xyLl;zl'hkh{ljjhkuv'MqVnLbNSObVTo)sNsm`m)sTNLLNâ))
sNsNp)MqmtVLLOp)OTO)LMVUONToamLboâ)SmrqNLbâ)mPqNrmSNaOVâ))
vqmSVao)STNnVaOp)bVxamTm`OVyâ)
Luh'|ljvuD)wbm)SNêam)nTp)aV`mâ)
wbm)TíPObâ)aN)wbm)mPqN|NVb)SaOuNaOVâ)
Luh'}hLlu'hu'EPh~s(u!D)sNsOV)MqmPTVuQ)xmwVb)qV£Oboâ)sNsOV)MmbqVPamLbO)rNsqQboâ)
)
khjw''B?%1C.2D).%$E,F2F"&",F$2CC20,,F2F2G,B?"H%CC)G,)$),CB%I)2$E("C.E0,
D"J?2C.0,"#?2J"D2()%0,@?"D%(E,D$21%()G,.%A("$"&)%30,'
uNqsVbmTm`)L)SQL£Ou)mPqNrmSNaOVu()/§)TVb)qV`vTpqam)MmTorvVbLp)LmU)LVbpuO)
Luh'|ljvu''
)
Luh'}hLlu')F2F)%,B?"#$%KL,A"'%.,?%M).E0,
F2F)%,B".?%#("C.),J2F?L.E0,,• xmwVb)nVTOboLp)LSmOu)
nmLbOêVaOpuO)O)amSmLbpuO)L)smTTV`NuO)
• xmwVb)MvPTOsmSNbo)tmbm`qNtOO)• xmwVb)mPLvênNbo)qNPmwOV)
SmMqmLQ)S)maTNyaV)• xmwVb)PQbo)S)svqLV)amSmLbVy)
smuMNaOO)O)LSmOx)smTTV`))
'.",D2N(",1$G,(%&"0,'.",$O#).0,(2,'.","#?2P2%.,D()K2()%0,
• UVaOb)SLV)LmSqVuVaamV)d)bVxaOsv)O)bqVanQ)
• TíPOb)mP|VaOV)O)LmU)LVbO)• OuVVb)NssNvab)aN)Ä&53;++@()
9ú#ö34)• TíPOb)Mmqpnms)O)mq`NaOrNUOí)
OatmquNUOO()bNs)wbmPQ)Mmbmu)umêam)PQTm)TV`sm)aNybO)SNêaQV)umuVabQ)))
))
léÑéf•fÉÜÖfj})ljé{Ñe)
ÖQPVqObV)aVLsmTosm)SNêaQx)bOMmS)MmTormSNbVTVy)SN£V`m)MqmnvsbN6))àTp)sNênm`m)MqOnvuNybV)MVqLmav)d)bOMOwam`m)MqVnLbNSObVTp)ëbmy)`qvMMQ)O)mMO£ObV)V`m)S)MqVnTmêVaamu)tmquNbV6))�&.3)Ä'%Å))
"ö2Wõõúúú6<+'9';365+7õú&95"â.ù°+=C†*IE\¶$)
)
äbm)aN£O)sTOVabQâ)
äNsOV)mbam£VaOp)uQ)MmnnVqêOSNVu)L)aN£OuO)sTOVabNuOâ)
äNs)aN£O)sTOVabQ)Pvnvb)MmTvwNbo)aN£O)vLTv`OçMqmnvsbQâ)
äNsví)MqmPTVuv)uQ)qV£NVuâ)äNsví)MmbqVPamLbo)rNsqQSNVuâ)
äNsOV)qVLvqLQ)aNu)MmbqVPvíbLpâ)
äbm)aN£O)MNqbaVqQâ)
äNsOx)nVyLbSOy)mb)aNL)MmbqVPvVb)MqmVsbâ)
óflÑkeåj}){léfÖf)efkjÖÑ)
1)
/)
z)
~)
¶)
û)
ß)
smqMmqNbOSaQV)LmbqvnaOsO)
qNrqNPmbwOsO)))#%94&%39)qV£VaOy)
smqMmqNbOSaQV)PTm``VqQ)
�XçQ)
LOLbVuaQV)NnuOaOLbqNbmqQ)
PVLMTNbamV)OLMmTormSNaOV)+23%)$+'453)
LsNwNbo);#%)LsNwNbo)$45)
vLbNamSObo)sNs)MTN`Oa)s)D\)8®)LbqNaOUN)
J==J)
mPuVa)OatmquNUOO)S)smuMNaOO)
qNLMqmLbqNaVaOV)smqM6)amSmLbVy)
aVtmquNToamV)mP|VaOV)uVênv)LmbqvnaOsNuO)
PVrmMNLaNp)LmU)LVbo)
qNrqNPmbsN)MqOTmêVaOp()D\()SOnêVbmS)nOrNya)
MqmnSOêVaOV)
\�\)-3.)nOrNyaVq)
nVumçLVqSVq)
D+4-\43$$)=\[)
H#9�';)
Ö)lÑh{äfá)}jÉfãÑéÜ)
Çbm)aNMmuOaNVb)SN£N)LOLbVuNâ)
)
eN)wbm)MmxmêN)SN£N)LOLbVuNâ)
)
äNs)VV)umêam)PQTm)PQ)OrmPqNrOboâ)
}ÑÉhÖfihå)z60)
ïTNSaQV)SavbqVaaOV)OLbmwaOsO)umbOSNUOOW)• KFH*=AH*#',#"*'• A?F=HF%?@'• K)F�#%%*FHA"@HM&')F%?'• MqOwNLbamLbo)• LmUONToaQy)smabNsb)• OnVNTOru)• LbNbvL)
}jÉfãÑéf))äÑélÑéfÉhÖeÑò){Ñi){jÉh)
©{bVa`NrVbN™W)
• pqsNp)• LNumnVToaNp)• aNMOLNaaNp)qNraQuO)NSbmqNuO()LbOTpuO)O)MmwVqsNuO)
• MmsNrQSNVb)LqVr)OabVqVLmS)O)LmPQbOy)mq`NaOrNUOO)
!"#$#%&'()*+,-+.&()/011()+23%$+'45367-)8&5#,#9&:+%);<)=,3>3<)?4#.#9$@<()$54'7A'#-3$65+7)
ljéÖfå)Ñ•éfÉefå){Öåóñ)
éNLLsNêObV)m)SN£Vy)OnVV()OLMmTorvp)uVbNtmqv())®*!)O)MVqLma6)){MqmLObVW)• ÇVu)aqNSObLp)SN£N)OnVpâ)• Çbm)umêVb)PQbo)MmTVram)V|V)SN£Ou)MmTormSNbVTpuâ)
• äNs)VV)umêam)LnVTNbo)Tvw£Vâ)• Çbm)S)aVy)LbmOb)OruVaOboâ)
ì{hkhÖfehj)hàjh)
16 ÇÉÑ)ÖfîeÑïÑ)ÖÜ)ìóefkh)Ñ){ÖÑj})léÑàìäÉj()ÇÉÑ)}jeåjÉ)Öfgì)efÇfkñeì´){ÉéfÉjïhâ)
/6 ljéjÇh{khÉj)Öfgh)Ñ{eÑÖeÜj)léjàlÑkÑîjehå()ef)äÑÉÑéÜá)•fóhéìjÉ{å)ì{ljá)léÑàìäÉf6)
z6 lÑÇj}ì)Öfgh)lÑkñóÑÖfÉjkh)}ÑïìÉ)ej)ófáÑÉjÉñ)lÑkñóÑÖfÉñ{å)léÑàìäÉÑ}â)
äféÉf)h{ÉÑéhò))K$9+4<)7&22#%AR)
äféÉf)h{ÉÑéhò)
=!I[Y[I¢)
cJFX)õ)HC=E) cJFX)õ)HC=E)
=!I[Y[I¢) =!I[Y[I¢) =!I[Y[I¢)
I=J?) I=J?) I=J?)
I=J?)
I[*F)
BF!
!FJ[I¢)
I=J?)
I=J?)
I=J?) I=J?)
ec`c.dc'RSÄ'-bÅÇ:'
)
I=J?)
I=J?)
äféÉf)h{ÉÑéhò)
lÑkìÇhÉñ)h}jòk)
éf•ÑÉf){)h}jòkf}h)
ÑÉléfÖhÉñ)h}jòk)
ÑÉäéÜÉñ)léÑÇj{Éñ)
eflh{fÉñ)
I[*F)
BF!
!FJ[I¢)
ãÑéÖféàhÉñ)
fÉÉfÇhÉñ)ìàfkhÉñ)
ÑÉléfÖhÉñ)
léÑÖjéhÉñ)ÑéãÑïéfãh´)
bÅÇ'\'É5Ñ5ÉÖ/'65ÖÜ/0'á4àâäã7'
féáhÖhéÑÖfÉñ)
äféÉf)h{ÉÑéhò)
lÑkìÇhÉñ)h}jòk)
lÑkñóÑÖfÉjkñ)lÑÇÉÜ)
ÑÉléfÖhÉñ)h}jòk)
ÑÉäéÜÉñ)léÑÇj{Éñ)
eflh{fÉñ)
ãÑéÖféàhÉñ)
fÉÉfÇhÉñ)ìàfkhÉñ)
ÑÉléfÖhÉñ)
léÑÖjéhÉñ)ÑéãÑïéfãh´)
bÅÇ'\'É5Ñ5ÉÖ/'65ÖÜ/0'á4àâäã7'
féáhÖhéÑÖfÉñ)
bÅÇ'\'É5Ñ5ÉÖ/'65ÖÜ/0'á4àâäã7'
äféÉf)h{ÉÑéhò)
aNwOaNVb)qNPmwOy)nVao)
{Ñeå)^LmbqvnaOs_)
MmLbOb)OLMmTorvVb)
`qvMMmSQV)wNbQ)
uVapVb)LbNbvL)aN)©p)MqO£VT™)
MmLbOb)S)uOaOçPTm`)
rNnNVb)SmMqmL)
mbuVwNVb)LSmV)aNLbqmVaOV)
I[*F)
BF!
!FJ[I¢)
MmLbOb)LLQTsO()sNqbOasO()SOnVm)
O|Vb)S)wNbNx)Mm)sTíwVSQu)LTmSNu)
MmLV|NVb)LmSV|NaOp)
uVapVb)LbNbvLQ)
wObNVb)mbSVbQ)wObNVb)uOaOç
PTm`O)
nVTObLp)uOavbNuO)LmSV|NaOp)
äféÉf)h{ÉÑéhò)
qNLLQTNVb)SNêaQy)NamaL)
�X)
qNPmbNVb)L)mMqmLaOsmu)
SVnVb)amSQx)LmbqvnaOsmS)
MmLbOb)bVsLbQ)mbSVwNVb)aN)SmMqmLQ)
I[*F)
BF!
!FJ[I¢)
MmMmTapVb)bVuv)8=°)
LmrnNVb)mMqmLaOs)
mPamSTpVb)smqMmqNbOSaQy)
sNTVanNqo)
naO)qmênVaOp)
MqNrnaOsO()OSVabQ)
LmPOqNVb)SmMqmLQ)
MmrnqNSTpVb)S)uOaOçPTm`V)
ãìeäihÑefkñefå)àÑ{ÉfÉÑÇeÑ{Éñ)äÑ}feàÜ)
äfeÑ)ÖóÖjghÖfehj)
äfä)Öf})léÑàìäÉ)•jó)ôÉÑò)ãhÇhâ)
äfä)Öf})léÑàìäÉ){)ôÉÑò)ãhÇjòâ)
áÑéÑgÑ) ehäfä) lkÑáÑ)
áÑéÑgÑ)
ehäfä)
lkÑáÑ)
cåm_oce'
`_fc.e' b.fa.oneç'
DF®)äf}jéÜ)Ö)[\=G/)
äfä)Öf})léÑàìäÉ)•jó)ôÉÑò)ãhÇhâ)
äfä)Öf})léÑàìäÉ){)ôÉÑò)ãhÇjòâ)
áÑéÑgÑ) ehäfä) lkÑáÑ)
áÑéÑgÑ)
ehäfä)
lkÑáÑ)
cåm_oce'
}jïf•fòÉÜ)ef)GXC\®C¨)
äfä)Öf})léÑàìäÉ)•jó)ôÉÑò)ãhÇhâ)
äfä)Öf})léÑàìäÉ){)ôÉÑò)ãhÇjòâ)
áÑéÑgÑ) ehäfä) lkÑáÑ)
áÑéÑgÑ)
ehäfä)
lkÑáÑ) `_fc.e'
àÑ•fÖkjehj)äÑeÉfäÉÑÖ)Ö){äfòlj)
äfä)Öf})léÑàìäÉ)•jó)ôÉÑò)ãhÇhâ)
äfä)Öf})léÑàìäÉ){)ôÉÑò)ãhÇjòâ)
áÑéÑgÑ) ehäfä) lkÑáÑ)
áÑéÑgÑ)
ehäfä)
lkÑáÑ) b.fa.oneç'
Ö)*Y\çéjkhó)àÑkîeÜ)ÖÑòÉh)
• ÖLV)Or)*=BG=ICX¢)
• ÑLamSaQV)Or)E[BF=X)• ámbp)PQ)mnOa)F¨![IFX)
ihäk)EF=B)JI=XIc\)
]^_`a'
bc.d^ec'
`c.ef'umêam)TO)MqmybO)ëbmb)UOsT)PVr)
aNMOLNaOp)smnNâ'
ECD)8[GFE[I¢)\XCICI¢\FJ)^ECç8[_)2&234)24+9+9<2#%A)
"ö2Wõõúúú6<+'9';365+7õú&95"â.ù≠ú°@E9""�?=))
"ö2Wõõúúú6<+'9';365+7õú&95"â.ùH4Y/Jü'X\.0))
{lf{h•Ñ)h)ìàfÇhÅ)è&,3>3<@4#))"ö2Wõõúúú6Ä&53;++@65+7õ24+Æ,362"2â#-ùûûßû0z§û≠))"ö2Wõõ'&6,#%@3-#%65+7õ#%õ&,3>3<@4#.#9$@<))"ö2Wõõúúú6$,#-3$"&436%39õ@4#.#9$@<))@4#.#9$@<è$54'7A'#-3$65+7))úúú6$54'7A'#-3$65+7)úúú6@4#.#9$@<65+7))&,3>3<@4.)