Skip to content

Commit

Permalink
Merge pull request #50 from rustnl/speaker-content
Browse files Browse the repository at this point in the history
Speaker content
  • Loading branch information
erikjee authored Feb 15, 2025
2 parents c986933 + 5f46e73 commit 57389c5
Show file tree
Hide file tree
Showing 53 changed files with 948 additions and 4 deletions.
Binary file added public/images/people/caroline.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/ciara.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/cliff.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/conrad.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/dion.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/emmanuel.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/fabian.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/jack.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/joe.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/martin.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/noah.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/rose.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/shane.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/stefan.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/stephen.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/tim.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/valdemar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/victor.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/waffle_cat.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/people/waqar.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 6 additions & 4 deletions src/components/people/SpeakerFull.astro
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@ const link = encodeURIComponent(name);
---

<div class="person" id=`${link}`>
<img
src={`/images/people/${image}`}
alt={`Picture of ${name}`}
/>
{ image && (
<img
src={`/images/people/${image}`}
alt={`Picture of ${name}`}
/>
)}
<div class="main-info">
<h2>{name}</h2>
<p class="speaker-title">{title}</p>
Expand Down
45 changes: 45 additions & 0 deletions src/layouts/TalkLayout.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
import SpeakerFull from "../components/people/SpeakerFull.astro";
import CommonLayout from "../layouts/CommonLayout.astro";
import "../styles/index.scss";
import Button from "../components/Button.astro";
const { frontmatter } = Astro.props;
const { talkTitle, tracks, talkTags, org } = frontmatter;
const content = await Astro.slots.render('default');
const abstract = content.split('//////')[0];
const bio = content.split('//////')[1];
---

<CommonLayout title={talkTitle} header={talkTitle} withLogo>
<section class="container md:grid md:cols-12 py-12">
<div class="md:col-start-3 md:col-end-11">
<!-- <slot /> -->
<div set:html={abstract}>

</div>
<div class="space-y-3">
<strong>Tags:</strong>
{talkTags.join(", ")}
<br /><strong>Org:</strong>
{org}
<br /><strong>Stage:</strong>
{tracks.map(( track: String ) =>
<Fragment>
{track}
</Fragment>
)}
</div>
<div class="py-6">
<h3>Talk by</h3>
<SpeakerFull {...frontmatter} talkTitle={false} bio={bio} />
</div>
<div class="space-y-3">
<Button
link="https://www.eventbrite.nl/e/rustweek-2025-tickets-1001676961757?aff=oddtdtcreator"
>Get your ticket</Button>
<br /><br />
</div>
</div>
</section>
</CommonLayout>
41 changes: 41 additions & 0 deletions src/pages/talks.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
import WorkshopDetail from "../components/workshop/workshop-detail.astro";
import Workshop from "../components/workshop/Workshop.astro";
import SpeakerFull from "../components/people/SpeakerFull.astro";
import CommonLayout from "../layouts/CommonLayout.astro";
import Divider from "../components/Divider.astro";
import Button from "../components/Button.astro";
const talks = await Astro.glob('./talks/*.md');
---

<CommonLayout title="Talks" header="Talks" withLogo>
<section class="container py-12 space-y-6">
<div class="grid xl:cols-12" id="workshops">
<div class="xl:col-start-3 xl:col-end-11 space-y-12">
<div
class="abouttext text-center md:col-start-3 md:col-end-11 xl:col-start-4 xl:col-end-10"
style="font-size: smaller; text-align: left;line-height: 2rem;"
>
{talks.map( ( talk ) =>
<div>
&bullet; <a href={talk.url}>{talk.frontmatter.name} / {talk.frontmatter.talkTitle}</a>
</div>
)}
</div>
</div>
</div>
</section>
</CommonLayout>

<style lang="scss">
@use "../styles/variables.scss";
.trainer {
font-size: variables.$font-size-md;
// note: writing this as text-decoration shorthand does not work on safari
text-decoration-line: underline;
text-decoration-color: variables.$color-red-400;
text-decoration-thickness: 0.3rem;
}
</style>
27 changes: 27 additions & 0 deletions src/pages/talks/_template
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
layout: "../../layouts/TalkLayout.astro"
name: ""
image: "" # images go in public/images/people
title: ""
org: ""
tracks:
- main_stage
talkTitle: ""
talkLevel: ""
talkTags: []
talkDuration: 0 # 15 or 30 min
url: ""
bluesky: ""
linkedin: ""
twitter: ""
mastodon: ""
github: ""
---

Abstract

////// <!-- sepatator between abstract and bio -->

Bio


27 changes: 27 additions & 0 deletions src/pages/talks/alex.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
layout: "../../layouts/TalkLayout.astro"
name: "Alex Crichton"
image: "alex_crichton.jpg" # images go in public/images/people
title: "Core Contributor of WasmTime"
org: ""
tracks:
- main_stage
talkTitle: "TBA"
talkLevel: ""
talkTags: []
talkDuration: 30 # 15 or 30 min
url: ""
bluesky: ""
linkedin: ""
twitter: "https://x.com/alex_crichton"
mastodon: ""
github: "https://github.com/alexcrichton"
---

