19 hydrahoder. Flott oversikt over programmet

En konferanse vil finne sted 11.-12. juli i St. Petersburg Hydra, dedikert til utvikling av parallelle og distribuerte systemer. Trikset med Hydra er at det forener kule forskere (som vanligvis bare finnes på utenlandske vitenskapelige konferanser) og kjente praktiserende ingeniører i ett stort program i skjæringspunktet mellom vitenskap og praksis.

Hydra er en av våre viktigste konferanser de siste årene. Det ble innledet med svært seriøse forberedelser, utvalg av foredragsholdere og rapporter. Forrige uke om dette habro intervju kom ut med direktøren for JUG.ru Group, Alexey Fedorov (23derevo).

Vi allerede fortalt om tre viktige deltakere, grunnleggerne av teorien om distribuerte systemer - Leslie Lamport, Maurice Herlihy og Michael Scott. Det er på tide å snakke mer detaljert om hele programmet!

19 hydrahoder. Flott oversikt over programmet

Motivasjon

Hvis du er involvert i programmering, så har du på en eller annen måte å gjøre med multithreading og distribuert databehandling. Eksperter på de relevante feltene jobber direkte med dem, men implisitt ser distribusjon på oss fra alle steder: i enhver multi-core datamaskin eller distribuert tjeneste er det noe som utfører beregninger parallelt.

Det er mange konferanser som dekker ulike aspekter av applikasjonsprogrammering. På den andre siden av spekteret har vi spesialiserte vitenskapelige skoler som avslører enorme mengder kompleks teori i forelesningsformat. For eksempel, parallelt med Hydra i St. Petersburg er det SPTDC skole. På Hydra-konferansen prøvde vi å samle hard praksis, vitenskap og alt i skjæringspunktet.

Tenk på dette: vi lever i en fantastisk tid når du personlig kan møte grunnleggerne av feltet vitenskap og ingeniørfag som vi studerer. Fysikere vil ikke møte verken Newton eller Einstein – toget har gått. Men ved siden av oss bor fortsatt de som skapte grunnlaget for teorien om distribuerte systemer, oppfant populære programmeringsspråk og for første gang legemliggjorde alt dette i fungerende prototyper. Disse menneskene sluttet ikke halvveis i jobben, de jobber akkurat nå med presserende saker i verdenskjente universiteter og selskaper, og er de største kildene til kunnskap og erfaring i dag.

På den annen side forblir muligheten til å møte dem vanligvis rent teoretisk: få av oss kan konstant overvåke offentlige arrangementer ved et eller annet University of Rochester, og deretter skynde oss til USA og tilbake for en forelesning med Michael Scott. Å besøke alle Hydra-medlemmer ville koste en liten formue, ikke medregnet avgrunnen av bortkastet tid (selv om det høres ut som et interessant oppdrag).

På den annen side har vi mange toppingeniører som jobber med presserende problemer i distribuerte systemer akkurat nå, og de har definitivt mye å fortelle. Men her er problemet - de jobber, og deres tid er verdifull. Ja, hvis du er ansatt i Microsoft, Google eller JetBrains, øker sannsynligheten for å møte en av de kjente foredragsholderne på et internt arrangement kraftig, men generelt sett, nei, dette skjer ikke hver dag.

På denne måten utfører Hydra-konferansen en viktig oppgave som de fleste av oss ikke kan gjøre på egen hånd - på ett sted og på én gang samler den mennesker hvis ideer eller interaksjoner med hvem kan forandre livet ditt. Jeg innrømmer at ikke alle trenger distribuerte systemer eller noen komplekse grunnleggende ting. Du kan programmere CRUD-er i PHP resten av livet og forbli helt fornøyd. Men den som trenger det, dette er din sjanse.

Det har gått ganske lang tid siden den første kunngjøringen av Hydra-konferansen på Habré. I løpet av denne tiden har det blitt gjort mye arbeid – og nå har vi en liste over nesten alle rapportene. Ingen trege entrådede algoritmer, bare ren distribuert hardcore! La oss avslutte med generelle ord og se hva vi har på hånden nå.

Keynotes

Keynotes begynner og avslutter dagene for konferansen. Vanligvis er poenget med en innledende keynote å sette den generelle ånden og retningen for konferansen. Den avsluttende keynoten trekker en linje og forklarer hvordan vi kan leve med kunnskapen og ferdighetene som er tilegnet under konferansen. Begynnelsen og slutten: det som huskes best, og generelt sett, har økt betydning.

