Hopp til hovedinnhold

Mikroblogg, side 2

Dette er mikrobloggen min, der jeg legger ut oppdateringer om hva som skjer i hverdagen. Her finner du alt fra kodekrøll og oppdagelser innen teknologi, til tilfeldigheter og kanskje en og annen sinnapost når verden byr meg i mot. Jeg har hørt fra andre at jeg skriver best når jeg er litt sinna.

Fem minutter med uu, episode 1: sjekk en hvilken som helst side fra terminalen din

Hvor vanskelig er det egentlig å holde på med universell utforming? Ikke spesielt. Det er et vanskelig domene som krever mye kunnskap, og det er mange ting å huske på, mange disipliner som skal jobbe sammen for å gjøre ting på nettet tilgjengelig for alle.

Men alt trenger ikke være vanskelig. For eksempel: hvor vanskelig er det å få en slags idé om hvor godt kodet en nettside er? Jo, det skal jeg fortelle deg, for jeg laget i dag et veldig greit lite terminalscript:

uusjekk <url>

That's it. Det er et enkelt alias for en kommando som kaller på verktøyet pa11y, som så kjører en audit av URL'en du har gitt scriptet. Du kan bruke ulike standarder, men den defaulter til WCAG 2.1 AA, som er det den norske lovgivningen for universell utforming er basert på.

Det er så enkelt som det her.

Steg 1: Installer pa11y globalt ved å kjøre sudo npm i -g pa11y — merk at ikke alle operativsystemer trenger at du bruker sudo her.

Steg 2: Dersom du bruker en Mac med Apple-prosessor må du installere Rosetta for at dette skal fungere. Det gjør du med kommandoen softwareupdate --install-rosetta i terminalen.

Steg 3: Nå kan du kjøre pa11y mot en side. Jeg liker å legge på et par ekstra parametere her: en for å bruke Axe som test runner ettersom det trolig er det beste automatiske verktøyet for uu der ute, og jeg spesifiserer eksplisitt at jeg vil at den skal kjøre AA-standarden, just in case. Kommandoen blir dermed pa11y --runner axe --standard wcag2aa <url> for dette.

Steg 4: Det er litt keitete å huske dette, så jeg lager et alias. Jeg bruker OMZ i min terminal, så i bunnen av .zshrc-fila mi legger jeg inn følgende linje: alias uusjekk="pa11y --runner axe --standard wcag2aa"

Dermed kan jeg kjøre uusjekk https://vegar.codes om jeg vil ta en rask audit av koden på siden min. Enkelt, greit, og et fint sjekkverktøy.

Løser det alle verdensproblemer innenfor universell utforming? Nei. Men det løser ett av dem.

Yrkesskadet

Jeg hadde en fantastisk run-in med NAV i dag jeg ikke har sett maken til før.

Jeg var nylig sykmeldt noen dager og måtte dermed sende inn søknad om sykepenger, as you do. Logge inn, fylle ut skjemaet som jeg pleier, ergre meg over at Capgemini fremdeles står oppgitt som arbeidsgiver, hei hvor det går.

Helt til jeg kommer til et nytt spørsmål jeg ikke har sett før. Har sykefraværet noe å gjøre med yrkesskaden din?

...Yrkesskaden.

Vent, yrkesskaden? Hvilken yrkesskade? Jeg har da ingen yrkesskade! Nei, her er det noe galt, sier jeg, og fomler meg gjennom den ikke alltid like logiske menyen deres og finner seksjonen om yrkesskade. Får beskjed på elegant vis gjennom et kort som ikke en gang er alignet riktig at, joda! Vi har en yrkesskadesak på deg! Fra desember, 2000!

Du vet, den gangen du var tretten år og bare såvidt var kommet i stemmeskiftet? Da ble du yrkesskadet. Vi forteller deg selvfølgelig ikke noe annet enn datoen det ble meldt inn, datoen det ble gjort et vedtak, og i hvilket kommunenummer dette skjedde. For alle går jo selvfølgelig rundt og husker kommunenumrene i huet til alle tider!

Første tanke: nå har de trøbbel ett eller annet sted. Systemene snakker ikke med hverandre som de skal og nå får jeg se noen andre sine yrkesskadesaker på min side, og her blir det gøy å lese avisene så fort mediene får nyss om dette. I det minste får jeg vel kanskje si fra, så vet de at det er en feil et sted.