TBA

////// <!-- sepatator between abstract and bio -->

I'm a Rust team alumni who participated on a number of teams including Core, Cargo, Libs, and others. I contributed to Rust prior to it's 1.0 release in 2015 and the years afterwards. Nowadays I've shifted my focus to WebAssembly and primarily work on Wasmtime, an out-of-browser WebAssembly engine. I also help maintain the Rust and WebAssembly integration and targets.


29 changes: 29 additions & 0 deletions src/pages/talks/alice.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
layout: "../../layouts/TalkLayout.astro"
name: "Alice Ivy Cecile"
image: "alice_cecile.jpg" # images go in public/images/people
title: "Bevy community leader & mad scientist"
org: ""
bio: ""
tracks:
- main_stage
talkTitle: "Bevy talk title"
talkLevel: ""
talkTags: []
talkDuration: 30 # 15 or 30 min
url: ""
linkedin: ""
twitter: ""
mastodon: ""
github: ""
---

Bevy talk abstract

List
- Bevy
- and more

////// <!-- sepatator between abstract and bio -->

Alice leads and coordinates Bevy's bubbling open source community as they build the next generation of game engine in Rust!
31 changes: 31 additions & 0 deletions src/pages/talks/caroline
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
layout: "../../layouts/TalkLayout.astro"
name: "Caroline Morton"
image: "caroline.jpeg" # images go in public/images/people
title: ""
org: "Parakeet Consulting"
tracks:
- main_stage
talkTitle: "Healthy Data, Rusty Code: Epidemiology Meets Modern Systems Programming"
talkLevel: "All"
talkTags: ["epidemiology", "scientific programming", "rust", "py03"]
talkDuration: 30 # 15 or 30 min
url: "https://www.carolinemorton.co.uk/"
bluesky: ""
linkedin: "https://www.linkedin.com/in/caroline-morton-0/"
twitter: ""
mastodon: ""
github: "https://github.com/CarolineMorton"
---

Epidemiology relies on codelists for health data, but managing them can be error-prone. This talk introduces codelist-tools: open-source Rust libraries with Python/R bindings, offering a safe, efficient way to manage codelists and making modern systems programming accessible to non-Rust users.

////// <!-- sepatator between abstract and bio -->

Dr. Caroline Morton is a medical doctor, epidemiologist, software engineer, and PhD candidate specialising in synthetic data, epidemiology, and Rust. With 60 peer-reviewed papers and two books on software, she combines deep technical expertise with a commitment to improving scientific workflows.

Caroline co-founded the first Women in Rust group, fostering diversity and encouraging more women to explore opportunities in systems programming. She leads an open-source project improving codelist management in epidemiology using Rust, creating efficient, reliable tools for health data research.

Her PhD focuses on synthetic data methods for epidemiology, particularly using Rust to generate large, realistic datasets. Her PhD is sponsored by SurrealDB. A strong advocate for open science and reproducibility, she contributes extensively to improving software practices through publications, workshops, and open-source projects.


27 changes: 27 additions & 0 deletions src/pages/talks/ciara.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
layout: "../../layouts/TalkLayout.astro"
name: "Ciara R"
image: "" # images go in public/images/people
title: "Senior Software Engineer"
org: "Esri"
tracks:
- main_stage
talkTitle: "Atomic break down: understanding ordering"
talkLevel: "Intermediate"
talkTags: ["rust", "atomics", "ordering"]
talkDuration: 30 # 15 or 30 min
url: "https://www.youtube.com/@rustandcppcardiffmeetup4173"
bluesky: ""
linkedin: "https://www.linkedin.com/in/ciara-rs/"
twitter: "https://x.com/ciara0x1f973"
mastodon: "https://hachyderm.io/@ciara"
github: ""
---

Atomics and memory ordering are a commonly misunderstood, but incredibly useful part of Rust and C++. In this talk we will walk through why memory ordering is such a crucial part of the atomics model, and demystify when it's appropriate to use different ordering types.

////// <!-- sepatator between abstract and bio -->

I am a Senior Software Engineer at Esri and organizer of the meetup Rust and C++ Cardiff/Dragons. When I'm not by my computer you can find me wandering nearby woods in search of flora, fauna, and swim spots.


29 changes: 29 additions & 0 deletions src/pages/talks/cliff.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
layout: "../../layouts/TalkLayout.astro"
name: "Cliff L. Biffle"
image: "cliff.jpeg" # images go in public/images/people
title: ""
org: ""
tracks:
- deep_dive
talkTitle: "Really Small Rust"
talkLevel: "Advanced"
talkTags: ["embedded systems", "tooling", "size"]
talkDuration: 30 # 15 or 30 min
url: "https://cliffle.com/"
bluesky: ""
linkedin: ""
twitter: ""
mastodon: "https://hachyderm.io/@cliffle"
github: "https://github.com/cbiffle"
---

We all know Rust scales up, but what kind of resources do you need for Rust firmware in low-end embedded systems?

How about a couple of kilobytes in a US$0.50 microcontroller? This is not theoretical, it's shipping today.

