goood morn!
Morn!
Jeg har kviet meg for "vibe-koding" lenge nå og er fortsatt skeptisk. Men jeg har også lært at, når jeg reagerer sterkt negativt på noe, uten å ha noe særlig innsikt, er det et tegn på at jeg bør teste det ut. Nå har jeg "vibe-kodet" to apper fra scratch for å eksperimentere og lære litt. Det har vært en interessant opplevelse! Hva tenker folket om "AI-drevet koding?" Nå sitter jeg og tenker at det kan være et fantastisk verktøy for folk som ikke er så tekniske til å lage kjappe prototyper som de kan vise til "ekte" utviklere for å kommunisere behovene sine. Det er også en lynrask måte å prototype på. Men jeg vikke aldri putta koden i produksjon.
Du bruker det til TS. Ville du brukt det til Clojure?
Bruker det til Clojure også, men mest som en ide-generator.
Interessant. Jeg er litt redd for at det generelle kunnskapsnivået vil gå ned ifm AI-generert kode. Spesielt når man skriver i et språk man ikke helt behersker. Det blir da lett å akseptere løsninger som man ikke helt skjønner, men som tilsynelatende fungerer.
Dette er bare mine bekymringer, og det er mulig at det ikke er noen endring fra før AI.
Så jeg kom over denne funksjonen hos oss:
(defn run-query-when-available!
"Run the query, retrying for a while when we hit the internal limit on nr.
concurrent queries or when the server is temporarily down."
([graph-service ctx permission-boundary query]
(run-query-when-available! graph-service ctx permission-boundary query 50))
([graph-service ctx permission-boundary query num-retries]
(trace-service/with-span! ::run-query-when-available! nil
(loop [attempts 0, delay 100, start (. System (nanoTime))]
(let [res (run-bounded-query! graph-service ctx permission-boundary query {})
retriable-error? (or (= :ratelimit (:status res))
(:service-unavailable? res))]
(if (and retriable-error? (< attempts num-retries))
(do ; retry later
(util/sleep! (int delay))
(recur (inc attempts) (* delay 1.07) start)) ; 1.07^50 -> 40s in total, last delay 2.7s
(do ; success or too many retries
(when retriable-error?
(when (= :ratelimit (:status res))
(metrics-service/prom-inc! metrics-service/registry
::metrics-service/graph-service-ratelimited-count
{:org (core/ctx->org-label ctx)} 1))
(log/infof "Too many (%d) failed attempts to run a graph query, over the period of %d ms. Last error: %s"
attempts
(math/round (/ (double (- (. System (nanoTime)) start)) 1000000.0))
(:error res)))
(cond-> res
(pos? attempts)
(medley/update-existing
:error #(format "Query failed across %d attempts. Last error: %s"
attempts %))))))))))
Når jeg ser på denne ser jeg at det er sånn ca http://circle.ci/wait-for Jeg fikk Claude til å foreslå en impl, som den gjorde omtrent korrekt, bare det at wait-for ikke har støtte for exponential backoffMen, jeg syntes at gru-tillegget for å skrive om denne til wait-for var for stort, og det skulle vise seg at det ikke gikk.
Jeg kjøper det å bruke AIen til sparring og til forslag. Blir litt som intelligent rubber-duck.
I motsetning til de udugelige kollegene vi ellers må rubberducke med 😂
(Skjønte hva du mente, altså 😅 )
> In graph_service.clj, there is a fn run-query-when-available! that’s a bit opaque, could you > please explain what it does?
> Purpose: Resilient query execution with exponential backoff for transient failures. > > Key mechanics: > > 1. Retry logic: Attempts graph query up to 50 times (configurable) when encountering: > - Rate limits (too many concurrent queries per org) > - Service unavailable (Gremlin server temporarily down) > 2. Exponential backoff: > - Starts at 100ms delay > - Multiplies by 1.07 each retry > - Total retry period: ~40 seconds (1.07^50) > - Final delay: ~2.7s 3. Flow: > Run query → Hit rate limit or unavailable? > Yes → Sleep with exponential delay → Retry No → Return result (success or non-retriable error) > 4. Exit conditions: > - Success (query returns result) > - Non-retriable error (malformed query, auth failure, etc.) > - Max retries exhausted (logs failure, updates error message with attempt count, returns error) > 5. Observability: > - Tracks attempts and total time elapsed > - Records rate limit metrics to Prometheus > - Logs detailed failure info when all retries exhausted > > Why it exists: The graph service has per-org concurrency limits (max-runs-per-org: 12) and the Gremlin server can be temporarily unavailable during deployments/pod moves. This function > makes the system resilient to these transient conditions rather than failing immediately.
Jeg ba den igjen skrive om til wait-for og den kom et stykke på vei, men jeg må nok jobbe med den et par iterasjoner
Jeg bruker nå Claude daglig. I blant, men ytterst sjelden bruker jeg den til å prototype opp noe. Men det er egentlig ikke “jobben” min. Det jeg bruker den mest til er å editere tekst for meg som jeg synes er plunder og heft i TS, og jeg bruker den til å fikse TS feil når typene ikke alltid går opp. Det er så og si alltid jeg som bestemmer hva som skal gjøres, når det skal gjøres og hvordan det skal gjøres, og jeg lar den sjelden skrive mer enn 10 linjer kode av gangen. Gjør den meg raskere? Jeg er usikker. Gjør den at jeg får startet på oppgaver der det er stort gru-tillegg? Helt sikker.
Claude er også rimelig dyktig på å omsette en bruker beskrevet feil “Når jeg gjør x, y, z så skjer æ, mens jeg forventer ø til en fiks, noe jeg synes er veldig impoenerende.
Morn!
Morn! Er på dag fire uten ☕ mens jeg venter på reservedeler til kaffekverna. Har gjort det til et lite eksperiment for å se hvordan jeg takler å bytte ut kaffe med te. Resultatet så langt? Ikke noe problem. Og som bonus drikker jeg nå færre kopper per dag.
kaffe har blitt en slags del av morgenritualet mitt. Og det er litt rart — det handler mer om å lage den kaffen enn å drikke den første koppen 😂 Jeg tenker noen ganger at "jeg dropper kaffe i dag, hakke tid". Så har jeg i stedet for å lage kaffe kasta bort 20 minutter på tull. Hvis jeg bare hadde satt på kaffen hadde jeg brukt minutter på å lage kaffen og fått kaffe!
Jeg har faktisk måttet slutte å drikke kaffe på legens anbefaling pga. mageproblemer for å se om det hjelper. Min siste kopp kaffe var på lørdag 4. oktober, så snart en hel uke nå.
Huff, det er kjipt
Dag 2 og 3 var ganske ille med hodepiner og sånt. Jeg fikk kaffe med melk (mest melk) som toåring av foreldrene mine og har drukket kaffe hver dag hele liven siden det 😂
podcast science guy sier man skal vente minst 1 time fra man våkner til man drikker kaffe! Så det har jeg begynt med, uten å grave noe videre eller undersøke noe som helst om det har noe effekt i praksis eller er sant i utgangspunktet
Best å stole på podcast science guy!
Også kommer det sikkert en slik en med morgenkaffe-adapter snart:
tror den teipen over munnen kunne ha reddet meg mange ganger i våken tilstand og...
Apropos kaffe. Kan ikke skryte nok av kaffen og sørvisen til Aya (kona til @leif.eric.fredheim). Vi har bedriftsavtale, og da bare sender jeg en e-post og vi får ekstremt god kaffe levert på døra. Anbefales (igjen)! https://hibikaffe.no/
Podcast science guy selger også athletic greens 😂
Jeg er ille glad i kaffe, men har allikevel et avslappa forhold til det. Kan godt gå en dag uten kaffe uten at det er noe problem, jeg får ikke hodepine osv. Jeg er mest situasjonsavhengig av kaffe. Syns det er ille trivelig med en kaffekopp til datamaskin-arbeid feks. Men en søndag der jeg ikke sitter med laptopen kan jeg fort glemme å drikke kaffe.
Forøvrig får vi også kaffe fra Aya, via @sardtok, rett som det er. Veldig bra 🙂
Sorry, jeg er litt uinformert på innkjøpsfronten. Jeg bare drikker det som dukker opp og betaler i ny og ne 😄
Hun driver hele sjappa alene og gjør alt selv, og setter stor pris på alle kundene sine. Tusen takk 🙇♂️
Ja, den er grom. Spesielt når det er bærtørket fra Etiopia. Det å skippe en dag, føles ikke som et reelt alternativ 😄
Det kan godt tenkes at vi skulle hatt bedriftsavtale, men da hadde vi mistet variasjonen når vi kjøper fra forskjellige brennerier. Men godt mulig det ikke er verdt den overheaden med at vi må ordne så mye selv.
Jeg tror jeg er mer psykologisk enn fysisk avhengig av kaffe.
En morgen uten en bolle med kaffe er liksom ikke verdt å stå opp til.
det har vært min hovedmotivator til å stå opp av senga: tanken på en kopp kaffe ☺️
Blir alltid glad når jeg tenker på det! Men overraskende nok så går det greit uten
Morn!
Morn!
Morn!
Mrn