19 hlav hydry. Skvělý přehled o programu

Ve dnech 11. až 12. července se v Petrohradě uskuteční konference Hydra, věnující se vývoji paralelních a distribuovaných systémů. Trik Hydry je v tom, že spojuje skvělé vědce (které lze obvykle najít pouze na zahraničních vědeckých konferencích) a slavné praktikující inženýry do jednoho velkého programu na rozhraní vědy a praxe.

Hydra je jednou z našich nejvýznamnějších konferencí posledních let. Předcházela tomu velmi seriózní příprava, výběr řečníků a reportáže. Minulý týden o tom vyšel rozhovor habro s ředitelem skupiny JUG.ru, Alexejem Fedorovem (23derevo).

My již řečeno o třech významných účastnících, zakladatelích teorie distribuovaných systémů - Leslie Lamport, Maurice Herlihy a Michael Scott. Je na čase pohovořit podrobněji o celém programu!

19 hlav hydry. Skvělý přehled o programu

Motivace

Pokud se zabýváte programováním, tak tak či onak máte co do činění s multithreadingem a distribuovanými výpočty. Odborníci v příslušných oborech s nimi pracují přímo, ale implicitně se na nás distribuce dívá odevšad: v každém vícejádrovém počítači nebo distribuované službě je něco, co provádí výpočty paralelně.

Existuje mnoho konferencí, které pokrývají různé aspekty programování aplikací. Na druhé straně spektra máme specializované vědecké školy, které ve formátu přednášek odhalují obrovské množství komplexní teorie. Například souběžně s Hydra v Petrohradě existuje škola SPTDC. Na konferenci Hydra jsme se pokusili dát dohromady drsnou praxi, vědu a vše v jejich průsečíku.

Přemýšlejte o tom: žijeme v úžasné době, kdy můžete naživo potkat zakladatele oboru vědy a techniky, který studujeme. Fyzici se nepotkají ani s Newtonem, ani s Einsteinem – vlak odjel. Vedle nás ale stále žijí ti, kteří vytvořili základy teorie distribuovaných systémů, vynalezli populární programovací jazyky a poprvé to vše vtělili do fungujících prototypů. Tito lidé neopustili svá zaměstnání ani na půli cesty, právě teď pracují na naléhavých problémech na světově uznávaných univerzitách a společnostech a jsou dnes největším zdrojem znalostí a zkušeností.

Na druhou stranu možnost setkat se s nimi většinou zůstává čistě teoretická: málokdo z nás dokáže neustále sledovat veřejné dění na nějaké univerzitě v Rochesteru a pak spěchat do USA a zpět na přednášku s Michaelem Scottem. Návštěva všech členů Hydry by stála malé jmění, když nepočítáme propast ztraceného času (i když to zní jako zajímavý quest).

Na druhou stranu máme mnoho špičkových inženýrů, kteří právě teď pracují na naléhavých problémech v distribuovaných systémech, a rozhodně mají co říct. Ale tady je problém – oni prácea jejich čas je cenný. Ano, pokud jste zaměstnancem Microsoftu, Googlu nebo JetBrains, pravděpodobnost setkání s některým ze slavných řečníků na interní akci prudce stoupá, ale obecně ne, to se nestává každý den.

Konference Hydra tak plní důležitý úkol, který většina z nás sama nezvládne – na jednom místě a v jeden čas sdružuje lidi, jejichž nápady nebo interakce mohou změnit váš život. Uznávám, že ne každý potřebuje distribuované systémy nebo nějaké složité zásadní věci. Můžete programovat CRUD v PHP po zbytek svého života a zůstat naprosto šťastní. Ale kdo to potřebuje, tohle je vaše šance.

Od prvního oznámení konference Hydra o Habré uběhla poměrně dlouhá doba. Za tuto dobu se udělalo hodně práce – a nyní máme seznam téměř všech zpráv. Žádné pomalé jednovláknové algoritmy, jen čistý distribuovaný hardcore! Skončeme obecnými slovy a podívejme se, co teď máme v ruce.

Hlavní poznámky

Keynotes začínají a končí dny konference. Obvykle je cílem úvodního projevu stanovit obecného ducha a směr konference. Závěrečná keynote nakreslí čáru a vysvětluje, jak můžeme žít se znalostmi a dovednostmi získanými během konference. Začátek a konec: to, co se nejlépe pamatuje, a obecně, má zvýšený význam.

