Skip to content

Commit abdf713

Browse files
committed
Merge branch 'main' of github.com:rustnl/rustnl2025
2 parents 36ce443 + c9446ad commit abdf713

File tree

11 files changed

+180
-126
lines changed

11 files changed

+180
-126
lines changed

public/images/people/olivier.jpeg

21.5 KB
Loading

src/components/timetable/Tuesday.astro

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,12 @@ const breaks = [
108108
ticket="Industry"
109109
/>
110110
<Item
111-
title="To be announced"
111+
talk="mark"
112112
color="red"
113113
track={3}
114114
time="10:40"
115115
duration={20}
116116
room={tertiary}
117-
striped
118117
ticket="Industry"
119118
/>
120119
<Divider start="11:00" end="11:30"> Break </Divider>
@@ -191,9 +190,8 @@ const breaks = [
191190
duration={35}
192191
room={main}
193192
/>
194-
<!-- talk="caroline" -->
195193
<Item
196-
title="TBA"
194+
talk="caroline"
197195
color="yellow"
198196
track={1}
199197
time="14:45"

src/components/timetable/Wednesday.astro

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,8 @@ const breaks = [
105105
duration={35}
106106
room={main}
107107
/>
108-
<!-- talk="martin" -->
109108
<Item
110-
title="TBA"
109+
talk="martin"
111110
color="yellow"
112111
track={1}
113112
time="12:15"

src/layouts/IndustryLayout.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ import "../styles/index.scss";
5252
<li>How to plan your rust migration</li>
5353
<li>The Rust Foundation & Rust Project</li>
5454
<li>Rust for embedded software development</li>
55+
<li>Setting up Rust in a semiconductor company</li>
56+
<li>Rust for frontend development</li>
5557
</ul>
5658
</p>
5759

src/layouts/TalkLayout.astro

Lines changed: 52 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,24 @@
11
---
2-
import CommonLayout from '../layouts/CommonLayout.astro';
3-
import '../styles/index.scss';
4-
import Button from '../components/Button.astro';
5-
import Person from '../components/people/Person.astro';
6-
import Divider from '../components/Divider.astro';
2+
import CommonLayout from "../layouts/CommonLayout.astro";
3+
import "../styles/index.scss";
4+
import Button from "../components/Button.astro";
5+
import Person from "../components/people/Person.astro";
6+
import Divider from "../components/Divider.astro";
77
88
const { frontmatter } = Astro.props;
9-
const { talkTitle, talkLevel, url, tracks = [], day = "tuesday" } =
10-
frontmatter;
9+
const { talkTitle, talkLevel, url, tracks = [], day = "tuesday" } = frontmatter;
1110
1211
const sep = /\/\/\/\/\/\/.*/;
13-
const content = await Astro.slots.render('default');
12+
const content = await Astro.slots.render("default");
1413
const abstract = content.split(sep)[0];
15-
const bio = content.split(sep)[1].replace(/^\n|\n$/g, '');
14+
const bio = content.split(sep)[1].replace(/^\n|\n$/g, "");
1615
17-
function list(names: string[]){
16+
function list(names: string[]) {
1817
const finalName = names.pop();
19-
return names.length
20-
? names.join(', ') + ' & ' + finalName
21-
: finalName;
18+
return names.length ? names.join(", ") + " & " + finalName : finalName;
2219
}
2320
2421
const speaker_names = list(frontmatter.speakers.map((s: any) => s.name));
25-
2622
---
2723

2824
<CommonLayout title={talkTitle} withLogo>
@@ -52,84 +48,79 @@ const speaker_names = list(frontmatter.speakers.map((s: any) => s.name));
5248
frontmatter.speakers.map((speaker: any) => (
5349
<Person description={bio} {...speaker} />
5450
))
55-
}
51+
}
52+
</div>
53+
<div class="py-6">
5654
<div class="buttons">
57-
{
58-
!tracks.includes("industry")?(
59-
<Button
60-
link="https://www.eventbrite.nl/e/rustweek-2025-tickets-1001676961757?aff=oddtdtcreator"
61-
>
62-
Get your ticket
63-
</Button>
64-
):(
65-
66-
<Button
67-
link="https://www.eventbrite.nl/e/industry-track-rustweek-2025-tickets-1115250035879"
68-
>
69-
Get your ticket
70-
</Button>
71-
)
72-
}
73-
<Button
74-
link=`/schedule/${day}/#${url.split('/').pop()}`
75-
>
76-
Find in timetable
77-
</Button>
55+
{
56+
!tracks.includes("industry") ? (
57+
<Button link="https://www.eventbrite.nl/e/rustweek-2025-tickets-1001676961757?aff=oddtdtcreator">
58+
Get your ticket
59+
</Button>
60+
) : (
61+
<Button link="https://www.eventbrite.nl/e/industry-track-rustweek-2025-tickets-1115250035879">
62+
Get your ticket
63+
</Button>
64+
)
65+
}
66+
<Button link=`/schedule/${day}/#${url.split('/').pop()}`>
67+
Find in timetable
68+
</Button>
7869
</div>
7970
</div>
8071
</div>
8172
</section>
8273
</CommonLayout>
8374

8475
<style is:global>
85-
.bio p {
76+
.bio p {
8677
margin: 0;
8778
padding: 0;
8879
min-height: 0;
89-
}
80+
}
9081
</style>
9182

9283
<style lang="scss">
93-
@use '../styles/variables.scss';
94-
@use '../styles/breakpoint.scss';
84+
@use "../styles/variables.scss";
85+
@use "../styles/breakpoint.scss";
9586

96-
.bio {
87+
.bio {
9788
grid-area: bio;
98-
}
99-
.name {
89+
}
90+
.name {
10091
padding: 0;
10192
margin: 0;
10293
grid-area: name;
10394
font-size: variables.$font-size-lg;
104-
}
105-
.picture {
95+
}
96+
.picture {
10697
grid-area: picture;
107-
}
98+
}
10899

109-
.kicker {
110-
color: variables.$color-red-400;
111-
font-weight: 700;
112-
text-transform: uppercase;
113-
}
100+
.kicker {
101+
color: variables.$color-red-400;
102+
font-weight: 700;
103+
text-transform: uppercase;
104+
}
114105

115-
h1 {
116-
padding: 0;
117-
text-decoration: none;
118-
}
106+
h1 {
107+
padding: 0;
108+
text-decoration: none;
109+
}
119110

120-
h2 {
121-
text-decoration: none;
122-
}
111+
h2 {
112+
text-decoration: none;
113+
}
123114

124-
.buttons {
115+
.buttons {
125116
display: flex;
126117
flex-direction: row;
127118
align-items: center;
128119
justify-content: center;
129120
gap: 1em;
130121

131122
@include breakpoint.smaller_than(lg) {
132-
flex-direction: column;
123+
flex-direction: column;
133124
}
134-
}
125+
}
135126
</style>

src/pages/industry.astro

Lines changed: 57 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -33,51 +33,55 @@ import ButtonGroup from "../components/ButtonGroup.astro";
3333
</Markdown>
3434
<Timetable slot="timetable-day">
3535
<TimetableItem time="9.30" title="Registration" />
36-
<TimetableItem time="10.00" title="Opening" speaker="Hugo van de Pol" />
36+
<TimetableItem time="9.55" title="Opening" speaker="Hugo van de Pol" />
3737
<TimetableItem
38-
time="10.05"
38+
time="10.00"
3939
title="Our Vision for Rust"
4040
speaker="Niko Matsakis"
4141
/>
4242
<TimetableItem
43-
time="10.25"
43+
time="10.20"
4444
title="Rust at Volvo Cars"
4545
speaker="Julius Gustavsson"
4646
/>
47-
<TimetableItem time="10.45" title="Short break" />
4847
<TimetableItem
49-
time="11.00"
48+
time="10.40"
49+
title="Rust at the Dutch Electoral Council"
50+
speaker="Mark Janssen"
51+
/>
52+
<TimetableItem time="11.00" title="Break" />
53+
<TimetableItem
54+
time="11.30"
5055
title="Expert Tables Round 1 - choose a topic and learn from a seasoned Rust expert as well as your industry peers"
51-
speaker="Experts to be announced"
56+
speaker="Various industry experts"
5257
/>
5358
<TimetableItem
54-
time="12.00"
59+
time="12.30"
5560
title="Expert Tables Round 1 Recap"
5661
speaker="Hugo van de Pol"
5762
/>
58-
<TimetableItem time="12.15" title="Lunch" />
63+
<TimetableItem time="12.45" title="Lunch" />
5964
<TimetableItem
60-
time="13.15"
65+
time="14.00"
6166
title="Expert Tables Round 2 - choose a topic and learn from a seasoned Rust expert as well as your industry peers"
62-
speaker="Experts to be announced"
67+
speaker="Various industry experts"
6368
/>
64-
<TimetableItem time="14.15" title="Coffee break" />
6569
<TimetableItem
66-
time="14.30"
70+
time="15.00"
6771
title="Expert Tables Round 2 Recap"
6872
speaker="Hugo van de Pol"
6973
/>
7074
<TimetableItem
71-
time="14.45"
75+
time="15.15"
7276
title="Closing Keynote"
7377
speaker="Jeffrey Vander Stoep"
7478
/>
79+
<TimetableItem time="15.50" title="Drinks" />
7580
<TimetableItem
76-
time="15.15"
77-
title="Live Recording of 'Rust in Production' Podcast on stage"
81+
time="16.20"
82+
title="OPEN TO ALL: Live Recording of 'Rust in Production' Podcast on stage"
7883
speaker="Matthias Endler ft. Niko Matsakis"
7984
/>
80-
<TimetableItem time="15.15" title="Drinks" />
8185
</Timetable>
8286
<Markdown slot="tickets">
8387
<h2 class="header space-y-6" id="about">Tickets</h2>
@@ -97,38 +101,68 @@ import ButtonGroup from "../components/ButtonGroup.astro";
97101
<Speaker
98102
name="Julius Gustavsson"
99103
image="julius.jpeg"
100-
description="System architect at Volvo Cars"
104+
description="System Architect at Volvo Cars"
101105
/>
102106
<Speaker
103107
name="Niko Matsakis"
104108
image="niko.png"
105109
description="Senior Principal Engineer at Amazon Web Services"
106110
/>
111+
<Speaker
112+
name="Mark Janssen"
113+
image="empty.png"
114+
description="Software Architect at the Dutch Electoral Council"
115+
/>
107116
<Speaker
108117
name="Rik Arends"
109118
image="rik.jpeg"
110119
description="Founder at Makepad"
111120
/>
112121
<Speaker
113-
name="Paul Lenz"
114-
image="paullenz.jpg"
115-
description="Director of Finance and Funding at Rust Foundation"
122+
name="Tamme Dittrich"
123+
image="tamme.jpg"
124+
description="Embedded Software Engineer at Tweede golf"
116125
/>
117126
<Speaker
118127
name="Matthias Endler"
119128
image="matthias.jpg"
120129
description="Founder and Rust Consultant at corrode"
121130
/>
122131
<Speaker
123-
name="Kris van Rens"
124-
image="kris.jpeg"
125-
description="Software Architect at ViNotion and Rust Trainer"
132+
name="Wouter Geraedts"
133+
image="wouter.jpeg"
134+
description="Owner and Embedded Engineer at Sarif"
135+
/>
136+
<Speaker
137+
name="Olivier Goffart"
138+
image="olivier.jpeg"
139+
description="Co-founder at Slint"
140+
/>
141+
<Speaker
142+
name="Paul Lenz"
143+
image="paullenz.jpg"
144+
description="Director of Finance and Funding at Rust Foundation"
145+
/>
146+
<Speaker
147+
name="Tiago Manczak"
148+
image="tiago.jpeg"
149+
description="Principal Firmware Engineer at Infineon Technologies"
150+
/>
151+
<Speaker
152+
name="James Munns"
153+
image="james.png"
154+
description="CEO and Embedded Engineer at OneVariable"
126155
/>
127156
<Speaker
128157
name="Hugo van de Pol"
129158
image="hugo.jpeg"
130159
description="Director at Tweede golf"
131160
/>
161+
<Speaker
162+
name="Kris van Rens"
163+
image="kris.jpeg"
164+
description="Software Architect at ViNotion and Rust Trainer"
165+
/>
132166
</Fragment>
133167

134168
<div slot="sponsors">

src/pages/talks/alice.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: "../../layouts/TalkLayout.astro"
33
tracks:
44
- main
5-
talkTitle: "TBA"
5+
talkTitle: "Bevy's immutable components: managing side effects in a parallel world"
66
talkLevel: ""
77
talkTags: []
88
talkDuration: 30 # 15 or 30 min
@@ -21,7 +21,10 @@ speakers: [{
2121
day: "wednesday"
2222
---
2323

24-
TBA
24+
Every now and then, Bevy users would ask for a simple helper: give me a way to mark a component on an entity as "read-only" so library authors could uphold invariants tied to the value of a public component. Unfortunately, there was a gaping hole: you could simply remove the component, mutate it and then reinsert it.
25+
26+
But... wait. That reinsertion would trigger "lifecycle hooks", a new feature that automatically respond to components' insertion and removal. Suddenly, this broken little helper was a powerful tool for ensuring global correctness.
27+
In this talk, I'll cover Bevy's automatically parallel Entity-Component-System (ECS) data flow, why parallelism can make maintaining invariants hard, and how we're using "immutable components" to finally implement error-resistant relationships and indexes.
2528

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

src/pages/talks/caroline.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
---
22
layout: "../../layouts/TalkLayout.astro"
3-
tracks:
3+
tracks:
44
- main
55
talkTitle: "Healthy Data, Rusty Code: Epidemiology Meets Modern Systems Programming"
66
talkLevel: "All"
77
talkTags: ["epidemiology", "scientific programming", "rust", "py03"]
88
talkDuration: 30 # 15 or 30 min
9-
draft: true
109

1110
speakers: [{
1211
name: "Caroline Morton",

0 commit comments

Comments
 (0)