Til deres fordel: jeg fikk kommet meg inn på chatten og snakket med et menneske innenfor rimelig kort tid, og dette mennesket kunne fortelle meg at dette får de mange spørsmål om. For nå har de nemlig endret skjemaet og lagt til et steg der du, om du har noen yrkesskadesaker registrert på deg, må si om sykefraværet ditt har noe med denne skaden å gjøre. Det gir jo... Forsåvidt mening.

Deretter kom den viktigste opplysningen: kunne det være at du hadde blitt skadet eller syk på skolen den gangen? For da er det sånn at det må meldes yrkesskade om behandlingen skal dekkes av det offentlige.

Og det stemmer. Jeg brakk lillefingeren på skolen og måtte på legevakta i åttende klasse. Mysteriet løst. Tommel opp til både forklaringen fra personen jeg snakket med og måten de møtte meg på. Det skal de ha kudos for.

Men, NAV. Vi må allikevel snakke om to ting.

For det første: de forklarende tekstene i grensesnittet deres er ikke gode nok. Jeg får ikke vite noe annet om yrkesskaden min enn datoer og kommunenummer. Jeg, som har lang husk og fungerende hukommelse, klarer å forstå at dette er fra den gangen jeg brakk lillefingeren på skolen når jeg hører sammenhengen. Mennesker med dårlig hukommelse, kognitive vansker, posttraumatiske lidelser og så videre, derimot, gjør kanskje ikke det. Det er vanskelig nok som det er å gå gjennom prosessene deres. Tenk om dere bare kunne ha skrevet litt mer om hva dette vedtaket egentlig handlet om, så jeg forsto det. Tenk om dere kunne skrevet noe om at, hei, dette steget i søknadsprosessen er nytt, så ikke bli nervøs om det plutselig dukker opp for deg. Tenk om dere kunne brukt litt mer tid på å gjøre prosessen brukervennlig, som dere ærlig talt har blitt langt flinkere på gjennom årene.

For det andre: det er flaut at jeg nå hver gang jeg fyller ut dette skjemaet må presisere at nei, jeg har ikke vært sykmeldt fordi ei jente i A-klassen med attitude som en gangster-rapper tilfeldigvis brakk lillefingeren min i en krangel om en hvetebolle fra Kiwi.

Mest flaut for meg siden hun fikk hvetebolla og jeg fikk tre uker med gips.

Server conflicts

Et enkelt bilde av et kodeeksempel. Det er det man burde ha tatt det for. Men i stedet ble det tatt i aller høyeste grad på ramme alvor, og dermed var sirkuset i gang. Sånn føler jeg vi kan oppsummere skjermbildet der man demonstrerer mulighetene server components i Next har i seg. Nå kan du nemlig skrive SQL rett i en React-komponent, og så eksekveres den. Kult, hva?

Tja. Frontendfolka synes ikke det er så himla kult. For de kan da vel ikke mene ramme alvor, SQL-spørringer rett i React-komponentene? Tenker de ikke på injections? Dette er da fullstendig utrygt!

Neida, sier evangelistene og de som faktisk forstår hva som skjer her: det er slett ikke utrygt i det hele tatt, for spørringen kjøres på en sånn måte at du ikke kan kjøre noen som helst form for injection og dermed er alt OK. Les tråden, sett deg inn i teknologien, slutt å sutre over ting du ikke skjønner. Det er ikke gamle dager lenger og ting brekker ikke i vinkel.

Tullsnakk, sier forståsegpåerene. Det handler slett ikke om hvorvidt SQL-en er teknologisk trygg å kjøre i denne konteksten eller ikke. Det er faktisk helt fullstendig irrelevant, for det vesentlige er at en drøss med utviklere kommer til å tro at dette er sånn koden bør kjøres, uansett kontekst, og dermed kommer dette til å komme ut i det virkelige liv på ett eller annet tidspunkt. Unge utviklere som ikke skjønner hvorfor dette er en dårlig idé kommer til å florere. Vi er doomed.

Jo, forsåvidt, men det vesentlige er ikke egentlig at det kommer til å skje, sier de som har holdt på i bransjen en stund. Det vesentlige er at man ikke tenker på separation of concerns. Det handler om at det er en uting å ikke dele opp applikasjonen på en sånn måte at hver komponent, hver del, håndterer hver sin enkelte ting. SQL-spørringer har ikke noe i en React-komponent å gjøre, serverside eller ei. Er det ikke dette vi har APIer og endepunkter og sånt til, da?

APIer og endepunkter! De fnyser høyt, modernistene, for hvorfor skal du egentlig bruke APIer og endepunkter nå som vi har dette? Teknologien har kommet så langt at vi ikke trenger det! Bare fordi gamle utviklere ikke klarer å skjønne hvordan ny teknologi fungerer? Det er de som må innrette seg her, ikke oss!

En stakkars SQL-spørring i en React-komponent var altså det som fikk det til å koke over denne gangen, og det fascinerer meg. Det godter meg. Det får meg til å råflire, sagt rett ut, for det er utrolig å se hvordan alle fyrer seg opp over en slide som strengt talt burde tas som et proof of concept. Men vi klarer liksom ikke ta det som et proof of concept heller, for bare tanken på denne obskøne intermiksen av teknologier og konsepter og muligheter får de aller fleste som har drevet med web en stund til å krølle seg sammen av skam.

Det viktigste vi lærte av dette, spør du meg, var ikke at vi nå kan kjøre SQL-spørringer i React-komponenter. Det er at utviklere jevnt over er idioter som ikke tåler å ikke være den som får rett ute på webben. De steile frontene er helt vanvittige noen ganger.

I praksis ender vi opp som vi alltid har gjort.

For de fleste vet innerst inne at til syvende og sist så kommer noen til å omfavne dette, mens andre ikke vil ta i det med ildtang. Noen kommer til å ta i bruk server components, kanskje ikke helt på denne måten, men snarere på en annen måte som funker for dem. Og gud hjelpe meg, så mange som ikke kommer til å bruke Next i det hele tatt.

Det kommer til å komme flere iterasjoner, andre vil bli inspirert av mulighetene, andre vil se potensialet for å tweake og reworke litt her og der på det Next har fått til for å få det som de vil. Snart kommer det til et helt annet rammeverk, nær deg, i litt ny forpakning men med langt større bravado som seg hør og bør.

Vi lærer av hverandre og kopierer hverandre og plagierer hverandre til verdens ende, bare for å pushe ut HTML, CSS og JavaScript bittelitt raskere og mer effektivt enn før.

Selskapene messer om developer experience og hvordan akkurat deres måte å gjøre ting på er bedre enn de andre måtene å gjøre ting på, enten fordi det er bra for de som utvikler, bra for brukerne eller bra for miljøet.

Og om en liten stund er vi tilbake igjen, i tottene på hverandre over noe som overhodet ikke bure være noe å krangle om i det hele tatt.

For sånn er liksom webutvikling nå. Det er så jævla mange veier til mål nå at det eneste vi til syvende og sist har til felles er at vi er fullstendig uenige om hvilken vei som er rett.


Webdesigner

Heather Buchel har skrevet et blogginnlegg om hvordan vi gikk bort fra begrepet "webdesigner" og hvordan rollen har blitt splittet opp i de som driver med design og de som driver med kode, og bare...

Ja? Jeg "ble voksen" i denne æraen og begynte å studere og jobbe med web i denne æraen. Jeg har sittet med Photoshop og slices og markedsført meg med "pixel perfect design" og PSD-to-HTML-tjenester og tut og kjør. Noen ting har blitt bedre siden den gang, spesielt på teknologisiden ettersom plattformen har modnet betraktelig.

Temaet kom opp på kode24-dagen også, da Martin fra Alv snakket om "the state of frontend" i Norge. Det var en diskusjon om The Great Divide og hvorvidt vi nå trenger en splitt i selve frontendrollen fordi landskapet har blitt så stort. Du har de som driver med design, og du har de som driver med den tekniske implementasjonen. Brad Frost har allerede laget noen begreper for dette, front-of-the-frontend og back-of-the-frontend, ut fra hvilken av disse sidene du "tilhører."

Men til tross for dette så kan du liksom ikke drive med design og kode på en og samme tid, for det er forskjellige roller. Du kan sikkert bli en "UX-designer som også kan kode", eller en "frontendutvikler som også kan designe". Men i sannhet er det "webdesignere" vi burde skaffe oss igjen, selv om kunnskapene og ferdighetene og metodene har endret seg siden det tidlige 2000-tallet.

Og det er nettopp en webdesigner jeg er. Det var det jeg ville bli som voksen da jeg begynte å kode som sekstenåring, og det er det jeg vil være nå. Jeg vil fikle med farger og typografi. Jeg vil lage pene komponenter. Jeg vil sitte i Figma og knote med prototyper og skjermbilder og spekke opp ting som funker.

Jeg vil sitte med HTML, CSS og JavaScript hele dagen lang og oppdage ting jeg ikke visste. Jeg vil sikle på nye rammeverk og verktøy og mulighetene som kommer med at webben blir mer og mer moden. Jeg vil sitte med finpuss og grovpuss og snakke med brukerne. Jeg vil drive med universell utforming. Jeg vil flikke med hele sabla greia til alt er så polert og velfungerende som jeg vil ha det, og ikke måtte tenke på om jeg er en UX-designer eller en frontendutvikler.

