Долдугаар сарын 11-12-нд Санкт-Петербургт бага хурал болно
Hydra бол сүүлийн хэдэн жилийн хамгийн чухал чуулгануудын нэг юм. Үүний өмнө маш нухацтай бэлтгэл хийж, илтгэгч, илтгэлүүдийг сонгон шалгаруулсан. Энэ талаар өнгөрсөн долоо хоногт
Бид
Хүсэл тэмүүлэл
Хэрэв та програмчлалын ажилд оролцож байгаа бол ямар нэг байдлаар та олон урсгалтай, тархсан тооцоололтой харьцаж байна гэсэн үг. Холбогдох салбарын мэргэжилтнүүд тэдэнтэй шууд ажилладаг боловч далд байдлаар түгээлт нь биднийг хаанаас ч харж байна: аливаа олон цөмт компьютер эсвэл түгээлтийн үйлчилгээнд тооцооллыг зэрэгцээ хийдэг зүйл байдаг.
Хэрэглээний програмчлалын янз бүрийн талыг хамарсан олон хурал байдаг. Спектрийн нөгөө талд бид асар их хэмжээний нарийн төвөгтэй онолыг лекцийн хэлбэрээр илчилдэг тусгай шинжлэх ухааны сургуулиудтай. Жишээлбэл, Санкт-Петербургт Гидратай зэрэгцэн оршдог
Үүнийг бодоод үзээрэй: бидний судалж буй шинжлэх ухаан, инженерчлэлийн салбарыг үндэслэгч нартай биечлэн уулзаж болох гайхалтай цаг үед бид амьдарч байна. Физикчид Ньютон эсвэл Эйнштейнтэй уулзахгүй - галт тэрэг явлаа. Гэвч бидний хажууд тархсан системийн онолын үндсийг бий болгож, алдартай програмчлалын хэлийг зохион бүтээж, энэ бүхнийг анх удаа ажлын прототипт тусгаж чадсан хүмүүс амьдарсаар байна. Эдгээр хүмүүс ажлаа хагас дутуу орхиогүй, яг одоо дэлхийн нэр хүндтэй их дээд сургууль, компаниудад тулгамдсан асуудлууд дээр ажиллаж байгаа бөгөөд өнөөдөр мэдлэг, туршлагын хамгийн том эх сурвалж болж байна.
Нөгөөтэйгүүр, тэдэнтэй уулзах боломж ихэвчлэн онолын хувьд хэвээр үлддэг: бидний цөөхөн нь Рочестерийн зарим их сургуулийн олон нийтийн арга хэмжээг байнга хянаж, дараа нь АНУ руу яаран очиж Майкл Скотттой лекц уншдаг. Гидрагийн бүх гишүүдэд зочлох нь дэмий хоосон цаг хугацааг тооцохгүй бол багахан хэмжээний зардал гарах болно (хэдийгээр энэ нь сонирхолтой эрэл хайгуул мэт санагдаж байна).
Нөгөөтэйгүүр, манайд одоо тархсан систем дэх тулгамдсан асуудлууд дээр ажиллаж байгаа олон шилдэг инженерүүд байгаа бөгөөд тэдэнд хэлэх зүйл их байгаа нь гарцаагүй. Гэхдээ энд асуудал байна - тэд ажил, мөн тэдний цаг хугацаа үнэ цэнэтэй юм. Тийм ээ, хэрэв та Microsoft, Google эсвэл JetBrains-ийн ажилтан бол дотоод арга хэмжээний үеэр алдартай илтгэгчдийн нэгтэй уулзах магадлал эрс нэмэгддэг, гэхдээ ерөнхийдөө үгүй, энэ нь өдөр бүр тохиолддоггүй.
Ийм байдлаар Hydra бага хурал нь бидний ихэнх нь бие даан хийж чадахгүй чухал ажлыг нэг дор, нэгэн зэрэг биелүүлдэг бөгөөд таны санаа бодол, харьцах харьцаа нь таны амьдралыг өөрчилж чадах хүмүүсийг нэг дор цуглуулдаг. Хүн бүрт тархсан систем эсвэл зарим нарийн төвөгтэй үндсэн зүйл хэрэггүй гэдгийг би хүлээн зөвшөөрч байна. Та насан туршдаа PHP дээр CRUD програмчлаад бүрэн аз жаргалтай байж чадна. Гэхдээ хэнд хэрэгтэй байсан, энэ бол таны боломж.
Хабрегийн тухай Hydra бага хурлын анхны мэдэгдлээс хойш нэлээд удаан хугацаа өнгөрчээ. Энэ хугацаанд маш их ажил хийгдсэн - одоо бид бараг бүх тайлангийн жагсаалттай байна. Ганц урсгалт алгоритмууд байхгүй, зүгээр л цэвэр тархсан хатуу! Ерөнхий үгсээр дуусгаж, одоо бидний гарт юу байгааг харцгаая.
Гол тэмдэглэлүүд
Үндсэн илтгэлүүд чуулганы өдрүүдээр эхэлж, дуусдаг. Ихэвчлэн чуулганы нээлтийн үндсэн илтгэлийн гол санаа нь хурлын ерөнхий санаа, чиглэлийг тодорхойлох явдал юм. Төгсгөлийн гол илтгэл нь бага хурлын үеэр олж авсан мэдлэг, ур чадвараараа хэрхэн амьдрах талаар нэг шугам зурж тайлбарлав. Эхлэл ба төгсгөл: хамгийн сайн санаж байгаа зүйл, ерөнхийдөө ач холбогдол нь нэмэгдсэн.
Cliff Click H2O хуваарилагдсан K/V алгоритм
Cliff бол Java ертөнцийн домог юм. 90-ээд оны сүүлчээр тэрээр докторын зэрэг хамгаалахын тулд гэсэн нэртэй илтгэл бичсэн
Нээлтийн үндсэн илтгэл дээр Клифф өөр оролдлогынхоо талаар ярих болно.
Клифийн өгөх өөр нэг тайлан бол -
Хамгийн сонирхолтой хэсэг нь тэд том бизнест зориулсан техник хэрэгсэл болох Java-г ажиллуулах суперкомпьютер хийх үеэс эхэлсэн. Энэ нь маш шинэлэг зүйл байсан бөгөөд Java-д тусгайлан зориулсан бөгөөд тусгай шаардлага тавьдаг - бага завсарлагатай хог цуглуулахад зориулсан санах ойн саадыг унших, хязгаарыг шалгах массив, виртуал дуудлага... Хамгийн гайхалтай технологиудын нэг бол техник хангамжийн гүйлгээний санах ой юм. 1 цөмийн L864 нь бүхэлдээ гүйлгээ бичихэд оролцох боломжтой бөгөөд энэ нь Java дахь цоожтой ажиллахад онцгой ач холбогдолтой (синхрончлогдсон блокууд нь санах ойн зөрчилдөөн байхгүй тохиолдолд зэрэгцээ ажиллах боломжтой). Гэвч энэ сайхан санаа нь хатуу ширүүн бодит байдалд дарагдсан бөгөөд Cliff энэхүү яриандаа HTM болон STM яагаад олон урсгалт тооцооллын практик хэрэгцээнд тийм ч сайн тохирохгүй байгааг танд хэлэх болно.
Майкл Скотт - Давхар өгөгдлийн бүтэц
Сурах бичгийн ачаар Майклыг дэлхий нийт мэддэг
Жава ертөнцийн хувьд энэ бол онцгой тохиолдол юм: тэрээр Даг Лиатай хамт Java номын сангууд дээр ажилладаг блоклохгүй алгоритмууд болон синхрон дарааллыг боловсруулсан. “Хос өгөгдлийн бүтэц” сэдэвт үндсэн илтгэл яг энэ тухай байх болно - Java SE 6-д эдгээр бүтцийг нэвтрүүлснээр гүйцэтгэл 10 дахин сайжирсан. java.util.concurrent.ThreadPoolExecutor
. Хэрэв та эдгээр "Хос өгөгдлийн бүтэц" гэж юу болохыг урьдчилан сонирхож байгаа бол энэ талаар мэдээлэл байна
Морис Херлихи - Блокчейн ба тархсан тооцооллын ирээдүй
Энэхүү хаалтын үндсэн илтгэлээр Морис блокчейн тархсан системийн онол, практикийн талаар тархсан тооцооллын сонгодог үзэл бодлоос болон холбогдох олон асуудлыг хэрхэн хялбарчлах талаар ярих болно. Энэ бол уул уурхайн шуугианы талаар огтхон ч биш, харин бидний мэдлэгийг төрөл бүрийн ажлуудад хэрхэн гайхалтай үр дүнтэй, зохистой ашиглаж болох тухай илтгэл юм.
2017 оны XNUMX-р сард Морис аль хэдийн Орос улсад SPTDC сургуульд суралцахаар ирсэн, JUG.ru уулзалтад оролцсон бөгөөд бичлэгийг YouTube дээрээс үзэх боломжтой.
Үндсэн програм
Дараа нь хөтөлбөрт багтсан тайлангийн товч тойм байх болно. Зарим тайланг энд дэлгэрэнгүй, заримыг нь илүү товч тайлбарласан болно. Урт тайлбарууд нь шинжлэх ухааны баримт бичиг, Википедиа дээрх нэр томьёо гэх мэт холбоосыг шаарддаг англи хэл дээрх тайланд голчлон очдог байв. Бүтэн жагсаалтыг үзэх боломжтой
Лесли Лампорт - Асуулт, хариулт
Лесли Лампорт бол тархсан тооцооллын чиглэлээр чухал бүтээлүүдийн зохиогч юм.
Энэ бол илтгэл байтугай асуулт хариултын хэсэг учраас форматын хувьд хамгийн ер бусын хэсэг юм. Үзэгчдийн нэлээд хэсэг нь "Лампортын онол" дээр үндэслэсэн бүх төрлийн бүтээлүүд, өөрийн нийтлэл, илтгэлүүдтэй аль хэдийн танил болсон (эсвэл танил болсон) бол бүх цагийг шууд харилцахад зарцуулах нь илүү чухал юм.
Санаа нь энгийн - та YouTube дээр хоёр тайлан үзэх болно:
Эдгээр хоёр видеоны эхнийх нь бидэнд аль хэдийн байна
Тэмдэглэл: YouTube дээр Лесли Лампортын олон видео бий. Жишээлбэл, агуу зүйл байдаг
Мартин Клепманн - Түгээмэл хамтын ажиллагаанд зориулж хэрэглэгчийн төхөөрөмж дээрх өгөгдлийг синк хийх
Мартин Клеппманн бол Кембрижийн их сургуулийн судлаач бөгөөд CRDT болон алгоритмын албан ёсны баталгаажуулалтын чиглэлээр ажилладаг. Мартины ном
Мартин эрдэм шинжилгээний ажилд шилжихээсээ өмнө салбарт ажиллаж байсан бөгөөд хоёр амжилттай гарааны бизнесийг үүсгэн байгуулжээ.
- LinkedIn-ээс 2012 онд худалдаж авсан таны цахим шуудангийн харилцагчдын нийгмийн профайлыг харуулахад зориулагдсан;
- Go Test It нь RedGate-н 2009 онд худалдаж авсан янз бүрийн хөтөч дээр вэбсайтуудыг автоматаар шалгах үйлчилгээ юм.
Ерөнхийдөө Мартин хэдийгээр манай гол илтгэгчдээс бага нэр хүндтэй ч тархсан тооцоолол, үйлдвэрлэлд тодорхой хувь нэмэр оруулж чадсан.
Энэ илтгэлээр Мартин өөрийн эрдэм шинжилгээний судалгаатай ойр сэдвийн талаар ярих болно. Google Docs болон үүнтэй төстэй баримт бичгийг хамтран засварлах буйдан дээрх "хамтран засварлах" нь хуулбарлах ажлыг хэлдэг: хэрэглэгч бүр хуваалцсан баримт бичгийн өөрийн хуулбартай бөгөөд дараа нь үүнийг өөрчилдөг бөгөөд бүх өөрчлөлтийг сүлжээгээр дамжуулан бусад хэсэгт илгээдэг. оролцогчид. Баримт бичгийг офлайнаар өөрчлөх нь бусад оролцогчидтой холбоотой баримт бичгийн түр зуурын зөрчилд хүргэдэг бөгөөд дахин синхрончлох нь зөрчилдөөнийг шийдвэрлэхийг шаарддаг. Тэд яг үүний төлөө оршдог
Ирэх долоо хоногт бид Мартинтай хийсэн урт ярилцлагыг Хабре дээр нийтлэх болно, энэ нь сонирхолтой байх болно.
Педро Рамалхете - Хүлээх шаардлагагүй өгөгдлийн бүтэц, хүлээлтгүй гүйлгээ
Педро нь Cisco-д ажилладаг бөгөөд сүүлийн арав гаруй жилийн турш синхрончлолын механизм, түгжээгүй, хүлээхгүй өгөгдлийн бүтэц, энэ сэдвээр таны төсөөлж чадах бүх зүйлийг багтаасан зэрэгцээ алгоритмуудыг боловсруулж байна. Түүний одоогийн судалгаа, инженерчлэлийн сонирхол нь зөв, өргөтгөх боломжтой, гэмтэлд тэсвэртэй програмуудыг идэвхжүүлдэг Universal Constructions, Software Transactional Memory, Persistent Memory болон ижил төстэй технологид төвлөрдөг. Тэрээр мөн л явцуу хүрээнийхэнд танигдсан блогийн зохиогч юм
Ихэнх олон урсгалтай програмууд одоо оролцогчдын хоорондох мессежийн дарааллыг ашиглахаас эхлээд түлхүүр утгын дэлгүүрт индексжүүлсэн өгөгдлийн бүтэц хүртэл зэрэгцээ өгөгдлийн бүтэц дээр ажилладаг. Тэд олон жилийн турш Java JDK дээр амжилттай ажиллаж байгаа бөгөөд C++ хэл дээр аажмаар нэмэгдэж байна.
Зэрэгцээ өгөгдлийн бүтцийг хэрэгжүүлэх хамгийн энгийн арга бол аргуудыг мутексээр хамгаалсан дараалсан (нэг урсгалтай) хэрэгжилт юм. Энэ нь аль ч зургадугаар сард хүртээмжтэй боловч масштаб болон гүйцэтгэлтэй холбоотой тодорхой асуудалтай байдаг. Үүний зэрэгцээ түгжээгүй, хүлээхгүй өгөгдлийн бүтэц нь алдааг илүү сайн даван туулаад зогсохгүй илүү сайн гүйцэтгэлтэй байдаг - гэхдээ тэдгээрийг хөгжүүлэх нь гүн гүнзгий туршлага, тодорхой програмд дасан зохицохыг шаарддаг. Нэг буруу кодын мөр бүх зүйлийг эвдэхэд хангалттай.
Мэргэжилтэн бус хүн хүртэл ийм өгөгдлийн бүтцийг боловсруулж, хэрэгжүүлэх боломжтой болгохын тулд бид яаж үүнийг хийх вэ? Аливаа дараалсан алгоритмыг аль алиныг нь ашиглан аюулгүй болгох боломжтой гэдгийг мэддэг
Хайди Ховард - Тархсан зөвшилцлийг чөлөөлөх
Хайди Ховард бол Мартин шиг Кембрижийн их сургуулийн тархсан систем судлаач юм. Түүний онцлог нь тууштай байдал, алдааг тэсвэрлэх чадвар, гүйцэтгэл, тархсан зөвшилцөл юм. Тэрээр Paxos хэмээх алгоритмыг ерөнхийд нь хэлдгээрээ алдартай
Үүнийг санаарай
Хэлэлцэх, удирдагч сонгох, хаах, зохицуулах зэрэг олон хостуудын дунд зөвшилцлийг олох чадвар нь орчин үеийн тархсан системүүдийн үндсэн асуудал юм. Paxos нь одоо зөвшилцлийн асуудлыг шийдвэрлэх гол арга бөгөөд үүнийг тойрон янз бүрийн практик хэрэгцээнд алгоритмыг өргөжүүлэх, оновчтой болгохын тулд маш их судалгаа хийгдэж байна.
Энэ ярианд бид Paxos-ийн онолын үндэслэлийг дахин авч үзэж, анхны шаардлагыг сулруулж, алгоритмыг ерөнхийд нь тайлбарлах болно. Бид Paxos нь үндсэндээ өргөн хүрээний зөвшилцлийн арга барилын зөвхөн нэг сонголт бөгөөд спектрийн бусад цэгүүд нь сайн тархсан системийг бий болгоход маш хэрэгтэй гэдгийг бид харах болно.
Алекс Петров - Түр зуурын хуулбар болон хямд чуулгын тусламжтайгаар хадгалах зардлаа бууруул
Алекс бол өгөгдлийн сан, хадгалах системийн мэргэжилтэн бөгөөд бидний хувьд хамгийн чухал нь үйл ажиллагаа эрхэлдэг хүн юм
бүхий системүүдийн хувьд
Гэсэн хэдий ч бүх зүйл өөрийн гэсэн үнэтэй байдаг. Чуулгын хуулбарлах схем нь хадгалах зардлыг нэмэгдүүлнэ гэсэн үг: асуудал гарсан үед хангалттай хуулбар байгаа эсэхийг баталгаажуулахын тулд илүүдэл өгөгдлийг олон цэг дээр нэгэн зэрэг хадгалах ёстой. Бүх хуулбар дээр бүх өгөгдлийг хадгалах шаардлагагүй болж байна. Хэрэв та зөвхөн зангилааны хэсэг дээр өгөгдлийг хадгалах, мөн бүтэлгүйтлийн үед тусгай зангилаа (Transient Replica) ашиглавал хадгалалтын ачааллыг бууруулж болно.
Тайлангийн явцад бид авч үзэх болно
Дмитрий Вюков - Горутинууд ил гарсан
Дмитрий бол Google-ийн хөгжүүлэгч бөгөөд C/C++ болон Go - Address/Memory/ThreadSanitizer болон Линуксийн цөмийн ижил төстэй хэрэгслүүдийн динамик тест дээр ажилладаг. Go-д хувь нэмрээ оруулсан, өргөтгөх боломжтой goroutine төлөвлөгч, сүлжээний санал асуулга, зэрэгцээ хог цуглуулагч. Тэрээр олон урсгалын чиглэлээр мэргэшсэн мэргэжилтэн бөгөөд хэдэн арван шинэ блоклохгүй алгоритмын зохиогч бөгөөд эзэмшигч юм.
Одоо тайлангийн тухай бага зэрэг. Go хэл нь goroutines (цайвар утас) болон суваг (FIFO дараалал) хэлбэрээр олон урсгалтыг дэмждэг. Эдгээр механизмууд нь хэрэглэгчдэд орчин үеийн олон урсгалтай програмуудыг бичихэд маш хялбар бөгөөд тааламжтай болгодог бөгөөд энэ нь ид шид мэт харагдаж байна. Бидний ойлгож байгаагаар энд ид шид байхгүй. Энэ яриагаар Дмитрий Go цагийн хуваарь гаргагчийн нарийн ширийнийг судалж, энэхүү "ид шид"-ийг хэрэгжүүлэх нууцыг харуулах болно. Эхлээд тэрээр хуваарийн үндсэн бүрэлдэхүүн хэсгүүдийн тоймыг өгч, энэ нь хэрхэн ажилладагийг танд хэлэх болно. Дараа нь бид зогсоол / зогсоолын стратеги, хаах системийн дуудлагыг зохицуулах гэх мэт бие даасан талуудыг нарийвчлан авч үзэх болно. Эцэст нь Дмитрий хуваарь гаргагчийг сайжруулах талаар бага зэрэг ярих болно.
Дмитрий Бугаиченко - Магадлалын ноорог болон бусад зүйлсээр тархсан графикийн шинжилгээг хурдасгах
Дмитрий их сургууль, шинжлэх ухааны нийгэмлэгтэй холбоо тасалгүйгээр бараг 9 жил аутсорсинг хийсэн. Одноклассники дахь том өгөгдлийн дүн шинжилгээ нь түүний хувьд онолын сургалт, шинжлэх ухааны үндэслэлийг бодит, эрэлт хэрэгцээтэй бүтээгдэхүүнийг хөгжүүлэхтэй хослуулах онцгой боломж болжээ.
Хуваарилагдсан графикийн шинжилгээ нь хэцүү ажил байсаар ирсэн бөгөөд одоо ч хэвээр байна: хөрш зэргэлдээ оройн холболтын талаар мэдээлэл авах шаардлагатай болсон үед өгөгдлийг машин хооронд шилжүүлэх шаардлагатай болдог бөгөөд энэ нь гүйцэтгэлийн хугацаа, сүлжээний дэд бүтцийн ачаалал нэмэгдэхэд хүргэдэг. Энэ яриагаар бид магадлалын өгөгдлийн бүтэц эсвэл нийгмийн сүлжээн дэх нөхөрлөлийн графикийн тэгш хэм зэрэг баримтуудыг ашиглан хэрхэн боловсруулалтын ихээхэн хурдтай болохыг олж харах болно. Энэ бүгдийг Apache Spark дээр кодын жишээн дээр харуулав.
Денис Рысцов - Түр зуурын хуулбар болон хямд чуулгын тусламжтайгаар хадгалах зардлаа бууруул
Денис - хөгжүүлэгч
Энэ ярианд бид сүүлийн хэдэн жилийн турш зохион бүтээсэн, нөхцөлт шинэчлэлтийг дэмждэг аливаа мэдээллийн сан (харьцуулах, тохируулах) дээр үйлчлүүлэгчийн талд хэрэгжиж болох тархсан гүйлгээний протоколуудыг авч үзэх болно. Хамгийн гол нь амьдрал хоёр үе шаттай үйлдлээр дуусдаггүй, гүйлгээг ямар ч мэдээллийн бааз дээр нэмэх боломжтой - програмын түвшинд, гэхдээ өөр өөр протоколууд (2PC, Percolator, RAMP) өөр өөр тохироотой бөгөөд бидэнд өгдөггүй. үнэгүй.
Алексей Зиновьев - Бүх ML алгоритмууд үүнийг тархсан диваажинд хүргэдэггүй
Алексей (
Энэ илтгэлээр Алексей Apache Spark ML, Apache Mahout, Apache Flink ML-тэй ажиллаж байсан туршлага, Apache Ignite ML-ийг бүтээх туршлага дээрээ үндэслэн машин сургалтын сонгодог алгоритмуудыг тархсан горимд гүйцэтгэхэд тохируулах асуудлын талаар ярих болно. Алексей мөн эдгээр хүрээн дэх тархсан ML алгоритмуудыг хэрэгжүүлэх талаар ярих болно.
Эцэст нь Yandex мэдээллийн сангийн тухай Yandex-ээс хоёр тайлан.
Владислав Кузнецов - Yandex мэдээллийн сан - бид алдааг тэсвэрлэх чадварыг хэрхэн баталгаажуулдаг
Владислав бол Yandex-ийн түгээсэн платформ группын хөгжүүлэгч юм. Yandex мэдээллийн сан нь хэвтээ байдлаар өргөтгөх боломжтой, газарзүйн тархалттай, гэмтэлд тэсвэртэй DBMS бөгөөд диск, сервер, тавиур, дата төвүүдийн эвдрэлийг тэсвэрлэх чадвартай бөгөөд тогтвортой байдлыг алдагдуулахгүй. Алдааг тэсвэрлэхийн тулд тархсан зөвшилцөлд хүрэх өмчийн алгоритм, түүнчлэн тайланд нарийвчлан авч үзсэн техникийн хэд хэдэн шийдлийг ашигладаг. Энэхүү тайлан нь DBMS хөгжүүлэгчид болон DBMS дээр суурилсан хэрэглээний шийдлүүдийг хөгжүүлэгчдэд сонирхолтой байж магадгүй юм.
Семен Чечеринда - YDB дахь тархсан гүйлгээ
Семён бол Yandex-ийн түгээсэн платформ группын хөгжүүлэгч бөгөөд YDB суулгацыг олон түрээслэгч ашиглах боломж дээр ажилладаг.
Yandex мэдээллийн сан нь OLTP асуулгад зориулагдсан бөгөөд гүйлгээний системийн ACID шаардлагад нийцдэг. Энэ тайланд бид YDB гүйлгээний системийн үндэс болсон гүйлгээний төлөвлөлтийн алгоритмыг авч үзэх болно. Гүйлгээнд ямар байгууллагууд оролцдог, гүйлгээнд дэлхийн дэг журмыг хэн өгдөг, гүйлгээний атом, найдвартай байдал, тусгаарлах хатуу түвшинд хэрхэн хүрч байгааг харцгаая. Нийтлэг асуудлыг жишээ болгон авч үзвэл, хоёр үе шаттай үүрэг даалгавар болон детерминистик гүйлгээг ашиглан гүйлгээний хэрэгжилтийг харцгаая. Тэдний ялгааг ярилцъя.
Дараа нь юу юм бэ?
Чуулганы хөтөлбөр шинэ илтгэлүүдээр дүүрэн үргэлжилсээр байна. Тодруулбал, бид тайланг хүлээж байна Никита Коваль (
Гидрагийн хурал долдугаар сарын 11-12-нд Санкт-Петербургт болно. Тасалбар авах боломжтой
Hydra-д уулзацгаая!
Эх сурвалж: www.habr.com