Cliff klikk H2O-distribuert K/V-algoritme

19 hydrahoder. Flott oversikt over programmet Cliff er en legende i Java-verdenen. På slutten av 90-tallet skrev han for sin doktorgradsavhandling en oppgave med tittelen "Kombinere analyser, kombinere optimaliseringer", som en tid senere ble grunnlaget for HotSpot JVM Server Compiler. To år senere jobbet han allerede hos Sun Microsystems på JVM og viste hele verden at JIT har rett til å eksistere. Hele denne historien om hvordan Java er en av de raskeste moderne kjøretidene med de smarteste og raskeste optimaliseringene kom fra Cliff Click. Helt i begynnelsen ble det antatt at hvis noe er tilgjengelig for en statisk kompilator, trenger du ikke engang å prøve å gi det ut. Takket være arbeidet til Cliff og team, begynte alle nye språk å bli opprettet med ideen om JIT-kompilering som standard. Dette var selvfølgelig ikke en enmannsjobb, men Cliff spilte en veldig viktig rolle i det.

I den innledende keynoten vil Cliff snakke om sin andre bestrebelse - H20, en in-memory-plattform for distribuert og skalerbar maskinlæring for industrielle applikasjoner. Eller mer presist, om den distribuerte lagringen av nøkkel-verdi-par inne i den. Dette er en veldig rask lagring med mange interessante egenskaper (den eksakte listen er inne beskrivelse), som tillater bruk av lignende løsninger i matematikk for streaming av store data.

En annen rapport som Cliff vil gi er - Azul Hardware Transactional Memory-opplevelsen. En annen del av biografien hans - ti år jobber hos Azul, hvor han oppdaterte og forbedret mange ting i Azul-maskinvare- og teknologistabelen: JIT-kompilatorer, kjøretid, trådmodell, feilhåndtering, stabelhåndtering, maskinvareavbrudd, klasselasting, og så videre og så videre - vel, du får idé.

Den mest interessante delen begynte da de laget maskinvare for en stor bedrift - en superdatamaskin for å kjøre Java. Det var en ganske nyskapende ting, skreddersydd spesifikt for Java, som har spesielle krav – leseminnebarrierer for lav-pause søppelinnsamling, arrays med grensekontroll, virtuelle samtaler... En av de kuleste teknologiene er transaksjonsminne for maskinvare. Hele L1 av hvilken som helst av de 864 kjernene kan delta i transaksjonsskriving, noe som er spesielt viktig for å jobbe med låser i Java (synkroniserte blokker kan fungere parallelt så lenge det ikke er noen reell minnekonflikt). Men den vakre ideen ble knust av den harde virkeligheten - og i denne foredraget vil Cliff fortelle deg hvorfor HTM og STM ikke er særlig godt egnet for de praktiske behovene til multi-threaded databehandling.

Michael Scott - Doble datastrukturer

19 hydrahoder. Flott oversikt over programmet Michael Scott - Professor i informatikk ved University of Rochester, som skjebnen knyttet ham til allerede 34 år gammel, og ved hjemmet University of Wisconsin–Madison var han dekan i fem år. Han forsker på og underviser studenter om parallell og distribuert programmering og språkdesign.

Hele verden kjenner Michael takket være læreboken "Programmeringsspråkpragmatikk", den siste utgaven av dette ble utgitt relativt nylig - i 2015. Jobben hans "Algorithmer for skalerbar synkronisering på multiprosessorer med delt minne" jeg fikk Dijkstra-prisen som en av de mest kjente innen distribuert databehandling og lyver åpenlyst ved University of Rochester Online Library. Du kjenner ham kanskje også som forfatteren av selve Michael-Scott-algoritmen fra "Enkle, raske og praktiske ikke-blokkerende og blokkerende samtidige køalgoritmer".

Når det gjelder Java-verdenen, er dette et spesielt tilfelle: sammen med Doug Lea utviklet han de ikke-blokkerende algoritmene og synkrone køene som Java-biblioteker fungerer på. Dette er nøyaktig hva keynoten "Dual data structures" vil handle om - introduksjonen av disse strukturene i Java SE 6 har forbedret ytelsen med 10 ganger java.util.concurrent.ThreadPoolExecutor. Hvis du på forhånd lurer på hva disse "dobbelte datastrukturene" er, så er det informasjon om det relatert arbeid.

