Agenda:
- o konferenciji (i dot serijalu)
- workshop i meetupi
- pregled održanih predavanja
- detaljnija analiza predavanja (code): Ajmani, Kennedy
Na workshopu je sudjelovalo 20tak ljudi. Atmosfera gotovo identična Golang meetupima u Zagrebu. Tema workshopa je bila gobot paket koji omogućava komunikaciju sa mnoštovom remote uređaja koristeći Go. Workshop je vodio Ron Evans, jedan od autora paketa.
Ovdje je source s kojim smo se igrali. Na workshopu smo isprobali Arduino (i neke njegove pluginove), Sphero, Ollie i razne dronove kojima smo upravljali pomoću joysticka (sve to koristeći Go).
Klasični meetup, 6 predavanja. Snimke ovih predavanja neće biti dostupne online.
Predstavio je platformu za mikroservise koju su napravili. Ključne riječi: gokit, MQTT, CoAP, NATS, SenML, Cassandra, Docker, Kubernetes.
Osvrt na neke pitfalle kada se koristi CGo. Ako je vjerovati predavaču CGo nije baš lako obuzdati. Fotografija na kojoj je side sa popisom najvećih concerna:
Solidno predavanje o dobro poznatom pprof paketu.
Teoretska priča o optimizacijama u Go compileru i SSA formi.
Pietru se svidio dynamic routing kakvog ima Netflixov Zuul. Točnije, sviđa mu se mogućnost konfiguracije bez restartanja servisa. Zato je napravio svoj proxy u kojem se koristi Golang za pisanje routing pravila. Pravila se mogu mijenjati bez reloadanja.
Kasnije sam malo popričao s njim; proizvod je još miljama daleko od ozbiljnije produkcije. Samo eksperiment.
Komercijalni IDE. Predstavili su dosta featurea. Zapele su mi za oko opcije find type which implements interface i obrnuto koje VS Code nema. Sutradan su na main eventu također imali štand.
Inače, predavači na main tracku su gotovo isključivo koristili VS Code. Uključujući Campoya.
Zasad su dostupni video zapisi tri predavanja. Ubrzo se očekuju i ostala predavanja.
Sameer je manager Go teama. Pokušao je objasniti concurrency u Golangu usporedbom sa stvarnim svijetom. Gorutine, mutexi, kanali, buffered kanali. Izmjerio je koliko sve od toga zasebno donosi poboljšanja i koji su limiti. Pokazao je primjere i dao source kod za igranje. Ponajbolje predavanje.
John se nadovezuje na blog post Rob Pikea o hendlanju grešaka. Opisuje simpatičan primjer organizacije koda tako da se error provjeri samo jedanom na kraju funkcije. Da, problem je stvaran.
Autor paketa testify i knjige Go Programming Blueprints opisuje neke općenite principe zašto i kako testirati kod. Preporuča nam paket moq za automatsko generiranje mockanih interfacea za testove i httptest za testiranje REST apia.
Autor knjige Go in action se profesionalno bavi Go trainingom (1, 2). Na predavanju je ispričao priču kako mu je jednom nemogućnost pisanja u log zaustavila produkciju. I kako je to onda vješto spriječio dropanjem log zapisa pomoću select naredbe. U stotinjak linija koda je lijepo iskoristio nekoliko dobrih Go patterna.
Sam Boyer je maintainer dep-a. Ispričao je kako je koristio memoizaciju za ubrzanje dep-a. Od više ljudi na konferenciji sam čuo da koriste dep za dependency management.
Jaana je Software developer at Google. Pričala je o detaljima runtime schedulera za Go. Preslikavanje gorutina na sistemske threadove M:N.
Cindy objašnjava kako je implementiran networking stack u Gou. Krene od http.ListenAndServe pa do dođe do sistemskih file deskriptora. Ideja dobra, preznetacija konfuzna.
Liz je autor knjige How to containerize your Go code. Objasnila je kako koristiti ptrace i gosym paket za napraviti vlastiti Go debugger. Spusti se u assembler i zamjeni željenu assembler naredbu sa breakpointom.
Moj omiljeni youtuber objašnjava zašto Go nije top izbor za machine learning. Uzeo je jedan basic primjer (linear regression) i isprobao nešto napraviti pomoću gonum paketa. Onda pogledao u svoj kod i nije bio sretan.
Može li Go u tom segmentu konkurirati postojećim .NET ili Java frameworcima? Može u performansama, skalabilnosti i robustnosti. Problemi su u sučeljima prema enterprise alatima, sa centraliziranim upravljanjem aplikacijom te sa premalo Go frameworka i ekosustava.
Daniel Marti opisuje kako je napisao program za reduciranje go koda. Smith (random generator koda) i reduce (skraćivač koda) se koriste za intenzivnije testiranje Go compilera. Po uzoru na csmith i creduce.
Jaime Silvela nam kaže da možemo odmah poslati response na web request (korisnik vidi da je uspješno submitao), odraditi posao u gorutini i onda vratiti rezultat. Da korisnik ne čeka predugo. (Ovo mislim da je doista basic)
Fabio Raposelli je napisao alat za provjeru licenci programa. Prođe kroz sve dependencie i njihove licence pa provjeri zadovoljavaju li oni zadana poslovna pravila (whitelist, blacklist).
Pascal Constanza je uspješno iskoristio Go za DNA sekvenciranje.
Massimiliano Pippi iz data doga (real-time performance monitoring) priča o problemima embedanja Pythona u Go.
Ron Evans je predstavio Go paket za computer vision. Wrapper za OpenCV 3.3+. Domena uključuje tracking faces, recognize people, autonomuos vehicles, augmented people...
Laurent Leveque priča o exposeanju Goa za Andriod i Python.
Diana Ortega priča o inicijativi za Go deep learning.
Marcel van Lohuizen priča o hendlanju errora u Golangu (deja vu).
Blake Mizerany, koji je inače bio i MC konferencije, predstavlja svoju platformu backplane.io. Upravo su dobili investiciju. Backplane is a managed service that unifies discovery, routing, and load balancing for web servers written in any language, running in any cloud or datacenter.
- Simulating a real-world system in Go - Sameer Ajmani
- Behavior Of Channels - William Kennedy
- članak o konferenciji na netokraciji