Fagkveld 21.01.20, Skatten, TøyenHjerneprogrammering, logging, monitorering og Vue
Julen har rukket å bli et dunkelt minne til tross for at vi fremdeles skriver januar. Stimende ut fra Tøyen T-banestasjon konvergerer ITverkere som en menneskelig utgave av Snake til en stadig større gruppe. De snøløse Oslo-gatene ligger ugjestmilde og kalde, men inne på Skatten på Tøyen Torg er det varmt og godt. Praten sitter løst, og flere har funnet seg noe leskende i glasset. På scenen kan man se store, hvite tall som forventningsfullt teller ned til årets første fagkveld.
Programmering av hjernen
Førstemann ut er en skjeggete mann med imponerende bart. Arild Berggren sitter til daglig som apputvikler for Ice, og starter presentasjonen med å trylle frem en hjerne dekket av en rød duk.
Vi får vite at hjerner er som en selvprogrammerende datamaskin. Alt man foretar seg, tenker, sier og opplever er med på å forme oss. Hvordan vi tenker på hva vi gjør er også med på å forme hvordan vi opplever det. Dette kan utnyttes til å bevisst programmere hjernen til å reagere på en gitt måte i en gitt situasjon.
Videre forteller Arild at hjernen består av to systemer; den tenkende, bevisste hjernen og automatikkhjernen. Tenkehjernen er kostbar å benytte seg av, og jo mer sliten man er, jo fortere faller man tilbake på autopiloten. At man tar beslutninger uten å egentlig tenke seg om kan også være vanskelig å oppdage, da tenkehjernen har en tendens til å rasjonalisere automatikkhjernens handlinger i ettertid.
Å ha et bevisst forhold til hvordan den menneskelige autopiloten fungerer kan også være nyttig i samhandling med andre. Ved hjelp av enkle grep kan man styre oppmerksomheten i den retningen man ønsker. Arild kan verken svare bekreftende eller avkreftende på om han har benyttet kunnskapen sin til å hacke publikums hjerner underveis i talken.
Anbefalt lesning:
- Thinking, Fast and Slow, Daniel Kahneman.
- The Power of Habit, Charles Duhigg.
- Awaken the Giant Within, Tony Robbins.
Logging og monitorering
Etter en kort intermezzo med påfyll i glasset og omrigg av scenen er det klart for en tandem-talk. Sindre Stenland, ITverkets egne animekarakter, troner over forsamlingen med pigghår som virker å følge sine egne naturlover. Ved hans side står Andreas Kongshavn med blå skjorte og mildt åsyn. Til sammen utgjør de et velsmurt maskineri som skal spre det glade budskap om logging og monitorering.
Hvor mange har aktivitetsklokke på seg? Et retorisk spørsmål som straks blir besvart av salen gjennom håndsopprekning, da ingen klarer å la muligheten til å vise frem pulsklokkene sine gå fra seg. Sindre forklarer at en aktivitetsklokke i grunn ikke er noe annerledes enn monitorering av et system. Det gir innblikk i systemets tilstand, og kan blant annet benyttes som beslutningsgrunnlag når man ønsker å øke ytelse, eller for å få tidlig advarsel om at noe ikke virker som det skal.
Videre får vi presentert en live-demo av hvordan de benytter Azure Application Insights til å monitorere applikasjonene sine. Sindre og Andreas demonstrerer hvordan de bruker korrelasjons-IDer til å spore fullstendig hendelsesforløp når en klient foretar en spørring. Å benytte X-Correlation-Id
i request-headeren gjør det enkelt å finne ut nøyaktig hvor noe gikk galt, selv i en kompleks mikrotjeneste-basert arkitektur.
Til slutt får vi listet opp noen gode råd for å implementere god logging og monitorering:
- Benytt et eksisterende, fortrinnsvis industriledende, rammeverk
- Ha et bevisst forhold til, og benytt deg av, log-levels (
DEBUG
,INFO
,FATAL
, etc.) - Unngå alarm-spam, ingen liker å få seks tusen mail om at en request tok 2ms lengre enn forventet
- Bruk korrelasjons-ID for enklere feilsøking
- Reduser støy i koden ved å benytte middleware for logging fremfor masse log-statements med litt logikk mellom
- Send loggene til et sentralt sted, gjør det lettere å korrelere logger fra flere applikasjoner
Dagens ut-av-kontekst-sitat: "Vi er så gode utviklere at vi ikke en gang trenger enhetstester."
Etter å ha foret hjernen på interessante talks trenger også kroppen påfyll. Tomme varmeplater står og viser seg frem med et løfte om at vi har noe godt i vente. Først dukker det opp grillet brød med fiken og chevre. Videre følger det et utvalg frisk salat, dressinger og rotgrønnsaker. Til sist får vi presentert braisert lam og spicy kyllingklubber. Her skal ingen, bortsett fra de fem bakerste i køen, gå sultne.
Vue — hvordan sier man det, egentlig?
Etter at maten er fortært er det klart for dagens eneste skjeggløse foredragsholder. Syver Bolstad introduserer oss for Vue (uttales visstnok /vjuː/), et etterhvert ganske kjent rammeverk for bygging av brukergrensesnitt.
Vi får gjennom live kode-demo demonstrert hvordan man kan benytte Nuxt til enkelt å sette opp et nytt Vue-prosjekt gjennom et scaffolding-verktøy. Videre viser Syver hvordan Nuxt kjører en Node webserver som leverer er server-side-rendret nettside.
For mer kompliserte nettsider får vi se hvordan man kan benytte Vuex for å holde styr på tilstand. Vuex fungerer som en sentralisert data-store for Vue-komponenter man kan lese og skrive til/fra. Vi får en live-demonstrasjon av hvordan å lage en knapp som inkrementerer en teller på en nettside. Etter en litt trøblete start henter Syver inspirasjon fra TV-kokker landet rundt, og jukser litt ved å dra frem en nettside som har stått i ovnen en stund allerede.
Avslutningsvis forteller Syver om hans erfaring med Vue, Nuxt og Vuex i et ekte prosjekt. De støtte på enkelte utfordringer med ytelse og komplisert dataflyt, men klarte å finne tilfredstillende løsninger på problemene uten å måtte gå utenfor rammeverket.
Oche — hvordan sier man det, egentlig?
Etter presentasjonene ble kvelden avsluttet med dart-spilling på Oche (/ˈɒki/). Undertegnede gikk hardt ut i de innledende rundene, bare for å se seg umiddelbart slått når det spisset seg til mot slutten, og måtte til slutt gå slukøret hjem. Basert på stemningen må man kunne kalle det en særdeles vellykket fagkveld, og de som ikke var til stede oppfordres på det sterkeste til å delta neste gang.