Maurice Herlihy - Blokkjeder og fremtiden for distribuert databehandling

19 hydrahoder. Flott oversikt over programmet Maurice Herlihy - vinner av to Dijkstra-priser. Den første er for arbeid med "Ventefri synkronisering" (Brown University), og det andre, nyere - "Transaksjonsminne: Arkitektonisk støtte for låsefrie datastrukturer" (Virginia Tech University). Dijkstra-prisen anerkjenner arbeid hvis betydning og virkning har vært synlig i minst ti år, og Maurice er helt klart en av de mest anerkjente ekspertene på feltet. Han jobber for tiden som professor ved Brown University og har en paragraf lang liste over prestasjoner.

I denne avsluttende keynoten vil Maurice snakke om teorien og praksisen til distribuerte blokkjedesystemer fra synspunktet til klassikerne innen distribuert databehandling og hvordan det forenkler mange relaterte problemer. Dette er en rapport utelukkende om temaet for konferansen – slett ikke om gruvehype, men snarere om hvordan kunnskapen vår kan brukes utrolig effektivt og hensiktsmessig i forhold til en rekke oppgaver.

I juli 2017 kom Maurice allerede til Russland for å gå på SPTDC-skolen, deltok i JUG.ru-treffet, og opptaket kan sees på YouTube:

Hovedprogram

Deretter vil det være en kort oversikt over rapportene som inngår i programmet. Noen av rapportene er beskrevet her i detalj, andre mer kortfattet. Lange beskrivelser gikk hovedsakelig til engelskspråklige rapporter som krevde lenker til vitenskapelige artikler, termer på Wikipedia og så videre. Hele listen er tilgjengelig se på konferansens hjemmeside. Listen på nettsiden vil bli oppdatert og supplert.

Leslie Lamport - Spørsmål og svar

19 hydrahoder. Flott oversikt over programmet Leslie Lamport er forfatteren av banebrytende verk innen distribuert databehandling. "LaTeX" står for "Lamport TeX". Det var han som først, tilbake i 1979, introduserte konseptet konsistent konsistens, og artikkelen hans "Hvordan lage en multiprosessor datamaskin som kjører multiprosessprogrammer på riktig måte" mottok Dijkstra-prisen.

Dette er den mest uvanlige delen av programmet når det gjelder format, fordi det ikke engang er en rapport, men en spørsmål og svar økt. Når en betydelig del av publikum allerede er kjent (eller kan bli kjent) med alle slags arbeider basert på «Lamports teori», hans egne artikler og rapporter, er det viktigere å bruke all tilgjengelig tid på direkte kommunikasjon.

Ideen er enkel – du ser to reportasjer på YouTube: "Programmering bør være mer enn koding" и "Hvis du ikke skriver et program, ikke bruk et programmeringsspråk" og forbered minst ett spørsmål, og Leslie svarer.

Den første av disse to videoene har vi allerede omgjort til en habro-artikkel. Hvis du ikke har en times tid til å se videoen, kan du raskt lese det hele i tekstform.

Merk: Det er mange flere Leslie Lamport-videoer på YouTube. For eksempel er det en utmerket TLA+ kurs. En offline-versjon av hele dette kurset er tilgjengelig på forfatterens hjemmeside, og han lastet den opp til YouTube for enklere visning på mobile enheter.

Martin Kleppmann - Synkronisering av data på tvers av brukerenheter for distribuert samarbeid

19 hydrahoder. Flott oversikt over programmet Martin Kleppmann er forsker ved University of Cambridge og jobber med CRDT og formell verifisering av algoritmer. Martins bok "Designe dataintensive applikasjoner", utgitt i 2017, viste seg å være svært vellykket og kom på bestselgerlistene innen datalagring og -behandling. Kevin Scott, CTO hos Microsoft, en gang sagt: «Denne boken bør være et must for programvareingeniører. Dette er en sjelden ressurs som kombinerer teori og praksis for å hjelpe utviklere smartere med å designe og implementere infrastruktur og datasystemer." Skaperen av Kafka og CTO for Confluent, Jay Kreps, sa noe lignende.

Før han gikk over til akademisk forskning, jobbet Martin i industrien og var med å grunnlegge to vellykkede oppstartsbedrifter:

  • Rapportiv, dedikert til å vise den sosiale profilen til kontakter fra e-posten din, som LinkedIn kjøpte i 2012;
  • Go Test It, en tjeneste for automatisk testing av nettsteder i ulike nettlesere, som RedGate kjøpte i 2009.

