This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-12-21
Channels
- # adventofcode (8)
- # announcements (20)
- # babashka (43)
- # beginners (8)
- # biff (12)
- # calva (2)
- # cider (5)
- # clerk (6)
- # clj-commons (12)
- # clj-kondo (16)
- # clojure (20)
- # clojure-denver (1)
- # clojure-europe (14)
- # clojure-nl (1)
- # clojure-norway (105)
- # clojure-uk (2)
- # clojuredesign-podcast (5)
- # clojurescript (29)
- # datomic (2)
- # hyperfiddle (13)
- # jackdaw (1)
- # jobs (4)
- # jobs-discuss (4)
- # lsp (2)
- # malli (12)
- # pathom (2)
- # pedestal (1)
- # re-frame (22)
- # shadow-cljs (37)
- # squint (28)
- # xtdb (28)
- # yamlscript (4)
Min siste dag på jobb er 29.12. Og i dag er den store Clojure "show and tell" dagen jeg har prøvd å få til i 11 måneder 😅
Vi har polert og pakketert rammeverket(!!!!) vi bygde for å lage Matvaretabellen nå i høst
Det hele startet med en drøm om raske nettsider når jeg skulle lage http://kodemaker.no 🙂
> 5000 html-filer på disk, ja 😅 Men det er vel en ... veldig god idé? Nginx (eller "Google Frontend") er vel raskere enn å generere HTML på serveren eller å generere DOM på klienten?
Jeg husker en jeg studerte med (som da jobbet på USIT) gjorde dette altså, bare genererte opp alle sider. Jeg synes han var kokko da (1997). Jeg synes ikke det nå
men du får også en veldig fin modell for ops, og et deilig avslappet forhold til at alt fungerer som det skal
Jeg husker første gangen jeg lagde en webdings som i stedenfor å ha en database bare leste en relativt stor csv inn i et atom. 🤯
husker å ha fått et godt tips her inne på kanalen om at når ting begynner å bli en smerte, kan man vurdere å gjøre noe med det 😄 Sikkert muligheter for noe halvsmarte cache-greier i bygget f.eks?
Powerpack har allerede støtte for etags som kan brukes til å ikke regenere ting som ikke endrer seg
https://github.com/Mattilsynet/matvaretabellen-deux/blob/main/src/matvaretabellen/excel.clj#L13
etag for disse excel-filene er en hash av kilde-innholdet + en versjonsstreng fra koden. Hvis innholdet endrer seg så får du nye excel filer. Om du endrer koden som lager excel-filer må du manuelt bumpe versjonen.
Når du bygger hele siten til disk kan du også gjøre andre kule ting, feks har vi full lenkesjekk, så hvis du lager en feil intern-lenke så feiler bygget
egentlig et litt teit spørsmål, men er nysgjerrig likevel: er det oppnåelig med en slags dynamisk server-basert sak her, som genererer sider on the fly? Det ville kanskje vært en total rewrite og et helt eget prosjekt, og ikke noe som bygger videre på stasis?
Målet har vært å ende opp uten en runtime, så da måtte man gått i tenkeboksen i så fall.
@U0MKRS1FX da tenker jeg du egentlig er på jakt etter en vanlig server-prosess med varnish foran.
men da vil du gå glipp av mange av fordelene med statisk generering, slik som at alle sider er kjent og kan verifiseres, og alt det du slipper å gjøre takket være at du ikke har en kjørende prosess på serveren å overvåke og dulle med.
takk 🙂 Driver og forsøker å dytte litt på den store plassen vercel/next har fått i hodet mitt i det siste
> men da vil du gå glipp av mange av fordelene med statisk generering, slik som at alle sider er kjent og kan verifiseres, og alt det du slipper å gjøre takket være at du ikke har en kjørende prosess på serveren å overvåke og dulle med. for nå kan dere bare "lese filer og kjøre kode som lager andre filer", mens hvis dere skulle hatt en bygg-cache optimalisert for raske deploys, måtte dere hatt kontroll på logikk for invalidering av cache / hvilke ting som gjøres oppdateres når noe endres?
nei, her snakket vi om forskjellen på å ha en server-prosess kjørende og som lagde sider når noen etterspurte dem, vs å bygge alt på forhånd - i hvert fall var det det jeg snakket om. 🙂
invalidering av cache er heller ikke noe man skal kaste rundt seg med som en "enkel løsning" på noe som helst 😅
> nei, her snakket vi om forskjellen på å ha en server-prosess kjørende og som lagde sider når noen etterspurte dem, vs å bygge alt på forhånd - i hvert fall var det det jeg snakket om. 🙂 > > invalidering av cache er heller ikke noe man skal kaste rundt seg med som en "enkel løsning" på noe som helst Såvidt jeg skjønner er vi enige, mulig jeg uttrykker meg dårlig.
vil tro at om man aksepterer å ha all tilstanden levende i en prosess så kan man sjekke der i stedet for filsystemet om en url finnes eller ikke ja
Powerpack har en runtime - det er den du jobber med i dev. Men den er laget for å gi deg en god utvikleropplevelse, ikke for å være rask i prod.
> Såvidt jeg skjønner er vi enige, mulig jeg uttrykker meg dårlig. Jeg trodde du fortsatt snakket om å lage raskere bygg. 🙂
Hadde blitt litt tungtvindt om du måtte kjøre eksport for hver gang du skulle se på endringene dine i dev 😂
eller sånn som jeg har gjort ved noen tilfeller: bygge hele siten, og så pakketere den inn i et cordova-skall, og så kjøre den på telefonen min, for å se på endringene mine i dev
> Jeg trodde du fortsatt snakket om å lage raskere bygg. 🙂 Jaa. Jeg tenkte at prosess på serveren og bygg-cache persistent mellom bygg var litt samme ting. Dere snakket om server-prosess, "bygg-cache persistent mellom bygg" var visst utelukkende min idé. Ulempen i begge tilfeller (server-prosess, bygg-cache persistent mellom bygg) blir sånn jeg ser det at du må ta stilling til hva du må invalidere innhold endrer seg. Det slipper dere når dere bare sier "i dev bygger vi hver gang, i prod serverer vi filer". Hvis man skal forsvare å gjøre jobben med å holde styr på hvilke endringer som påvirker hva, må det faktisk være verd det, redusert byggetid er verdt at man må skrive logikken som holder styr på hvilke endringer som påvirker hva.
Vi har en persistent bygg-cache mellom bygg. Men som jeg var inne på tidligere så fordrer den at du manuelt tagger koden som genererer sidene. Dette har vi gjort på de mest kostbare sidene, men ikke på alt, for det ville blitt for upraktisk.
Men selvfølgelig, vi kunne cacha hele bygget og forsøkt å komme opp med en etag for hver side basert på innholdet og "relevant kode". Da må vi vite hvilken funksjon som lager en side, og i praksis gjøre statisk analyse for å finne avhengighetsgrafen. Det er sikkert mulig, kanskje Powerpack lærer det en gang 😅
tenker at ISR (som dem kaller det, incremental static regeneration) er tingen ja, altså en levende sak som bygger “lazy” og on-demand. Om det plutselig skulle være snakk om tusenvis eller titusenvis av sider
Jeg tror de aller fleste nettsteder som dette er en passende modell for vil få gode nok byggetider med eksisterende modell
meta: er det ikke rart/trist at når clouden bygger, så gjør den det på shitty maskiner? Clouden er jo clouden, den burde vært 100 ganger så rask som våre usle laptops
for ikke å snakke om at en java-prosess som tar millisekunder å starte på min maskin, kan ta et minutt å starte i cloud'en
noen må starte opp en github-konkurrent som er gode på dette. Noen her som har erfaring med å starte github-konkurrenter? :man-raising-hand:
nå har ihvertfall GPU-ene fått et mere direkte matnyttig bruksområde, med alle disse LLM-ene
kan ikke så mye her, har bare sett folk skøye med at “Nå starter vi signups igjen, CTO-en har trålet internett etter GPU-er og fått dem inn i racks” osv
@slipset godt spørsmål! Den burde ha vært cacha, men det tror jeg har falt mellom to stoler
Selecten inneholder options med value som er tilsvarende antall gram, og så er det masse sånne rundt på siden:
<span data-portion="0.4" data-value="0.4" data-decimals="1">0,4</span>
matomo er et sporingssystem. Vi bruker det uten JavaScript for å få sidevisninger og søkestrenger