Fork me on GitHub
#clojure-norway
<
2023-11-07
>
cjohansen07:11:36

God morgen! Dagens blogginnlegg er strengt ikke så Clojure-nært, men siden @larskristian.maron719 aktualiserte det så veldig i går kveld tillater jeg meg å reklamere litt 😅 https://parenteser.mattilsynet.io/fulltekstsok/

👀 1
🍌 5
💯 2
odinodin07:11:27

Fantastisk kul illustrasjon. Har dere designere på teamet eller er det AI-generert?

cjohansen07:11:20

AI 😳 😅

odinodin07:11:29

At søkeboksen henger på baksiden av skjermen var et hint om det 😄

😂 5
🤯 1
leifericf07:11:43

Tips: Hvis bildet er laget med Midjourney kan du hente ut seed og gjenbruke det til nye illustrasjoner for å gjenskape samme (eller… en noenlunde lik) karakter og stil til fremtidige illustrasjoner. Du finner seed ved å reagere med brev-emojien ( 📧) på posten med den oppskalerte varianten i Discord. Da kommer detaljert info i PM fra botten.

👍 1
cjohansen07:11:38

@U0PS4MS80 haha, det hadde jeg ikke lagt merke til en gang 😂

cjohansen07:11:35

Bra tips @U01PE7630AC! Dette er dall-e via bing. Den traff på tonen til den første bananen helt av seg selv. Mulig den ikke har så stort spillerom 😄

👍 1
Zeniten11:11:59

Nice, meget god lesning som fjernet mye av mystikken rundt søkemotorer for meg. 🙏 I en eventuell oppfølging ville jeg vært interessert i å lese om hva mer som skiller etablerte søkemotorer som Elasticsearch fra en slik liten selvskrevet motor. Noen ting kan jeg tenke meg til, men det er kanskje noen flere bestanddeler som ikke er åpenbare for meg som du har kjennskap til.

🙏 1
Zeniten11:11:38

Og jeg lurer på om jeg nå kommer til å skrive min egen lille versjon i Clojure. 🙂

cjohansen11:11:56

Det er en artig øvelse! 🙂

cjohansen11:11:12

Det kommer mer på temaet etterhvert

Zeniten11:11:45

Herlig. 😄

Zeniten13:11:49

Da er jeg på vei!

Zeniten13:11:22

Jeg skal se hvor langt jeg kommer med det jeg husker fra artikkelen, i første omgang. 😄

cjohansen08:11:40

I dag kom det en liten oppfølger som tar for seg vekting: https://parenteser.mattilsynet.io/sok-vekting/

6
leifericf08:11:24

@U9MKYDN4Q Nice! Vet du forresten om konseptene "https://en.wikipedia.org/wiki/Stemming" og "https://en.wikipedia.org/wiki/Tf–idf" lingvistikk og tekstsøk? Det er en teknikk vi ofte brukte for å implementere søkerelaterte ting i ML-verdenen når jeg jobbet som data scientist. Kanskje det kan brukes i blogpost # 3 🙂

cjohansen08:11:09

tf-idf har jeg ikke hørt om, men stemming brukte vi mye på NRK 🙂

👍 1
cjohansen08:11:37

ah, jo, tf-idf har jeg vært borti ser jeg 😄

👍 1
leifericf08:11:04

Det er ganske "klassiske" eller "oldschool" teknikker som kanskje ikke er like hotte mer nå som vi har LLM-er.

leifericf08:11:08

Men fortsatt høyst relevante!

cjohansen08:11:15

Det gjelder alt jeg har skrevet om 🙂

leifericf08:11:01

Ja, hehe! Jeg synes å observere at du holdt på å gjenoppdage TF-IDF på egenhånd 😛

cjohansen08:11:30

ja, det er godt mulig

cjohansen08:11:50

jeg skal ikke skryte på meg mer kjennskap til dette enn at jeg husker å ha lest dette når jeg ser på wikipedia-artikkelen 😄

👍 1
leifericf08:11:31

Det var forresten ikke ment som kritikk på noen som helst måte. Jeg elsker når folk gjør ting fra first principles.

cjohansen08:11:45

Tok det ikke som kritikk, takker for innspill 🙂

👍 1
cjohansen08:11:35

Jeg er langt fra noen ekspert på dette temaet. Jeg har snart tømt meg for det jeg har 😂

leifericf08:11:35

Og jeg forstår meg heller ikke på det teoretiske og matematiske bak disse konseptene så det er sagt. Jeg bare brukte Python libs uhemmet 😂

leifericf08:11:47

Den karen her skriver en del bra om NLP: https://www.linkedin.com/in/dkjapan/

👍 1
leifericf09:11:29

Jeg har i alle fall ikke undersolgt arbeidet dere gjør og bloggen deres internt her hos oss 😅

Zeniten10:11:16

Ty, Christian, gleder meg til å lese.

👍 1
teodorlu07:11:33

Hvorfor bananene, forresten?

leifericf07:11:33

Bananer er matparanteser!

🎯 2
😁 1
👍 1
cjohansen07:11:39

Det gikk sånn: "vi trenger noe pønt" - "hva med noen paranteser?" -"burde vært mattema" - bananer!

😄 1
👍 1
Zeniten11:11:06

Jeg ser for meg at bananene etter hvert får mer og mer liv, og så introduseres kamerater, fiender og bekjentskaper av disse i form av pølser, agurker osv. 😄

❤️ 1
😁 1
🌭 1
teodorlu11:11:46

Rainbow parens - bare med frukt! Lukter jeg en minor-mode til Emacs?

😯 1
leifericf12:11:18

Hahaha! Ja til å erstatte paranteser med random matchende mat-emojis 😂

leifericf12:11:04

Det blir "Delicious Parens" istedenfor "Rainbow Parens." "Delicious parentheses for hungry developers."

leifericf12:11:04

Enkelte funksjoner som slurp og barf er jo allerede tematiske ut av boksen.

😁 1
infosophy07:11:04

Parentesformet mat?

parens 2
infosophy07:11:18

G’morn, fresten!

augustl08:11:41

god morgen!

magnars08:11:55

Morn morn! Ja, forklaring av bananene er å finne på forsiden av http://parenteser.mattilsynet.io 😅 Det er det mest Clojure-vennlige forvokste bæret i naturen.

😄 3
💯 1
👍 1
augustl08:11:23

iOS-utviklere + churn = sant

1
😔 2
😮 1
augustl08:11:08

“I hate that function” - R. Hickey

cjohansen08:11:35

Indeed. The sitatet må nesten leveres muntlig, så man får med tonefallet.

leifericf09:11:31

Aha, er det derfor vi har namespacet hiccup2.core? Dette forvirret meg en del for et par uker siden, fordi alle eksemplene jeg fant brukte hiccup.core/html, som ble flagget som deprecated i VS Code. Det tok meg litt tid å finne en funksjon med nøyaktig samme navn lå under hiccup2.core . Først trodde jeg at jeg hadde en gammel versjon av selve Hiccup-pakken fra Maven.

augustl09:11:46

ah, den løsningen har jeg ikke sett før faktisk, altså at man bare embedder v1 i v2

augustl09:11:11

idéelt sett unngår man jo å lage v2 og selvfølgelig, men hiccup ble jo laget for mange herrens år siden når Clojure var nytt så det er sikkert masser av gode grunner til en v2

leifericf10:11:42

Det ser ut som at hovedhensikten bak hiccup2 har å gjøre med automatisk escaping av strings. Det kunne vel like greit vært hiccup.core/html2 (men det ville vært forvirrende, fordi det ser ut som versjon 2 av HTML) eller hiccup.core/html-escaped. Kanskje det er derfor de gjorde det sånn de har gjort det.

teodorlu08:11:41

til sammenlikning, hvor mange deprecations ender man opp med hvis man deprekerer i stedet for å fjerne?

(defn lookup-vars [namespaces ns-match? var-match?]
  (->> namespaces
       (filter ns-match?)
       (mapcat ns-interns)
       (map val)
       (filter var-match?)
       (sort-by symbol)))

(lookup-vars (all-ns)
             #(str/starts-with? % "clojure")
             (comp :deprecated meta))