Generelt har Martin, selv om han er mindre kjent enn våre keynotes, allerede vært i stand til å gi et visst bidrag til utviklingen av distribuert databehandling og til industrien.

I dette foredraget vil Martin snakke om et tema som ligger nærmere hans akademiske forskning. I Google Docs og lignende dokumentredigeringssofaer refererer "samarbeidsredigering" til en replikeringsoppgave: hver bruker har sin egen replika av det delte dokumentet, som de deretter endrer, og alle endringer sendes over nettverket til resten av deltakere. Endringer i dokumenter offline fører til midlertidig inkonsekvens av dokumentet i forhold til andre deltakere, og re-synkronisering krever konflikthåndtering. Det er akkurat det de eksisterer for Konfliktfrie replikerte datatyper (CRDT) er faktisk en ganske ny ting, hvis essens ble formulert først i 2011. Denne foredraget diskuterer hva som har skjedd siden den gang i CRDT-verdenen, hva de siste fremskrittene er, tilnærmingen til å lage lokale først-applikasjoner generelt og bruken av et åpen kildekode-bibliotek Automerge spesielt.

Neste uke legger vi ut et langt intervju med Martin på Habré, det blir interessant.

Pedro Ramalhete - Ventefrie datastrukturer og ventefrie transaksjoner

19 hydrahoder. Flott oversikt over programmet Pedro jobber i Cisco og har utviklet parallelle algoritmer de siste ti årene eller så, inkludert synkroniseringsmekanismer, låsefrie og ventefrie datastrukturer og alt du kan tenke deg om dette emnet. Hans nåværende forsknings- og ingeniørinteresser fokuserer på Universal Constructions, Software Transactional Memory, Persistent Memory og lignende teknologier som muliggjør korrekte, skalerbare og feiltolerante applikasjoner. Han er også forfatter av en blogg viden kjent i snevre kretser Samtidig freaks.

De fleste flertrådede applikasjoner kjører nå på parallelle datastrukturer, fra bruk av meldingskøer mellom aktører til indekserte datastrukturer i nøkkelverdilagre. De har jobbet med suksess i Java JDK i mange år, og de blir sakte lagt til C++.

Den enkleste måten å implementere en parallell datastruktur på er en sekvensiell (en-tråds) implementering der metoder er beskyttet av mutexes. Dette er tilgjengelig for alle juni, men har åpenbare problemer med skalering og ytelse. Samtidig takler låsefrie og ventefrie datastrukturer ikke bare feil bedre, men har også en bedre ytelsesprofil – utviklingen av dem krever imidlertid dyp ekspertise og tilpasning til en spesifikk applikasjon. En feil kodelinje er nok til å bryte alt.

Hvordan kan vi gjøre det slik at selv en ikke-ekspert kan designe og implementere slike datastrukturer? Det er kjent at enhver sekvensiell algoritme kan gjøres trådsikker ved å bruke enten universell utforming, eller transaksjonsminne. For det første kan de senke adgangsbarrieren for å løse dette problemet. Begge løsningene fører imidlertid vanligvis til ineffektiv implementering. Pedro vil snakke om hvordan de klarte å gjøre disse designene mer effektive og hvordan du kan bruke dem til algoritmene dine.

Heidi Howard - Frigjør distribuert konsensus

19 hydrahoder. Flott oversikt over programmet Heidi Howard er, i likhet med Martin, en distribuert systemforsker ved University of Cambridge. Hennes spesialiteter er konsistens, feiltoleranse, ytelse og distribuert konsensus. Hun er mest kjent for sin generalisering av Paxos-algoritmen kalt Fleksibel Paxos.

Husker at Paxos er en familie av protokoller for å løse problemet med konsensus i et nettverk av upålitelige datamaskiner, basert på arbeidet til Leslie Lamport. Dermed jobber noen av våre foredragsholdere med problemer som opprinnelig ble foreslått av våre andre foredragsholdere - og dette er fantastisk.

Evnen til å finne konsensus blant flere verter – for adressering, ledervalg, blokkering eller koordinering – er et grunnleggende problem i moderne distribuerte systemer. Paxos er nå hovedmåten for å løse konsensusproblemer, og det foregår mye forskning rundt det for å utvide og optimalisere algoritmen for ulike praktiske behov.

