I'm giving international conference talks and mostly I don't know the audience demography (knowledge level/position/tech stack etc...). And I need to be very careful how I present my talk. Recently I've been studying on this topic. My audience is mostly developers or IT guys. And when I explain a technical topic to those people, I'm very comfortable 🤠🤠 But, sometimes we need to explain what we do (our project) to our friends, mother or child. In other words; anyone who is not technical. Then things are getting a little bit different and harder 🤯
Hey there! I'm Alper, giving international conference talks and mostly I don't know the audience demography (knowledge level/position/tech stack etc...). And I need to be very careful how I present my talk. Recently I've been studying on this topic. My audience is mostly developers or IT guys. And when I explain a technical topic to those people, I'm very comfortable 🤠🤠 But, sometimes we need to explain what we do (our project) to our friends, mother or child. In other words; anyone who is not technical. Then things are getting a little bit different and harder 🤯
To have a strong technical knowledge does not automatically make someone a good communicator.
For scientists, engineers, developers and technical leaders, the real challenge is not knowing the subject 👉 **deciding what the audience needs to know and how to make it meaningful for them.**
Empathy is very important in all our life levels. I wrote an article about [empathy in workspace](https://abp.io/community/articles/empathy-in-the-workplace-for-software-companies-wsjjw9we), please read it when you have time because it's also important for this topic. Imagine you are explaining your .NET project to an investor or customer, concepts which you use in your project might be simple for you, but feel that empathy (please) for a moment, **does that guy understand what you mean**? Before starting your presentation collect information about him so that you can adjust your sentences according to him.
Empathy is very important in all our life steps. I wrote an article about [empathy in workspace](https://abp.io/community/articles/empathy-in-the-workplace-for-software-companies-wsjjw9we), please read it when you have time because it's also important for this topic. Imagine you are explaining your .NET project to an investor or customer, concepts which you use in your project might be simple for you, but feel that empathy (please) for a moment, **does that guy understand what you mean**? Before starting your presentation collect information about him so that you can adjust your sentences according to him.
> AND TELL HIM ONLY WHAT WORKS FOR HIM.
@ -21,18 +21,19 @@ No need to tell how the algorithm behind this project works! Tell him why it's g
## Don't Focus Too Much on the Details
I know we are all good software engineers and we want to show the art behind that work 👏 That's absolutely natural feeling 👍
We all want to show people the details how our project work.
But, too much detail will definitely hide your main message!!! You are consuming his energy, focus and time with those details.
We are all good software engineers and we want to show the art behind that work 👏 That's absolutely natural feeling 👍
We all want to show people the details how our project work because we are proud of it and that's a bad practise!!
Too much detail will definitely hide your main message!!! You are consuming his energy, focus and time with all those details.
So what happens, your main goal is not being transferred to him 🤔..💭...🥺
How will you fix this this? SIIMMPLEE: Before mentioning a topic, ask yourself:
Ok we know the problem, now how will you fix this? SIIMMPLEE: Before mentioning a topic, ask yourself:
> Does he need this info to understand my idea or make his decision?
If not, please don't mention about that. Maybe later, if he's very much interested in you can explain him (IF ONLY he asks 😄)
If not, please save it for yourself and don't mention about that.
Maybe later, if he's very much interested in you can explain him (IF ONLY he asks 😄)
@ -43,7 +44,8 @@ If not, please don't mention about that. Maybe later, if he's very much interest
Well! Don't be angry 😡 at me. In the previous section I said *don't go in details* and now I'm telling **do not explain too simple** 🙃
While we are trying to not make it too complicated or detailed, we shouldn't make it inaccurate or treating the listener as idiot🐑
Keep the science and technical meaning balanced and let's reduce unnecessary software jargons. Use clear language, examples and familiar concepts when you explain something complex. **My technique is using analogies**, especially for my projects I give a car example which is as simple as everybody can easily understand (*even my kid understands it*).
Keep the science and technical meaning balanced. Let's reduce unnecessary software jargons. Use clear language, examples and familiar concepts when you explain something complex.
**My technique is using analogies**, especially for my projects I often give a car example which is as simple as everybody can easily understand (*even my kid understands it*).
> MAKE IT SIMPLE, but NOT OVER-SIMPLE!
@ -53,7 +55,7 @@ Keep the science and technical meaning balanced and let's reduce unnecessary sof
## Start With Why It Matters
In Turkey, there are some street sellers... They stop you and say you "Can I tell you something?". Actually I know he's a seller and probably he'll redirect me to a barber, cosmetic store or some shops which are upper floors in a passage. And I mostly say "No!" and I'm walking... But imagine if he tells me first which benefit I'll get from what he sells, I might be going to his shop. (*this paragraph is also explaining my topic in a simple way which I explained in the previous section so I'm still using these techniques in this article* 🤫)
In Turkey, there are some street sellers... They stop you and say "Can I tell you something?". Actually I know he's a seller and probably he'll redirect me to a barber, cosmetic store or some shops which are upper floors in a passage. And I mostly say "NO!" and I'm walking my way... But imagine if he tells me first which benefit I'll get from what he sells, maybe I'll go to his shop. (*this paragraph is also explaining my topic in a simple way which I explained in the previous section so I'm still using these techniques in this article* 🤫)
@ -72,7 +74,7 @@ So far, so good 💯 You did a good job reading until here 🙏 ᵗʰᵃᶰᵏ
---
## Think About What You Want Him to Remember
## Think About What You Want Him to Remember
Your audience will not remember many technical points after your presentation.
**They will remember 1-2 topics.**
@ -86,20 +88,21 @@ Everything else must support those core messages.
## Your Voice Tone Matters Too!
Imagine you did everything very good until here... but you are talking very monotonous way. Or you are talking quickly. Sorry, that's also not a good talk! **Your emphasis, eye contact, body language, tone of voice are all important.** You can make small jokes to give him a relaxing break to understand your complex technical work.
Imagine you did everything 👏 very good until here... but you are talking very monotonous way. Or you are talking quickly. Sorry, that's also not a good talk! **Your emphasis, eye contact, body language, tone of voice are all important.** You can make small jokes to give him a relaxing break to understand your complex technical work.
> COMMUNICATION IS NOT ONLY ABOUT WHAT YOU SAY but also HOW YOU SAY IT 🗣
Watch the [ShadeZahrai -very short- tiktok video](https://www.tiktok.com/@shadezahrai/video/7177549216464571650) below ⤵
Especially when you are presenting on slides, you should show some funny images related to your topic or you can show analogic images that explains the problem. For example to tell about a risky case which you covered in your project, you can use the below image. Yes, people will laugh at first and later they'll listen to more carefully because you took their attention. (*I created another paradox here, I’m explaining this topic using a funny related image and I know you’re now reading my article more carefully*🤝)
Especially when you are presenting on slides, you should show some funny images related to your topic or you can show analogic images that explains the problem.
For example to tell about a risky case which you covered in your project, you can use the below image :)
Yes, people will laugh at first but later they'll listen to you more carefully because you took their attention. (*I created another paradox here, I’m explaining this topic using a funny related image and I know you’re now reading my article more carefully*🤝)
- Applications that authenticate OpenIddict clients with client assertions, that is `private_key_jwt` or `client_secret_jwt`, and use the same client signing key on more than one OpenIddict authorization server.
**What changed**
- OpenIddict is upgraded from **7.5.0** to **7.7.0**, which fixes [GHSA-925x-4h4v-2792](https://github.com/openiddict/openiddict-core/security/advisories/GHSA-925x-4h4v-2792). The server stack compared only the path of the `aud` claim with the issuer of the authorization server, so a client assertion minted for one server was accepted by another one that shared the client's signing key.
- The audience of a client assertion still has to be the issuer URI of the server that receives it, with or without the trailing slash, so an assertion that was already addressed to the right server keeps working. A correctly configured client needs no change.
- A single authorization server instance, or several instances with their own cryptographic material, was never affected.
**What to do**
Upgrade the packages. There is no configuration change.
Until you can upgrade, give every authorization server its own client signing key, so an assertion cannot be replayed across them.
### Dependency Updates
**Who is affected**
- Applications that use EF Core with MySQL, directly reference MudBlazor, or pin transitive package versions.
- Applications that pin any of the packages below in their own `.csproj` files. The startup templates pin several of them, so a solution generated before v10.7 has them.
- Applications that use EF Core with MySQL, or directly reference MudBlazor or Blazorise.
**What changed**
- MudBlazor is upgraded from **9.4.0** to **9.7.0**.
- The `Microsoft.AspNetCore.*`, `Microsoft.EntityFrameworkCore.*`, `Microsoft.Extensions.*` and `System.*` packages are upgraded from **10.0.9** to **10.0.11**, and the `Microsoft.IdentityModel.*` packages and `System.IdentityModel.Tokens.Jwt` from **8.19.1** to **8.19.2**. OpenIddict 7.7.0 requires these versions.
- `Microsoft.AspNetCore.DataProtection` is added as a direct dependency.
- MudBlazor is upgraded from **9.4.0** to **9.7.0**, and the Blazorise packages from **2.2.1** to **2.3.0**.
- `MySql.EntityFrameworkCore` is upgraded from **10.0.1** to **10.0.9**.
- `MongoDB.Driver` is upgraded from **3.10.0** to **3.11.1**, and `AWSSDK.S3` and `AWSSDK.SecurityToken` to their current versions.
- ABP maps `Guid[]` query parameters through its own type mapping plugin on MySQL, and stores `IdentityUserPasskey.Data` as a serialized `json` column, because the MySQL providers support neither EF Core JSON columns nor primitive collections. The column name and the stored content stay the same.
**What to do**
Review direct MudBlazor references, align them with ABP's package versions, and re-test customized MudBlazor components and forms after upgrading.
Upgrading the ABP packages does not move the versions you pin yourself, and `abp update` rewrites `Volo.*` references only. A reference that stays below what ABP requires fails the restore, so align those versions in your own `.csproj` files.
These are the ones a solution generated by the startup templates hits:
A solution that pins other packages of these families can hit the same error on them, so see the [Package Version Changes](../../package-version-changes.md) document for the full list and align the rest as well, to keep your solution on one set of versions.
Review direct MudBlazor and Blazorise references, align them with ABP's package versions, and re-test customized components and forms after upgrading.
If you use the MySQL provider, align your own `MySql.EntityFrameworkCore` reference with ABP's version.