Kompotov programerski bralni krožek #1: SICP
-Izvorna koda se nahaja na git.kompot.si.
@@ -214,46 +214,55 @@ Za bralni krožek se dogovarjamo prek (javne) mailing liste, na katero se lahko -
Srečanja
-Srečanja
+#13: četrtek, 28. 11. 2024 ob 18.45 v CTK
+#14: četrtek, 12. 12. 2024 ob 18.45 v CTK
++Pričeli smo s prvo vajo, izbrali smo igro stavkov kot spletno aplikacijo. +Dokumentacija je tukaj: plan za vaje. +
#12: četrtek, 14. 11. 2024 ob 19.15 v CTK
#11: četrtek, 31. 10. 2024 ob 18.45 v CTK
-#13: četrtek, 28. 11. 2024 ob 18.45 v CTK
+#12: četrtek, 14. 11. 2024 ob 19.15 v CTK
+#11: četrtek, 31. 10. 2024 ob 18.45 v CTK
+2.3.1: Citiranje (quotation) 2.3.2: Simbolno odvajanje (symbollic differentiation)
#10: četrtek, 17. 10. 2024 ob 18.45 v CTK
+#10: četrtek, 17. 10. 2024 ob 18.45 v CTK
#9: četrtek, 3. 10. 2024 ob 18.45 v CTK
+#9: četrtek, 3. 10. 2024 ob 18.45 v CTK
#8: četrtek, 19. 9. 2024 ob 18.45 v CTK
-#8: četrtek, 19. 9. 2024 ob 18.45 v CTK
+Nadaljujemo z drugim poglavjem. (2.2 - Hierarhicne podatkovne strukture in lastnost zaprtosti)
#8: sreda, 4. 9. 2024 ob 18.45 v CTK
-#8: sreda, 4. 9. 2024 ob 18.45 v CTK
+Pregled vsebine 2. poglavja.
@@ -263,23 +272,23 @@ Intervalna algebra: -#8: sreda, 21. 8. 2024 ob 19.45 v CTK
-#8: sreda, 21. 8. 2024 ob 19.45 v CTK
+Beremo poglavje 2.1.
#7: sreda, 24. 7. 2024 ob 19.45 v parlamentu
+#7: sreda, 24. 7. 2024 ob 19.45 v parlamentu
#6: sreda, 10. 7. 2024 ob 19.45 v CTK
+#6: sreda, 10. 7. 2024 ob 19.45 v CTK
#5: sreda, 12. 6. 2024 ob 18.45 v CTK
-#5: sreda, 12. 6. 2024 ob 18.45 v CTK
+Povezava do najave dogodka.
@@ -288,27 +297,27 @@ Beremo poglavje 2.1. Beremo prvo podpoglavje drugega poglavja Grajenje abstrakcij s podatki.zapiski
-zapiski
+#4: sreda, 29. 5. 2024 18.45 v CTK
-#4: sreda, 29. 5. 2024 18.45 v CTK
+Dogodek je tukaj. Preglejujemo naloge iz prvega poglavja.
#3: četrtek, 16. 5. 2024 18.45 v CTK
-#3: četrtek, 16. 5. 2024 18.45 v CTK
+Kot ponavadi je dogodek na našem mobilizonu.
@@ -319,9 +328,9 @@ Ker vsebuje poglavje veliko vaj, za katere nismo našli časa, smo se odločili Na srečanju smo skupaj reševali vajo 1.29.zapiski
- -#2: torek, 30. 4. 2024 18.45 v CTK
-#2: torek, 30. 4. 2024 18.45 v CTK
+Dogodek je tukaj.
@@ -340,9 +349,9 @@ Dogodek je -zapiski
-zapiski
+- tina (vaje, druga varjanta)
- lio @@ -351,9 +360,9 @@ Nadaljujemo z branjem poglavja 1.2, Procedures and the processes they generate.
#1: sreda, 17. 4. 2024 18.45 v CTK
-#1: sreda, 17. 4. 2024 18.45 v CTK
+Beremo uvod in do poglavja 1.2, približno 30 strani.
@@ -362,9 +371,9 @@ Beremo uvod in do poglavja 1.2, približno 30 strani. Link do dogodka na dogodki.kompot.si.zapiski
-zapiski
+- g1smo
- lio diff --git a/index.org b/index.org index 20acf1b..2cd14f1 100644 --- a/index.org +++ b/index.org @@ -14,6 +14,9 @@ Za bralni krožek se dogovarjamo prek (javne) mailing liste, na katero se lahko [[file:./tb.jpg]] * Srečanja +** #14: četrtek, 12. 12. 2024 ob 18.45 v CTK +Pričeli smo s prvo vajo, izbrali smo igro stavkov kot spletno aplikacijo. +Dokumentacija je tukaj: [[file:vaja/plan.org][plan za vaje]]. ** #13: četrtek, 28. 11. 2024 ob 18.45 v CTK ** #12: četrtek, 14. 11. 2024 ob 19.15 v CTK ** #11: četrtek, 31. 10. 2024 ob 18.45 v CTK diff --git a/vaja/plan.html b/vaja/plan.html new file mode 100644 index 0000000..607a239 --- /dev/null +++ b/vaja/plan.html @@ -0,0 +1,482 @@ + + + + + + + +
- tekstualna igra stavkov
+
-
+
- tista s sestavljanjem povedi je pa iz une igre, mi smo dostkrat igral, neki v smislu, da mora igrat 6+ ljudi in pol vsak napise na vrh lista eno stvar in pol prepogne in list krozi – po vrsti grejo neki takega: kdo, kdaj, kje, zakaj, s cim, kaj dela … pol pa ven loh pridejo kr zabavni stavki … in da je odprto na spletni strani skos naslednje vprasanje, ko se odgovori zadnja stvar (kaj dela), se izpise poved med ze dokoncane, in se zacne nova +
+ - igra v chickadee-ju
+
-
+
- klon she-bo? (https://www.myabandonware.com/game/she-bo-a6f) +
+ - igra v canvasu (preko hoot) - v brskalniku +
- Command line tool za prevode - prepis ponsapi-cli v guile +
- CI (continuous integration) sistem:
+
-
+
- https://codeberg.org/jjba23/byggsteg +
- tegale bi lahko uporabili ^ +
- ideja: imeti spletno stran, ki jo na njej sami lahko v zivo urejas (ima vgrajen urejevalnik) in v kolikor testi passajo, se kar sproti deploya +
+ - hash, ki je url +
- stevilo igralcev +
- GNU guix:
guix install artanis
+ - Debian:
apt install guix; guix install artanis
+ cd igra-stavkov
+art work
+- Kdo? +
- Kdaj? +
- Kje? +
- zakaj? +
- S čim? +
- Kaj dela? +
- v živo
++++Vsak igralec potrebuje listek in pisalo. Igralci skupaj odgovarjajo na +vprašanja, po vsakem odgovoru pa listek prepognejo in podajo naprej. Svoj +naslednji odgovor nato napišejo pod prepognjen del in spet podajo listek naprej. +Ko odogovorijo na vsa vprašanja, še enkrat podajo listek naprej naslednjemu +igralcu in preberejo cel stavek. +
+
+ - na naši aplikaciji
++++Na naši aplikaciji je igra zelo podobna. Izberete število igralcev in ustvarite +novo sobo za igranje. Povezavo do sobo pošljete soigralcem in po vrsti +odgovarjate na vprašanja, dokler ne izpolnite vseh. Vsakemu igralcu se na koncu +izpiše en sestavljen stavek. +
+ ++Ustvarimo nov fajl na lokaciji
+ +pub/index.html
: +++ +<html> + <head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>igra stavkov</title> + </head> + <body> + <h1>igra stavkov</h1> + + <h2>v živo</h2> + <p> + Vsak igralec potrebuje listek in pisalo. Igralci skupaj odgovarjajo na + vprašanja, po vsakem odgovoru pa listek prepognejo in podajo naprej. Svoj + naslednji odgovor nato napišejo pod prepognjen del in spet podajo listek naprej. + Ko odogovorijo na vsa vprašanja, še enkrat podajo listek naprej naslednjemu + igralcu in preberejo cel stavek. + </p> + + <h2>prek spleta (naša varianta)</h2> + <p> + Vsak igralec potrebuje računalnik z brskalnikom in internetno povezavo. Dobavna veriga obsega rudnike redkih kovin, silicij, proizvodnjo čipov, komunikacijsko mrežo, etcetera. + </p> + + <p> +Na naši aplikaciji je igra zelo podobna. Izberete število igralcev in ustvarite +novo sobo za igranje. Povezavo do sobo pošljete soigralcem in po vrsti +odgovarjate na vprašanja, dokler ne izpolnite vseh. Vsakemu igralcu se na koncu +izpiše en sestavljen stavek. + + <form> + <label for="num-of-players">Izberi število igralcev</label> + <input type="number" min="1" name="num-of-players" id="num-of-players"></input> + <input type="submit" value="igraj"> + </form> + </body> + </html> +
++Ker artanis privzeto ne prikazuje
+index.html
datoteke, mu to zaukažemo z vnosom v fajluENTRY
: +++ +(get "/" (lambda (rc) (redirect-to rc "index.html"))) +
++Sprememba se ne zgodi "avtomatsko", ampak moramo prekiniti proces
+ +art work
(Ctrl+C
), in ga ponovno pognati (art work
). Lahko ga pa poženemo tudi zart work -g
, načinu za razhroščevanje, ki ponovno naloži izvorno kodo, ko se le ta spremeni. ++Domača stran se nam zdaj naloži! +
+ + ++++
+
+
Table of Contents
+ +1. Plan za vajo
+2. predlogi
+-
+
+' +
+3. tekstualna igra stavkov p
+3.1. meta
++Sem pišemo plan za program igranja igre. Poskušamo kratko in jedrnato opisati prvi prototip, ki naj čimprej deluje in je zavoljo enostavnosti karseda podoben igranju v živo. Ob pisanju se poraja veliko idej, za katere je bolje, da se potencialno uvedejo kasneje, sicer se cilj delujočega prototipa sproti prehitro oddaljuje. +
+3.2. homepage
++Na home page imamo kratka navodila in formo nova igra s poljem stevilo igralcev. +Submitanje forme te pelje na zgeneriran link, ki ga posljes soigralcem. +
+ ++Na tem koraku se generira seja glede na število igralcev. +
+3.3. seja igre
++Meta Podatki +
+-
+
+Vsak igralec dobi svoj id (in session). Nato se mu po vrsti prikazujejo vprasanja in on izpolnjuje vprasanja. Novo vprasanje se ti pojavi, ko vsi odgovorijo na trenutno vprasanje (lahko imamo nek semaforcek, kdo je ze odgovoril). +
+ ++Igra "prepozna" obiskovalca nekako unikatno - lahko je session in cookie (kar se uporablja za user tracking), lahko pa je nek ID v browser local storage, ki zavaruje uporabnika pred cross-site trackingom. (@TODO tole je manjša komplikacija). Unikatna prepoznava je pomembna za deterministično prelivanje odgovorov. +
+ ++Ko oddaš odgovore, te pelje na link za rezlultate, kjer piše, koliko odgovorov igralcov še čakamo. +Ko so vsi oddali odgovore, se ti izpiše stavek, ki ga lahko prebereš ostalim igralcem. +
+3.4. program
++Izbrali smo artanis web framework: https://artanis.dev/ +Namestitev: +
+-
+
3.4.1. boilerplate
+
+Artanis ima orodje za terminal, imenovano art
. Z orodje mdr. pripravimo skelet novega projekta: art create igra-stavkov
.
+
+Strežnik potem lahko poženemo z ukazoma: +
+-
+
+Strežnik se nam odpre na naslovu http://127.0.0.1:3000 +
+ + ++
+
+Stran tako deluje samo lokalno, če jo želimo deliti z drugimi na omrežju, spremenimo konfiguracijo; v datoteki conf/artanis.conf
spremenimo host.addr = 127.0.0.1
v lasten IP naslov (v mojem primeru host.addr = 10.27.3.12
)
+Drugi potem stran vidijo na naslovu http://<ip_naslov>:3000
, v času in kraju pisanja tega dokumenta je to http://10.27.3.12:3000
(deluje pa samo CTK wifi omrežju, na katerega sem trenutno povezan).
+
3.4.2. navodila za igro
++Igro lahko igrata dva ali več igralcev. Igralci skupaj sestavljajo stavke, tako da vnaprej odgovarjajo na vprašanja: +
+-
+
-
+
3.5. Nova soba
+
+Zavoljo enostavnosti v conf/artanis.conf
omogočimo podporo za sqlite3 bazo (ki je v fajlu in tako nismo odvisno od dodatne programske opreme za shranjevanje stanja):
+
db.dbd = sqlite3 +db.enable = true ++
+In ponovno poženemo strežnik: art work -g
+
+Soba ima dve lastnosti; unikaten ID in število igralcev. +
+ ++Ustvarimo model zanjo; +
+