I denne foredraget vil vi se på det teoretiske grunnlaget til Paxos, lempe på de opprinnelige kravene og generalisere algoritmen. Vi vil se at Paxos i hovedsak bare er ett alternativ blant et stort utvalg konsensustilnærminger, og at andre punkter på spekteret også er veldig nyttige for å bygge gode distribuerte systemer.

Alex Petrov - Reduser lagringskostnadene dine med Transient Replication og Cheap Quorums

19 hydrahoder. Flott oversikt over programmet Alex er en spesialist på databaser og lagringssystemer, og enda viktigere for oss, en engasjert i Cassandra. Han jobber for tiden med en bok, Database Internals, med O'Reilly.

For systemer med eventuell konsistens (i russisk terminologi - "ultimat konsistens"), etter at en node krasjer eller en nettverksdeling, må du løse følgende dilemma: enten fortsette å utføre forespørsler, ofre konsistens, eller nekte å utføre dem og ofre tilgjengelighet. I et slikt system kan quorumer, overlappende delsett av noder og sikre at minst én node inneholder den nyeste verdien, være en god kantløsning. Du kan overleve feil og tap av tilkobling til enkelte noder mens du fortsatt svarer med de nyeste verdiene.

Men alt har sin pris. Et kvorumreplikeringsskjema betyr økte lagringskostnader: overflødige data må lagres på flere noder samtidig for å sikre at det er nok kopier tilgjengelig når et problem oppstår. Det viser seg at du ikke trenger å lagre all data på alle kopiene. Du kan redusere belastningen på lagringen hvis du lagrer data bare på deler av nodene, og bruker spesielle noder (Transient Replica) for feilhåndteringsscenarier.

I løpet av rapporten vil vi vurdere Vitnekopier, replikeringsskjemaet brukt i Spanner и mega butikk, og implementeringen av dette konseptet i Apache Cassandra kalt Forbigående replikering og billige quorumer.

Dmitry Vyukov - Goroutiner avslørt

19 hydrahoder. Flott oversikt over programmet Dmitry er en utvikler hos Google som jobber med dynamisk testing for C/C++ og Go - Address/Memory/ThreadSanitizer, og lignende verktøy for Linux-kjernen. Bidro til Go en skalerbar goroutine-planlegger, en nettverksundersøkelse og en parallell søppelsamler. Han er ekspert på multithreading, forfatteren av et dusin nye ikke-blokkerende algoritmer og eier av Svart belte Intel.

Nå litt om selve rapporten. Go-språket har innfødt støtte for multithreading i form av goroutiner (lette tråder) og kanaler (FIFO-køer). Disse mekanismene gjør det veldig enkelt og morsomt for brukere å skrive moderne flertrådsapplikasjoner, og det ser ut som magi. Som vi forstår, er det ingen magi her. I denne foredraget vil Dmitry fordype seg i detaljene til Go-planleggeren og vise hemmelighetene ved å implementere denne "magien". Først vil han gi en oversikt over hovedkomponentene i planleggeren og fortelle deg hvordan den fungerer. Deretter skal vi se nærmere på individuelle aspekter som parkerings-/avparkeringsstrategien og håndtering av blokkeringssystemanrop. Til slutt vil Dmitry snakke litt om mulige forbedringer av planleggeren.

Dmitry Bugaichenko - Fremskynde distribuert grafanalyse med sannsynlighetsskisser og mer

19 hydrahoder. Flott oversikt over programmet Dmitry jobbet med outsourcing i nesten 9 år uten å miste kontakten med universitetet og det vitenskapelige miljøet. Big data-analyse i Odnoklassniki ble for ham en unik sjanse til å kombinere teoretisk opplæring og vitenskapelig grunnlag med utvikling av ekte, etterspurte produkter.

Distribuert grafanalyse har vært og forblir en vanskelig oppgave: når det blir nødvendig å innhente informasjon om forbindelsene til et nabopunkt, må dataene ofte overføres mellom maskiner, noe som fører til økt utførelsestid og belastning på nettverksinfrastrukturen. I denne foredraget skal vi se hvordan du kan få betydelige prosesseringshastigheter ved å bruke sannsynlige datastrukturer eller fakta som symmetrien til vennskapsgrafen i et sosialt nettverk. Alt dette er illustrert med kodeeksempler i Apache Spark.

Denis Rystsov - Reduser lagringskostnadene dine med Transient Replication og Cheap Quorums

19 hydrahoder. Flott oversikt over programmet Denis - utvikler Cosmos DB, en ekspert på å sjekke konsistensmodeller, konsensusalgoritmer og distribuerte transaksjoner. Han jobber for tiden i Microsoft, og før det jobbet han med distribuerte systemer hos Amazon og Yandex.

I denne foredraget skal vi ta en titt på de distribuerte transaksjonsprotokollene som har blitt oppfunnet de siste årene, som kan implementeres på klientsiden på toppen av ethvert datalager som støtter betinget oppdatering (sammenlign og sett). Poenget er at livet ikke ender med en to-fase commit, transaksjoner kan legges på toppen av alle databaser - på applikasjonsnivå, men forskjellige protokoller (2PC, Percolator, RAMP) har forskjellige avveininger og er ikke gitt til oss gratis.

Alexey Zinoviev - Ikke alle ML-algoritmer kommer til den distribuerte himmelen

19 hydrahoder. Flott oversikt over programmet Alexei (zaleslaw) er mangeårig foredragsholder og medlem av programkomiteer på andre konferanser. Praktiserende trener hos EPAM Systems, og har vært venner med Hadoop/Spark og andre store data siden 2012.

I denne foredraget vil Alexey snakke om problemene med å tilpasse klassiske maskinlæringsalgoritmer for kjøring i distribuert modus basert på hans erfaring med Apache Spark ML, Apache Mahout, Apache Flink ML og opplevelsen av å lage Apache Ignite ML. Alexey vil også snakke om implementeringen av distribuerte ML-algoritmer i disse rammeverkene.

Og til slutt, to rapporter fra Yandex om Yandex-databasen.

Vladislav Kuznetsov - Yandex Database - hvordan vi sikrer feiltoleranse

19 hydrahoder. Flott oversikt over programmet Vladislav er utvikler hos Yandex i den distribuerte plattformgruppen. Yandex Database er en horisontalt skalerbar, geo-distribuert, feiltolerant DBMS som kan motstå feil på disker, servere, rack og datasentre uten å miste konsistensen. For å sikre feiltoleranse benyttes en proprietær algoritme for å oppnå distribuert konsensus, samt en rekke tekniske løsninger som er omtalt i detalj i rapporten. Rapporten kan være av interesse for både DBMS-utviklere og utviklere av applikasjonsløsninger basert på DBMS.

Semyon Checherinda - Distribuerte transaksjoner i YDB

19 hydrahoder. Flott oversikt over programmet Semyon er en utvikler i den distribuerte plattformgruppen hos Yandex, og jobber med muligheten for multi-tenant bruk av YDB-installasjonen.

Yandex Database er designet for OLTP-spørringer og overholder ACID-kravene for et transaksjonssystem. I denne rapporten vil vi vurdere transaksjonsplanleggingsalgoritmen som ligger til grunn for YDB-transaksjonssystemet. La oss se på hvilke enheter som deltar i transaksjoner, hvem som tildeler global ordre til transaksjoner, hvordan transaksjonsatomitet, pålitelighet og et strengt isolasjonsnivå oppnås. Ved å bruke et vanlig problem som eksempel, la oss se på transaksjonsimplementeringer ved bruk av tofasede forpliktelser og deterministiske transaksjoner. La oss diskutere forskjellene deres.

Hva blir det neste?

Konferanseprogrammet fortsetter å være fylt med nye rapporter. Spesielt forventer vi en rapport fra Nikita Koval (ndkoval) fra JetBrains og Oleg Anastasyev (m0nstermind) fra Odnoklassniki-selskapet. Nikita jobber med algoritmer for koroutiner i Kotlin-teamet, og Oleg utvikler arkitektur og løsninger for høylastsystemer i Odnoklassniki-plattformen. I tillegg er det 1 betinget tom plass til, programkomiteen jobber med kandidater til det akkurat nå.

Hydra-konferansen finner sted 11.-12. juli i St. Petersburg. Billetter er tilgjengelig kjøp på den offisielle nettsiden. Vær oppmerksom på tilgjengeligheten av online-billetter - hvis du av en eller annen grunn ikke kan komme deg til St. Petersburg i disse dager.

Vi sees på Hydra!

Kilde: www.habr.com

Legg til en kommentar