Skip to content

Commit

Permalink
Merge pull request #116 from SwiftServerConf/speaker-updates
Browse files Browse the repository at this point in the history
Speaker Updates
  • Loading branch information
0xTim authored Aug 16, 2024
2 parents 013c0cf + cb5ccab commit 3ff5891
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 70 deletions.
Binary file added Resources/App/Images/speakers/euan-harris.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 Resources/App/Images/speakers/vojtech-rylko.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 21 additions & 18 deletions Sources/Conference/Components/Schedule.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,39 +32,39 @@ struct Schedule: Component {
}
TableRow {
TableCell("10:00 - 10:40").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[0])
createTalkRow(speakerName: "Daniel Steinberg")
}
TableRow {
TableCell("10:40 - 11:30").class("text-center font-weight-bold")
Text("Coffee Break")
}
TableRow {
TableCell("11:30 - 12:10").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[4])
createTalkRow(speakerName: "Tibor Bödecs")
}
TableRow {
TableCell("12:10 - 12:45").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[1])
createTalkRow(speakerName: "Mikaela Caron")
}
TableRow {
TableCell("12:45 - 14:00").class("text-center font-weight-bold")
TableCell("Lunch")
}
TableRow {
TableCell("14:00 - 14:40").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[7])
createTalkRow(speakerName: "Petr Pavlik")
}
TableRow {
TableCell("14:40 - 15:15").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[9])
createTalkRow(speakerName: "Leo Dion")
}
TableRow {
TableCell("15:15 - 16:00").class("text-center font-weight-bold")
TableCell("Coffee Break")
}
TableRow {
TableCell("16:00 - 16:40").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[10])
createTalkRow(speakerName: "Sebastien Stormacq")
}
TableRow {
TableCell("16:40 - 17:15").class("text-center font-weight-bold")
Expand All @@ -91,42 +91,40 @@ struct Schedule: Component {
}
TableRow {
TableCell("09:30 - 10:10").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[5])
createTalkRow(speakerName: "Franz Busch")
}
TableRow {
TableCell("10:10 - 10:50").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[6])
createTalkRow(speakerName: "Thomas Durand")
}
TableRow {
TableCell("10:50 - 11:30").class("text-center font-weight-bold")
Text("Coffee Break")
}
TableRow {
TableCell("11:30 - 12:10").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[11])
createTalkRow(speakerName: "Steven Van Impe")
}
TableRow {
TableCell("12:10 - 12:45").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[3])
createTalkRow(speakerName: "Adegboyega Olusunmade")
}
TableRow {
TableCell("12:45 - 14:00").class("text-center font-weight-bold")
TableCell("Lunch")
}
TableRow {
TableCell("14:00 - 14:15").class("text-center font-weight-bold")
// createTalkRow(speaker: AllSpeakers.lightningSpeakers[0])
Text("To Be Announced")
createTalkRow(speakerName: "Euan Harris")
}
TableRow {
TableCell("14:15 - 14:30").class("text-center font-weight-bold")
// createTalkRow(speaker: AllSpeakers.lightningSpeakers[1])
Text("To Be Announced")
createTalkRow(speakerName: "Vojtech Rylko")
}
TableRow {
TableCell("14:30 - 14:45").class("text-center font-weight-bold")
// createTalkRow(speaker: AllSpeakers.lightningSpeakers[2])
Text("To Be Announced")
// createTalkRow(speaker: AllSpeakers.speakers[13])
Text("To Be Announced")
}
TableRow {
TableCell("14:45 - 15:00").class("text-center font-weight-bold")
Expand All @@ -139,11 +137,11 @@ struct Schedule: Component {
}
TableRow {
TableCell("15:50 - 16:30").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[8])
createTalkRow(speakerName: "Nick Lockwood")
}
TableRow {
TableCell("16:30 - 17:10").class("text-center font-weight-bold")
createTalkRow(speaker: AllSpeakers.speakers[2])
createTalkRow(speakerName: "Cory Benfield")
}
TableRow {
TableCell("17:10 - 17:15").class("text-center font-weight-bold")
Expand Down Expand Up @@ -186,6 +184,11 @@ struct Schedule: Component {
}.class("modal fade").id("global-modal").attribute(named: "tabindex", value: "-1").attribute(named: "role", value: "dialog").attribute(named: "aria-labelledby", value: "global-modal").attribute(named: "aria-hidden", value: "true")
}
}

