diff --git a/.github/workflows/table-lint.yml b/.github/workflows/table-lint.yml new file mode 100644 index 0000000..4c69d93 --- /dev/null +++ b/.github/workflows/table-lint.yml @@ -0,0 +1,25 @@ +name: "table lint" + +on: + push: + paths: + - main + pull_request: + paths: + - "presentations/**" + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.22' + + - name: Run linter + run: make lint diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b9f0e4b --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +ROWS=15 +FILE="README.md" + +build: + ./scripts/del-existing-rows.sh $(ROWS) $(FILE) + + go run scripts/generate-table.go -path ./presentations -out scripts/data.csv -rows $(ROWS) + cat scripts/data.csv | go run moul.io/mdtable csv > scripts/table.md + go run github.com/campoy/embedmd -w README.md + # Clean up + rm scripts/data.csv scripts/table.md + + ./scripts/del-codeblock.sh $(FILE) + +lint: + cd ./scripts && go run lint.go \ No newline at end of file diff --git a/README.md b/README.md index b3afbbc..ac8b86c 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,31 @@ -# workshops +# gno.land workshops -This repo contains materials that can be used to organize workshops or make presentations. +This repo contains materials that can be used to organize workshops or make +presentations. -## History +## Previous workshops & talks -| Date | Lead | Title | Documentation | Recording | Level | -|-------------------|----------------|-----------------------------------|----------------|-----------|----------| -| 03.16.2023 | Miloš Živković, Gno.land Core | How to Build a Forum in Gno.land | [Tutorial](https://hackmd.io/iB9CgSeZRwac9fbJTR7r2Q?view) | [Recording](https://www.youtube.com/watch?v=gmP-mH-64HA) | Beginner | -| 01.20.2023 | Miloš Živković, Gno.land Core | Gno.land Demo | No documentation | [Recording](https://www.youtube.com/watch?v=-BlnEXCs0eI) | Beginner -| 06.26.2023 | Zack Scholl, Gno.land Tinker | Go to Gno: How to build a microblog | [Tutorial](https://github.com/gnolang/workshops/tree/main/presentations/2023-06-26--go-to-gno--schollz) | [Recording](https://www.youtube.com/watch?v=F-_dadxcRJM&feature=youtu.be) | Beginner -| 08.26.2023 | Jae Kwon, Founder of Gno.land | Gno.land: A Transactional Paradigm of Reality | [Presentationk at Blockchain Application Stanford Summit] | [Recording](https://www.youtube.com/watch?v=Dx8dI6evcP0&t=3s) | -| 09.26.2023 | Morgan Bazalgette, Gno Core Team | Chess the Gnolang Way | [Tutorial](https://github.com/gnolang/gnochess/blob/main/tutorial/01_getting_started/README.md) and [resources](https://gnolang.github.io/workshops/presentations/2023-09-26--chess-the-gnolang-way--morgan/slides.html) | [Recording](https://www.youtube.com/watch?v=JQh7LhqW7ns) | Beginner -| 10.12.2023 | Zack Scholl, Gno.land Tinker | Go to Gno: Generating Audio with Smart Contracts | [Tutorial] | [Recording](https://www.youtube.com/watch?v=lmmUIEHhdqA) | Beginner +[embedmd]:# (scripts/table.md) +|Date |Title |Speakers |Presentation |Recording | +|---- |----- |-------- |------------ |--------- | +|2024-09-23 |Distributed Communities - How to build timeless and decentralized apps, with Go |@thehowl |[Slides](presentations/2024-09-23--distributed-communities-morgan/slides.reveal.pdf) |--- | +|2024-08-20 |A gentle intro to gno.land |@leohhhn |[Slides](presentations/2024-08-20--gentle-intro-to-gnoland--leon/presentation.pdf) |[Video](https://www.youtube.com/watch?v=hTGeG0z09NU) | +|2024-08-05 |Intro to gno.land |@leohhhn |[Slides](https://docs.google.com/presentation/d/1tnplCWxhg-RFatDS3w1iJnO0vSfBAuw2ZA0ommNJQOU/edit?usp=sharing) |--- | +|2024-07-13 |Gno: Examples and Comparisons |@moul |[Slides](https://gnolang.github.io/workshops/presentations/2024-07-13--nebular--manfred/presentation.slide.html#1) |[Video](https://www.youtube.com/watch?v=Zsl3xu_Edcc) | +|2024-07-13 |Building with Gno.land: A Practical Workshop on Smart Contracts |@gfanton |[Slides](presentations/2024-07-13--nebular--gfanton/README.md) |[Video](https://www.youtube.com/watch?v=oBQ-t_E0QpI) | +|2024-07-09 |Building a Deterministic Interpreter in Go: Readability vs Performance |@jaekwon |[Slides](presentations/2024-07-09--gophercon-us--jae) |[Video](https://www.youtube.com/watch?v=betUkghf_jo) | +|2024-07-08 |Building a Decentralized App on gno.land |@deelawn |[Slides](presentations/2024-07-08--gophercon-us--dylan) |[Video](https://www.youtube.com/watch?v=lwL2VyjaV-A) | +|2024-06-17 |Envisioning a Go-Powered Ecosystem: The Ultimate Go Computer |@moul |[Slides](presentations/2024-06-17--gophercon-berlin--manfred) |[Video](https://youtu.be/dLE2-8QPK64?si=IidxNLGrwwS6jbYL) | +|2024-05-23 |Building Dynamic Applications With Go (and Gno!) |@deelawn |[Slides](presentations/2024-05-23--belgrade--dylan/slides.pdf) |[Video](https://www.youtube.com/watch?v=tNM1DHOxIQ8) | +|2024-04-11 |Intro to Gno Tokyo |@leohhhn |[Slides](presentations/2024-04-11--tokyo-intro-to-gno--leon/slides.pdf) |--- | +|2024-03-23 |Go to Gno |@leohhhn |[Slides](presentations/2024-03-23--seoul-go-to-gno--leon/Go_to_Gno_slides.pdf) |--- | +|2023-12-14 |GnoChess - a Retrospective |@thehowl |[Slides](presentations/2023-12-14--gnochess-a-retrospective--morgan/slides.reveal.md) |--- | +|2023-12-13 |Gno: What, Why, and How |@moul |[Slides](presentations/2023-12-13--rouen--manfred/slides.md) |--- | +|2023-10-09 |Generating Audio |@schollz |[Slides](presentations/2023-10-09--generating-audio--schollz/presentation.md) |[Video](https://www.youtube.com/watch?v=lmmUIEHhdqA&t=2s) | +|2023-09-26 |Chess The Gnolang Way |@thehowl |[Slides](presentations/2023-09-26--chess-the-gnolang-way--morgan/slides.reveal.md) |--- | -TODO: automate this history table. https://github.com/gnolang/workshops/pull/24 +_This table is autogenerated based on the [./presentations](./presentations) folder._ ## Resources -* https://github.com/moul/gno-basics - Repo used by @moul to create example-oriented code snippet and generate outputs for slides. * HTML preview of presentations made using `present` - https://gnolang.github.io/workshops/presentations.html diff --git a/go.mod b/go.mod index dcefa9a..5ddc972 100644 --- a/go.mod +++ b/go.mod @@ -1,16 +1,26 @@ module github.com/gnolang/workshops -go 1.20 +go 1.22.0 + +toolchain go1.22.3 require ( + github.com/campoy/embedmd v1.0.0 + github.com/gnolang/gno v0.2.0 github.com/soypat/go-presentx v1.1.0 - golang.org/x/tools v0.9.1 + golang.org/x/tools v0.23.0 gopkg.in/yaml.v3 v3.0.1 + moul.io/mdtable v1.0.0 ) require ( + github.com/peterbourgon/ff/v3 v3.4.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/soypat/rebed v0.2.2 // indirect github.com/yuin/goldmark v1.4.13 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/sys v0.8.0 // indirect + golang.org/x/net v0.27.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect + moul.io/banner v1.0.1 // indirect + moul.io/climan v1.0.0 // indirect ) diff --git a/go.sum b/go.sum index 6518bf2..604f6a8 100644 --- a/go.sum +++ b/go.sum @@ -1,37 +1,96 @@ +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/campoy/embedmd v1.0.0 h1:V4kI2qTJJLf4J29RzI/MAt2c3Bl4dQSYPuflzwFH2hY= +github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gnolang/gno v0.2.0 h1:s33kyRByweDxxHMZMQKJtCDQpueTCYCFBqlLHwr6P+Y= +github.com/gnolang/gno v0.2.0/go.mod h1:dBaL1Au2MNLol+3FXdCv+IKLJnMKtTmIt778zsKjVu0= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= +github.com/peterbourgon/ff/v3 v3.0.0/go.mod h1:UILIFjRH5a/ar8TjXYLTkIvSvekZqPm5Eb/qbGk6CT0= +github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= +github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= +github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/soypat/go-presentx v1.1.0 h1:M4COCoEyOUgx1NwDuEf/t6CstIs1TwKDQrthA/LYAmI= github.com/soypat/go-presentx v1.1.0/go.mod h1:DIDpYQh+AY+gLseYAh2w0lq7i//TLn9dX7Yh5JzVfg4= github.com/soypat/rebed v0.2.2 h1:SGQStt1jkwA/hzvqxZlvt5PzH/jzhz2/5ivzcHXpPms= github.com/soypat/rebed v0.2.2/go.mod h1:tP1Sb7HyBNHG23LZGltBh1FL0pJOdNO1bT0EBqJOVyA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tailscale/depaware v0.0.0-20210622194025-720c4b409502/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= +go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201109182053-3db8fd265862/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo= -golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +moul.io/banner v1.0.1 h1:+WsemGLhj2pOajw2eR5VYjLhOIqs0XhIRYchzTyMLk0= +moul.io/banner v1.0.1/go.mod h1:XwvIGKkhKRKyN1vIdmR5oaKQLIkMhkMqrsHpS94QzAU= +moul.io/climan v1.0.0 h1:Xc9xnUrLVPK69lnCfVJnCvVtMm4v6Lt2743fnadvpWc= +moul.io/climan v1.0.0/go.mod h1:iT29NKBU5U7cAYxmpt9XXfv3PV1OW+5OKvze553VTwc= +moul.io/mdtable v1.0.0 h1:D4CThVe/TksHtuDO2++Q2p4TmqYfMU8EXLsD+vucVrU= +moul.io/mdtable v1.0.0/go.mod h1:n5m1LcdgBvbbflckcKhwrpeCa9+enucCizzSIUibZCk= +moul.io/u v1.25.1/go.mod h1:ggYDXxUjoHpfDsMPD3STqkUZTyA741PZiQhSd+7kRnA= +moul.io/u v1.27.0 h1:rF0p184mludn2DzL0unA8Gf/mFWMBerdqOh8cyuQYzQ= +moul.io/u v1.27.0/go.mod h1:ggYDXxUjoHpfDsMPD3STqkUZTyA741PZiQhSd+7kRnA= diff --git a/presentations/2022-09-13--berlin--manfred/README.md b/presentations/2022-09-13--berlin--manfred/README.md index abc348e..5309914 100644 --- a/presentations/2022-09-13--berlin--manfred/README.md +++ b/presentations/2022-09-13--berlin--manfred/README.md @@ -1,10 +1,3 @@ ---- -date: "2022-09-13" -speakers: -- "manfred" -location: "Berlin, Germany" ---- - # Intro to Gno Smart Contract Platform and Blockchain * https://www.eventbrite.com/e/buckle-up-and-build-with-cosmos-tickets-407865947027 - event info diff --git a/presentations/2022-09-13--berlin--manfred/metadata.yml b/presentations/2022-09-13--berlin--manfred/metadata.yml new file mode 100644 index 0000000..6e07737 --- /dev/null +++ b/presentations/2022-09-13--berlin--manfred/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2022-09-13" +# Title of the workshop +title: "Intro to the Gno Smart Contract Platform and Blockchain" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Berlin, Germany" +# At which event the workshop took place, if any +event: "Buckle Up and Build with Cosmos" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "slides.pdf" +# Workshop recording +recording: "https://www.youtube.com/watch?v=S36kA5RqLvs" \ No newline at end of file diff --git "a/presentations/2022-09-29\342\200\223cosmoverse-workshop\342\200\224manfred-pwnh4/metadata.yml" "b/presentations/2022-09-29\342\200\223cosmoverse-workshop\342\200\224manfred-pwnh4/metadata.yml" new file mode 100644 index 0000000..3ff5f48 --- /dev/null +++ "b/presentations/2022-09-29\342\200\223cosmoverse-workshop\342\200\224manfred-pwnh4/metadata.yml" @@ -0,0 +1,16 @@ +# Date of the workshop +date: "2022-09-29" +# Title of the workshop +title: "Intro to Gno" +# GitHub usernames of the speakers +speakers: + - "moul" + - "pwnh4" +# Location of the workshop +location: "" +# At which event the workshop took place, if any +event: "Cosmoverse" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "https://github.com/xplrz/gnoland-workshop" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2022-10-18--cosmoverse--manfred/metadata.yml b/presentations/2022-10-18--cosmoverse--manfred/metadata.yml new file mode 100644 index 0000000..8e99e16 --- /dev/null +++ b/presentations/2022-10-18--cosmoverse--manfred/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2022-10-18" +# Title of the workshop +title: "Gnoland & Concurrent Smart Contracts" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "slides.pdf" +# Workshop recording +recording: "https://www.youtube.com/watch?v=gcZHjlqG8gg&list=PLUg1PF7xcA8WHJ6aXXPi4CckVd7WEukF6&index=8" \ No newline at end of file diff --git a/presentations/2022-11-03--lisbon--manfred/metadata.yml b/presentations/2022-11-03--lisbon--manfred/metadata.yml new file mode 100644 index 0000000..1a7e681 --- /dev/null +++ b/presentations/2022-11-03--lisbon--manfred/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2022-11-03" +# Title of the workshop +title: "Intro to gno.land" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Lisbon, Portugal" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "slides.pdf" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2022-11-15--istanbul--manfred/metadata.yml b/presentations/2022-11-15--istanbul--manfred/metadata.yml new file mode 100644 index 0000000..030c0b3 --- /dev/null +++ b/presentations/2022-11-15--istanbul--manfred/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2022-11-15" +# Title of the workshop +title: "Intro to gno.land" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Istanbul, Turkey" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "slides.pdf" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2022-11-29--golangparis-pwnh4-manfred/metadata.yml b/presentations/2022-11-29--golangparis-pwnh4-manfred/metadata.yml new file mode 100644 index 0000000..1709911 --- /dev/null +++ b/presentations/2022-11-29--golangparis-pwnh4-manfred/metadata.yml @@ -0,0 +1,16 @@ +# Date of the workshop +date: "2022-11-29" +# Title of the workshop +title: "Minimal meetup.com clone" +# GitHub usernames of the speakers +speakers: + - "moul" + - "pwnh4" +# Location of the workshop +location: "Paris, France" +# At which event the workshop took place, if any +event: "Golang Paris" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "https://github.com/xplrz/gnoland-meetup" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-03-03--ethdenver_gnoland_plan9_as_metaverse--jae/metadata.yml b/presentations/2023-03-03--ethdenver_gnoland_plan9_as_metaverse--jae/metadata.yml new file mode 100644 index 0000000..a0a66d5 --- /dev/null +++ b/presentations/2023-03-03--ethdenver_gnoland_plan9_as_metaverse--jae/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2023-03-03" +# Title of the workshop +title: "Plan9 as Metaverse" +# GitHub usernames of the speakers +speakers: + - "jaekwon" +# Location of the workshop +location: "Denver, USA" +# At which event the workshop took place, if any +event: "ETHDenver" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "README.md" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-03-16--online--milos/metadata.yml b/presentations/2023-03-16--online--milos/metadata.yml new file mode 100644 index 0000000..80f7dd1 --- /dev/null +++ b/presentations/2023-03-16--online--milos/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2023-03-16" +# Title of the workshop +title: "How to build a forum in Gno.land" +# GitHub usernames of the speakers +speakers: + - "zivkovicmilos" +# Location of the workshop +location: "Online" +# At which event the workshop took place, if any +event: "Online" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "README.md" +# Workshop recording +recording: "https://www.youtube.com/watch?v=gmP-mH-64HA" \ No newline at end of file diff --git a/presentations/2023-06-02--eth-belgrade--milos/metadata.yml b/presentations/2023-06-02--eth-belgrade--milos/metadata.yml new file mode 100644 index 0000000..77952fc --- /dev/null +++ b/presentations/2023-06-02--eth-belgrade--milos/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2023-06-02" +# Title of the workshop +title: "Alice in Gno.land" +# GitHub usernames of the speakers +speakers: + - "zivkovicmilos" +# Location of the workshop +location: "Belgrade, Serbia" +# At which event the workshop took place, if any +event: "ETH Belgrade" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "README.md" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-06-03--eth-seoul--manfred/metadata.yml b/presentations/2023-06-03--eth-seoul--manfred/metadata.yml new file mode 100644 index 0000000..18c49a2 --- /dev/null +++ b/presentations/2023-06-03--eth-seoul--manfred/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2023-06-03" +# Title of the workshop +title: "A journey into Gno.land - the Evolution of Smart Contracts" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Seoul, South Korea" +# At which event the workshop took place, if any +event: "ETH Seoul" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "https://gnolang.github.io/workshops/presentations/2023-06-03--eth-seoul--manfred/presentations.slide.html#1" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-06-05--getting-to-gno-seoul--manfred/metadata.yml b/presentations/2023-06-05--getting-to-gno-seoul--manfred/metadata.yml new file mode 100644 index 0000000..4e06c2a --- /dev/null +++ b/presentations/2023-06-05--getting-to-gno-seoul--manfred/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2023-06-05" +# Title of the workshop +title: "Gno.land for Go Developers" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Seoul, South Korea" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "https://gnolang.github.io/workshops/presentations/2023-06-05--getting-to-gno-seoul--manfred/presentations.slide.html#1" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-06-06--buidl-asia--manfred/metadata.yml b/presentations/2023-06-06--buidl-asia--manfred/metadata.yml new file mode 100644 index 0000000..80c4451 --- /dev/null +++ b/presentations/2023-06-06--buidl-asia--manfred/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2023-06-06" +# Title of the workshop +title: "Proof of Contribution in Gno.land" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Seoul, South Korea" +# At which event the workshop took place, if any +event: "BUIDL Asia" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "https://gnolang.github.io/workshops/presentations/2023-06-06--buidl-asia--manfred/presentations.slide.html" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-06-26--go-to-gno--schollz/README.md b/presentations/2023-06-26--go-to-gno--schollz/README.md index 11790a7..533485a 100644 --- a/presentations/2023-06-26--go-to-gno--schollz/README.md +++ b/presentations/2023-06-26--go-to-gno--schollz/README.md @@ -1,4 +1,7 @@ # go to gno -This presentation outlines some of the things I wish I knew when I started out with Gno, when coming from a Go background. The presentation is made with https://remarkjs.com/ and is capable of being loaded directly into the web browser for viewing the slides. +This presentation outlines some of the things I wish I knew when I started out +with Gno, when coming from a Go background. The presentation is made with +https://remarkjs.com/ and is capable of being loaded directly into the web +browser for viewing the slides. diff --git a/presentations/2023-06-26--go-to-gno--schollz/metadata.yml b/presentations/2023-06-26--go-to-gno--schollz/metadata.yml new file mode 100644 index 0000000..1aff3b4 --- /dev/null +++ b/presentations/2023-06-26--go-to-gno--schollz/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2023-06-26" +# Title of the workshop +title: "Go -> Gno" +# GitHub usernames of the speakers +speakers: + - "schollz" +# Location of the workshop +location: "" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "slides.pdf" +# Workshop recording +recording: "https://www.youtube.com/watch?v=F-_dadxcRJM" \ No newline at end of file diff --git a/presentations/2023-07-23--workshop-nebular--manfred-morgan/metadata.yml b/presentations/2023-07-23--workshop-nebular--manfred-morgan/metadata.yml new file mode 100644 index 0000000..b8a6aae --- /dev/null +++ b/presentations/2023-07-23--workshop-nebular--manfred-morgan/metadata.yml @@ -0,0 +1,14 @@ +# Date of the workshop +date: "2023-07-23" +# Title of the workshop +title: "Getting Started with Gno!" +# GitHub usernames of the speakers +speakers: + - "moul" + - "thehowl" +# Location of the workshop +location: "Paris, France" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "README.md" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-07-24--talk-nebular--manfred/metadata.yml b/presentations/2023-07-24--talk-nebular--manfred/metadata.yml new file mode 100644 index 0000000..e54d2f3 --- /dev/null +++ b/presentations/2023-07-24--talk-nebular--manfred/metadata.yml @@ -0,0 +1,13 @@ +# Date of the workshop +date: "2023-07-24" +# Title of the workshop +title: "Examining the Gno Core Stack" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Paris, France" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "https://gnolang.github.io/workshops/presentations/2023-07-24--talk-nebular--manfred/presentations.slide.html#1" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-09-11--dappcon-key-perpetual-transparency--manfred/metadata.yml b/presentations/2023-09-11--dappcon-key-perpetual-transparency--manfred/metadata.yml new file mode 100644 index 0000000..5d1ace8 --- /dev/null +++ b/presentations/2023-09-11--dappcon-key-perpetual-transparency--manfred/metadata.yml @@ -0,0 +1,13 @@ +# Date of the workshop +date: "2023-09-11" +# Title of the workshop +title: "Gno.land: The Key To Perpetual Transparency" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Berlin, Germany" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "https://gnolang.github.io/workshops/presentations/2023-09-11--dappcon-key-perpetual-transparency--manfred/presentation.slide.html" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-09-26--chess-the-gnolang-way--morgan/metadata.yml b/presentations/2023-09-26--chess-the-gnolang-way--morgan/metadata.yml new file mode 100644 index 0000000..6899eee --- /dev/null +++ b/presentations/2023-09-26--chess-the-gnolang-way--morgan/metadata.yml @@ -0,0 +1,13 @@ +# Date of the workshop +date: "2023-09-26" +# Title of the workshop +title: "Chess The Gnolang Way" +# GitHub usernames of the speakers +speakers: + - "thehowl" +# Location of the workshop +location: "San Diego, USA" +# Workshop slides link. If the link is local, only put the file name, without any other path parts.. If the link is local, only put the file name, without any other path parts. +slides: "slides.reveal.md" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-10-09--generating-audio--schollz/metadata.yml b/presentations/2023-10-09--generating-audio--schollz/metadata.yml new file mode 100644 index 0000000..678de41 --- /dev/null +++ b/presentations/2023-10-09--generating-audio--schollz/metadata.yml @@ -0,0 +1,13 @@ +# Date of the workshop +date: "2023-10-09" +# Title of the workshop +title: "Generating Audio" +# GitHub usernames of the speakers +speakers: + - "schollz" +# Location of the workshop +location: "Online" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "presentation.md" +# Workshop recording +recording: "https://www.youtube.com/watch?v=lmmUIEHhdqA&t=2s" \ No newline at end of file diff --git a/presentations/2023-12-13--rouen--manfred/metadata.yml b/presentations/2023-12-13--rouen--manfred/metadata.yml new file mode 100644 index 0000000..918494b --- /dev/null +++ b/presentations/2023-12-13--rouen--manfred/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2023-12-13" +# Title of the workshop +title: "Gno: What, Why, and How" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Rouen, France" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "slides.md" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2023-12-14--gnochess-a-retrospective--morgan/metadata.yml b/presentations/2023-12-14--gnochess-a-retrospective--morgan/metadata.yml new file mode 100644 index 0000000..40c544c --- /dev/null +++ b/presentations/2023-12-14--gnochess-a-retrospective--morgan/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2023-12-14" +# Title of the workshop +title: "GnoChess - a Retrospective" +# GitHub usernames of the speakers +speakers: + - "thehowl" +# Location of the workshop +location: "Rouen, France" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "slides.reveal.md" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2024-03-23--seoul-go-to-gno--leon/metadata.yml b/presentations/2024-03-23--seoul-go-to-gno--leon/metadata.yml new file mode 100644 index 0000000..677c500 --- /dev/null +++ b/presentations/2024-03-23--seoul-go-to-gno--leon/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-03-23" +# Title of the workshop +title: "Go to Gno" +# GitHub usernames of the speakers +speakers: + - "leohhhn" +# Location of the workshop +location: "Seoul, South Korea" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "Go_to_Gno_slides.pdf" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2024-04-11--tokyo-intro-to-gno--leon/metadata.yml b/presentations/2024-04-11--tokyo-intro-to-gno--leon/metadata.yml new file mode 100644 index 0000000..b504cfd --- /dev/null +++ b/presentations/2024-04-11--tokyo-intro-to-gno--leon/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-04-11" +# Title of the workshop +title: "Intro to Gno Tokyo" +# GitHub usernames of the speakers +speakers: + - "leohhhn" +# Location of the workshop +location: "Tokyo, Japan" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "slides.pdf" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2024-04-11--tokyo-intro-to-gno--leon/Intro to Gno Tokyo.pdf b/presentations/2024-04-11--tokyo-intro-to-gno--leon/slides.pdf similarity index 100% rename from presentations/2024-04-11--tokyo-intro-to-gno--leon/Intro to Gno Tokyo.pdf rename to presentations/2024-04-11--tokyo-intro-to-gno--leon/slides.pdf diff --git a/presentations/2024-05-23--belgrade--dylan/metadata.yml b/presentations/2024-05-23--belgrade--dylan/metadata.yml new file mode 100644 index 0000000..4502a0d --- /dev/null +++ b/presentations/2024-05-23--belgrade--dylan/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-05-23" +# Title of the workshop +title: "Building Dynamic Applications With Go (and Gno!)" +# GitHub usernames of the speakers +speakers: + - "deelawn" +# Location of the workshop +location: "Belgrade, Serbia" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "slides.pdf" +# Workshop recording +recording: "https://www.youtube.com/watch?v=tNM1DHOxIQ8" \ No newline at end of file diff --git a/presentations/2024-06-17--gophercon-berlin--manfred/metadata.yml b/presentations/2024-06-17--gophercon-berlin--manfred/metadata.yml new file mode 100644 index 0000000..71ffcbe --- /dev/null +++ b/presentations/2024-06-17--gophercon-berlin--manfred/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-06-17" +# Title of the workshop +title: "Envisioning a Go-Powered Ecosystem: The Ultimate Go Computer" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Berlin, Germany" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "" +# Workshop recording +recording: "https://youtu.be/dLE2-8QPK64?si=IidxNLGrwwS6jbYL" \ No newline at end of file diff --git a/presentations/2024-07-08--gophercon-us--dylan/metadata.yml b/presentations/2024-07-08--gophercon-us--dylan/metadata.yml new file mode 100644 index 0000000..bf37196 --- /dev/null +++ b/presentations/2024-07-08--gophercon-us--dylan/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-07-08" +# Title of the workshop +title: "Building a Decentralized App on gno.land" +# GitHub usernames of the speakers +speakers: + - "deelawn" +# Location of the workshop +location: "Chicago, USA" +# At which event the workshop took place, if any +event: "GopherCon US 2024" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "" +# Workshop recording +recording: "https://www.youtube.com/watch?v=lwL2VyjaV-A" \ No newline at end of file diff --git a/presentations/2024-07-09--gophercon-us--jae/metadata.yml b/presentations/2024-07-09--gophercon-us--jae/metadata.yml new file mode 100644 index 0000000..b8e34ba --- /dev/null +++ b/presentations/2024-07-09--gophercon-us--jae/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-07-09" +# Title of the workshop +title: "Building a Deterministic Interpreter in Go: Readability vs Performance" +# GitHub usernames of the speakers +speakers: + - "jaekwon" +# Location of the workshop +location: "Chicago, USA" +# At which event the workshop took place, if any +event: "GopherCon US 2024" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "" +# Workshop recording +recording: "https://www.youtube.com/watch?v=betUkghf_jo" \ No newline at end of file diff --git a/presentations/2024-07-13--nebular--gfanton/metadata.yml b/presentations/2024-07-13--nebular--gfanton/metadata.yml new file mode 100644 index 0000000..3e6f81f --- /dev/null +++ b/presentations/2024-07-13--nebular--gfanton/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-07-13" +# Title of the workshop +title: "Building with Gno.land: A Practical Workshop on Smart Contracts" +# GitHub usernames of the speakers +speakers: + - "gfanton" +# Location of the workshop +location: "Paris, France" +# At which event the workshop took place, if any +event: "Nebular Summit 2024" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "README.md" +# Workshop recording +recording: "https://www.youtube.com/watch?v=oBQ-t_E0QpI" \ No newline at end of file diff --git a/presentations/2024-07-13--nebular--manfred/README.md b/presentations/2024-07-13--nebular--manfred/README.md deleted file mode 100644 index 654b983..0000000 --- a/presentations/2024-07-13--nebular--manfred/README.md +++ /dev/null @@ -1,2 +0,0 @@ -Slides: https://gnolang.github.io/workshops/presentations/2024-07-13--nebular--manfred/presentation.slide.html#1 -Tweet: XXX diff --git a/presentations/2024-07-13--nebular--manfred/metadata.yml b/presentations/2024-07-13--nebular--manfred/metadata.yml new file mode 100644 index 0000000..cbb34e8 --- /dev/null +++ b/presentations/2024-07-13--nebular--manfred/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-07-13" +# Title of the workshop +title: "Gno: Examples and Comparisons" +# GitHub usernames of the speakers +speakers: + - "moul" +# Location of the workshop +location: "Paris, France" +# At which event the workshop took place, if any +event: "Nebular Summit 2024" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "https://gnolang.github.io/workshops/presentations/2024-07-13--nebular--manfred/presentation.slide.html#1" +# Workshop recording +recording: "https://www.youtube.com/watch?v=Zsl3xu_Edcc" \ No newline at end of file diff --git a/presentations/2024-08-05--web3kamp--leon/metadata.yml b/presentations/2024-08-05--web3kamp--leon/metadata.yml new file mode 100644 index 0000000..2860ff7 --- /dev/null +++ b/presentations/2024-08-05--web3kamp--leon/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-08-05" +# Title of the workshop +title: "Intro to gno.land" +# GitHub usernames of the speakers +speakers: + - "leohhhn" +# Location of the workshop +location: "Petnica, Serbia" +# At which event the workshop took place, if any +event: "Web3 Kamp" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "https://docs.google.com/presentation/d/1tnplCWxhg-RFatDS3w1iJnO0vSfBAuw2ZA0ommNJQOU/edit?usp=sharing" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2024-08-20--gentle-intro-to-gnoland--leon/metadata.yml b/presentations/2024-08-20--gentle-intro-to-gnoland--leon/metadata.yml new file mode 100644 index 0000000..40df5eb --- /dev/null +++ b/presentations/2024-08-20--gentle-intro-to-gnoland--leon/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-08-20" +# Title of the workshop +title: "A gentle intro to gno.land" +# GitHub usernames of the speakers +speakers: + - "leohhhn" +# Location of the workshop +location: "Berlin, Germany" +# At which event the workshop took place, if any +event: "Web3 Summit - BUIDL with Cosmos Tooling 2024" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "presentation.pdf" +# Workshop recording +recording: "https://www.youtube.com/watch?v=hTGeG0z09NU" \ No newline at end of file diff --git a/presentations/2024-08-20--gentle-intro-to-gnoland--leon/presentation.pdf b/presentations/2024-08-20--gentle-intro-to-gnoland--leon/presentation.pdf new file mode 100644 index 0000000..af50734 Binary files /dev/null and b/presentations/2024-08-20--gentle-intro-to-gnoland--leon/presentation.pdf differ diff --git a/presentations/2024-09-23--distributed-communities/bitcoin-paper-screenshot.png b/presentations/2024-09-23--distributed-communities-morgan/bitcoin-paper-screenshot.png similarity index 100% rename from presentations/2024-09-23--distributed-communities/bitcoin-paper-screenshot.png rename to presentations/2024-09-23--distributed-communities-morgan/bitcoin-paper-screenshot.png diff --git a/presentations/2024-09-23--distributed-communities/club-penguin.jpg b/presentations/2024-09-23--distributed-communities-morgan/club-penguin.jpg similarity index 100% rename from presentations/2024-09-23--distributed-communities/club-penguin.jpg rename to presentations/2024-09-23--distributed-communities-morgan/club-penguin.jpg diff --git a/presentations/2024-09-23--distributed-communities/examples-boards.png b/presentations/2024-09-23--distributed-communities-morgan/examples-boards.png similarity index 100% rename from presentations/2024-09-23--distributed-communities/examples-boards.png rename to presentations/2024-09-23--distributed-communities-morgan/examples-boards.png diff --git a/presentations/2024-09-23--distributed-communities/examples-gnochess.png b/presentations/2024-09-23--distributed-communities-morgan/examples-gnochess.png similarity index 100% rename from presentations/2024-09-23--distributed-communities/examples-gnochess.png rename to presentations/2024-09-23--distributed-communities-morgan/examples-gnochess.png diff --git a/presentations/2024-09-23--distributed-communities/examples-memeland.png b/presentations/2024-09-23--distributed-communities-morgan/examples-memeland.png similarity index 100% rename from presentations/2024-09-23--distributed-communities/examples-memeland.png rename to presentations/2024-09-23--distributed-communities-morgan/examples-memeland.png diff --git a/presentations/2024-09-23--distributed-communities/forum/forum.gno b/presentations/2024-09-23--distributed-communities-morgan/forum/forum.gno similarity index 100% rename from presentations/2024-09-23--distributed-communities/forum/forum.gno rename to presentations/2024-09-23--distributed-communities-morgan/forum/forum.gno diff --git a/presentations/2024-09-23--distributed-communities/forum/gno.mod b/presentations/2024-09-23--distributed-communities-morgan/forum/gno.mod similarity index 100% rename from presentations/2024-09-23--distributed-communities/forum/gno.mod rename to presentations/2024-09-23--distributed-communities-morgan/forum/gno.mod diff --git a/presentations/2024-09-23--distributed-communities-morgan/metadata.yml b/presentations/2024-09-23--distributed-communities-morgan/metadata.yml new file mode 100644 index 0000000..2a18aa6 --- /dev/null +++ b/presentations/2024-09-23--distributed-communities-morgan/metadata.yml @@ -0,0 +1,15 @@ +# Date of the workshop +date: "2024-09-23" +# Title of the workshop +title: "Distributed Communities - How to build timeless and decentralized apps, with Go" +# GitHub usernames of the speakers +speakers: + - "thehowl" +# Location of the workshop +location: "Turin, Italy" +# At which event the workshop took place, if any +event: "" +# Workshop slides link. If the link is local, only put the file name, without any other path parts. +slides: "slides.reveal.pdf" +# Workshop recording +recording: "" \ No newline at end of file diff --git a/presentations/2024-09-23--distributed-communities/our-incredible-journey.png b/presentations/2024-09-23--distributed-communities-morgan/our-incredible-journey.png similarity index 100% rename from presentations/2024-09-23--distributed-communities/our-incredible-journey.png rename to presentations/2024-09-23--distributed-communities-morgan/our-incredible-journey.png diff --git a/presentations/2024-09-23--distributed-communities/outline.md b/presentations/2024-09-23--distributed-communities-morgan/outline.md similarity index 100% rename from presentations/2024-09-23--distributed-communities/outline.md rename to presentations/2024-09-23--distributed-communities-morgan/outline.md diff --git a/presentations/2024-09-23--distributed-communities/slides.reveal.md b/presentations/2024-09-23--distributed-communities-morgan/slides.reveal.md similarity index 100% rename from presentations/2024-09-23--distributed-communities/slides.reveal.md rename to presentations/2024-09-23--distributed-communities-morgan/slides.reveal.md diff --git a/scripts/del-codeblock.sh b/scripts/del-codeblock.sh new file mode 100755 index 0000000..56a39bb --- /dev/null +++ b/scripts/del-codeblock.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Define the file to be processed +FILE="README.md" + +# if found line, remove table of size 17 rows + +# Use sed to remove the code block backticks +sed -i '' '/^```md$/d; /^```$/d' "$FILE" + +echo "Successfully generated table for $FILE." diff --git a/scripts/del-existing-rows.sh b/scripts/del-existing-rows.sh new file mode 100755 index 0000000..47e3863 --- /dev/null +++ b/scripts/del-existing-rows.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +ROWS=$1 +FILE=$2 +NUM_LINES=$(($ROWS - 1)) +HEADER1="|Date |Title |Speakers |Presentation |Recording |" + +if grep -qF "$HEADER1" "$FILE"; then + echo "Old table found, deleting." + # Use sed to find and delete the two header lines and the next $ROWS lines + sed -i '' "/$HEADER1/{N;N;$(for i in $(seq 1 $NUM_LINES); do echo -n 'N;'; done)d;}" "$FILE" +fi + diff --git a/scripts/generate-table.go b/scripts/generate-table.go new file mode 100644 index 0000000..7ea3ff1 --- /dev/null +++ b/scripts/generate-table.go @@ -0,0 +1,196 @@ +package main + +import ( + "context" + "encoding/csv" + "flag" + "fmt" + "os" + "path/filepath" + "sort" + "strings" + + "github.com/gnolang/gno/tm2/pkg/commands" + "gopkg.in/yaml.v3" +) + +type cfg struct { + presentationsPath string + outputPath string + rows int +} + +type Metadata struct { + Date string `yaml:"date"` + Title string `yaml:"title"` + Speakers []string `yaml:"speakers"` + Slides string `yaml:"slides"` + Recording string `yaml:"recording"` +} + +var ( + csvHeader = []string{"Date", "Title", "Speakers", "Presentation", "Recording"} +) + +func main() { + cfg := &cfg{} + + cmd := commands.NewCommand( + commands.Metadata{ + Name: "", + ShortUsage: "csvgen [flags]", + }, + cfg, + func(_ context.Context, args []string) error { + return execGen(cfg) + }) + + cmd.Execute(context.Background(), os.Args[1:]) +} + +func (c *cfg) RegisterFlags(fs *flag.FlagSet) { + fs.StringVar( + &c.presentationsPath, + "path", + "./", + "path to dir to walk for presentations files", + ) + fs.StringVar( + &c.outputPath, + "out", + "./data.csv", + "output csv path, including .csv", + ) + fs.IntVar( + &c.rows, + "rows", + 15, + "number of rows to generate", + ) +} + +func execGen(cfg *cfg) error { + searchDir := cfg.presentationsPath + outputCSV := cfg.outputPath // todo check for err + + // Create the CSV file + csvFile, err := os.Create(outputCSV) + if err != nil { + fmt.Printf("failed to create CSV file: %v", err) + return err + } + + defer csvFile.Close() + + writer := csv.NewWriter(csvFile) + defer writer.Flush() + + if err = writer.Write(csvHeader); err != nil { + fmt.Printf("failed to write to the CSV file: %v", err) + return err + } + + dirs, err := os.ReadDir(searchDir) + if err != nil { + return err + } + + var rows []Metadata + for _, dir := range dirs { + // Skip non-dirs + if !dir.IsDir() { + continue + } + + metadataFile := filepath.Join(searchDir, dir.Name(), "metadata.yml") + abs, _ := filepath.Abs(metadataFile) + + // Try to find metadata.yml inside the dir + data, err := os.ReadFile(abs) + if err != nil { + //fmt.Printf("Error reading metadata.yml file: %v", err) + continue + } + + var metadata Metadata + if err = yaml.Unmarshal(data, &metadata); err != nil { + //fmt.Printf("error parsing metadata.yml: %v", err) + continue + } + + // fix local links + if !strings.Contains(metadata.Slides, "http") { + metadata.Slides = filepath.Join(searchDir, dir.Name(), metadata.Slides) + } + + // Check for empty fields + if err = metadata.Check(abs); err != nil { + return err + } + + rows = append(rows, metadata) + } + + // Sort by date + sort.Slice(rows, func(i, j int) bool { + return rows[i].Date > rows[j].Date + }) + + // Write sorted rows to the CSV file + // Generate only the last N rows of data + for _, r := range rows[:cfg.rows] { + err = writer.Write(r.Format()) + if err != nil { + return err + } + } + + return nil +} + +func (m Metadata) Format() []string { + if m.Slides == "" { + m.Slides = "---" + } else { + m.Slides = fmt.Sprintf("[Slides](%s)", m.Slides) + } + + if m.Recording == "" { + m.Recording = "---" + } else { + m.Recording = fmt.Sprintf("[Video](%s)", m.Recording) + } + + return []string{ + m.Date, + m.Title, + m.parseSpeakers(), + m.Slides, + m.Recording, + } +} + +func (m Metadata) parseSpeakers() string { + var speakers []string + for _, speaker := range m.Speakers { + speakers = append(speakers, "@"+speaker) + } + + return strings.Join(speakers, ", ") +} + +func (m Metadata) Check(path string) error { + if strings.TrimSpace(m.Title) == "" { + return fmt.Errorf("%s: missing title", path) + } + + if len(m.Speakers) == 0 { + return fmt.Errorf("%s: missing speakers", path) + } + + if strings.TrimSpace(m.Date) == "" { + return fmt.Errorf("%s: missing date", path) + } + + return nil +} diff --git a/scripts/lint.go b/scripts/lint.go new file mode 100644 index 0000000..63e7552 --- /dev/null +++ b/scripts/lint.go @@ -0,0 +1,48 @@ +package main + +import ( + "fmt" + "os" + "slices" + "strings" +) + +const ( + presFolder = "../presentations" + readme = "../README.md" +) + +func main() { + dirs, err := os.ReadDir(presFolder) + if err != nil { + panic(err) + } + + var dates []string + for _, dir := range dirs { + // Skip non-dirs + if !dir.IsDir() { + continue + } + + dates = append(dates, dir.Name()[:10]) // get date out of dir name + } + + slices.Sort(dates) + slices.Reverse(dates) + + rawContents, err := os.ReadFile(readme) + if err != nil { + panic(err) + } + + cts := string(rawContents) + + for _, date := range dates[:15] { + if !strings.Contains(cts, date) { + panic("could not find latest item in README table - did you run `make build`?") + } + } + + fmt.Println("All good!") +} diff --git a/tools.go b/tools.go index 6d6d702..c06709f 100644 --- a/tools.go +++ b/tools.go @@ -4,6 +4,8 @@ package tools import ( + _ "github.com/campoy/embedmd" _ "github.com/soypat/go-presentx" _ "golang.org/x/tools/cmd/present" + _ "moul.io/mdtable" )