Browse Source

Most of the stuff is there now

master
Julio Biason 6 years ago
parent
commit
82bd81c19d
  1. BIN
      _images/rustlatam-asmjs.jpg
  2. BIN
      _images/rustlatam-async1.jpg
  3. BIN
      _images/rustlatam-async2.jpg
  4. BIN
      _images/rustlatam-defensive.png
  5. BIN
      _images/rustlatam-openingkeynote.jpg
  6. BIN
      _images/rustlatam-openingkeynote1.png
  7. BIN
      _images/rustlatam-openingkeynote2.png
  8. BIN
      _images/rustlatam-openingkeynote3.png
  9. BIN
      _images/rustlatam-openingkeynote4.png
  10. 518
      rustlatam-2019.html

BIN
_images/rustlatam-asmjs.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

BIN
_images/rustlatam-async1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 KiB

BIN
_images/rustlatam-async2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 KiB

BIN
_images/rustlatam-defensive.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
_images/rustlatam-openingkeynote.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 KiB

BIN
_images/rustlatam-openingkeynote1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
_images/rustlatam-openingkeynote2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
_images/rustlatam-openingkeynote3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

BIN
_images/rustlatam-openingkeynote4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

518
rustlatam-2019.html

@ -93,118 +93,414 @@
</section> </section>
</section> </section>
<section> <section>
<img src="_images/rustlatam-travel.png" alt="" class="stretch"> <section>
<img src="_images/rustlatam-travel.png" alt="" class="stretch">
<aside class="notes">
O Rust Latam foi o primeiro evento de Rust na América <aside class="notes">
Latina e aconteceu em Montevidéo, a 815km de Porto O Rust Latam foi o primeiro evento de Rust na América
Alegre. Latina e aconteceu em Montevidéo, a 815km de Porto
</aside> Alegre.
</section> </aside>
</section>
<section>
<section> <section>
<img src="_images/several-song-filled-hours-later.jpg" alt="" class="stretch"> <img src="_images/several-song-filled-hours-later.jpg" alt="" class="stretch">
</section> </section>
</section>
<section>
<h2>Workshops</h2> <section>
<section>
<h4 class="fragment">Learning WebAssembly and Rust</h4> <h2>Workshops</h2>
<aside class="notes"> <h4>
No primeiro dia, eu fui no workshop de webassembly. <a href="https://rustwasm.github.io/book/game-of-life/implementing.html">
Foi uma apresentação bem introdutória, inclusive Learning WebAssembly and Rust
para quem não conhecia Rust, mas que me ajudou um </a>
bocado a entender o Borrow Checker. </h4>
A apresentação das ferramentas foi bem completa, <aside class="notes">
mas a parte de webassembly foi totalmente "chupada" No primeiro dia, eu fui no workshop de webassembly.
do livro do RustWasm. Foi uma apresentação bem introdutória, inclusive
para quem não conhecia Rust, mas que me ajudou um
Mesmo assim, foi uma baita apresentação. bocado a entender o Borrow Checker.
</aside>
</section> A apresentação das ferramentas foi bem completa,
</section> mas a parte de webassembly foi totalmente "chupada"
do livro do RustWasm.
<section>
<section> Mesmo assim, foi uma baita apresentação.
<img class="stretch" src="_images/the-next-day.jpg" alt=""> </aside>
</section> </section>
</section>
<section>
<h2>Talks Day</h2> <section>
</section> <section>
</section> <img class="stretch" src="_images/the-next-day.jpg" alt="">
</section>
<section>
<section> <section>
<h2>Opening Keynote</h2> <h2>Talks Day</h2>
<h3>Niko Matsakis</h3> </section>
</section> </section>
<section> <section>
<img class="stretch" src="_images/rustlatam-openingkeynote.jpg" alt=""> <section>
</section> <h2>
</section> <a href="https://nikomatsakis.github.io/rust-latam-2019/#1">
Opening Keynote
<section> </a>
<section> </h2>
<h2>Defense Against The Wrong Logic: Proactive Rust Coding</h2>
<h3>Michael Gattozzi</h3> <h3>Niko Matsakis</h3>
</section> </section>
</section>
<section>
<section> <p>História do Rust</p>
<section> </section>
<h2>Interop with Android, IOS and WASM in the same project</h2>
<h3>Otávio Pace</h3> <section>
</section> <img class="stretch" src="_images/rustlatam-openingkeynote1.png" alt="">
</section> </section>
<section> <section>
<section> <img class="stretch" src="_images/rustlatam-openingkeynote2.png" alt="">
<h2>Rebuilding the Stack for Serverlesso</h2> </section>
<h3>Sergio Benitez</h3>
</section> <section>
</section> <img class="stretch" src="_images/rustlatam-openingkeynote3.png" alt="">
</section>
<section>
<section> <section>
<h2>WebAssembly with Rust</h2> <img class="stretch" src="_images/rustlatam-openingkeynote4.png" alt="">
<h3>Kevin Hoffman</h3> </section>
</section>
</section> <section>
<p>"Rust is Open"</p>
<section> </section>
<section> </section>
<h2>Friendly Ferris: Developing Kind Compiler Errors</h2>
<h3>Esteban Kuber</h3> <section>
</section> <section>
</section> <h2>
<a href="https://docs.google.com/presentation/d/140eKS9HLAfpb1Qi5J9xBpUcuxIhGDIejH7B8N2pmW5M/edit#slide=id.p1">
<section> Defense Against The Wrong Logic: Proactive Rust Coding
<section> </a>
<h2>Procedural Macros vs Sliced Bread</h2> </h2>
<h3>Alex Crichton</h3> <h3>Michael Gattozzi</h3>
</section> </section>
</section>
<section>
<section> <p><code>type</code> é para áliases.</p>
<section>
<h2>The Power of the "Where" Clause</h2> <pre><code class="hljs rust" data-trim>
<h3>Florian Gilcher</h3> type Farenheit = i32;
</section> type Celsius = i32;
</section>
fn is_it_hot(t: Farenheit) -&gt; bool;
<section>
<section> let temp: Celsius = 32;
<h2>Closing Keynote</h2> is_it_hot(temp);
<h3>Without Boats</h3> </code></pre>
</section> </section>
</section>
<section>
<pre><code class="hljs rust" data-trim>
struct Celsius(i32);
struct Farenheit(i32);
</code></pre>
</section>
<section>
<pre><code class="hljs rust" data-trim>
impl Into&lt;Celsius&gt; for Farenheit {
fn into(c: Celsius) -&gt; Self {
Self(((c.0 + 9) / 5) as i32 + 32);
}
}
is_it_hot(temp.into());
</code></pre>
</section>
<section>
<img class="stretch" src="_images/rustlatam-defensive.png" alt="">
</section>
</section>
<section>
<section>
<h2>
<a href="https://slides.com/otaviopace/deck-5#/">
Interop with Android, IOS and WASM in the same project
</a>
</h2>
<h3>Otávio Pace</h3>
</section>
<section>
<h3>FFI</h3>
<table>
<thead>
<tr>
<th>OS</th>
<th>How?</th>
</tr>
</thead>
<tbody>
<tr>
<td>iOS</td>
<td>C integration</td>
</tr>
<tr>
<td>Android</td>
<td>JNI</td>
</tr>
<tr>
<td>Web</td>
<td>WASM</td>
</tr>
</tbody>
</table>
</section>
<section>
<pre><code class="hljs rust" data-trim>
mod common;
#[cfg(target_os = "android")]
mod android;
#[cfg(target_os = "ios")]
mod ios;
#[cfg(target_arch = "wasm32")]
mod wasm;
</code></pre>
</section>
</section>
<section>
<section>
<h2>Rebuilding the Stack for Serverless</h2>
<h3>Sergio Benitez</h3>
</section>
<section>
<h4>Cold Start Preformance</h4>
<table>
<thead>
<tr>
<th>Service</th>
<th>Time</th>
</tr>
</thead>
<tbody>
<tr>
<td>AWS Lambda</td>
<td>~1.5s</td>
</tr>
<tr>
<td>Google Cloud Functions</td>
<td>&gt;2s</td>
</tr>
<tr>
<td>Fastly Terrarium (WASM)</td>
<td>~500ms</td>
</tr>
<tr>
<td>$2.50 VPS + NGINX</td>
<td>~30ms</td>
</tr>
</tbody>
</table>
</section>
<section>
<h4>Idea</h4>
<ul>
<li>Load executable directly into memory</li>
<li>Run code</li>
</ul>
</section>
</section>
<section>
<section>
<h2>WebAssembly with Rust</h2>
<h3>Kevin Hoffman</h3>
</section>
<section>
<p>
Autor do livro
<a href="https://pragprog.com/book/khrust/programming-webassembly-with-rust">Programming WebAssembly with Rust</a>
</p>
</section>
<section>
<img class="stretch" src="_images/rustlatam-asmjs.jpg" alt="">
</section>
</section>
<section>
<section>
<h2>
<a href="https://estebank.github.io/rust/">
Friendly Ferris: Developing Kind Compiler Errors
</a>
</h2>
<h3>Esteban Kuber</h3>
</section>
</section>
<section>
<section>
<h2>
<a href="https://rustlatam.org/assets/slides/proc-macros-sliced-bread.pdf">
Procedural Macros vs Sliced Bread
</a>
</h2>
<h3>Alex Crichton</h3>
</section>
<section>
<pre><code class="hljs rust" data-trim>
#[proc_macro]
pub fn println(input: TokenStream) -&gt; TokenStream
{
// ???
}
</code></pre>
</section>
</section>
<section>
<section>
<h2><a href="https://speakerdeck.com/skade/the-power-of-the-where-clause">The Power of the "Where" Clause</a></h2>
<h3>Florian Gilcher</h3>
</section>
<section>
<p>"Don't start out very generic, refactor towards it!"</p>
</section>
<section>
<pre><code class="hljs rust" data-trim>
fn debug_iter&lt;I&gt;(iter: I)
where
I: Iterator,
I::Item: Debug
{
// ...
}
</code></pre>
</section>
<section>
<pre><code class="hljs rust" data-trim>
trait State { }
trait TerminalState { }
</code></pre>
</section>
<section>
<pre><code class="hljs rust" data-trim>
trait TransitionTo&lt;S&gt;
where S: State,
Self: State
{
fn transition(self) -&gt; S;
}
trait Terminate
where Self: TerminalState
{
fn terminate(self);
}
</code></pre>
</section>
<section>
<pre><code class="hljs rust" data-trim>
struct Start;
impl State for Start {}
struct Loop;
impl State for Loop {}
struct Stop;
impl State for Stop {}
impl TerminalState for Stop {}
</code></pre>
</section>
<section>
<pre><code class="hljs rust" data-trim>
impl TransitionTo&lt;Loop&gt; for Start {
fn transition(self) -&gt; Loop { ... }
}
impl TransitionTo&lt;Loop&gt; for Loop {
fn transition(self) -&gt; Loop { ... }
}
impl TransitionTo&lt;End&gt; for Loop {
fn transition(self) -&gt; End { ... }
}
impl Terminate for End {
fn terminate(self) { ... }
}
</code></pre>
</section>
<section>
<pre><code class="hljs rust" data-trim>
fn main() {
let initial = Start;
let next: Loop = initial.transition();
let next: Loop = next.transition();
let next: End = next.transition();
next.terminate();
}
</code></pre>
</section>
</section>
<section>
<section>
<h2>Closing Keynote</h2>
<h3>Without Boats</h3>
</section>
<section>
<p>Estado geral do <code>async</code> em Rust.</p>
</section>
<section>
<img class="stretch" src="_images/rustlatam-async1.jpg" alt="">
</section>
<section>
<img class="stretch" src="_images/rustlatam-async2.jpg" alt="">
</section>
</section>
<section data-background='_images/thats-all-folks.jpg'>
<section></section>
</section>
</div> </div>
</div> </div>

Loading…
Cancel
Save