Cliff Click H2O distribuovaný K/V algoritmus

19 hlav hydry. Skvělý přehled o programu Cliff je legendou ve světě Jávy. Na konci 90. let pro svou disertační práci napsal práci s názvem "Kombinace analýz, kombinace optimalizací", který se o něco později stal základem pro HotSpot JVM Server Compiler. O dva roky později již pracoval v Sun Microsystems na JVM a ukázal celému světu, že JIT má právo na existenci. Celý tento příběh o tom, jak je Java jedním z nejrychlejších moderních běhových prostředí s nejchytřejšími a nejrychlejšími optimalizacemi, pochází od Cliff Click. Na samém začátku se věřilo, že pokud je něco přístupné statickému kompilátoru, nemusíte to ani zkoušet jit. Díky práci Cliffa a týmu se všechny nové jazyky začaly vytvářet s myšlenkou kompilace JIT ve výchozím nastavení. Samozřejmě to nebyla práce jednoho muže, ale Cliff v ní hrál velmi důležitou roli.

V úvodní keynote bude Cliff mluvit o svém dalším úsilí - H20, in-memory platforma pro distribuované a škálovatelné strojové učení pro průmyslové aplikace. Nebo přesněji o distribuovaném úložišti párů klíč-hodnota uvnitř něj. Jedná se o velmi rychlé úložiště se spoustou zajímavých vlastností (přesný seznam je v popis), které umožňují použití podobných řešení v matematice streamování velkých dat.

Další zpráva, kterou Cliff poskytne, je - Zážitek z hardwarové transakční paměti Azul. Další část jeho životopisu - deset let Práce ve společnosti Azul, kde aktualizoval a vylepšil spoustu věcí v hardwarovém a technologickém zásobníku Azul: JIT kompilátory, runtime, model vláken, zpracování chyb, zpracování zásobníku, hardwarová přerušení, načítání tříd a tak dále a tak dále – no, dostanete idea.

Nejzajímavější část začala, když vyrobili hardware pro velký podnik – superpočítač pro běh Javy. Šlo o poměrně inovativní věc, ušitou přímo na míru Javě, která má speciální požadavky – bariéry čtení paměti pro low-pause garbage collection, pole s bounds checking, virtuální volání... Jednou z nejúžasnějších technologií je hardwarová transakční paměť. Transakčního zápisu by se mohla účastnit celá L1 kteréhokoli z 864 jader, což je důležité zejména pro práci se zámky v Javě (synchronizované bloky mohou fungovat paralelně, pokud nedojde ke skutečnému konfliktu paměti). Krásnou myšlenku ale rozdrtila krutá realita – a v této přednášce vám Cliff prozradí, proč se HTM a STM příliš nehodí pro praktické potřeby vícevláknových výpočtů.

Michael Scott - Duální datové struktury

19 hlav hydry. Skvělý přehled o programu Michael Scott - profesor informatiky na univerzitě v Rochesteru, se kterým ho spojil osud již 34 leta na své domovské University of Wisconsin-Madison byl pět let děkanem. Zkoumá a učí studenty o paralelním a distribuovaném programování a designu jazyků.

Michaela zná díky učebnici celý svět "Programovací jazyková pragmatika", jehož poslední vydání vyšlo relativně nedávno - v roce 2015. Jeho práce „Algoritmy pro škálovatelnou synchronizaci na multiprocesorech se sdílenou pamětí“ přijato Cena Dijkstra jako jeden z nejznámějších v oblasti distribuovaných výpočtů a otevřeně lhát v Online knihovně University of Rochester. Můžete ho také znát jako autora samotného algoritmu Michaela-Scotta „Jednoduché, rychlé a praktické algoritmy neblokování a blokování souběžných front“.

Pokud jde o svět Java, jedná se o speciální případ: společně s Dougem Leou vyvinul neblokovací algoritmy a synchronní fronty, na kterých pracují knihovny Java. Přesně o tom bude keynote „Duální datové struktury“ – zavedení těchto struktur v Java SE 6 zvýšilo výkon 10krát java.util.concurrent.ThreadPoolExecutor. Pokud vás předem zajímá, co jsou tyto „Duální datové struktury“, pak o tom jsou informace související práce.

Maurice Herlihy - Blockchainy a budoucnost distribuovaného počítání

