ΠΠ°Ρ Π€ΡΠΈΠ΄ΠΌΠ°Π½, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π» Π½Π° GitHub ΠΏΠΎΡΠ²ΡΡΠ΄ΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΊΡΠΌ ΠΈΠΌΠ΅ΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π²ΠΌΠ΅ΡΡΠΎ "master" Π² Π·Π½Π°ΠΊ Π½Π° ΡΠΎΠ»ΠΈΠ΄Π°ΡΠ½ΠΎΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠ°ΡΠΈΡΠ΅ ΡΡΠ΅ΡΡ ΠΏΠΎΠ»ΠΈΡΠ΅ΠΉΡΠΊΠΎΡΠΎ Π½Π°ΡΠΈΠ»ΠΈΠ΅ ΠΈ ΡΠ°ΡΠΈΠ·ΠΌΠ° Π² Π‘ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠ΅ ΡΠ°ΡΠΈ. ΠΠΎΠ²ΠΎΡΠΎ ΠΈΠΌΠ΅ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΌΠΎ Π·Π° Π½ΠΎΠ²ΠΈ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°; Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠ»ΠΎΠ½ΡΡ βmasterβ ΡΠ΅ Π·Π°ΠΏΠ°Π·ΠΈ ΠΈΠΌΠ΅ΡΠΎ ΡΠΈ. ΠΠ±ΡΡΠΆΠ΄Π° ΡΠ΅ ΠΎΠ±Π°ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·Π³ΠΎΡΠ²ΡΠ½Π΅ Π½Π° Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
ΠΠ±ΡΡΠΆΠ΄Π°Π½Π΅ Π½Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΎΡΠ΄Π°Π»Π΅ΡΠΈΠΌ ΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½Π° βΠΌΠ°ΠΉΡΡΠΎΡβ
ΡΠ°Π·Π²ΡΡΠ·Π°Π½ΠΈ ΠΈ Π² ΠΏΠΎΡΠ΅Π½ΡΠΊΠΈΡ ΡΠΏΠΈΡΡΠΊ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Git. ΠΠ°ΡΠ΅Π³Π° ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠΈ ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ½ΠΈΡΠΈ Π½Π° ΡΠ°Π·ΠΈ ΠΈΠ΄Π΅Ρ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΡΠ° ΠΏΡΠΎΡΠΈΠ² Π½Π΅Ρ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π² Git Π΄ΡΠΌΠ°ΡΠ° master ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡΠ΄Π΅Π»Π½ΠΎ, Π° Π½Π΅ Π² Π΄Π²ΠΎΠΉΠΊΠΈ Ρ Π΄ΡΠΌΠ°ΡΠ° βslaveβ.
ΠΠΎ ΠΈΡΡΠΈΠ½ΡΠΊΠΈΡΡ ΡΡΠΈΡΠΌΡ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° OpenSSL, ΡΠΈΠΈΡΠΎ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ ΡΠΌΡΡΠ°Ρ ΠΈΠ·ΡΠ°Π·Π° βΡΠ΅ΡΠ½Π° ΠΌΠ°Π³ΠΈΡβ Π·Π° Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ². OpenSSL ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΎΠ±ΠΌΠΈΡΠ»ΡΡ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΏΠ»Π°ΡΡΠΈΡ, Π·Π°ΠΌΠ΅Π½ΡΠΉΠΊΠΈ βΡΠ΅ΡΠ½Π° ΠΌΠ°Π³ΠΈΡβ Ρ βΠΌΠ°Π³ΠΈΡβ, βΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊβ ΡΡΡ βΡΠΏΠΈΡΡΠΊ Ρ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ΠΈβ, βΠ±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎβ Ρ βΠΏΡΠ°Π·Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎβ, βΠ³Π»Π°Π²Π΅Π½β Ρ βΡΠΎΠ΄ΠΈΡΠ΅Π»β ΠΈΠ»ΠΈ βΠΎΡΠ½ΠΎΠ²Π΅Π½β.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²ΠΈΡΠ΅, ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈ ΠΎΠ½Π·ΠΈ Π΄Π΅Π½ OpenZFS ΠΈ Go, ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠ°Ρ Π½ΡΠΊΠΎΠΈ Π΄ΡΡΠ³ΠΈ ΡΠΊΠΎΡΠΎΡΠ½ΠΈ ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈΡ:
- Π Chromium ΠΏΡΠΈΠ΅ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π·Π°ΠΌΠ΅Π½ΡΠΉΠΊΠΈ ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈΡΠ΅ ΠΊΡΠΌ βΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊβ Ρ βΠ±Π»ΠΎΠΊΠΎΠ² ΡΠΏΠΈΡΡΠΊβ Π² ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΊΠΎΠ΄Π° (ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Π½ΠΈΡ Π½Π° βΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊβ ΠΈ βΠ±ΡΠ» ββΡΠΏΠΈΡΡΠΊβ, Π²ΠΈΠ΄ΠΈΠΌΠΈ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π±ΡΡ
Π° Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° 2019 Π³.).
- Π Android Π·Π°ΠΏΠΎΡΠ½Π°Ρ
ΠΌΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈ "ΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊ/Π±ΡΠ» ΡΠΏΠΈΡΡΠΊ" ΠΊΡΠΌ "ΡΠΏΠΈΡΡΠΊ Ρ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ΠΈ/ΡΠΏΠΈΡΡΠΊ Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈ".
- ΠΡΠΎΠ΅ΠΊΡ Node.js ΡΠ°Π±ΠΎΡΠΈ Π·Π° Π·Π°ΠΌΡΠ½Π° Π½Π° ΡΠ΅ΡΠ΅Π½/Π±ΡΠ» ΡΠΏΠΈΡΡΠΊ Ρ Π±Π»ΠΎΠΊΠΈΡΠ°Π½/ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊ, Π½ΠΎ ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΠΏΡΠΈΠ΅ΡΠ°.
- ΠΡΠΎΠ΅ΠΊΡ Curl Π·Π°ΠΌΠ΅Π½Π΅Π½ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°ΠΉΠΊΠΈ "Π±ΡΠ» ΡΠΏΠΈΡΡΠΊ" Π΄ΠΎ "ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½Π΅", "ΠΈΠ·Π±ΠΈΡΠ°Π½Π΅" ΠΈΠ»ΠΈ "ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½Π΅" ΠΈ "ΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊ" Π΄ΠΎ "ΡΠΏΠΈΡΡΠΊ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅".
- Ansible ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΎΠ±ΠΌΠΈΡΠ»ΡΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π°ΠΌΡΠ½Π° Π½Π° ΠΊΠ»ΠΎΠ½Π° βmasterβ Ρ βdevelβ.
- Π PHPUnit ΠΊΠΎΠ΄ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π§Π΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊ Π½Π° ExcludeList, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠ°ΠΉΠ»Π° PHPUnit/Util/Blacklist Π½Π° PHPUnit/Util/ExcludeList.
Π‘ΡΠ΅Π΄ ΠΎΠ±ΡΠ½ΠΎΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΎΡΡΠ°Π²ΠΈΡ
Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° master/slave ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ ΠΠΈΡΠΎΠ½, Drupal, Django, CouchDB, Π‘ΠΎΠ», ΠΠ΅Π΄ΠΈΡΠ£ΠΈΠΊΠΈ, PostgreSQL ΠΈ Redis. BIND DNS ΡΡΡΠ²ΡΡΡΡ Π·Π°ΠΏΠ°Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Ρ ΠΈΠΌΠ΅Π½Π°ΡΠ° βmaster/slaveβ, Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ Ρ βprimary/secondaryβ ΠΈ Π³ΠΈ ΠΎΠ±ΡΠ²ΠΈ Π·Π° ΠΏΠΎ-ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΠΏΠΎ Π΅Π΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π°ΡΠ΅ΠΊΠΎΡ
Π° ΠΎΠΏΠΈΡΠΈΡΠ΅ Π·Π° ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½Π΅ Π½Π° βΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊ/Π±ΡΠ» ΡΠΏΠΈΡΡΠΊβ Π³Π»ΡΠΏΠΎΡΡ ΠΈ Π³Π»ΡΠΏΠΎΡΡ, Π½Π°ΡΠ°ΠΆΠ΄Π°Π½Π° ΠΎΡ ΠΏΠΎΠ»ΠΈΡΠΈΡΠΈ ΠΈ ΠΏΠΎΠΏΡΠ»ΠΈΡΡΠΈ, ΠΈ ΠΎΡΠΊΠ°Π·Π°Π» Π½Π°ΠΏΡΠ°Π²ΠΈ Π·Π°ΠΌΡΠ½Π°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅, ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ΡΡ βΡΠΏΠΈΡΡΠΊ Ρ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ΠΈβ ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ·ΠΊΡΠΈΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΌΠΈΡΡΠ»Π° ΠΈ Π½Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ βΡΠΏΠΈΡΡΠΊ Ρ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈβ.
ΠΠΎΠΌΠΈΡΠ΅ΡΡΡ IETF (Internet Engineering Task Force), ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π’ΠΎΠΉ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠ΅ βΠ±ΡΠ» ββΡΠΏΠΈΡΡΠΊ/ΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊβ ΠΈ βΠ³Π»Π°Π²Π΅Π½/ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½β, ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ - Π²ΠΌΠ΅ΡΡΠΎ βΠ³Π»Π°Π²Π΅Π½/ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½β ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° βΠΏΡΡΠ²ΠΈΡΠ΅Π½/Π²ΡΠΎΡΠΈΡΠ΅Π½β, βΠ²ΠΎΠ΄Π΅Ρ/ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅Π½β,
"Π°ΠΊΡΠΈΠ²Π΅Π½/Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ"
"ΠΎΡΠ½ΠΎΠ²Π΅Π½/ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°",
"ΠΏΠΈΡΠ°ΡΠ΅Π»/ΡΠ΅ΡΠ΅Ρ",
"ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ/ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ" ΠΈΠ»ΠΈ
βΡΠΎΠ΄ΠΈΡΠ΅Π»/ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊβ, Π° Π²ΠΌΠ΅ΡΡΠΎ βΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊ/Π±ΡΠ» ΡΠΏΠΈΡΡΠΊβ - βΡΠΏΠΈΡΡΠΊ Ρ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ΠΈ/ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈβ ΠΈΠ»ΠΈ βΠ±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅/ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅β.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru