clojure-norway

eaj 2026-02-25T08:21:12.321709Z

God morgen!

slipset 2026-02-25T11:27:32.008299Z

Lagde meg litt ny funksjonalitet idag. Det ble ganske langt fra funkis. Mer kråkereir.

🐦 2
2026-02-25T11:37:11.756689Z

Verneverdig!

oddsor 2026-02-25T12:26:12.751789Z

https://lister.artsdatabanken.no/rodlisteforarter/2021/28183 > Vurdering av kråke Corvus cornix Linnaeus, 1758 > ... > Arten er vurdert til livskraftig

oddsor 2026-02-25T12:27:19.035089Z

Livskraftig funksjonalitet?

slipset 2026-02-25T13:36:53.065059Z

Her er kråkeslott koden:

(defn- find-ref-type [metamodel target-type]
  (first (filter #(= (:name target-type) (:name %)) (:reference-types metamodel))))

(defn- ensure-type-exists!
  [{:keys [metamodel-sync-service] :as metamodel-refactor-service} ctx metamodel target-type]
  (if-let [ref-type (find-ref-type metamodel target-type)]
      ref-type
      (let [local-ref-type (-> target-type
                               (dissoc :model :index)
                               (update :_id #(str "local-" %)))
            updated-metamodel (update metamodel :reference-types conj local-ref-type)]
        (find-ref-type (metamodel-sync-service/sync! metamodel-sync-service ctx updated-metamodel) target-type))))

(defn change-reference-type*!
  [{:keys [reference-service] :as metamodel-refactor-service} ctx workspace-id references target-type]
  (let [workspace (workspace-service/query-one! ctx (pq/by-id workspace-id))
        metamodel (metamodel-sync-service/model! ctx workspace)
        workspace-specific-type (ensure-type-exists! metamodel-refactor-service ctx metamodel target-type)]
    (->> references
         (map #(assoc % :type (:id workspace-specific-type)))
         (reference-service/bulk-update! reference-service ctx))))

(defn- ensure-constraint!
  [{:keys [org-triple-service] :as metamodel-refactor-service} ctx constraint]
  (or (org-triple-query-service/query-triple! ctx constraint)
      (org-triple-service/create! org-triple-service ctx (assoc constraint
                                                                :_id (core/gen-id!)))))

(defn change-reference-type!
  [metamodel-refactor-service ctx references {:keys [referenceType]  :as constraint}]
  (let [target-type (or (entity/query-one! reference-type-repo/config
                                           ctx
                                           (reference-type-repo/by-name referenceType))
                        {:_id "4711"
                         :name referenceType
                         :line "solid"})]
    (postgres/with-transaction-on-org ctx
      (ensure-constraint! metamodel-refactor-service ctx constraint)
      (->> references
           (group-by :rootWorkspace)
           (reduce-kv (fn [_ workspace-id references]
                        (change-reference-type*! metamodel-refactor-service
                                                 ctx workspace-id
                                                 references
                                                 target-type)) [])))))
Hadde vært gøy å fått litt hjelp med å firkantifisere denne koden litt uten å mekke opp masse greier med effekter og sånt.

Ivar Refsdal 2026-02-26T08:15:32.705809Z

Eg ville ikkje hatt ein bang-function inne i ein reduce-kv (change-reference-type*!). Ville heller brukt doseq eller noko tilsvarande for det

slipset 2026-02-26T09:18:22.276919Z

Litt enig i det, men var usikker på om jeg hadde lyst til å returnere noe tilbake.

msolli 2026-02-25T11:46:20.066059Z

Morn!

hypirion 2026-02-25T06:16:01.714629Z

Morn!

boosja 2026-02-25T06:25:58.643329Z

Morn!

mokr 2026-02-25T07:09:08.396429Z

Morn!

cjohansen 2026-02-25T07:22:42.282349Z

Morn!

teodorlu 2026-02-25T07:27:07.800389Z

morrn! Trivelig å se mange av dere på meetup i går! Noterte meg at jeg knapt rakk å si hei til mange kjente fjes. Hørte fra flere at "Javazone var en intro til FunkIs, nå på runde to satt ting bedre", og kan bekrefte at det stemte jaggu for meg også. Mange finere poenger som jeg fikk med meg denne gangen nå som jeg hadde grovstrukturen under huden.

👏 4
Olav 2026-02-25T09:47:03.814779Z

Veldig bra opplegg i går! Synes egentlig også CRDT-presentasjonen var kjempespennende.

❤️ 1
☝️ 1
teodorlu 2026-02-25T10:16:58.312349Z

Enig! Veldig gøy at Teodor faktisk har satt seg ned og lest computer-science papers.

emil0r 2026-02-25T07:53:06.702829Z

Morn