From e0ba6c427a86ff410ba2dcec2a41194f2d0eeab6 Mon Sep 17 00:00:00 2001 From: piogna Date: Tue, 2 Apr 2024 21:29:12 +0200 Subject: [PATCH 1/3] duchess at scala.io --- .../_posts/2024/2024-03-31-scala-io-nantes.md | 110 ++++++++++++++++++ .../traditional-duchess-picture.jpg | Bin 0 -> 39810 bytes 2 files changed, 110 insertions(+) create mode 100644 docs/_posts/2024/2024-03-31-scala-io-nantes.md create mode 100644 docs/assets/2024/03/2024-03-30-scala-io/traditional-duchess-picture.jpg diff --git a/docs/_posts/2024/2024-03-31-scala-io-nantes.md b/docs/_posts/2024/2024-03-31-scala-io-nantes.md new file mode 100644 index 0000000..6bdc7cf --- /dev/null +++ b/docs/_posts/2024/2024-03-31-scala-io-nantes.md @@ -0,0 +1,110 @@ +--- +layout: "post" +author: + - "pauline" +title: "Duchess at Scala.io" +date: "2024-04-02" +categories: + - "code" + - "event" +--- + +| ![Duchess in Scala.io](/assets/sponsors/scalaio.webp){: width="300"} | Duchess was at Scala.io for the 2024 edition in Nantes | + + +A couple of weeks ago was the scala conference in Nantes. This article focus of the scala women speakers present at the event. +Also Scala.io organizers offered 3 tickets to the Duchess France community. + +# Focus on Monica's talk + +Great feedback from Monica. She shared with us about her first year of java and gave very good hints. + +**Help others to help you**
+Junior people should focus on providing context, goal, and more generally be great communicators. + +**Let us fail**
+Let junior developers making and owning mistakes. +Senior people should let junior people (or new comers in the teams) fail so they can take ownership of their mistakes and learn from them. If you're a senior developer don't solve the problem for you're team mates but rather teach the steps to go through to tackle the problem. Enable the team to solve problems, even it takes a little long to solve these problems. + +**Find a community**
+Going in conferences, meetups. +Pair programming, mob programming sessions with your team. + +πŸ‡¬πŸ‡§ ***My first year in Scala***
+[![My first year in Scala](https://img.youtube.com/vi/Jyn2l1nhwZE/0.jpg){: width="600"}](https://www.youtube.com/watch?v=Jyn2l1nhwZE) + +# Focus on Johanna's and Mehdi's talk + +Starting with a few dance steps, Johanna and Mehdi presented [Kapoeira](https://github.com/lectra-tech/kapoeira/). +Based on cucmber-scala, Kapoeira is an open source library which implements acceptance tests on kafka streams. +It provides a simple language based on Gherkin standards (Given - When - Then) so an automated test can be written by a QA, a PO, or a developer. +If you're looking for high level automated test on kafka stream, you should definitely watch this video. +Plus you will love many references about La CitΓ© de la Peur, a classic french comedy. + +πŸ‡¬πŸ‡§πŸŒ΄ ***Youpi dansons la Kapoeira en testant nos Kafka streams*** πŸ•Ί πŸ’ƒ
+[![🌴 Youpi dansons la Kapoeira en testant nos Kafka streams πŸ•Ί πŸ’ƒ](https://img.youtube.com/vi/BUQFj2jrGj8/0.jpg){: width="600"}](https://www.youtube.com/watch?v=BUQFj2jrGj8&list=PLjkHSzY9VuL8we5GaQgqWrZSwiKtLM7Cb&index=5) + +# Focus on Sophie's talk + +If you're not completely comfortable at explaining the concept of contravariance, you should checkout Sophie's talk. She explains this concepts in a very clear way with simple examples. +She gives practical use cases, using an `Animal` type with concrete sub-types. +As a prerequiste you should be comfortable with **substitution**, when you have an `Animal` you can pass an instance of `Dog`, +and with **type classes**, a trait that takes one or more parameters. + +#### Invariance + +``` +trait Rescue[A]: + def adopt(name: String): A +``` +There is no +, `Rescue` is invariant in `A`, even though `Dog` is a subtype of `Animal` there is no relation between `Rescue[Dog]` and `Rescue[Animal]` + +#### Covariance + +``` +trait Rescue[+A]: + def adopt(name: String): A +``` +With that little + `Rescue` is **covariant** in `A` so if `Dog` is subtype of `Animal`, then `Rescue[Dog]` is a subtype of `Rescue[Animal]` + +Then you can write +``` +def adopt(name:String)(using rescue: Rescue[Animal]): Animal = rescue.adpot(name) + +var poppy = adopt(name = "Poppy") +``` +#### Contravariance +``` +trait Clinic[-A]: + def examine(partient: A): String +``` +With that little - `Clinic` is **contravariant** in `A` so if `Dog` is a subtype of `Animal` then `Clinic[Animal]` is subtype of `Clinic[Dog]`, here the relationship is inverted +Then you can write +``` +def examine(dog:Dog)(using clinic:Clinic[Dog]): String = clinic.eximaine(dog) + +val medor = Dog("MΓ©dor", bred = DogBred.Labrador) + +val examintionReport = examine(medor)(using sumon[Clinic[Animal]]) +``` + +πŸ‡¬πŸ‡§ ***Contravariance: intuition building from first principles***
+[![Contravariance: intuition building from first principles](https://img.youtube.com/vi/A7t3b0kymFM/0.jpg){: width="600"}](https://www.youtube.com/watch?v=A7t3b0kymFM) + +# Focus on Olya's talk + +Olya shared her experience on Ukraine's Scala community building and about the book club organized on the basis of Intelias, where I currently work. +Given the war with Russia, it is now physically unsafe for people to gather, so they have created an online community and meet each week to discuss one chapter of the book. +This format allows people who were forced to leave the country, as well as invited guests, to join. In addition, they experimented with different formats and added "Scala Breaks" - small reports with examples of interesting problems or simply a scala of related topics. +Thus, they have already read 5 books and more than 45 meetings. + +πŸ‡¬πŸ‡§ ***Ukraine's Scala community building lessons***
+[![Ukraine's Scala community building lessons](https://img.youtube.com/vi/6skPn0evEE8/0.jpg){: width="600"}](https://www.youtube.com/watch?v=6skPn0evEE8) + + +It was nice to meet scala ladies, and there is now a new channel #functional_programming in our slack! + +Let's finish with the traditional Duchess picture. + +![The traditional Duchess picture!](/assets/2024/03/2024-03-30-scala-io/traditional-duchess-picture.jpg){: width="300"} + \ No newline at end of file diff --git a/docs/assets/2024/03/2024-03-30-scala-io/traditional-duchess-picture.jpg b/docs/assets/2024/03/2024-03-30-scala-io/traditional-duchess-picture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..84243cd439316410bb7fe553ef0bbeb9777d318a GIT binary patch literal 39810 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 BDyRSe literal 0 HcmV?d00001 From f00bd9106ad4b5e0c93494fda81c643ee8ef7f00 Mon Sep 17 00:00:00 2001 From: Pauline Iogna Date: Mon, 22 Apr 2024 20:56:37 +0200 Subject: [PATCH 2/3] Update docs/_posts/2024/2024-03-31-scala-io-nantes.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: GaΓ«lle Fournier --- docs/_posts/2024/2024-03-31-scala-io-nantes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_posts/2024/2024-03-31-scala-io-nantes.md b/docs/_posts/2024/2024-03-31-scala-io-nantes.md index 6bdc7cf..facecd7 100644 --- a/docs/_posts/2024/2024-03-31-scala-io-nantes.md +++ b/docs/_posts/2024/2024-03-31-scala-io-nantes.md @@ -36,7 +36,7 @@ Pair programming, mob programming sessions with your team. # Focus on Johanna's and Mehdi's talk Starting with a few dance steps, Johanna and Mehdi presented [Kapoeira](https://github.com/lectra-tech/kapoeira/). -Based on cucmber-scala, Kapoeira is an open source library which implements acceptance tests on kafka streams. +Based on cucumber-scala, Kapoeira is an open source library which implements acceptance tests on kafka streams. It provides a simple language based on Gherkin standards (Given - When - Then) so an automated test can be written by a QA, a PO, or a developer. If you're looking for high level automated test on kafka stream, you should definitely watch this video. Plus you will love many references about La CitΓ© de la Peur, a classic french comedy. From 1a1626735dc287137775b2fb64a8cce5a29b0861 Mon Sep 17 00:00:00 2001 From: piogna Date: Tue, 23 Apr 2024 10:03:05 +0200 Subject: [PATCH 3/3] reformulate english from feedbacks - add video emoji --- .../_posts/2024/2024-03-31-scala-io-nantes.md | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/docs/_posts/2024/2024-03-31-scala-io-nantes.md b/docs/_posts/2024/2024-03-31-scala-io-nantes.md index facecd7..5759f9a 100644 --- a/docs/_posts/2024/2024-03-31-scala-io-nantes.md +++ b/docs/_posts/2024/2024-03-31-scala-io-nantes.md @@ -11,26 +11,25 @@ categories: | ![Duchess in Scala.io](/assets/sponsors/scalaio.webp){: width="300"} | Duchess was at Scala.io for the 2024 edition in Nantes | - -A couple of weeks ago was the scala conference in Nantes. This article focus of the scala women speakers present at the event. -Also Scala.io organizers offered 3 tickets to the Duchess France community. +A couple of months ago, a significant number of female speakers participated at the [Scala.IO](https://scala.io/) conference held in the city of Nantes. +Thankfully, three event tickets were gifted to the Duchess France community, and we took advantage of this opportunity to write and share what we've learned from these speakers. # Focus on Monica's talk -Great feedback from Monica. She shared with us about her first year of java and gave very good hints. +Monica shared with us valuable knowledge that she acquired while learning Scala for the first time. **Help others to help you**
Junior people should focus on providing context, goal, and more generally be great communicators. **Let us fail**
Let junior developers making and owning mistakes. -Senior people should let junior people (or new comers in the teams) fail so they can take ownership of their mistakes and learn from them. If you're a senior developer don't solve the problem for you're team mates but rather teach the steps to go through to tackle the problem. Enable the team to solve problems, even it takes a little long to solve these problems. +Senior people should let junior people (or newcomers in the teams) fail so they can take ownership of their mistakes and learn from them. If you're a senior developer don't solve the problem for your teammates but rather teach them the steps to tackle the problem. Enable the team to solve their own problems, even if it takes a little longer. **Find a community**
-Going in conferences, meetups. +Going to conferences and meetups. Pair programming, mob programming sessions with your team. -πŸ‡¬πŸ‡§ ***My first year in Scala***
+πŸŽ₯πŸ‡¬πŸ‡§ ***My first year in Scala***
[![My first year in Scala](https://img.youtube.com/vi/Jyn2l1nhwZE/0.jpg){: width="600"}](https://www.youtube.com/watch?v=Jyn2l1nhwZE) # Focus on Johanna's and Mehdi's talk @@ -41,12 +40,12 @@ It provides a simple language based on Gherkin standards (Given - When - Then) s If you're looking for high level automated test on kafka stream, you should definitely watch this video. Plus you will love many references about La CitΓ© de la Peur, a classic french comedy. -πŸ‡¬πŸ‡§πŸŒ΄ ***Youpi dansons la Kapoeira en testant nos Kafka streams*** πŸ•Ί πŸ’ƒ
+πŸŽ₯πŸ‡¬πŸ‡§πŸŒ΄ ***Youpi dansons la Kapoeira en testant nos Kafka streams*** πŸ•Ί πŸ’ƒ
[![🌴 Youpi dansons la Kapoeira en testant nos Kafka streams πŸ•Ί πŸ’ƒ](https://img.youtube.com/vi/BUQFj2jrGj8/0.jpg){: width="600"}](https://www.youtube.com/watch?v=BUQFj2jrGj8&list=PLjkHSzY9VuL8we5GaQgqWrZSwiKtLM7Cb&index=5) # Focus on Sophie's talk -If you're not completely comfortable at explaining the concept of contravariance, you should checkout Sophie's talk. She explains this concepts in a very clear way with simple examples. +If you're not completely comfortable at explaining the concept of contravariance, you should checkout Sophie's talk. She explains this concept in a very clear way with simple examples. She gives practical use cases, using an `Animal` type with concrete sub-types. As a prerequiste you should be comfortable with **substitution**, when you have an `Animal` you can pass an instance of `Dog`, and with **type classes**, a trait that takes one or more parameters. @@ -88,17 +87,17 @@ val medor = Dog("MΓ©dor", bred = DogBred.Labrador) val examintionReport = examine(medor)(using sumon[Clinic[Animal]]) ``` -πŸ‡¬πŸ‡§ ***Contravariance: intuition building from first principles***
+πŸŽ₯πŸ‡¬πŸ‡§ ***Contravariance: intuition building from first principles***
[![Contravariance: intuition building from first principles](https://img.youtube.com/vi/A7t3b0kymFM/0.jpg){: width="600"}](https://www.youtube.com/watch?v=A7t3b0kymFM) # Focus on Olya's talk -Olya shared her experience on Ukraine's Scala community building and about the book club organized on the basis of Intelias, where I currently work. -Given the war with Russia, it is now physically unsafe for people to gather, so they have created an online community and meet each week to discuss one chapter of the book. -This format allows people who were forced to leave the country, as well as invited guests, to join. In addition, they experimented with different formats and added "Scala Breaks" - small reports with examples of interesting problems or simply a scala of related topics. -Thus, they have already read 5 books and more than 45 meetings. +Olya shares her exploration of the Ukrainian Scala community and reflects on the lessons learned in the process of community building while setting up a book club within her company Intellias. +Given the war with Russia, it is now physically unsafe for people to gather, so they have created an online community and meet each week to discuss one chapter of the book. +This format allows people who were forced to leave the country, as well as guests to join the meetings. In addition, they experimented with different formats and added "Scala Breaks" - small reports with examples of interesting problems or simply a scala of related topics. +Thus, they have already read 5 books and held more than 45 meetings. -πŸ‡¬πŸ‡§ ***Ukraine's Scala community building lessons***
+πŸŽ₯πŸ‡¬πŸ‡§ ***Ukraine's Scala community building lessons***
[![Ukraine's Scala community building lessons](https://img.youtube.com/vi/6skPn0evEE8/0.jpg){: width="600"}](https://www.youtube.com/watch?v=6skPn0evEE8)