clojure-norway

hypirion 2025-12-15T06:28:00.991969Z

Morn!

2025-12-15T06:30:21.465739Z

Morn!

2025-12-15T06:55:52.154129Z

mårn

mokr 2025-12-15T07:17:50.211379Z

Morn!

gunnar 2025-12-15T07:20:19.234219Z

Morn!

teodorlu 2025-12-15T07:24:18.057249Z

@hypirion driver du og argumenterer for Python og ikke Babashka for scripting???

hypirion 2025-12-15T08:07:58.796609Z

Man må lære seg å krabbe før man kan gå 🙂

teodorlu 2025-12-15T08:39:58.710729Z

jeg er for øvrig enig i argumentene dine. Det er veldig praktisk at Python allerede er installert! Gratulerer med Hacker News-forside!

😊 1
leifericf 2025-12-15T08:51:04.706479Z

Så kan du bruke Python i Clojure etterpå 😄

gunnar 2025-12-15T09:12:49.187549Z

Link?

leifericf 2025-12-15T09:15:51.141839Z

https://github.com/clj-python/libpython-clj

gunnar 2025-12-15T09:16:22.855679Z

Beklager, tenkte på artikkelen på HN 😊

leifericf 2025-12-15T09:16:30.105719Z

Ah, lol! My bad.

😄 1
eaj 2025-12-15T09:22:14.824069Z

https://news.ycombinator.com/item?id=46189962

👍 2
👀 1
hypirion 2025-12-15T09:27:26.998989Z

Oi, ante ikke at den var på HN 😅 Delte den på http://lobste.rs da, men det er en stund siden

🔥 1
leifericf 2025-12-15T11:24:54.928979Z

Jeg brukte nesten utelukkende Bash og Python til scripting en stund før jeg lærte om Babashka. Det jeg liker best med Babashka er at jeg kan skrive kode som funker på Linux, Mac og Windows, og distribuere dem som én selvstendig fil til ikke-tekniske brukere, som de kan kjøre uten å installere eller konfigurere noe spesielt. Jeg synes også virtuelle miljøer, pip vs. conda, etc. var ganske fiklete i Python.

leifericf 2025-12-15T11:25:26.787929Z

Men Python er et veldig nyttig språk som mange folk kan. Vi bruker det masse der jeg jobber nå.

gunnar 2025-12-15T11:35:03.069109Z

Jeg synes Python-systemet er helt jævlig. Jeg mister helt sted og retningssans når jeg må installere noe som krevs av et eller annet skript eller app som benytter python. Men det er først og fremst fordi jeg ikke har peiling 😄

eaj 2025-12-15T11:36:23.020369Z

https://docs.astral.sh/uv/ har løst disse utfordringene for meg

💯 3
👀 1
gunnar 2025-12-15T11:36:42.478519Z

Kult, takk!

leifericf 2025-12-15T11:57:14.617379Z

Ah, nice! Enda en 😅 Tror jeg har testet så og si alt annet, men har ikke sett uv før nå.

leifericf 2025-12-15T11:57:46.341879Z

I Elkjøp brukte vi https://python-poetry.org en stund. Det funka greit men var ekstremt treigt.

hypirion 2025-12-15T12:06:15.137349Z

Nå er primærargumentet mitt at du helst ikke bør legge til eksterne avhengigheter før du må, og Python er stort og stabilt og vil ikke brekke koden din med det første. Om du er en Clojuresjappe kan du bytte ut Python med bb uten mye klaging vil jeg tro.

👍 1
leifericf 2025-12-15T12:08:29.210169Z

Jepp! Jeg byttet ut mange Shell scripts og Python scripts i Elkjøp med Babashka uten å be om lov, og viste det frem til teamet. Fikk med meg to andre karer på laget, men resten var nokså skeptiske.

gunnar 2025-12-15T12:36:22.242319Z

> Python er stort og stabilt og vil ikke brekke koden din med det første (venter i spenning på Python 4)

leifericf 2025-12-15T13:27:41.894829Z

https://www.modular.com/mojo has entered the chat "Did someone say Python 4?" 😎

leifericf 2025-12-15T13:28:52.740069Z

Relevant tråd fra 2023 https://clojurians.slack.com/archives/C16LEKSLT/p1688375751525319.

gunnar 2025-12-15T13:39:18.051349Z