19 hlav hydry. Skvělý přehled o programu Maurice Herlihy - vítěz dvou cen Dijkstra. První je pro práci "Synchronizace bez čekání" (Brown University) a druhý, novější - "Transakční paměť: Architektonická podpora pro datové struktury bez zámku" (Virginia Tech University). Cena Dijkstra oceňuje práci, jejíž význam a dopad jsou viditelné již nejméně deset let, a Maurice je jednoznačně jedním z nejuznávanějších odborníků v oboru. V současné době působí jako profesor na Brown University a má za sebou dlouhý seznam úspěchů.

V této závěrečné keynote bude Maurice hovořit o teorii a praxi blockchainových distribuovaných systémů z pohledu klasiků distribuovaného počítání a o tom, jak zjednodušuje mnoho souvisejících problémů. Toto je zpráva výhradně na téma konference – vůbec ne o těžařském humbuku, ale spíše o tom, jak lze naše znalosti úžasně efektivně a vhodně využít ve vztahu k nejrůznějším úkolům.

V červenci 2017 již Maurice přijel do Ruska na školu SPTDC, zúčastnil se setkání JUG.ru a záznam lze zhlédnout na YouTube:

Hlavní program

Dále zde bude krátký přehled reportů zahrnutých v programu. Některé zprávy jsou zde popsány podrobněji, jiné stručněji. Dlouhé popisy se týkaly hlavně zpráv v angličtině, které vyžadovaly odkazy na vědecké práce, výrazy na Wikipedii a tak dále. Úplný seznam je k dispozici naleznete na webu konference. Seznam na webu bude aktualizován a doplňován.

Leslie Lamport - Otázky a odpovědi

19 hlav hydry. Skvělý přehled o programu Leslie Lamport je autorem klíčových děl v oblasti distribuovaných počítačů. "Latex" znamená "Lamport TeX". Byl to on, kdo jako první, již v roce 1979, tento koncept představil konzistentní konzistence, a jeho článek „Jak vyrobit víceprocesorový počítač, který správně spouští víceprocesové programy“ obdržel Dijkstrovu cenu.

Toto je formátově nejneobvyklejší část programu, protože se ani nejedná o zprávu, ale o relaci otázek a odpovědí. Když významná část publika již zná (nebo se může seznámit) s nejrůznějšími díly založenými na „Lamportově teorii“, jeho vlastními články a reportážemi, je důležitější věnovat veškerý dostupný čas přímé komunikaci.

Myšlenka je jednoduchá – na YouTube se podíváte na dvě reportáže: „Programování by mělo být víc než kódování“ и „Pokud nepíšete program, nepoužívejte programovací jazyk“ a připravte si alespoň jednu otázku a Leslie odpoví.

První z těchto dvou videí již máme se změnil v habro článek. Pokud nemáte na sledování videa hodinu času, můžete si ho celé rychle přečíst v textové podobě.

Poznámka: Na YouTube je mnohem více videí Leslie Lamport. Existuje například skvělá Kurz TLA+. Offline verze celého tohoto kurzu je k dispozici na domovská stránka autoraa nahrál jej na YouTube pro snazší prohlížení na mobilních zařízeních.

Martin Kleppmann - Synchronizace dat mezi uživatelskými zařízeními pro distribuovanou spolupráci

19 hlav hydry. Skvělý přehled o programu Martin Kleppmann je výzkumný pracovník na University of Cambridge, který se zabývá CRDT a formálním ověřováním algoritmů. Martinova kniha "Navrhování datově náročných aplikací", vydaný v roce 2017, se ukázal jako velmi úspěšný a dostal se na seznamy bestsellerů v oblasti ukládání a zpracování dat. Kevin Scott, technický ředitel společnosti Microsoft, jednou řekl: „Tato kniha by měla být nutností pro softwarové inženýry. Jedná se o vzácný zdroj, který kombinuje teorii a praxi a pomáhá vývojářům chytřeji při navrhování a implementaci infrastruktury a datových systémů.“ Tvůrce Kafky a technický ředitel společnosti Confluent Jay Kreps řekl něco podobného.

Než se Martin přesunul do akademického výzkumu, pracoval v průmyslu a spoluzaložil dva úspěšné start-upy:

  • Rapportive, věnované zobrazování sociálního profilu kontaktů z vašeho e-mailu, který LinkedIn koupil v roce 2012;
  • Go Test It, služba pro automatické testování webových stránek v různých prohlížečích, kterou RedGate koupil v roce 2009.