func createTalkRow(speakerName: String) -> TableCell {
let speaker = AllSpeakers.speakers.first { $0.name == speakerName }!
return createTalkRow(speaker: speaker)
}

func createTalkRow(speaker: Speaker) -> TableCell {
TableCell {
Expand Down
7 changes: 0 additions & 7 deletions Sources/Conference/Components/Speakers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,6 @@ struct Speakers: Component {
H4("More speakers to be announced soon!")
.class("text-center mb-5")
}.class("container")
// Div {
// H1("Lightning Talk Speakers")
// .class("text-center")
// H4("This year we have a range of lightning talks as well!")
// .class("text-center mb-5")
// SpeakerList<Conference>(speakers: AllSpeakers.lightningSpeakers)
// }.class("container")
}.class("bg-blue text-white mt-5")
// Div {
// Div {
Expand Down
33 changes: 15 additions & 18 deletions Sources/Conference/Models/Speaker.swift
Original file line number Diff line number Diff line change
Expand Up @@ -159,11 +159,16 @@ struct AllSpeakers {
website: "https://thomasdurand.fr/",
bio: "I like to go by the name of Dean, because it’s way easier to pronounce in any language, including English than “Thomas Durand” Backend architect and security engineer by day, I’m also an iOS Indie Dev by night! On my free time, I’m building in public independent iOS app like SharePal and Padlok. I also share my discoveries while building on my blog, mostly about Swift, SwiftUI and software security. After a first talk at NSSpain XI, I’d like to continue growing in the community, sharing everything I learn along my journey of building indie apps, or reliable and scalable back-ends.",
talkIDs: [9]),
// Speaker(
// name: "Babeth Velghe",
// role: "",
// bio: "",
// talkIDs: [6]),
Speaker(
name: "Petr Pavlik",
role: "Developer",
role: "Staff software enginner",
twitter: "http://twitter.com/ptrpavlik",
bio: "Despite my main background being in iOS development, Ive been affiliated with server-side Swift (especially Vapor) since it’s very beginning.",
bio: "Coming from iOS dev background, I've been a fan, and an occasional contributor, since the very beginning of Swift on the server. Guess I'm one of not that many who can say that they've tried all major versions of Vapor over the years.",
talkIDs: [10]),
Speaker(
name: "Nick Lockwood",
Expand Down Expand Up @@ -216,29 +221,21 @@ struct AllSpeakers {
website: "https://www.pwsacademy.org/",
bio: "Steven has been teaching Swift professionally since 2014. He is an active member of the open source community, focusing on anything that supports Swift as a general purpose cross-platform language.",
talkIDs: [13]),
]

static let lightningSpeakers: [Speaker] = [
Speaker(
name: "Babeth Velghe",
role: "",
bio: "",
talkIDs: [6]),
Speaker(
name: "Vojtech Rylko",
role: "Software Engineer",
company: "Cultured Code",
website: "https://culturedcode.com/things/",
bio: "Software engineer at Cultured Code responsible for Things Cloud and sync architecture.",
talkIDs: [5]),
Speaker(
name: "Marwane Koutar",
role: "",
company: "",
github: "https://www.github.com/sebsto",
website: "https://culturedcode.com/things/",
bio: "HOGENT, Bachelor in Applied Computer Science (2021 - Present) Internship at AWS between February and May 2024",
talkIDs: [12]),
// Speaker(
// name: "Marwane Koutar",
// role: "",
// company: "",
// github: "https://www.github.com/sebsto",
// website: "https://culturedcode.com/things/",
// bio: "HOGENT, Bachelor in Applied Computer Science (2021 - Present) Internship at AWS between February and May 2024",
// talkIDs: [12]),
Speaker(
name: "Euan Harris",
role: "Software Engineer",
Expand Down
17 changes: 6 additions & 11 deletions Sources/Conference/Models/Talk.swift
Original file line number Diff line number Diff line change
Expand Up @@ -124,13 +124,8 @@ struct AllTalks {
id: 10,
title: "Shipping a SaaS backend using Vapor",
description: ComponentGroup {
Paragraph {
Text("I expect to ship V2 of IndiePitcher before the conference (")
Link("https://indiepitcher.com", url: "https://indiepitcher.com")
Paragraph("), which will be an alternative to services like ")
Link("https://loops.so", url: "https://loops.so")
Paragraph(". Basically a service for sending marketing and transactional emails using AWS SES under the hood. I’d be happy to give a talk about my journey focusing on the backend part, which is 100% written in Swift using Vapor, to show an example of Vapor being used in production.")
}
Paragraph("I'll share my journey of building and deploying a backend for a startup that focuses on sending emails using Swift and Vapor framework. We'll go through topics you'll likely need to address to build a backend REST API, such as user authentication, analytics, error reporting, as well as using AWS products such as S3 storage, and even collecting payments using Stripe.")
Paragraph("I hope to share a bit something interesting for everyone, especially iOS developers who are interesting in gaining more experience with server-related technologies.")
},
speakerNames: ["Petr Pavlik"]),
Talk(
Expand Down Expand Up @@ -166,12 +161,12 @@ struct AllTalks {
title: "Swift to the cloud in a single step",
description: ComponentGroup {
Paragraph("As a server-side engineer today, it’s not enough to build a stand-alone executable for your service. You need to wrap it in a container image, ready to run on any standard public or private cloud infrastructure.")
Paragraph("In this talk we’ll see that building a container image for your Swift project can be as quick and easy as building a native executable, using Swift Package Manager plugins and Swift SDKs:")
Paragraph("In this talk we’ll see that building a container image for your Swift project can be as quick and easy as building a native executable. Using Swift Package Manager plugins and Swift SDKs, we can extend Swift Package Manager, adding a new command tailor-made for wrapping Swift programs in container images:")
List {
ListItem("Swift SDKs let us build Linux binaries directly on macOS. Builds are as fast as your native compiler, with no container runtime overhead.")
ListItem("A Swift Package Manager command plugin can build any target in Package.swift , wrap it in a container and upload it to the cloud. A Dockerfile isn’t needed because the plugin already knows what to do.")
ListItem("Swift SDKs let us build Linux binaries directly on macOS. Builds are as fast as your native compiler, with no virtualisation overhead.")
ListItem("A Swift Package Manager command plugin can build any target in Package.swift, wrap it in a container and upload it to the cloud. A Dockerfile isn’t needed because the plugin already knows what to do.")
}
Paragraph("During this talk we’ll look inside a container image and learn how to build one from scratch using Swift. We’ll see how Swift SDKs can help us to build binaries for several popular Linux distributions, and even build statically-linked binaries with no runtime dependencies. Finally, we’ll show how a command plugin ties the whole process together into a single command.")
Paragraph("We’ll see how Swift SDKs can help us to build binaries for several popular Linux distributions, and even build statically-linked binaries with no runtime dependencies. We’ll take a quick look at the contents of the generated container image.Finally, we’ll show how a command plugin ties the whole process together into a single command.")
},
speakerNames: ["Euan Harris"]),
]
Expand Down
17 changes: 1 addition & 16 deletions Sources/Conference/main.swift
Original file line number Diff line number Diff line change
Expand Up @@ -50,23 +50,8 @@ var speakers: [Item<Conference>] = AllSpeakers.speakers.map { speaker in
)
}

var lightningSpeakers: [Item<Conference>] = AllSpeakers.lightningSpeakers.map { speaker in
Item<Conference>(
path: Path(speaker.url),
sectionID: .speakers,
metadata: Conference.ItemMetadata(),
tags: [],
content: Content(
title: speaker.name,
body: Content.Body(node: SpeakerDetail(speaker: speaker).body.convertToNode())
)
)
}

try Conference().publish(
withTheme: .conference,
additionalSteps: [
.addItems(in: speakers),
.addItems(in: lightningSpeakers),
]
.addItems(in: speakers), ]
)

0 comments on commit 3ff5891

Please sign in to comment.