Ikke hørt om Mojo før. Veldig interessant! Basert på det store AI-fokuset så kan jo det være at dette blir defacto ai-språk på sikt. Så fremt AI lærer så skrive python da 😆 (har ikke det vært et problem, på lik linje med lisp? eller tar jeg helt feil nå)

leifericf 2025-12-15T14:22:30.408389Z

Jepp! Tanken er at all Python-kode bare skal funke uten endringer i Mojo, som et "true superset" av Python, slik at alle som kan Python kan bruke Mojo umiddelbart og velge å gradvis ta i bruk nye features som de ønsker å bruke. Så kjører all Python-kode brutalt mye raskere når kompilert via Mojo enn dynamisk i Python sin egen runtime/VM.

gunnar 2025-12-16T07:47:48.274109Z

Veldig fin artikkel, @hypirion. Og takk for tipset om deprecation warnings!

import warnings
warnings.simplefilter("default", DeprecationWarning)

☺️ 1
teodorlu 2025-12-15T07:24:21.169979Z

morn!

msolli 2025-12-15T07:38:46.220099Z

Morn!

cjohansen 2025-12-15T08:19:48.238599Z

Morn!

eaj 2025-12-15T08:22:23.740199Z

Morn!

leifericf 2025-12-15T08:50:26.774819Z

Morn!

kolstae 2025-12-15T09:24:03.695199Z

Morn!

cjohansen 2025-12-15T13:35:38.680519Z

Kode er data, og data er ❤️

FAIL in kjokkenet.i18n-test/dictionary-test (m1p_helper.clj:90)
i18n-oppslagene henger på greip med ordbøkene
src/matnyttig/skjemaer/adresse.cljc:  :matnyttig.skjemaer.adresse/linj1-aria-label på linje 44 finnes ikke i en ordbok
Dette er resultatet av en ny test vi har. Vi har nylig lagt til i18n i løsningen vår, ettersom vi skal ut og henvende oss mot offentligheten. Da er det greit å unngå at man bruker en i18n-nøkkel som ikke finnes i ordboka. Det oppdager denne testen, sammen med en del andre måter man kan gjøre i18n feil på. Og hvordan? Jo, ved å laste inn all koden vår som data, tree-seq for å finne alle i18n-placeholderne, og validere bruken mot ordbøkene våre. 90 linjer kode. Data ass ❤️

Sardtok 2025-12-19T09:13:21.492879Z

De greiene der høres litt ut som en egen implementasjon av GNU gettext @leif.eric.fredheim. Mulig at gettext er for treigt, har aldri sett på ytelsen, men det er jo grunnlaget for å oversette omtrent alt på Linux. _("Her er teksten som skal oversettes.")

👀 1
leifericf 2025-12-19T12:19:33.493249Z

Ja, det er sikker noe lignende. Men denne greia vi har er koblet til eksterne selskaper som gjør oversettelser til flere språk, samt Unreal Engine via C++ kode og sånt.

leifericf 2025-12-19T12:20:54.145399Z

Det er en del Excel filer, web verktøy og rutiner i mellom oversetterne (som vi ikke kjenner), koderne og de binære dataformatene til Unreal Engine 😅

gunnar 2025-12-15T13:44:03.163909Z

Nice! Vi har tilsvarende opplegg i Typescript, men hvor vi genererer en typedefinisjon som er unionen av alle nøklene i ordboka. Det funker godt, med unntak av at typescript får veldig mye å tenke på ved hvert eneeste tastetrykk. (vi har 5950 nøkler p.t.)

gunnar 2025-12-15T13:45:46.266489Z

(vi får altså typescript til å typesjekke koden vår, i motsetning til en unit-test - og det blir ganske tregt med så mange nøkler)

cjohansen 2025-12-15T14:02:45.680359Z

Nettopp 😅

gunnar 2025-12-15T14:05:46.331229Z

Jeg lurer på hvor mange linjer med kode jeg hadde trengt å skrive for å søke gjennom typescript-koden på tilsvarende vis (via et AST) 🤔

hypirion 2025-12-15T14:11:59.794159Z

https://github.com/tree-sitter/tree-sitter-typescript og så er du oppe og kjører. Og forøvrig er vel dette et sted man kunne brukt makroer til å validere på kompileringstid. Om du vil validere bruken mot ordbøkene er higher-order-bruk ikke noe du ønsker uansett.

cjohansen 2025-12-15T14:13:10.234779Z

Jepp, kunne brukt makroer. Den løsningen vi har nå har samme begrensning som makroer - ingen higher order i18n-oppslag. Men som du sier: det ønsker vi uansett ikke. Fordelen med løsningen vi har nå er at du slipper å strø masse makroer overalt.