////// <!-- sepatator between abstract and bio -->

Cliff has had the privilege of using Rust in his day job since 2018. He's the author of Learn Rust The Dangerous Way, an unsafe-first tutorial for C programmers. At his day job at Oxide Computer he's the original author of the Hubris high-reliability embedded operating system, used throughout Oxide's hardware. At night he builds microcontroller art projects using Rust and sells embedded widgets on Tindie/Lectronz. He is rarely on fire, and generally not for very long.


31 changes: 31 additions & 0 deletions src/pages/talks/conrad.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
layout: "../../layouts/TalkLayout.astro"
name: "Conrad Irwin"
image: "conrad.png" # images go in public/images/people
title: ""
org: "Zed"
tracks:
- main_stage
talkTitle: "Rewriting Vim in Rust: Lessons Learned"
talkLevel: "All"
talkTags: ["tooling"]
talkDuration: 15 # 15 or 30 min
url: "https://zed.dev"
bluesky: ""
linkedin: ""
twitter: ""
mastodon: ""
github: ""
---

"How many Vim shortcuts do you know? What's the most obscure? What's the most useful?

I'll share a few of the forgotten corners of Vim, the features I didn't know about until I had to reimplement them, and some of the things that keep people using this magic."

////// <!-- sepatator between abstract and bio -->

I build delightful tools that make people more productive. Currently building the future of software engineering at Zed. Previously CTO at Superhuman.

Filer of issues. Fixer of bugs. It has been `NaN` days since last incident.


33 changes: 33 additions & 0 deletions src/pages/talks/dion.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
layout: "../../layouts/TalkLayout.astro"
name: "Dion Dokter"
image: "dion.jpeg" # images go in public/images/people
title: ""
org: "Tweede golf"
tracks:
- deep_dive
talkTitle: "Codegen your problems away - device-driver toolkit"
talkLevel: "Intermediate"
talkTags: ["codegen", "macros", "drivers", "embedded systems", "tooling"]
talkDuration: 30 # 15 or 30 min
url: "https://tweedegolf.nl/en/about/23/dion/blogs"
bluesky: "https://bsky.app/profile/diondokter.bsky.social"
linkedin: ""
twitter: ""
mastodon: "https://fosstodon.org/@diondokter"
github: "https://github.com/diondokter"
---

Are you having to choose between writing your device driver quickly or writing it well?

Fear not! With the device-driver toolkit all this is solved with a bit of codegen.
This talk covers the challenges of macros, manually writing drivers, what this toolkit gets you and how it does it.

////// <!-- sepatator between abstract and bio -->

I'm Dion Dokter, 28 years old, living in the very east of the Netherlands with my two cats Maya and Lily.
I've been doing embedded Rust for over 5 years now, 3 of which at Tweede golf where I'm the embedded tech lead.
On the job I've worked with a wide range of systems from tiny low power LTE GPS trackers, to satellite firmware, to heat optimizers for New York high-rise buildings.
Musically I play the piano once in a while and like to listen to 00's pop and modern symphonic metal.


26 changes: 26 additions & 0 deletions src/pages/talks/emmanuel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
layout: "../../layouts/TalkLayout.astro"
name: "Emmanuel Baccelli"
image: "emmanuel.jpg" # images go in public/images/people
title: ""
org: "Inria & Freie Universität Berlin"
tracks:
- deep_dive
talkTitle: "Ariel OS - An Open Source Embedded Rust OS for Networked Multi-Core Microcontrollers"
talkLevel: "Intermediate"
talkTags: ["embedded systems"]
talkDuration: 15 # 15 or 30 min
url: "https://emmanuelbaccelli.com/"
linkedin: ""
twitter: ""
mastodon: ""
github: ""
---

The Rust Embedded ecosystem is alive & kicking, but trails the C world regarding integration. Enter Ariel OS, integrating the best of Rust on microcontrollers (Embassy, esp-hal, defmt…) and adding missing OS features (multi-core scheduler, metabuild system…) for safe, ergonomic embedded development.

////// <!-- sepatator between abstract and bio -->

Emmanuel Baccelli is a scientific researcher working for Inria, as well as professor at Freie Universität Berlin. After working at AT&T Labs in Florham Park, New Jersey, USA, then for Metro Optix Inc. in the Silicon Valley as software engineer until 2002, Emmanuel joined Hitachi Europe as research engineer in 2003, and eventually received his Ph.D. from Ecole Polytechnique, Paris, France in 2006. Emmanuel's main research interests involve Internet of Things, low-power software and security, spontaneous wireless networks, design and analysis of network protocols and algorithms. He has co-authored dozens of articles published in relevant IEEE and ACM conferences and journals in these research domains. In 2013, he co-founded the open source community developing [RIOT](https://github.com/RIOT-OS/RIOT/), an operating system for low-power microcontrollers. In 2024, Emmanuel co-founded -- and coordinates since -- the open source community developing the embedded Rust operating system [Ariel](https://github.com/ariel-os/ariel-os).


Loading

0 comments on commit 57389c5

Please sign in to comment.