đŸ€Ż  Massive Tanker i 2025  đŸ€Ż

Et Är er gÄtt og jeg har brukt Clojure pÄ jobben pÄ fulltid i Team Servering. I tillegg har jeg sett litt pÄ programmeringssprÄket Zig.

I anledning av Ärsskiftet om noen fÄ uker kommer jeg her med en oppsummering av det jeg har brukt noe av tiden min pÄ i 2025.

Bloggposter

FĂžlg dopamin-hitsene

12. desember 2025

Ekspert pÄ utviklerverktÞyet ditt

21. oktober 2025

Git repo – En analyse

18. juni 2025

Terminal kos

22. februar 2025

Å animere transisjoner mellom statiske sider

5. februar 2025

Clojure

Chipper Chap’s Chateau Github

En variant av Tripp-trapp-tresko i diverse dimensjoner skrevet i ClojureScript og Replicant.

Ungandr Github

Et uferdig eksperiment i Ă„ skrive et spill i terminalen med Babashka. Les mer i Terminal kos.

Du er Ungandr, et avkom av den legendariske Gormungandr, og har blitt vekket av brÄket fra gravearbeidet til et massivt kompleks. I blindt raseri stormer du inn i komplekset og forÄrsaker havari.

Repolyzer Github

Les in git-historikken til et prosjekt i en datomic-database og lag spĂžrringer for Ă„ vise dataene i diverse diagrammer. Les mer i Git repo – En analyse.

Jeg har ogsĂ„ gjort et lite stykke arbeid pĂ„ et D3-bibliotek i ClojureScript, men det er et godt stykke igjen fĂžr (eller hvis 😅) det blir ferdig.

Zig

I sommer fikk jeg lyst til Ä lÊre meg et lav-nivÄ-sprÄk for Ä prÞve ut minne-manipulering, spill-utvikling og skrive native applikasjoner. Jeg landet pÄ Zig og fÞlgende er resultatet:

zlides Github

Et slideshow som kjĂžrer i terminalen skrevet med Zig. Tar en tekst-fil som input og genererer et enkelt slideshow du kan navigere deg rundt i.

zansi Github

Zansi er et forsÞk pÄ Ä forenkle bruk av ANSI escape koder via hiccup.

[:bold " bold " [:fg/blue " blue "]]
;; =>
\x1b[1m bold \x1b[34m blue \x1b[39m\x1b[0m

Biblioteket sprang ut av zlides-prosjektet, som inneholder en basal syntaks highlighter for Zig-kode.

Zigme Github

Kjenner du til Make a Lisp? Det er en guide som hjelper deg med Ä skrive din egen lisp i hvilket som helst sprÄk. Zigme er lispen min jeg tukler med iblant.

Emacs

Da jeg startet pÄ Team Servering i januar byttet jeg til Emacs med configgen til Christian og Magnar. En tÞff og hard overgang, men jeg fÞler meg nÄ mer bekvem og effektiv enn noen gang fÞr, og jeg har til og med lagt til flere forbedringer til glede for meg selv og ikke minst teamet.

Keybindings

Les mer i Ekspert pÄ utviklerverktÞyet ditt.

C-c C-M-s

Pretty-printer verdien til top-level def.

C-c M-w

Evaluerer og kopierer resultatet til utklippstavlen.

C-c C-M-w

Evaluerer top-level form og kopierer resultatet til utklippstavlen.

C-c P

Magit er en pakke som gir deg et git-interface i Emacs. C-c p lar deg legge til én medforfatter pÄ committen. En feature Magnar har lagt til. Da jeg begynte i januar var vi plutselig mange pÄ teamet, og vi satt noen ganger tre eller fire sammen og parprogrammerte. Jeg la derfor til C-c P som lar deg legge til flere medforfattere pÄ committen.

Ekstra features

Print with e->map wrapped

I Matnyttig jobber vi veldig mye med entiteter fra Datomic-databasen. NÄr man printer ut datomic-entiteter fÄr man noe liknende pÄ {:db/id 12345678}. For enkelt Ä kunne printe ut verdiene i tillegg, har vi e->map som sÞrger for dette, men pÄ en mÄte sÄ vi unngÄr sykliske lÞkker.

Etter 11 mÄneder med Ä manuelt wrappe entiteter med e->map, fikk jeg heller Emacs til Ä fikse dette for deg. Helt automagisk!

FĂžrste-klasses konsepter

I Matnyttig har vi mange fÞrste-klasses konsepter som kan identifiseres med et keyword. For Ä lettere kunne navigere rundt i koden vÄr og finne definisjonen pÄ fÞrste-klasses konseptene, utbygde jeg Emacs til Ä gjenkjenne disse. NÄ kan vi bruke goto-definition-funksjonaliteten i Emacs pÄ keywords som er identifikator pÄ et fÞrste-klasses konsept.