Obecně platí, že Martin, i když je méně slavný než naše keynotes, již dokázal do jisté míry přispět k rozvoji distribuovaného počítání a průmyslu.

V této přednášce bude Martin mluvit o tématu bližším jeho akademickému výzkumu. V Dokumentech Google a podobných pohovkách pro společné úpravy dokumentů se „úpravy ve spolupráci“ týkají úlohy replikace: každý uživatel má svou vlastní repliku sdíleného dokumentu, kterou poté upravuje, a všechny změny jsou odesílány po síti do zbytku účastníků. Změny dokumentů offline vedou k dočasné nekonzistenci dokumentu ve vztahu k ostatním účastníkům a opětovná synchronizace vyžaduje řešení konfliktů. Přesně pro to existují Bezkonfliktní replikované datové typy (CRDT) je ve skutečnosti poměrně nová věc, jejíž podstata byla formulována teprve v roce 2011. Tato přednáška pojednává o tom, co se od té doby ve světě CRDT stalo, jaké jsou nejnovější pokroky, obecně přístup k vytváření lokálních aplikací a použití knihovny s otevřeným zdrojovým kódem. Automerge zejména.

Příští týden zveřejníme na Habrém dlouhý rozhovor s Martinem, bude to zajímavé.

Pedro Ramalhete - Datové struktury bez čekání a transakce bez čekání

19 hlav hydry. Skvělý přehled o programu Pedro pracuje ve společnosti Cisco a posledních zhruba deset let vyvíjí paralelní algoritmy, včetně synchronizačních mechanismů, datových struktur bez uzamčení a čekání a všeho, co si na toto téma dokážete představit. Jeho současné výzkumné a inženýrské zájmy se zaměřují na univerzální konstrukce, softwarovou transakční paměť, perzistentní paměť a podobné technologie, které umožňují správné, škálovatelné a chybově odolné aplikace. Je také autorem blogu široce známého v úzkých kruzích Souběžní šílenci.

Většina vícevláknových aplikací nyní běží na paralelních datových strukturách, od použití front zpráv mezi aktéry až po indexované datové struktury v úložištích klíč-hodnota. Již řadu let úspěšně fungují v Java JDK a pomalu se přidávají do C++.

Nejjednodušší způsob implementace paralelní datové struktury je sekvenční (jednovláknová) implementace, ve které jsou metody chráněny mutexy. To je přístupné každému červnu, ale má zjevné problémy s škálováním a výkonem. Datové struktury bez uzamčení a čekání si přitom nejen lépe poradí s chybami, ale mají i lepší výkonnostní profil – jejich vývoj však vyžaduje hlubokou odbornost a přizpůsobení konkrétní aplikaci. Jeden špatný řádek kódu stačí k rozbití všeho.

Jak to udělat, aby takové datové struktury dokázal navrhnout a implementovat i laik? Je známo, že pomocí kteréhokoli sekvenčního algoritmu lze zajistit bezpečnost vláken univerzální designnebo transakční paměť. Jednak mohou snížit bariéru vstupu do řešení tohoto problému. Obě řešení však obvykle vedou k neefektivní implementaci. Pedro bude mluvit o tom, jak se jim podařilo tyto návrhy zefektivnit a jak je můžete použít pro své algoritmy.

Heidi Howard - Osvobození distribuovaného konsenzu

19 hlav hydry. Skvělý přehled o programu Heidi Howard je stejně jako Martin výzkumnicí distribuovaných systémů na University of Cambridge. Mezi její speciality patří konzistence, tolerance chyb, výkon a distribuovaný konsensus. Ona je nejlépe známá pro její zobecnění algoritmu Paxos tzv Flexibilní Paxos.

Připomeňme si, že Paxos je rodina protokolů pro řešení problému konsensu v síti nespolehlivých počítačů, založená na práci Leslie Lamporta. Někteří z našich řečníků tedy pracují na problémech, které původně navrhli naši ostatní řečníci – a to je skvělé.

Schopnost nalézt shodu mezi více hostiteli – pro oslovování, volbu vůdce, blokování nebo koordinaci – je základním problémem moderních distribuovaných systémů. Paxos je nyní hlavním způsobem, jak řešit problémy s konsensem, a kolem něj probíhá mnoho výzkumů s cílem rozšířit a optimalizovat algoritmus pro různé praktické potřeby.