cjohansen 2025-12-15T14:13:52.767499Z

i18n er et replicant-alias i vår løsning, så de ser sånn ut: [:h1 [:i18n/k ::greeting {:name "Bob"}]]

hypirion 2025-12-15T14:18:09.234029Z

Ja, enig i at det er teit/unødvendig å gjøre den om til en makro om renderings-"rammeverket" (😇 ) du bruker har innebygget i18n-støtte du ønsker å bruke, framfor noe som er frakoblet og som må integreres inn uansett.

leifericf 2025-12-15T14:26:21.743419Z

Cool. Jeg lurer på om vi kunne brukt noe slikt selv. Spill inneholder jo mye tekst som er oversatt til mange forskjellige språk, og vi har "text tokens" i C++ kildekoden.

leifericf 2025-12-15T14:27:45.702609Z

I game dager lagde vi våre egne verktøy for tekst-input, oversetting og "eksportering" til spillmotoren. Men nå bruker vi no' Unreal-greier. Jeg er usikker på hvordan det funker nå faktisk. Noe jeg må sjekke ut en dag.

cjohansen 2025-12-15T14:38:10.460869Z

Vi lager fortsatt våre egne verktøy 😄

cjohansen 2025-12-15T14:38:24.279199Z

Vi vurderer sågar å lage litt Emacs-tooling for m1p 😄

leifericf 2025-12-15T14:39:45.337179Z

Vi har en del egne verktøy fortsatt men det er for det meste på infrastruktur og lavnivå nettverksgreier og andre områder som Unreal ikke har.

gunnar 2025-12-15T20:48:55.288359Z

Vi har en egen side i appen i lokal dev-mode for administrering av tekstene, med auto-oversetting fra engelsk til norsk og svensk via chatgpt (som kan overstyres ved adhoc). Ved manglende oversettelse logger appen en url til konsollet som man kan følge for å legge til tekstene. Kunne sikkert vært en HUD, men funker egentlig fint nok med konsoll-loggingen. (Hadde tenkt å prøve å lage noe enda mer smidigere rett i Emacs med gptel, men idéen har forblitt på hylla siden det er bare jeg som bruker Emacs på teamet.)

cjohansen 2025-12-15T20:49:26.364329Z

Snedig!

Zeniten 2025-12-15T13:55:37.780539Z

Hallo!

teodorlu 2025-12-15T17:39:33.453629Z

Mikrobloggeriet har nå live-statistikk, takket være den supre fyren bak Datascript med mer. https://mikrobloggeriet.no/stats | https://github.com/mikrobloggeriet/mikrobloggeriet.no/commit/0e0a443ea9c3f9ae984982cfe5bf6f76ae697520

🤩 1
teodorlu 2025-12-15T17:40:19.079979Z

Helt sjukt å bare "få" en ting uten å nesten betale noe! Har aldri i livet fått en ekte feature gratis fra en fyr på internett, som kan installeres og rulles ut i prod på under 15 minutter.

cjohansen 2025-12-15T17:59:13.039839Z

Hvordan lagrer den data?

teodorlu 2025-12-15T17:59:47.944529Z

Lokal duckdb-fil. På application.garden får man montert opp en liten lagringsplass som man leser via en systemvariabel.

cjohansen 2025-12-15T19:00:17.365339Z

Ah, kult. Jeg har aldri brukt duckdb, er det sqlite-ish?

teodorlu 2025-12-15T19:23:00.604829Z

Jepp, kliss likt! Samme modell, minus at duckdb er kolonneorientert, som gjør at når du har en duckdb-tabell i bunnen, er det lettere å gjøre operasjoner på hele kolonner. @chris441 gjør noe ganske magisk her: https://techascent.com/blog/just-ducking-around.html "zero copy" fra duckdb inn i et datasett, som gjør at SELECT effektivt er gratis, og andre kolonner blir regnet ut først når man spør etter resultater. Ytelsen er sykt god sammenliknet med alle andre alternativer jeg vet om.

gunnar 2025-12-15T20:59:19.982329Z

Kult! > This library was born out of a desire to have a basic understanding of my web projects’ visitors and a lack of desire to set up anything. Fint at han gjør dette for resten av oss da 😊

teodorlu 2025-12-15T21:14:50.283399Z

ja, helt supert! Han har brukt en uke, så jeg kan bruke 15 minutter. Flaks for meg!