-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
cpwro2023 presentation slides and notes
- Loading branch information
Showing
17 changed files
with
1,806 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 \ | ||
"$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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<br style="font-size: 16px;">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> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.