V této přednášce se vrátíme k teoretickému základu Paxos, uvolníme původní požadavky a zobecníme algoritmus. Uvidíme, že Paxos je v podstatě jen jednou z možností mezi obrovskou škálou konsenzuálních přístupů a že další body ve spektru jsou také velmi užitečné pro budování dobrých distribuovaných systémů.

Alex Petrov — Snižte své náklady na úložiště pomocí přechodné replikace a levných kvor

19 hlav hydry. Skvělý přehled o programu Alex je specialista na databáze a úložné systémy, a co je pro nás důležitější, je zastáncem Cassandra. V současné době pracuje na knize Database Internals s O'Reillym.

Pro systémy s případná konzistence (v ruské terminologii - „ultimátní konzistence“), po zhroucení uzlu nebo rozdělení sítě musíte vyřešit následující dilema: buď pokračovat ve vykonávání požadavků, obětovat konzistenci, nebo je odmítnout provádět a obětovat dostupnost. V takovém systému mohou být dobrým okrajovým řešením kvora, překrývající se podmnožiny uzlů a zajišťující, že alespoň jeden uzel obsahuje nejnovější hodnotu. Můžete přežít selhání a ztrátu připojení k některým uzlům a přitom stále reagovat s nejnovějšími hodnotami.

Vše má však svou cenu. Schéma replikace kvora znamená zvýšené náklady na úložiště: redundantní data musí být uložena na více uzlech najednou, aby bylo zajištěno, že v případě problému bude k dispozici dostatek kopií. Ukazuje se, že nemusíte ukládat všechna data na všechny repliky. Zatížení úložiště můžete snížit, pokud ukládáte data pouze na části uzlů a pro scénáře řešení selhání použijete speciální uzly (Transient Replica).

V průběhu zprávy budeme zvažovat Repliky svědků, schéma replikace používané v Klíč и Megaobchod, a implementaci tohoto konceptu v Apache nazval Cassandra Přechodná replikace a levná kvora.

Dmitrij Vyukov - Goroutines vystaveny

19 hlav hydry. Skvělý přehled o programu Dmitry je vývojář ve společnosti Google, který pracuje na dynamickém testování pro C/C++ a Go – Address/Memory/ThreadSanitizer a podobné nástroje pro linuxové jádro. Přispěl k Go škálovatelnému goroutine plánovači, síťovému dotazovači a paralelnímu sběrači odpadků. Je odborníkem na multithreading, autorem desítky nových neblokovacích algoritmů a vlastníkem Černý pásek Intel.

Nyní něco málo k samotné reportáži. Jazyk Go má nativní podporu pro multithreading ve formě goroutines (lehká vlákna) a kanálů (FIFO fronty). Tyto mechanismy uživatelům velmi usnadňují a zpříjemňují psaní moderních vícevláknových aplikací a vypadá to jako kouzlo. Jak víme, žádná magie zde není. V této přednášce se Dmitry ponoří do složitostí plánovače Go a ukáže tajemství implementace tohoto „kouzla“. Nejprve vám poskytne přehled hlavních součástí plánovače a řekne vám, jak funguje. Dále se blíže podíváme na jednotlivé aspekty, jako je strategie parkování/odparkování a zpracování blokovacích systémových volání. Nakonec Dmitry trochu pohovoří o možných vylepšeních plánovače.

Dmitrij Bugaichenko - Urychlení analýzy distribuovaných grafů pomocí pravděpodobnostních náčrtů a dalších

19 hlav hydry. Skvělý přehled o programu Dmitry pracoval v outsourcingu téměř 9 let, aniž by ztratil kontakt s univerzitou a vědeckou komunitou. Analýza velkých dat v Odnoklassniki se pro něj stala jedinečnou šancí spojit teoretickou přípravu a vědecký základ s vývojem skutečných, žádaných produktů.

Analýza distribuovaných grafů byla a zůstává obtížným úkolem: když je nutné získat informace o spojení sousedního vrcholu, musí být data často přenášena mezi stroji, což vede ke zvýšení doby provádění a zatížení síťové infrastruktury. V této přednášce uvidíme, jak můžete dosáhnout významné rychlosti zpracování pomocí pravděpodobnostních datových struktur nebo faktů, jako je symetrie grafu přátelství v sociální síti. To vše je ilustrováno příklady kódu v Apache Spark.

