diff --git a/2024-11-scala-io/slides.html b/2024-11-scala-io/slides.html index 153ed70..c735c1c 100644 --- a/2024-11-scala-io/slides.html +++ b/2024-11-scala-io/slides.html @@ -1,18 +1,12 @@
-

Decisions4s

+

Decisions4s

Complicated conditionals

- - -

Scala 3

- - -

Higher-Kinded
Data

diff --git a/assets/build-accordion.js b/assets/build-accordion.js new file mode 100644 index 0000000..37bc97c --- /dev/null +++ b/assets/build-accordion.js @@ -0,0 +1,254 @@ +// Sample data in JSON format +const presentationsData = [ + { + title: "Decisions4s: Complicated Conditionals, Higher-Kinded Data and Scala 3", + conferences: [ + { + name: "Art of Scala 2024", + link: "https://artofscala.com/", + slides: "2024-10-art-of-scala", + video: "https://www.youtube.com/watch?v=J4ZXsR25M7k" + }, + { + name: "Scala.io 2024", + link: "https://scala.io/", + slides: "2024-11-scala-io", + video: null + } + ] + }, + { + title: "Communication For Developers", + conferences: [ + { + name: "Sphere.it 2023", + link: "https://sphere.it/event/sphere-it-conf-2023", + slides: "2023-09-sphere-it", + video: "https://www.youtube.com/watch?v=rXSu3Q6wFj0" + }, + { + name: "Voxxed Days Zurich 2024", + link: "https://voxxeddays.com/zurich/", + slides: "2024-03-voxxed-days-zurich", + video: "https://www.youtube.com/watch?v=bVRbxVCHrPE&list=PLRsbF2sD7JVrJJWeSPM7WjYNO42O-aF_o&index=21" + }, + { + name: "Geecon 2024", + link: "https://2024.geecon.org", + slides: "2024-03-voxxed-days-zurich", + video: "https://www.youtube.com/watch?v=i3T9_ntm1S4&list=PLxZQe6I1pYpet-lLqg22YWMiANXGhJxCN&index=67" + }, + { + name: "Dev Days Europe 2024", + link: "https://devdays.lt", + slides: "2024-03-voxxed-days-zurich", + video: "https://www.youtube.com/watch?v=NLYLHZQ-Qj8&list=PLqYhGsQ9iSEpFD1hBBle_VkpJ-S-FC4Lc&index=53" + } + ] + }, + { + title: "Love, Hate And Workflows", + conferences: [ + { + name: "Functional Scala 2022", + link: "https://www.functionalscala.com", + slides: "2022-12-functional-scala", + video: "https://www.youtube.com/watch?v=jLN1ibwUwuY" + }, + { + name: "Art of Scala 2022", + link: "https://www.eventbrite.com/e/a-unique-conference-for-scala-engineers-and-enthusiasts-tickets-431525433187", + slides: "2022-09-yava-conf", + video: null + }, + { + name: "Functional World #5", + link: "https://www.meetup.com/functionalworld/events/288622105/", + slides: "2022-09-yava-conf", + video: "https://youtu.be/S5lohF1YTl0" + }, + { + name: "Ya!va Conf 2022", + link: "https://yavaconf.com/", + slides: "2022-09-yava-conf", + video: null + } + ] + }, + { + title: "Magic Of Integrations. Ecosystem Better Than Any Framework", + conferences: [ + { + name: "ScalaConf.ru 2019", + link: "https://scalaconf.ru/en/2019", + slides: "2019-11-scalaconfru", + video: "https://www.youtube.com/watch?v=CxitC7fNTRU" + }, + ] + }, + { + title: "Functional Frontend. Practical Survival Guide For Backend Engineers", + conferences: [ + { + name: "Scala.io 2019", + link: "https://scala.io/", + slides: "2019-10-scalaio", + video: "https://www.youtube.com/watch?v=72GyZuStsvM" + }, + ] + }, + { + title: "Pragmatic, Object-Oriented Tagless Final", + conferences: [ + { + name: "Kraków SUG 2020", + link: "https://www.meetup.com/krakow-scala-user-group/events/268614614/", + slides: "2020-02-krakow-sug", + video: null + }, + { + name: "Scala Italy 2019", + link: "http://2019.scala-italy.it", + slides: "2019-09-scalaitaly", + video: "https://vimeo.com/363249962" + }, + { + name: "LxScala 2019", + link: "https://www.facebook.com/LXScala/", + slides: "2019-09-scalaitaly", + video: null + }, + ] + }, + { + title: "That's Enough, Bash. That's Enough.", + conferences: [ + { + name: "Scalawave 2018", + link: "https://scalawave.io", + slides: "2018-09-scalawave", + video: "https://youtu.be/xHdgeOco-OU" + }, + ] + }, + { + title: "Object Algebras And Why You Won't Touch Http Library Ever Again", + conferences: [ + { + name: "Scalar 2018", + link: "https://scalar-conf.com/2018/", + slides: "2018-04-scalar", + video: "https://youtu.be/2Jo75rgnVW0" + }, + ] + }, + { + "title": "It's Just A Monoid In The Category Of Endofunctors", + "conferences": [ + { + "name": "Functional Tricity #7", + "slides": "2017-06-functional-tricity/index.html", + "video": "https://youtu.be/5JfddiM3uHk", + "link": "https://www.meetup.com/functionalworld/events/239505311/" + } + ] + }, + { + "title": "Why Do We Need 9 Different Data Processing Engines? What Makes Spark 2.32 Times Better Than Flink?", + "conferences": [ + { + "name": "Datamass 2017", + "slides": "2017-09-datamass/index.html", + "video": "https://youtu.be/sMEfvnIX4Co", + "link": "https://summit.datamass.io/" + } + ] + }, + { + "title": "[code_smarter => test_less] Functional Guide To Reasonable Development", + "conferences": [ + { + "name": "Norwegian IT Night Tricity 2017", + "slides": "2017-10-norwegian-it-night-tricity/index.html", + "video": null, + "link": "https://norwegian-it-night-tricity.confetti.events/" + } + ] + } +]; + +// Function to create the accordion HTML structure from JSON +function createAccordion(data) { + const container = document.getElementById("accordionContainer"); + + data.forEach(presentation => { + // Title + const titleDiv = document.createElement("div"); + titleDiv.className = "title"; + titleDiv.innerHTML = `${presentation.title} +
+ + ${presentation.conferences.length} +
+ `; + container.appendChild(titleDiv); + + // Content + const contentDiv = document.createElement("div"); + contentDiv.className = "content"; + + const cardsDiv = document.createElement("div"); + cardsDiv.className = "ui cards"; + + presentation.conferences.forEach(conference => { + const cardDiv = document.createElement("div"); + cardDiv.className = "fluid card"; + + const cardContent = document.createElement("div"); + cardContent.className = "content"; + + const headerDiv = document.createElement("a"); + headerDiv.href = conference.link; + headerDiv.target = "blank" + headerDiv.className = "header"; + headerDiv.textContent = conference.name; + + const descriptionDiv = document.createElement("div"); + descriptionDiv.className = "description"; + + // Slides link + if (conference.slides) { + const slidesLabel = document.createElement("a"); + slidesLabel.href = conference.slides; + slidesLabel.target = "blank" + slidesLabel.className = "ui blue tiny label"; + slidesLabel.innerHTML = `Slides`; + descriptionDiv.appendChild(slidesLabel); + } + + // Video link + if (conference.video) { + const videoLabel = document.createElement("a"); + videoLabel.href = conference.video; + videoLabel.target = "blank" + videoLabel.className = "ui green tiny label"; + videoLabel.innerHTML = `Video`; + descriptionDiv.appendChild(videoLabel); + } + + cardContent.appendChild(headerDiv); + cardContent.appendChild(descriptionDiv); + cardDiv.appendChild(cardContent); + cardsDiv.appendChild(cardDiv); + }); + + contentDiv.appendChild(cardsDiv); + container.appendChild(contentDiv); + }); + + // Initialize the Semantic UI accordion + $('.ui.accordion').accordion(); +} + +// Initialize the accordion with data +createAccordion(presentationsData); \ No newline at end of file diff --git a/index.html b/index.html index 0c3397c..e721580 100644 --- a/index.html +++ b/index.html @@ -3,24 +3,29 @@ Voytek's talks - - + + + + -
- -
-
-
+
@@ -31,180 +36,10 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Decisions4s: Complicated Conditionals, Higher-Kinded Data and Scala 3 -
Art of Scala 2024slidesvideo
Scala.io 2024slides
Communication for developers
Sphere.it Conf 2023 slidesvideo
Voxxed Days Zurich 2024slides - video -
Geecon 2024slides - video -
Dev Days Europe 2024slides - video -
Love, hate and workflows
Functional Scala 2022slidesvideo
- Art - of Scala 2022slides
Functional World #5slidesvideo
Ya!va Conf 2022slides
Magic of integrations. Ecosystem better than any framework
ScalaConf.ru 2019slidesvideo
Functional Frontend. Practical survival guide for backend engineers. -
Scala.io 2019slidesvideo
Pragmatic object oriented tagless final.
Kraków SUG 2020slides
Scala Italy 2019slidesvideo
LxScala 2019slides
That's enough bash. That's enough.
Scalawave 2018slidesvideo
Object algebras and why you won't touch http library ever again
Scalar 2018slidesvideo
It's just a monoid in the category of endofunctors
Functional Tricity #7slidesvideo
Why do we need 9 different data processing engines? What makes Spark 2.32 times - better than - flink?
Datamass 2017slidesvideo
- [code_smarter => test_less] functional guide to reasonable development -
Norwegian IT Night Tricity 2017 - slides - -
+
+ +