Heather er også inne på at begrepet falt bort fordi design blir sett på som feminint mens det er oss gutta som skal drive med kodingen — du vet, de vanskelige teknologiske greiene? Det er noe sabla tull, uansett hva en gjøk av en psykolog måtte finne på å lire av seg om temaet. Så fordi man bryr seg om at ting skal se pent ut og være velfungerende så er man plutselig inne på noe som damene driver med? Og om man bryr seg om kodekvalitet og liker å drive med teknologi, så er man inne på noe mannfolka driver med? Og du kan bare velge den ene siden og ikke den andre?! Herrejensens på sparkesykkel.

Jeg har bestemt meg for at vi skal ta tilbake begrepet. Heretter er jeg ikke en frontendutvikler, eller en front-of-the-frontend-utvikler eller noe sånt. Jeg er en webdesigner. Og takk for det!

kode24-dagen 2.0

Like før helgen var jeg så heldig å bli sendt på kode24-dagen 2.0, og milde himmel for en dag det var. Foruten å treffe så utrolig mange kjente (og jeg mener virkelig, det var så mange gode folk jeg fikk gleden av å treffe) var det faglige innholdet av strålende kvalitet, lokalene ålreite og tempoet akkurat passe.

Jeg var så råheldig at jeg fikk treffe masse folk jeg har kjent lenge for første gang. Det høres rart ut, men sånn er det når man er involvert i Norsk programmering på Discord. Jeg passet selvfølgelig på å spørre de jeg pratet med om de hadde hørt om serveren eller var medlemmer, og det var det overraskende mange som hadde gjort. Mest gøy for min egen del, naturligvis, men innmari gøy lell.

Jeg fikk se min tidligere elev Steff holde sin lightning talk. Det er ikke så mange sånne øyeblikk jeg får, så det var utrolig gøy og jeg var, og er, veldig stolt av å se noen jeg har hatt "under min vinge" gjøre det så sabla bra ute i utviklerverdenen.

Av det faglige opplegget var det mest spennende for min del, naturlig nok, å høre Martin Klingenberg snakke om den norske "state of frontend"-undersøkelsen de kjørte i Alv. Han hadde et ønske om at vi blir litt mer eventyrlystne når det gjelder valg av rammeverk og kanskje prøver noe annet enn React en gang i blant, som for øvrig er noe jeg er helt enig i. React har blitt litt for stort for sitt eget beste i det norske webmarkedet og jeg er veldig klar for å hive hele dritten på sjøen. Men det er meg, og det er helt greit at ikke andre synes det. Det var bare godt å høre noen andre enn meg si det i plenum på den måten.

Jeg håper jeg får kommet igjen til neste år. Det ser jeg iallefall veldig frem til, i så fall.

Et strøk maling...

Nå og da trengs det en liten refresh av farger og look og feel, og der andre mennesker tar seg bryet med å kjøre maskeringsteip, malingsfilt og whitesprit til krampa tar dem, besluttet jeg å heller kjøre litt fargeterapi på hjemmesiden min denne gangen.

Men det er rart, for det var faktisk maling det begynte med; mer bestemt min gode venninne og tidligere kollega Edvarda, og den nye leiligheten hennes.

Edvarda fikk nemlig hjelp av en slik fargekonsulent hos Jotun med å finne gode farger som matcher til den nye hulen. Og da jeg så fargene og fikk høre at Jotun har masse god hjelp med å finne kulører som matcher, helt gratis, de har til og med gode tips på hjemmesiden sin...

Hvorfor i alle dager sitter jeg og prøver å mekke farger selv?

Nei, her får vi jammen trå til, med en base i de fargene Edvarda landet på til sin leilighet, for de var lekre. Og dermed ble det

Etter litt titting rundt etter skrifttyper landet jeg på Literata og Open Sans, som passer ganske godt sammen og som er tried and true og gratis i bruk. Enkelt og greit.

Resten av teknologien er som før. Bare et strøk maling, litt mer bokstavelig enn jeg kanskje hadde tenkt. Kommer jeg noen gang i mitt liv til å sitte og fikle med farger igjen? Helt sikkert. Men jeg spør nok Jotun om hjelp igjen også.

Tailwind is Smart Steering

