Skip to content

Commit

Permalink
Merge pull request #47 from rustnl/workshops
Browse files Browse the repository at this point in the history
Workshop page 2025
  • Loading branch information
erikjee authored Feb 10, 2025
2 parents 829df3b + 3491cca commit 11e0652
Show file tree
Hide file tree
Showing 27 changed files with 433 additions and 321 deletions.
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# RustNL 2025 Website
# RustWeek 2025 Website

The website is built with [Astro](https://astro.build/).

In Astro, you can author content in [GitHub Flavored Markdown](https://github.github.com/gfm/).

## Setup project

Expand Down
Binary file added public/images/people/andre.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/francois.avif
Binary file not shown.
Binary file added public/images/people/francois.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/georg.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/michaelw.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
304 changes: 0 additions & 304 deletions src/2024-pages/workshops.astro

This file was deleted.

2 changes: 1 addition & 1 deletion src/components/Divider.astro
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
}
.stripes {
background: no-repeat center / 100% auto url("/images/stripes.svg");
height: space(1);
height: 0.5rem;
width: min(100%, 900px);
}
</style>
11 changes: 3 additions & 8 deletions src/components/people/SpeakerFull.astro
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ const link = encodeURIComponent(name);
<div>
{
bio && (
<p class="bio">
{bio}
</p>
<div class="bio" set:html={bio} />
)
}
{talkTitle && <h3>The talk</h3>}
Expand Down Expand Up @@ -72,9 +70,9 @@ const link = encodeURIComponent(name);
@include breakpoint.smaller_than(lg) {
display: flex;
flex-direction: column;
padding-block-end: 3rem;
}


img {
border-radius: 0.5em;
vertical-align: middle;
Expand All @@ -83,6 +81,7 @@ const link = encodeURIComponent(name);
height: auto;

display: inline-block;
margin-block-end: 2rem;

aspect-ratio: 1/1;

Expand All @@ -94,16 +93,13 @@ const link = encodeURIComponent(name);

.main-info {
position: relative;
font-size: variables.$font-size-md;


@include breakpoint.smaller_than(lg) {
display: flex;
align-items: center;
flex-direction: column;
}


h2 {
font-weight: variables.$font-weight-light;
line-height: variables.$line-height-tight;
Expand Down Expand Up @@ -136,7 +132,6 @@ const link = encodeURIComponent(name);
margin: 0.5em 0 0 0;

@include breakpoint.wider_than(lg) {
font-size: variables.$font-size-md;
text-align: left;
}
}
Expand Down
26 changes: 19 additions & 7 deletions src/components/workshop/workshop-detail.astro
Original file line number Diff line number Diff line change
@@ -1,24 +1,36 @@
---
const { title, time, id } = Astro.props;
const {
title,
slug,
time,
abstract,
description,
full
} = Astro.props;
---

<div class="markdown workshop-detail">
<div class="space-y-6">
<h2>{title}</h2>
<h2 id={slug}>{title}</h2>
<strong>
{time}
</strong>
<div class="space-y-6" id={id}>
<slot />
</div>
{ !full &&
<p>
{abstract}
</p>
}
{ full &&
<div class="space-y-6" set:html={description} />
}
</div>
</div>

<style lang="scss">
@use "../../styles/variables.scss";

.workshop-detail h2 {
font-size: variables.$font-size-lg;
font-style: italic;
font-size: variables.$font-size-xl;
font-style: normal;
}
</style>
46 changes: 46 additions & 0 deletions src/layouts/WorkshopLayout.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
import WorkshopDetail from "../components/workshop/workshop-detail.astro";
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 { title } = frontmatter;
const trainers = await Astro.glob('../pages/people/trainers/*.md');
---

<CommonLayout title={title} header="Workshop" withLogo>
<section class="container md:grid md:cols-12 py-12">
<div class="md:col-start-3 md:col-end-11">
<WorkshopDetail {...frontmatter} description={Astro.slots.render('default')} full />

<div class="space-y-3">
<div class="space-y-3">
<h3>Workshop by</h3>
</div>
{trainers
.filter((trainer) => trainer.frontmatter.workshop == frontmatter.slug)
.map((workshopTrainer) =>
<SpeakerFull {...workshopTrainer.frontmatter} bio={workshopTrainer.compiledContent()} />
)}
</div>

<h3>Get your ticket!</h3>
<p>
All workshops are held on Thu May 15 at the DUS venue.
</p>
<p>
Workshop tickets are available in combination with a conference ticket, called 'Conference + workshop - Individuals' or 'Conference + workshop - Employer-paid'.
</p>
<div class="space-y-3">
<Button
link="https://www.eventbrite.nl/e/industry-track-rustweek-2025-tickets-1115250035879"
>Get your ticket</Button>
<br /><br />
</div>

</div>
</section>
</CommonLayout>
14 changes: 14 additions & 0 deletions src/pages/people/trainers/alice.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
layout: "../../../layouts/MarkdownLayout.astro"
name: "Alice Ivy Cecile"
image: "alice_cecile.jpg"
title: "Bevy community leader & mad scientist"
linkedin: ""
twitter: ""
mastodon: ""
github: ""
workshop: "bevy"
slug: "alice"
---

Alice leads and coordinates Bevy's bubbling open source community as they build the next generation of game engine in Rust!
14 changes: 14 additions & 0 deletions src/pages/people/trainers/andre.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
layout: "../../../layouts/MarkdownLayout.astro"
name: "Andre Bogus"
image: "andre.jpg"
title: "Distinguished Engineer"
linkedin: ""
twitter: "https://twitter.com/llogiq"
mastodon: ""
github: "https://github.com/llogiq"
workshop: "clippy"
slug: "andre"
---

Andre Bogus is a German software engineer, a rust-clippy maintainer, This Week in Rust editor, the one and only Rust Bard and helps rustaceans wherever he can. Andre loves music and will usually have a Ukulele or other instrument at hand. His other hobbies include swimming, skateboarding, biking and caring for his wife, three kids and cat.
15 changes: 15 additions & 0 deletions src/pages/people/trainers/francois.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
layout: "../../../layouts/MarkdownLayout.astro"
name: "François Mockers"
image: "francois.png"
title: "Maintainer @ Bevy"
linkedin: ""
twitter: ""
mastodon: ""
github: ""
workshop: "bevy"
slug: "francois"
---

QA Lead at PayLead during the day, maintainer on Bevy Engine the rest of the time... He discovered Rust in 2017 and didn't let go since!

14 changes: 14 additions & 0 deletions src/pages/people/trainers/georg.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
layout: "../../../layouts/MarkdownLayout.astro"
name: "Georg Semmler"
image: "georg.jpeg"
title: "Diesel Maintainer"
linkedin: ""
twitter: ""
mastodon: "https://social.weiznich.de/@weiznich"
github: "https://github.com/weiznich/"
workshop: "diesel"
slug: "georg"
---

I’m Georg, the maintainer of the widely used Safe, Extensible Rust ORM and Query Builder Diesel. Beside of working on Diesel, I contribute to the Rust ecosystem to resolve problems I encounter while improving Diesel. This includes contributing to the Rust compiler and occasionally contributing to the language design itself. In my day job at GiGa infosystems GmbH, I work as researcher and developer on a database system for 3D-subsurface models.
16 changes: 16 additions & 0 deletions src/pages/people/trainers/matthias.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
layout: "../../../layouts/MarkdownLayout.astro"
name: "Matthias Endler"
image: "matthias.jpg"
title: "Rust Consultant & 'Rust in Production' podcast host"
linkedin: "https://www.linkedin.com/in/endlermatthias/"
twitter: "https://twitter.com/matthiasendler"
mastodon: "https://mastodon.social/@mre"
github: ""
workshop: "cli"
slug: "matthias"
---

Hi, I’m Matthias Endler, a Rust developer and open-source maintainer with 20 years of experience in software development. I'm also the host of 'Rust in Production' podcast.

I help clients worldwide get the most out of Rust through training, consulting, and writing no-frills, easy-to-follow, idiomatic Rust code.
14 changes: 14 additions & 0 deletions src/pages/people/trainers/michael.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
layout: "../../../layouts/MarkdownLayout.astro"
name: "Michael Winkelmann"
image: "michaelw.jpg"
title: "Independent Software Consultant"
linkedin: ""
twitter: ""
mastodon: ""
github: "https://github.com/WilstonOreo"
workshop: "embedded"
slug: "michael"
---

Michael Winkelmann is an independent software consultant and has been building cross-platform GUIs for more than 10 years. For more than 7 years he worked for the Qt Company as a consultant, helping customers to succeed with their software projects by giving trainings, workshops and code audits. Since 2020 he is a Rust language enthusiast.
13 changes: 13 additions & 0 deletions src/pages/people/trainers/rik.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
layout: "../../../layouts/MarkdownLayout.astro"
name: "Rik Arends"
image: "rik.jpeg"
title: "Founder Makepad"
linkedin: "https://www.linkedin.com/in/arendsrik/"
twitter: "https://twitter.com/rikarends"
mastodon: ""
github: "https://github.com/makepad/makepad"
workshop: "makepad"
slug: "rik"
---

14 changes: 14 additions & 0 deletions src/pages/people/trainers/tamme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
layout: "../../../layouts/MarkdownLayout.astro"
name: "Tamme Dittrich"
image: "tamme.jpg"
title: "Embedded Rust engineer @ Tweede golf"
linkedin: "https://www.linkedin.com/in/tamme-dittrich-81b225227/"
twitter: ""
mastodon: "https://social.weiznich.de/@weiznich"
github: "https://github.com/tdittr"
workshop: "python"
slug: "tamme"
---

With both an educational and professional background in industrial applications of embedded software, Tamme's experience stretches from FPGAs to Industrial automation protocols.
67 changes: 67 additions & 0 deletions src/pages/workshops.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
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 workshops = await Astro.glob('./workshops/*.md');
const trainers = await Astro.glob('./people/trainers/*.md');
---

<CommonLayout title="Workshops" header="Workshops" 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;"
>
{workshops.map(( workshop ) =>
<Fragment>
<a href={`#${workshop.frontmatter.slug}`}>{workshop.frontmatter.slug}</a> &bullet;
</Fragment>
)}
</div>

<p>
All workshops are held on Thu May 15 at the DUS venue.
</p>

<Divider />

{workshops.map(( workshop ) =>
<Workshop>
<WorkshopDetail {...workshop.frontmatter} description={workshop.compiledContent()} />
<div class="space-y-3">
<h4>Workshop by</h4>
</div>
{trainers
.filter((trainer) => trainer.frontmatter.workshop == workshop.frontmatter.slug)
.map((workshopTrainer) =>
<SpeakerFull {...workshopTrainer.frontmatter} />
)}

</Workshop>
<div class="space-y-3">
<Button
link={`/workshops/${workshop.frontmatter.slug}`}
>Details & tickets</Button>
<br /><br />
</div>
<Divider />
)}

</div>
</div>
</section>
</CommonLayout>

<style lang="scss">
@use "../styles/variables.scss";
h4 {
font-size: variables.$font-size-lg;
}
</style>
14 changes: 14 additions & 0 deletions src/pages/workshops/bevy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
layout: "../../layouts/WorkshopLayout.astro"
title: "Let's build our first Bevy game!"
abstract: "The goal of the workshop is to start from scratch with Bevy, go though the basis in theory, see how it can be used, and then dig deeper into each part and how they work with each other to make a game."
time: "9:00 - 13:00"
slug: "bevy"
level: "intermediate"
beginnerFriendly: false
---

The goal of the workshop is to start from scratch with Bevy, go though the basis in theory, see how it can be used, and then dig deeper into each part and how they work with each other to make a game.

Depending on the focus of the workshop, it’s possible to go deeper into Bevy, or to see how it’s possible to build a Rust game for native, for Wasm and for mobile (Android or iOS depending on attendees phone of choice).

14 changes: 14 additions & 0 deletions src/pages/workshops/cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
layout: "../../layouts/WorkshopLayout.astro"
title: "Rust CLI Tools: Building A Fast File Finder"
abstract: "Participants will build a complete command-line file finder in Rust, learning about file system operations, error handling, and CLI design patterns."
time: "9:00 - 13:00"
slug: "cli"
level: "intermediate"
beginnerFriendly: true
---

Participants will build a complete command-line file finder in Rust, learning about file system operations, error handling, and CLI design patterns.

- Target audience: Rust beginners/intermediate developers interested in building a small real-world CLI tool with Rust
- Requirements: Basic programming experience with Rust (i.e. the Rust book, Rustlings, or experience in other languages like Go, Python, or TypeScript), laptop with Rust installed
Loading

0 comments on commit 11e0652

Please sign in to comment.