Denis Rystsov - Snižte své náklady na úložiště pomocí přechodné replikace a levných kvor

19 hlav hydry. Skvělý přehled o programu Denis - vývojář Kosmos DB, odborník na kontrolu modelů konzistence, konsensuálních algoritmů a distribuovaných transakcí. V současnosti pracuje ve společnosti Microsoft a předtím pracoval na distribuovaných systémech ve společnostech Amazon a Yandex.

V této přednášce se podíváme na distribuované transakční protokoly, které byly vynalezeny během několika posledních let a které lze implementovat na straně klienta nad jakýmkoli úložištěm dat, které podporuje podmíněnou aktualizaci (porovnat a nastavit). Sečteno a podtrženo, život nekončí dvoufázovým potvrzením, transakce mohou být přidány na všechny databáze - na úrovni aplikace, ale různé protokoly (2PC, Percolator, RAMP) mají různé kompromisy a nejsou nám dány zdarma.

Alexej Zinověv - Ne všechny algoritmy ML se dostanou do distribuovaného nebe

19 hlav hydry. Skvělý přehled o programu Alexej (zaleslaw) je dlouholetým řečníkem a členem programových výborů na jiných konferencích. Cvičící trenér ve společnosti EPAM Systems a od roku 2012 je přítelem Hadoop/Spark a dalších velkých dat.

V této přednášce bude Alexey hovořit o problémech adaptace klasických algoritmů strojového učení pro provádění v distribuovaném režimu na základě svých zkušeností s prací s Apache Spark ML, Apache Mahout, Apache Flink ML a zkušeností s vytvářením Apache Ignite ML. Alexey bude také mluvit o implementaci distribuovaných algoritmů ML v těchto frameworkech.

A nakonec dvě zprávy od společnosti Yandex o databázi Yandex.

Vladislav Kuzněcov - Databáze Yandex – jak zajišťujeme odolnost proti chybám

19 hlav hydry. Skvělý přehled o programu Vladislav je vývojář ve společnosti Yandex ve skupině distribuovaných platforem. Databáze Yandex je horizontálně škálovatelný, geograficky distribuovaný DBMS odolný proti chybám, který dokáže odolat selhání disků, serverů, stojanů a datových center bez ztráty konzistence. Pro zajištění odolnosti proti chybám se používá proprietární algoritmus pro dosažení distribuovaného konsenzu a také řada technických řešení, která jsou podrobně popsána ve zprávě. Zpráva může být zajímavá jak pro vývojáře DBMS, tak pro vývojáře aplikačních řešení založených na DBMS.

Semyon Checherinda - Distribuované transakce v YDB

19 hlav hydry. Skvělý přehled o programu Semyon je vývojář ve skupině distribuovaných platforem ve společnosti Yandex a pracuje na možnosti použití instalace YDB více nájemci.

Databáze Yandex je navržena pro dotazy OLTP a vyhovuje požadavkům ACID pro transakční systém. V této zprávě se budeme zabývat algoritmem plánování transakcí, který je základem transakčního systému YDB. Podívejme se, které entity se transakcí účastní, kdo přiděluje transakcím globální řád, jak je dosaženo atomicity transakcí, spolehlivosti a přísné úrovně izolace. Na příkladu běžného problému se podívejme na implementace transakcí pomocí dvoufázového potvrzení a deterministických transakcí. Pojďme diskutovat o jejich rozdílech.

Co bude dál?

Program konference je nadále naplněn novými zprávami. Zejména očekáváme zprávu od Nikita Koval (ndkoval) od JetBrains and Oleg Anastasjev (m0nstermin) od společnosti Odnoklassniki. Nikita pracuje na algoritmech pro korutiny v týmu Kotlin a Oleg vyvíjí architekturu a řešení pro systémy s vysokou zátěží na platformě Odnoklassniki. Navíc je zde ještě 1 podmíněně prázdný slot, programový výbor o něj právě nyní pracuje s kandidáty.

Konference Hydra se bude konat 11. – 12. července v Petrohradě. Vstupenky jsou k dispozici koupit na oficiálních stránkách. Věnujte prosím pozornost dostupnosti Online vstupenek - pokud se z nějakého důvodu nemůžete v těchto dnech dostat do Petrohradu.

Uvidíme se na Hydra!

Zdroj: www.habr.com

Přidat komentář