This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-09-11
Channels
- # announcements (7)
- # aws (52)
- # babashka (16)
- # beginners (49)
- # bristol-clojurians (1)
- # calva (2)
- # chlorine-clover (26)
- # cider (6)
- # clara (1)
- # clj-kondo (79)
- # cljfx (15)
- # clojure (82)
- # clojure-berlin (2)
- # clojure-czech (1)
- # clojure-europe (26)
- # clojure-france (91)
- # clojure-germany (48)
- # clojure-nl (7)
- # clojure-norway (99)
- # clojure-uk (54)
- # clojurescript (18)
- # code-reviews (9)
- # data-science (2)
- # datalog (15)
- # datomic (15)
- # depstar (20)
- # emacs (4)
- # events (1)
- # fulcro (30)
- # funcool (1)
- # graphql (1)
- # helix (5)
- # jobs (6)
- # kaocha (12)
- # leiningen (8)
- # luminus (1)
- # malli (13)
- # off-topic (73)
- # pathom (12)
- # portal (11)
- # portland-or (1)
- # re-frame (10)
- # reagent (1)
- # reitit (44)
- # remote-jobs (1)
- # ring (19)
- # shadow-cljs (64)
- # tools-deps (32)
En intressant sak i artikeln är prepare-funktionen. Detta påminner om semantisk model i DSL (Fowler), där man inte kodar i text som parsars, men mot en model. Fördelen med att ha en model istället för data, är att man kan ha andra prepare-funktioner mot samma model, t.ex. en som genererar PDF.
det viktigste er kanskje ikke at GUI-et har null kjennskap til domenet - men at domenet har null kjennskap til GUI-et!
er mest usikker på det med navn, enn så lenge har GUI-et mitt navn fra domenet. Men strukturen på dataene er totalt annerledes i domene og GUI
Teknisk sett är det prepare-funktionen som har kunskap till bägge sidor, men vi (programmerare) kan ju inte slänga vad som helst på domenet och GUIt, och hoppas att detta bara kommer att fungera, så vi har också den kunskapen.
Ref den bloggen og generiske komponenter. Er det noen som har erfaringer med https://github.com/day8/re-com (https://re-com.day8.com.au/#/introduction)? Er litt skeptisk til lock-in-effekten (utvalget tilgjengelige komponenter + Bootstrap), men når det kommer ut av samme sfære som re-frame, så heller jeg mot å gi det en sjanse fremfor å fortsette å lage generiske komponenter fra scratch.
Mener å huske at maintaineren av re-frame sa noe om dette på the clojurescript podcast (men husker ikke hva han sa 🙂
Hørte på den. Om jeg ikke husker feil så brukte han det vel mest til bedriftsinterne GUIs der man fyller inn diverse info. Da er kanskje ikke fokus at det skal se så sexy ut :) Jeg får vel bare teste litt i et eget prosjekt og se om det gir mersmak.
I det minste er de veldig gode å bruke som referanse for best practice på komponenter. Tror flere av komponentene inneholder eksempler for å løse text input uten cursor-hopping og slikt
Mener å huske at han finnen sa på clojurescript podcast at det var en liten mengde hack som måtte til for å fikse hopping i text-input…
Når er det man typisk støter på cursor-hopping? Er det f.eks. når man forsøker å “pretty printe” input ala kredittkortnr med mellomrom?
Sikkert da også, men enkleste repro er vel hvis brukeren piler tilbake, og prøver å skrive i midten av en tekst
Mulig du vet mere om dette, men jeg tror det er litt spesielt hvis man har en "Controlled Component": https://reactjs.org/docs/forms.html#controlled-components
Min context er at jeg sitter og hamrer løs på et input felt i egen re-frame app, uten å klare å trigge noe som gir dårlig sluttbrukeropplevelse. Jeg filtrerer der bort ugyldig input, men forsøker ikke å pretty printe.
det React gjør er vel å ikke sette value hvis man synkront i en onChange setter value til det samme som den allerede er - for å unngå at cursoren hopper
Vel hvis du lager komponenten via Reagent/re-frame har de jo den workaround. I dag tror jeg man bare opplever det hvis man bruker en js component som man ikke kan legge den hacken til.
Er lett å ta for gitt alt man slipper å frustrere seg over når man lever i Clojure(script) land 🙂
Noe helt annet. Får dere brukt Datomic på en fornuftig måte uten å måtte betale lisens? Datomic gir så fullstendig mening når jeg leser doc, ser videoer osv, men jeg sitter igjen med følelsen av at man enten må betale, gå for betalingsutsettelse (starter lisens) eller bruke extra-light versjonen (in memory). Jeg skulle ideelt sett hatt en on-prem versjon som krever betaling ved gitte backends, redundans, scale eller annet som kommer etterhvert, men som lar meg bruke alle konseptene fra dag én for å kunne introdusere teknologien og vise at den har noe for seg, før man så evt betaler. Er jeg helt på viddene, eller gir dette et greit bilde av situasjonen (gitt at de ikke har oppdatert lisensbetingelsene i det siste)?
datomic sin lisensmodell har blitt ganske grei nå da, du betaler vel bare "per system" eller noe sånt, ikke per CPU/instans
og så har de jo starter edition som er gratis for alltid, men bare får oppdateringer det første året
Har du forresten noen gang “manipulert” tiden (i mangel av et bedre ord) i Datomic slik at “T” ikke er tiden man la inn data i Datomic, men timestamp fra en logfil? Datomic sine features må kunne løse enkelte problemer veldig elegant om man får til det på en god måte.
så du kan ikke sette inn "gammel" data hvis du får noe fra en sensor med litt latency elns
@mokr Har använt re-com till tidigare projekt. Funkar OK, men jag är inte så förtjust i att de inte har en map för properties, utan istället dynamiskt sätter samman det. Det gör det svårare att sätta ihop vad du vill ha programmatiskt när du behöver det. Utöver det så är det lite begränsat med komponenter
Just nu så använder vi https://ant.design vilket funkar någorlunda
Största problemet där att det är svårt att ändra på stylingen då de mixar styling med javascript i en salig soppa 😞
ref Cursor hopping. Stötte på problemet när jag skrev https://github.com/emil0r/ez-wire
Säg att du har en komponent som är en textarea, och du uppdaterar mitt i. Då hoppar cursorn till, vilket är extremt irriterande om du sitter och skriver på en längre mening
Funkar rätt bra, till dess att du behöver tvinga en revert till ursprungligt state. Tittade på problemet, men kom inte fram till en lösning pga tidsbrist
Tror jag kommer behöva göra en helt ny form för att tvinga en re-render som börjar ifrån origin state
@augustl Jeg var ikke spesifikk nok. Jeg tenkte på scenario der man har en tom database og populerer den med kronologiske loggdata i en gjennomkjøring. Jeg forstår det som at Datomic kan takle. Loggene jeg forholder meg til er typisk sprett på flere noder, så jeg må i tilfelle flette de før innlegging. @emil0r Takk, både begrensing mht antall komponenter og args (map destructuring) fremfor faktisk map i input plaget meg litt. Han skrev vel litt om hvorfor det siste ble valgt, uten at jeg husker hvorfor eller om jeg i det hele tatt leste den delen. Jeg tenker det er lett for at det blir en salig suppe når man prøver å lage generiske komponenter som skal passe for mange. Spesielt når det skal styles mye eller bygge på f.eks. Bootstrap. For meg synes det som en suksessfaktor at det er lett å definere overrides eller tillegg. Eksempelvis legge til eksta klasser eller overstyre de helt og tilsvarende for tooltips og annet.
Hans Hübner hadde en bra talk (kritisk) on Datomic for noen år siden. https://youtu.be/0y6QK813new
En ting (som @augustl og @emil0r ) har tatt opp m Datomic er at du får tx-time, men må selv modelere domene-tid.
Nå er det litt for lenge siden jeg leste Datomic docs og kjapp googling gav ikke umiddelbart svaret. Det jeg håper å få “gratis” fra Datomic er svaret på slikt som “hva var min favorittrett 2020.09.11 12:00:02" uten å måtte finne siste endring av attributtet før det tidspunktet. Verdiene attributtet har har hatt i et tidsrom er også av interesse.
Så er jeg usikker på om jeg er avhengig av tx-tid eller domene-tid for å kunne svare på det
er jo et klassisk "time series"-problem dette her. Skulle Datomic støttet noe annet, måtte man ha bygget databasen på nytt fra punktet du ønsker å sette inn, ingen vei utenom
nå husker jeg ikke hva jeg skjønte var ulempen med Crux.... hadde en a-ha-opplevelse en gang som jeg har glemt
eller, relasjonell er feil ord, for datomic er vel ikke relasjonell.. Men, crux har ikke noe for "ting som peker på annen ting"
Du kan ha refs till ett annat dokument, och det kan sökas i en oändlig kedja ner som en graf
i Datomic så kan en fact peke på en annen fact - og du får ikke lov til å peke på en fact som ikke finnes