-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
duchess at scala.io #151
duchess at scala.io #151
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Proposition de formulation : "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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Proposition de formulation : "Monica shared with us valuable knowledge that she acquired while learning Scala for the first time". There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It is on Scala, not Java! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oops, fixed |
||
|
||
**Help others to help you**<br/> | ||
Junior people should focus on providing context, goal, and more generally be great communicators. | ||
|
||
**Let us fail**<br/> | ||
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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Correction : Senior people should let junior people (or |
||
|
||
**Find a community**<br/> | ||
Going in conferences, meetups. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Going |
||
Pair programming, mob programming sessions with your team. | ||
|
||
🇬🇧 ***My first year in Scala*** <br/> | ||
[![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. | ||
P4uline marked this conversation as resolved.
Show resolved
Hide resolved
|
||
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*** 🕺 💃<br/> | ||
[![🌴 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*** <br/> | ||
[![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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. J'ai essayé de trouver ce qu'étais "Intelias" sans succès. J'ai l'impression que soit il y a un soucis de contexte soit c'est l'orthographe 😄 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Proposition de formulation : 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 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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Proposition de formulation : This format allows people who were forced to leave the country, as well as guests to join the meetings. |
||
Thus, they have already read 5 books and more than 45 meetings. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thus, they have already read 5 books and held more than 45 meetings. |
||
|
||
🇬🇧 ***Ukraine's Scala community building lessons*** <br/> | ||
[![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"} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Proposition de formulation : "A couple of weeks ago, a significant number of female speakers participated at the Scala.IO conference held in the city of Nantes."