Josh Collinsworth har publisert et innlegg om Tailwind og hvordan det på mange måter er likt smart steering i MarioKart, og det oppsummerte mine følelser om Tailwind på en ekstremt god måte.

Jeg kan, personlig, ikke fordra Tailwind. Det ødelegger for meg, akkurat som smart steering ødelegger for meg når jeg gruser folk i MarioKart. Men Tailwind er fortsatt en helt legitim måte å lage nettsider på. For de som liker sånt.

Side note: ja, jeg kommer til å gruse deg i MarioKart om du prøver å tøffe deg. Sånn er'e bare.

Innomhus

Denne uka var min første i Kvass, og det har jammen vært litt av en uke.

Det viser seg å være litt av et steg å gå fra å jobbe i en gigantisk konsulentmastodont, der man er leid ut til en gigantisk helsemastodont, til å jobbe i et lite selskap der alle kjenner hverandre og er på fornavn.

Det er gøy å kunne jobbe med folk som bryr seg om det de lager. Det er morsomt å kunne diskutere med de som virkelig kjenner sin nisje, bransje og produkt. Det er morsomt å få holde på med noe nytt på teknologisiden, se hvordan andre har løst problemer, og lære noe nytt på den måten.

Samtidig innser jeg etter såpass lenge på benk og på ferie — i praksis har jeg sittet og ventet på denne uka siden starten av juni — at det tar litt tid å komme i gang. På en del områder er jeg nokså ubrukelig akkurat nå, sagt rett ut.

Der ligger egentlig den største forskjellen, og lettelsen, for meg.

Jeg kan gi meg selv rom til å være litt ubrukelig akkurat nå. Jeg kan ikke alt om domenet og bransjen jeg nå jobber i. Og det er greit — jeg har folk rundt meg som kan det. Det eneste jeg må være flink til er å lytte og forstå, ta mentale notater og lære meg etterhvert som jeg jobber. Jeg kan ikke alt om den tekniske plattformen jeg driver med nå. Det er også greit, for det tar jo litt tid å komme i gang, og folka rundt meg forstår at selv om jeg ikke har jobbet med akkurat dette rammeverket så mye tidligere, så har jeg kunnskap nok til at jeg kommer meg på beina allikevel.

Det går fremover. Jeg kommer meg i gang. Det blir leveranser og kode og design og faglig sparring og alt som hører med. Det blir mye hardt arbeid og sikkert en del kveldsjobbing for å virkelig synke ned i materien. Men jeg kan senke skuldrene og trekke pusten.

Konsulentlivet er som de fleste vet ikke alltid sånn. Som oftest er det ikke sånn. Særlig ikke når man er senior, for da skal man liksom bare kunne ting og levere i høyt tempo litt uansett. Og liker man det, så er det gull. Da funker det. Helt til det ikke funker mer. Tro det eller ei: også seniorutviklere kan møte veggen, brenne ut, bli drittlei faget sitt og ville starte en karriere som jordbærdyrker i stedet for.

Det blir ikke noen jordbærdyrking her riktig ennå, takk og pris. Jeg kommer til å virre rundt en stund og ikke skjønne bak frem på enkelte ting, men det blir bra. Garantert.

Castle Black at Sea Ranch

Castle Black at Sea Ranch er en av de lekreste boligene jeg har sett på aldri så lenge. Det er noe med kombinasjonen av sort, hvitt og kontrastfarger og tredetaljer som bare snakker til meg.

Så nå sitter jeg her og vurderer om jeg kanskje skulle prøvd å male taket i leiligheten sort, og male kjøkkenfrontene sorte, for å prøve å få noe av samme looken. Dette er grunnen til at man ikke burde slippe meg løs ute på nettet hva gjelder interiørdesign og sånt.

So long, Capgemini

I dag er min siste dag i Capgemini, formelt sett.

Jeg har hatt ferie en stund, og det er lenge siden jeg leverte inn adgangskort og laptop, så det betyr ikke så mye i praksis at dette egentlig er den siste dagen min, men det er det nå en gang.

Det har vært en gøyal opplevelse å være konsulent igjen. Det hadde jeg ikke trodd at jeg skulle si etter min forrige opplevelse, men det smakte bedre nå. Det har kanskje hjulpet at jeg hadde noen flere år på baken som utvikler denne gangen og sånt, og jeg har vært heldig som har fått jobbe sammen med fabelaktige mennesker under en helt fantastisk sjef.

Men ting endrer seg. Og det gjorde det i år også, på alle jobbmessige fronter. Det er på tide med noe nytt. Derfor ble det sånn.

Men først, litt mer ferie.