;; =>
(#'clojure.core/add-classpath
 #'clojure.core/agent-errors
 #'clojure.core/clear-agent-errors
 #'clojure.core/replicate
 #'clojure.test/file-and-line
 #'clojure.test/file-position)
6! (bare hvis man er Rich Hickey og har god tid)

cjohansen08:11:00

Tror ikke han er interessert i å deprecate ting lenger heller

cjohansen08:11:42

Dette er så fundamentalt for ham, at da han ble spurt "Hvis du skulle gjort Clojure på nytt nå, hva ville du gjort annerledes?" så klarte han ikke engang å svare på spørsmålet, for han syns det var et uinteressant premiss 😅

😻 1
😅 1
😄 1
leifericf09:11:41

Rich Hickey minner meg om Richard Feynman noen ganger. Ikke på grunn av navnet, men fordi han ikke aksepterer spørsmål uhemmet og svarer på spørsmål med nye spørsmål som fremhever hvorfor det initielle spørsmålet var dårlig. https://www.youtube.com/watch?v=36GT2zI8lVA, hvor han river den stakkars journalisten et nytt høl for å stille "why"-spørsmål 😂

👍 1
leifericf09:11:40

Jeg tror egentlig det Hickey og Feynman har til felles er at de er "from first principles"-tenkere. Sokrates, Bertrand Russell og Mark Twain hadde også lignende karakteristikker, selv om det var svært annerledes i uttrykksformene sine.

👍 1
leifericf09:11:21

Når Feynman i den videon sier: > "I can't explain that attraction in terms of anything else that's familiar to you." Det kan generaliseres: > "I can't explain [X] by comparing it to concepts you're already familiar with." Det minner meg om Hickey sin presentasjon "Simple Made Easy." For å kunne bli forklart X må en forstå noe annet som ligner på X. Og noen ganger finnes det ikke noe annet som ligner på X. Slike ting, som ikke kan sammenlignes med noe annet, er svært vanskelig å forstå. Hickey er utrolig flink til å bruke analogier og sammenligninger til å forklare ting. Som Hickey var inne på i sin presentasjon: Hvor "lett" eller "vanskelig" det er å forstå noe, avhenger av hvor "langt unna" det er fra andre ting en allerede forstår. En god lærer/mentor starter med å danne seg en forståelse for hva eleven allerede forstår, og benytter elevens eksisterende kunnskap til å "bygge bro" til nye konsepter.

🔥 2
leifericf09:11:39

Det var dagens ADHD-avsporing 😅

😂 1
cjohansen09:11:21

😄 Veldig gode observasjoner!

teodorlu11:11:58

> det finnes konsepter jeg ikke klarer å forklare til deg her, nå, muntlig på ti minutter Jeg har funnet litt ro i akkurat det. Noen ganger jobber vi med vanskelige konsepter, de trenger tid. Vi kommer så langt som vi gjør på den tiden vi har!

teodorlu11:11:58

> hvor han river den stakkars journalisten et nytt høl for å stille “why”-spørsmål Hvis man spør hvorfor, hvorfor, hvorfor tror jeg man lett ender opp med å forklare alt ut ifra defininsjoner, i stedet for eksempler. Ikke alle samtaler bør bunne ut i filosofi 😂

👍 1
leifericf09:11:31

Aha, er det derfor vi har namespacet hiccup2.core? Dette forvirret meg en del for et par uker siden, fordi alle eksemplene jeg fant brukte hiccup.core/html, som ble flagget som deprecated i VS Code. Det tok meg litt tid å finne en funksjon med nøyaktig samme navn lå under hiccup2.core . Først trodde jeg at jeg hadde en gammel versjon av selve Hiccup-pakken fra Maven.

cjohansen10:11:59

Overhørt på kontoret: "Det var litt mer liv i det kjøttstykket der!" 😂

🥩 3
🕺 1
leifericf10:11:43

Jeg håper ikke de refererte til en kollega 😂

cjohansen11:11:00

Det tenkte jeg også idet jeg hørte det bak meg 😂

😂 1
leifericf11:11:51

"Har du prøvd å pirke på det med en pinne?"

augustl15:11:03

(partition 3 (interleave [1 2 3] [:a :b :c] ["foo" "bar" "baz" "maz"])) eller (map list [1 2 3] [:a :b :c] ["foo" "bar" "baz" "maz"]) for å iterere igjennom et knippe lister som “hører sammen”? 🍌 Begge to returnerer ((1 :a "foo") (2 :b "bar") (3 :c "baz")) 🍌

augustl15:11:22

endte opp med map selv, men blir av ukjente årsaker litt emosjonelt forstyrret av å sende inn list til map på den måten

cjohansen15:11:01

Kan sende inn vector i stedet hvis du vil 😄

leifericf15:11:41

Nå fikk jeg flashbacks til https://apidock.com/ruby/Array/zip ♦️ Jeg husker at jeg likte det navnet så godt den gang fordi det fikk meg til å tenke på elementene i hvert array som taggene på en glidelås og hvert array som den éne siden av glidelåsen, typ "flett disse sammen og ignorer overflødige tagger."

terjesb15:11:56

cccccbhcikilklflvctvgnvlfucueueegbdftjlileff

teodorlu16:11:41

Som om jeg skulle sagt det selv! For en dag.

😂 1
augustl18:11:26

:thinking_face: :thinking_face: :thinking_face:

leifericf19:11:11

🙈 🙉 🙊