Skip to content

Commit

Permalink
cpwro2023 presentation slides and notes
Browse files Browse the repository at this point in the history
  • Loading branch information
cameel committed Mar 30, 2023
1 parent e0ae23f commit a0f048b
Show file tree
Hide file tree
Showing 17 changed files with 1,806 additions and 0 deletions.
10 changes: 10 additions & 0 deletions cpwro2023/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Draw.io temporary files
.$*.drawio.bkp
.$*.drawio.dtmp

# Auto-generated word clouds
/zk-languages-wordcloud.png
/other-blockchain-languages-wordcloud.png

# Build directory
/build/
28 changes: 28 additions & 0 deletions cpwro2023/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Code Poets Blockchain Meetup, Wrocław 2023
[Event at meetup.com](https://www.meetup.com/wroclaw-blockchain-meetup/events/292148616/).

Topic: **Smart Contract languages of the EVM: What else is there besides Solidity?**

Description: Solidity is the most popular smart contract language today, but is it your only choice?
What else is there?
Are you missing out on important features?
The talk walks you through the evolution of smart contract languages built on top of the EVM,
showing off their strengths and weaknesses, contrasting them with Solidity as we know it today.
From the early implementations, through esoteric experiments to the select few languages that
eventually came out on top. Which one should you use for your next project?

## Content
- [Presentation slides](slides.md)
- [Presentation notes](notes.md)

## Building the presentation
```bash
./build.sh --static build/
```

## Viewing the presentation
```bash
./build.sh --watch
```

Go to http://localhost:1948
27 changes: 27 additions & 0 deletions cpwro2023/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env bash
set -euo pipefail

# Generate wordcloud images.
# This requires python-wordcloud.
wordcloud_cli \
--width 800 \
--height 500 \
--background white \
--random_state 42 \
--text other-blockchain-languages.txt \
--imagefile other-blockchain-languages-wordcloud.png
wordcloud_cli \
--width 800 \
--height 500 \
--background white \
--random_state 42 \
--text zk-languages.txt \
--imagefile zk-languages-wordcloud.png

# This assumes https://github.com/webpro/reveal-md is installed globally.
reveal-md \
slides.md \
--title "Smart Contract languages of the EVM: What else is there besides Solidity?" \
--css style.css \
--theme white \
"$@"
94 changes: 94 additions & 0 deletions cpwro2023/experimental-timeline.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<mxfile host="Electron" modified="2023-03-29T16:58:01.551Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.8.16 Chrome/106.0.5249.199 Electron/21.4.0 Safari/537.36" etag="mKdmZHFMjchBUH1eQ8Wt" compressed="false" version="20.8.16" type="device">
<diagram name="Page-1" id="ChHfrovx2bz5Nk0UMHN0">
<mxGraphModel dx="1538" dy="897" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="biigbZs_7oO6n0NeWNmr-2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=25;fillColor=#bac8d3;strokeColor=none;opacity=20;" parent="1" vertex="1">
<mxGeometry x="1300" y="20" width="130" height="700" as="geometry" />
</mxCell>
<mxCell id="biigbZs_7oO6n0NeWNmr-3" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=25;fillColor=#bac8d3;strokeColor=none;opacity=20;" parent="1" vertex="1">
<mxGeometry x="1160" y="20" width="130" height="700" as="geometry" />
</mxCell>
<mxCell id="biigbZs_7oO6n0NeWNmr-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=25;fillColor=#bac8d3;strokeColor=none;opacity=20;" parent="1" vertex="1">
<mxGeometry x="1020" y="20" width="130" height="700" as="geometry" />
</mxCell>
<mxCell id="biigbZs_7oO6n0NeWNmr-5" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=25;fillColor=#bac8d3;strokeColor=none;opacity=20;" parent="1" vertex="1">
<mxGeometry x="880" y="20" width="130" height="700" as="geometry" />
</mxCell>
<mxCell id="biigbZs_7oO6n0NeWNmr-6" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=25;fillColor=#bac8d3;strokeColor=none;opacity=20;" parent="1" vertex="1">
<mxGeometry x="740" y="20" width="130" height="700" as="geometry" />
</mxCell>
<mxCell id="biigbZs_7oO6n0NeWNmr-7" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=25;fillColor=#bac8d3;strokeColor=none;opacity=20;" parent="1" vertex="1">
<mxGeometry x="600" y="20" width="130" height="700" as="geometry" />
</mxCell>
<mxCell id="biigbZs_7oO6n0NeWNmr-8" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=25;fillColor=#bac8d3;strokeColor=none;opacity=20;" parent="1" vertex="1">
<mxGeometry x="460" y="20" width="130" height="700" as="geometry" />
</mxCell>
<mxCell id="biigbZs_7oO6n0NeWNmr-9" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=25;fillColor=#bac8d3;strokeColor=none;opacity=20;" parent="1" vertex="1">
<mxGeometry x="320" y="20" width="130" height="700" as="geometry" />
</mxCell>
<mxCell id="biigbZs_7oO6n0NeWNmr-10" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=25;fillColor=#bac8d3;strokeColor=none;opacity=20;" parent="1" vertex="1">
<mxGeometry x="180" y="20" width="130" height="700" as="geometry" />
</mxCell>
<mxCell id="biigbZs_7oO6n0NeWNmr-11" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=25;fillColor=#bac8d3;strokeColor=none;opacity=20;" parent="1" vertex="1">
<mxGeometry x="40" y="20" width="130" height="700" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-28" value="Flint 2" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;size=10;fillColor=#AE4132;strokeColor=none;fontSize=25;fontColor=#FFFFFF;fontStyle=1;align=center;rounded=0;" parent="1" vertex="1">
<mxGeometry x="930" y="280" width="100" height="40" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-39" value="Pyramid Scheme" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;size=10;fillColor=#23445D;strokeColor=none;fontSize=16;fontColor=#FFFFFF;fontStyle=1;align=center;rounded=0;" parent="1" vertex="1">
<mxGeometry x="560" y="360" width="130" height="40" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-45" value="HAssembly&lt;br style=&quot;font-size: 16px;&quot;&gt;evm" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;size=10;fillColor=#12AAB5;strokeColor=none;fontSize=16;fontColor=#FFFFFF;fontStyle=1;align=center;rounded=0;" parent="1" vertex="1">
<mxGeometry x="620" y="440" width="100" height="40" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-92" value="2014" style="html=1;shape=mxgraph.infographic.flag;dx=30;dy=20;fillColor=#b1ddf0;strokeColor=#10739e;align=center;verticalAlign=top;fontSize=20;fontStyle=1;shadow=0;spacingTop=5;" parent="1" vertex="1">
<mxGeometry x="40" y="20" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-93" value="2015" style="html=1;shape=mxgraph.infographic.flag;dx=30;dy=20;fillColor=#fbe7cd;strokeColor=#10739e;align=center;verticalAlign=top;fontSize=20;fontStyle=1;shadow=0;spacingTop=5;" parent="1" vertex="1">
<mxGeometry x="180" y="20" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-94" value="2016" style="html=1;shape=mxgraph.infographic.flag;dx=30;dy=20;fillColor=#fad9d5;strokeColor=#ae4132;align=center;verticalAlign=top;fontSize=20;fontStyle=1;shadow=0;spacingTop=5;" parent="1" vertex="1">
<mxGeometry x="320" y="20" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-95" value="2017" style="html=1;shape=mxgraph.infographic.flag;dx=30;dy=20;fillColor=#bac8d3;strokeColor=#23445d;align=center;verticalAlign=top;fontSize=20;fontStyle=1;shadow=0;spacingTop=5;" parent="1" vertex="1">
<mxGeometry x="460" y="20" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-96" value="2018" style="html=1;shape=mxgraph.infographic.flag;dx=30;dy=20;fillColor=#b0e3e6;strokeColor=#0e8088;align=center;verticalAlign=top;fontSize=20;fontStyle=1;shadow=0;spacingTop=5;" parent="1" vertex="1">
<mxGeometry x="600" y="20" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-97" value="2019" style="html=1;shape=mxgraph.infographic.flag;dx=30;dy=20;fillColor=#b1ddf0;strokeColor=#10739e;align=center;verticalAlign=top;fontSize=20;fontStyle=1;shadow=0;spacingTop=5;" parent="1" vertex="1">
<mxGeometry x="740" y="20" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-98" value="2020" style="html=1;shape=mxgraph.infographic.flag;dx=30;dy=20;fillColor=#fad7ac;strokeColor=#b46504;align=center;verticalAlign=top;fontSize=20;fontStyle=1;shadow=0;spacingTop=5;" parent="1" vertex="1">
<mxGeometry x="880" y="20" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-99" value="2021" style="html=1;shape=mxgraph.infographic.flag;dx=30;dy=20;fillColor=#fad9d5;strokeColor=#ae4132;align=center;verticalAlign=top;fontSize=20;fontStyle=1;shadow=0;spacingTop=5;" parent="1" vertex="1">
<mxGeometry x="1020" y="20" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-100" value="2022" style="html=1;shape=mxgraph.infographic.flag;dx=30;dy=20;fillColor=#bac8d3;strokeColor=#23445d;align=center;verticalAlign=top;fontSize=20;fontStyle=1;shadow=0;spacingTop=5;" parent="1" vertex="1">
<mxGeometry x="1160" y="20" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="rNGPlnSFtUfxI-7FSF1a-101" value="2023" style="html=1;shape=mxgraph.infographic.flag;dx=30;dy=20;fillColor=#b0e3e6;strokeColor=#0e8088;align=center;verticalAlign=top;fontSize=20;fontStyle=1;shadow=0;spacingTop=5;" parent="1" vertex="1">
<mxGeometry x="1300" y="20" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="Eea4O15NX0q3AfGc0YIN-1" value="Mutan" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;size=10;fillColor=#10739E;strokeColor=none;fontSize=25;fontColor=#FFFFFF;fontStyle=1;align=center;rounded=0;" parent="1" vertex="1">
<mxGeometry x="60" y="120" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="Eea4O15NX0q3AfGc0YIN-2" value="Bamboo" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;size=10;fillColor=#F2931E;strokeColor=none;fontSize=25;fontColor=#FFFFFF;fontStyle=1;align=center;rounded=0;" parent="1" vertex="1">
<mxGeometry x="410" y="200" width="260" height="40" as="geometry" />
</mxCell>
<mxCell id="Eea4O15NX0q3AfGc0YIN-4" value="Flint" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;size=10;fillColor=#AE4132;strokeColor=none;fontSize=25;fontColor=#FFFFFF;fontStyle=1;align=center;rounded=0;" parent="1" vertex="1">
<mxGeometry x="460" y="280" width="410" height="40" as="geometry" />
</mxCell>
<mxCell id="Eea4O15NX0q3AfGc0YIN-7" value="Logikon" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;size=10;fillColor=#10739E;strokeColor=none;fontSize=25;fontColor=#330000;fontStyle=1;align=right;rounded=0;labelPosition=left;verticalLabelPosition=middle;verticalAlign=middle;" parent="1" vertex="1">
<mxGeometry x="680" y="520" width="20" height="40" as="geometry" />
</mxCell>
<mxCell id="biigbZs_7oO6n0NeWNmr-1" value="Lira" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;size=10;fillColor=#F2931E;strokeColor=none;fontSize=25;fontColor=#FFFFFF;fontStyle=1;align=center;rounded=0;" parent="1" vertex="1">
<mxGeometry x="840" y="600" width="200" height="40" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
3 changes: 3 additions & 0 deletions cpwro2023/experimental-timeline.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit a0f048b

Please sign in to comment.