clojure-norway

slipset 2025-12-29T08:01:36.980479Z

Mrn

oλv 2025-12-29T08:31:16.456449Z

Morn

teodorlu 2025-12-29T08:31:43.931499Z

morn 🙂

Schpa 2025-12-29T09:52:29.747169Z

Morn

Zeniten 2025-12-29T10:06:04.435869Z

Mr. N.

😂 1
teodorlu 2025-12-29T10:45:14.037959Z

"stupid effects, intentful actions" har romstert i hodet mitt i juleferien. Første gangen Christian snakket om det, skjønte jeg hva han mente, men ikke hvorfor. "vi ønsker å ha effektene våre så dumme at de ikke trenger testing". Og at vi gjør det mange nok ganger til at det er helt tydelig at det ikke funker når det ikke funker. I kontrast, når vi modellerer hva en person ønsker å få gjort, gå i motsatt retning: finn intensjonen bak handlingen. Unngå all "tolkning", bare send intensjonen videre. Uten tolkning av effekter ("dumme") og actions ("bare intensjon"), blir effekter og actions mer stabile over tid. Fordi "tolkningen vår" ikke fører til endringer. Logikken for å oversette intensjon (action) til effekter kan vi derimot endre så mye vi vil. Og den logikken kan testes, den transformerer action-data til effekt-data. Sitter og kjenner på at jeg har gjort dette litt dumt akkurat nå. Problemet jeg løser: vi har dårlig komprimerte bilder på Mikrobloggeriet. JPEG-er rett ut av mobilkamera, og PNG for skjermbilde. Fordi jeg ikke har skilt på intensjon og effekter, har jeg endt opp med dupliserting! Jeg skrev først funksjonen som konverterer,

(defn autoconvert
  "Convert to webp, and update references to converted files"
  [{:as conversion :keys [image referencing-files]}]
  (let [quality (compression-quality image)
        compressed (str (fs/strip-ext image) ".webp")
        image-url (str (fs/relativize "public" image))
        new-image-url (str (fs/relativize "public" compressed))]
    (try
      (convert! image compressed quality)
      (doseq [f referencing-files]
        (spit f (str/replace (slurp f) image-url new-image-url)))
      (assoc conversion
             :compressed compressed
             :quality quality
             :factor (size-factor image compressed))
      (finally (fs/delete image)))))
, før jeg endte opp med å skrive samme funksjon igjen bare uten sideeffekter for å få kontroll på hvor mye komprimering jeg egentlig ønsket meg. Hva skal man sette "quality" til? Først hadde jeg 50 (av 100) på alt, så ble jeg irritert over komprimerings-artifacts i PNG-er.
(defn probe
  "How much would we gain by compressing this file?"
  [{:as conversion :keys [image referencing-files]}]
  (let [quality (compression-quality image)
        compressed (str (fs/strip-ext image) ".webp")]
    (try
      (convert! image compressed quality)
      (assoc conversion
             :compressed compressed
             :quality quality
             :factor (size-factor image compressed))
      (finally (fs/delete compressed)))))
Hvis jeg her hadde skilt mellom actions (ønsket utfall) og effekter, kunne jeg gjort ferdig all preprosesseringen først, og deretter bare sett på resultatet. … og da måtte jeg hatt en type effekt-håndtering. Her tre effekter: 1. Konverter 2. Slett fil 3. Endre referanser i fil !

gunnar 2025-12-30T11:22:03.994309Z

Gode betraktninger som vil gjøre seg godt som en bloggpost 😊

teodorlu 2025-12-30T11:25:47.103219Z

Du har helt rett. Mindre kaotiak framstilling og litt arbeid med eksemplene ville gjort seg!

gunnar 2025-12-30T18:50:31.011799Z

Jeg likte det jeg leste, men vil gjerne ha noe bokmerkbart som jeg kan dele med andre ☺️

❤️ 1
2025-12-29T12:28:17.619379Z

i dag ble jeg AI pilled, gitt. Junie i IntelliJ driver og refactorer og gjør diverse småtteri på laptopen, mens jeg sitter og jobber med "ordentlige" ting på desktopen. Har fått ryddet opp i noen gamle klasser som finnes i en versjon 2, lagt til noen custom linter-regler, og diverse "hjernedøde" ting. Har snart brukt opp alle 10 inkluderte credits i planen til JetBrains. Here we go!

gunnar 2025-12-30T11:24:35.814129Z

Spent på å høre mer om dette. Ca hvor stor kodebase har dere? Ps. iOS vil autokorrigere "kodebase" til "kodebamse". Litt søtt egentlig. Ps2. iOS vil autokorrigere "Ps." til "Os."

2025-12-30T12:22:18.991359Z

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
TypeScript                    1105          10419           2350         145444
Kotlin                         637          10338           1048          83214
SQL                            504           2131            268          14681

2025-12-30T12:23:25.707749Z

i går fikk jeg den til å skrive om noe fra dynamodb til postgres. Usiker på hvor mye tid spart, måtte følge opp litt. Men sånn det er nå ender jeg opp med å legge til ting i en sånn guidelines.md-fil som i praksis er en fil som koder inn våre mentale modeller til AI-en, så den gjør bedre og bedre jobb ettersom vi bygger opp ting der

2025-12-30T12:23:44.777799Z

bruker også AI-en til å bygge opp den fila. "Basert på endringene jeg ba om nå og endringene jeg gjorde manuelt, oppdater guidelines-fila"

gunnar 2025-12-30T18:49:55.162379Z

Ja, spørsmålet er om det blir verdt det. Ser at det er flere som sier nettopp det, og sist Nolan Lawson som har vært ganske skeptisk frem til nå. (https://nolanlawson.com/2025/12/22/how-i-use-ai-agents-to-write-code/)

2025-12-30T21:49:02.066829Z

ihvertfall verdt et forsøk!

2025-12-30T21:49:20.794089Z

men dette er egentlig peak take, fra hacker news: > Imagine someone in the 90s saying "if you don't master the web NOW you will be forever behind!" and yet 20 years later kids who weren't even born then are building web apps and frameworks.