This commit is contained in:
Yann Esposito (Yogsototh) 2021-04-16 18:39:21 +02:00
parent 5148261ef6
commit 7575ee14f7
Signed by untrusted user who does not match committer: yogsototh
GPG key ID: 7B19A4C650D59646
21 changed files with 123 additions and 222 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View file

@ -1,2 +1,2 @@
(("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/journal/2020-12-04--13-19-56Z--english_lesson.org" "1a758996-2bb0-4753-8365-34ca3ef0f940") ("../dev/her.esy.fun/src/drafts/XXXX-org-mode-intro/index.org" "21c48431-c0db-4a34-95fe-7228fea6233f") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/journal/2020/2020-09-20.org" "8a931436-5db6-4ff1-8fa8-3415c1f67c61") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/journal/2020/2020-09-26.org" "d6bfe273-22e1-40b4-92db-14b22e092498") ("../y/her.esy.fun/src/posts/0013-how-to-choose-your-tools/index.org" "c2e61938-8493-434a-9ffa-9fd4698d9863") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/inbox.org" "a4ebd43b-b589-499e-85e1-7ebea0abf3af" "797ba971-6ae3-49a1-9499-928572760d09"))
(("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/journal/2021-04-16--12-27-13Z--iroh_auth_presentation.org" "dab23b61-a766-4eda-a1e9-1d39258ef5c0") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/journal/2020-12-04--13-19-56Z--english_lesson.org" "1a758996-2bb0-4753-8365-34ca3ef0f940") ("../dev/her.esy.fun/src/drafts/XXXX-org-mode-intro/index.org" "21c48431-c0db-4a34-95fe-7228fea6233f") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/journal/2020/2020-09-20.org" "8a931436-5db6-4ff1-8fa8-3415c1f67c61") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/journal/2020/2020-09-26.org" "d6bfe273-22e1-40b4-92db-14b22e092498") ("../y/her.esy.fun/src/posts/0013-how-to-choose-your-tools/index.org" "c2e61938-8493-434a-9ffa-9fd4698d9863") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/inbox.org" "a4ebd43b-b589-499e-85e1-7ebea0abf3af") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/archives/TODO.archive.org" "797ba971-6ae3-49a1-9499-928572760d09" #("96343FD2-E7A9-4AAA-A40A-8D048DA340E9" 0 36 (fontified t face org-property-value org-category "inbox")) #("B72E4288-E96B-4099-8684-37DDF3395C50" 0 36 (fontified t org-category "inbox" face org-property-value))))

View file

@ -1,121 +0,0 @@
#+TITLE: service-pattern
#+Author: Yann Esposito
#+Date: [2021-03-14]
- tags :: [[file:2020-06-03--19-49-30Z--programming.org][programming]] [[file:2020-05-26--06-13-41Z--functional_programming.org][functional programming]]
- source ::
The question about code structure and organization is one of the most
prolific one.
The problem are always the same.
Here I will talk about one possible solution in this huge design space.
First of all, I will focus on a functional programming pattern.
But I think the lessons could be extended to any generic programming
language.
Before explaining the pattern I would like to take the time to provide a
few distinctions between different programming language patterns.
Quite often, one fundamental question very important when choosing a
pattern for your code is about find the correct level of the pattern.
There are a tower of patterns and meta-patterns.
For example in imperative programming not using =goto= statement was
considered as a programming pattern.
Once that idea was accepted there were work done on /Object Oriented
Programming/.
And OOP was considered as a programming language pattern.
But OOP while already providing quite a constraint on your code
architecture was enough not sufficient.
OOP alone leave a lot of room in the design space.
Thus we've seen numerous "OOP Design Pattern".
That used the underlying OOP paradigm as a base and constructed
abstractions over it.
Even with all those Design Pattern it was up to the programmer to decide
which one applies or not.
Quite often there is not a single path easy to detect correct design
pattern.
Mainly the very hard part in programming is choosing the right abstraction.
There are other code structures to choose from.
In functional programming there are FRP.
Here also there are stories about how design pattern once chosen make a
natural evolution toward meta-design-patterns.
Mainly design pattern that rely on a lower level design pattern.
If you take the story behind Elm Architecture you can see it.
At first there were FRP.
Elm removed the behavior from FRP to only deal with events to simplify the
model.
But with FRP the author clearly though it was a good-enough design pattern.
But the design space was a bit too big.
So it was difficult to take the right decision.
So a natural meta-pattern appeared.
It is [[https://guide.elm-lang.org/architecture/][/Elm Architecture/]].
So while Elm imposed so structure of your program using static types to
prevent common coding mistakes and enforce a specific code structure.
Elm did not constrain the file organization, the number of buffers to
send/receive events, the way they should talk/listen between each other.
So Elm Architecture is a non enforced meta structure for your code
application.
Unlike the underlying layer of architecture.
But what Elm Architecture provide is a higher level architecture that will
help your program to "scale" and whose natural organization is easy to
understand.
So Elm Architecture is more of a proposal that will potentially have
drawback.
Typically, if you change the organization of your views, it could cost a
lot of change in your code.
But most of the time this is acceptable and preferable.
Because, the Elm Architecture is simple to understand and quite often this
is not such a big deal.
Not using the Elm Architecture paradigm put you at risk to end up in a
spaghetti code hell.
But of course there is a tension between code size/DRYness and easy to
understand code organization/architecture.
If you have a short code base, DRYness could probably be preferable.
Because a bit of disorganization and shortcuts will not be unbearable.
But as the size of your code grow, it will become more and more prevalent
that a strict code organization with perhaps more repetitions and a bit
more conventions implying more lines of code become preferable because it
minimize the risk of surprise between different part of the code.
Clearly, Elm Architecture is selling compactness of your code for an easier to
read, discover and understand overall code architecture.
So we could probably say the same for multiple proposed code architecture
mechanism in the Haskell world.
Typically we had:
- no org => spaghetti code
- big Monad => lack of composability, leak of abstraction everywhere
- Handler Pattern
- MTL
- RIO
- Free Monads (Effects)
After this first short introduction I hope it is clear that, it will be
quite impossible to discover a "best code architecture".
There are multiple code architecture and the bigger your code the more
constraint you must probably put in your code which will make a lot of code
look cumbersome from people used to smaller code size.
That being said, there are code architecture that could be probably be
considered fully superior to other ones.
Imagine a code architecture with the same properties but better in some
dimensions without worse evaluation in some dimension.
Typically, a code architecture is preferable to no code architecture as
soon as your code become big enough and you need to not work alone.
For example I would argue that the Purescript Halogen architecture is
probably strictly superior to the Elm Architecture.
Because it contains Elm Architecture but also contains a shortcut mechanism
which is entirely enforced via static types..
The "cost" of these shortcuts are quite limited because you are helped with
the types provided by the Halogen framework.
One big advantage is the ability to not pay the full price of the Elm
Architecture while moving a component.

View file

@ -1,100 +0,0 @@
# Created 2021-04-16 Fri 14:49
#+TITLE: IROH Auth Presentation
#+DATE: [2021-04-16 Fri]
#+AUTHOR: Yann Esposito
- tags :: [[file:2021-04-16--13-35-21Z--cisco.org][Cisco]]
* IROH Auth Presentation
Yann Esposito <yaesposi@cisco.com>
* When did you interacted with IROH-Auth?
- Login in SecureX
- Login in CTR
- Login in Orbital
- Authorized the Ribbon
- Cross Launch with SSE
- Invited someone to your Org
- Changed the role of some user
- When you investigate in CTR (via CTIA's module)
- Created an OAuth2 client
* What is IROH-Auth? (overview)
This is a software subcomponent of /IROH/ taking care of:
- /Authentication/
- provide a user unique identifier
- /Authorization/
- decide what user can or cannot do
- /User Data Model/
- /Tenancy (Org) Management/
- /API Clients Management/
- /OAuth2/, /OpenID Connect/ provider (half of IROH-Auth dedicated to this)
* What is IROH-Auth? (technical)
/IROH-Auth/ is a set of /Services/ within /IROH/ some of them exposing
HTTP APIs.
- Login
- Login (core service + web API)
- Org (service)
- User (service + web API)
- Scopes (service)
- Auth Management (core service)
- Invite (core service + web API)
- Session (web API)
- Profile (web API, =/whoami=)
- SCIM Client (service)
- IdP Migrate (core service + web API) /deprecated a few months ago/
- Provision (service + web API) /used instead of IdP Migrate/
- OAuth2
- OAuth2 (core service + web API)
- OAuth2 Clients (core service + web API)
- OAuth2 Clients Presets (service)
- Grant Service (User's client authorizations)
- Admin
- Auth Management (web API)
- OAuth2 Clients Management (web API)
* History (1/?) :ATTACH:
Login using AMP SAML (generate JWT)
*SAML*
[[file:/Users/esposito/.org/.attach/da/b23b61-a766-4eda-a1e9-1d39258ef5c0/_20210416_144701IT%27s%20BAD%20IT%27s%20REALLY%20BAD.gif]]
Worked with Guillaume.
*No DB of users!*
* History (2/?)
2nd goal: Support OAuth2 (become an OAuth2 provider)
3rd goal: Support AMP and Threatgrid login (OpenID Connect)
Become both an OAuth2 client and provider.
Need Clients/Users/Orgs in DB!!!
OAuth2 RFC => OAuth2 GRANTS
- Authorization Code Grant (the classic)
- Client Grant (for scripts)
- Implicit Grant (for Single Page Applications, now deprecated)
4rd goal: Support Account Activation => SCIM Client
...
- Become an OpenID Connect provider, made before the start of SecureX.
- OpenID Connect with SSE (we are the IdP now)
* Internal User Structure
* Cisco specificity

View file

@ -0,0 +1,46 @@
#+Title: Journal (2021-02-08 - ∆y=43.93 (16046))
#+Author: Yann Esposito
#+Date: [2021-02-08]
#+STARTUP: showeverything
#+STARTUP: inlineimages
* Résume Journée
:PROPERTIES:
:CREATED: 20210208
:END:
| sommeil | ?/5 | horrible -> comme un bébé |
| activité φ | ?/5 | au lit -> sport |
| nourriture | ?/5 | malbouffe -> saine |
| humeur | ?/5 | exécrable -> excellente |
| intérêt | ?/5 | ennuie -> exceptionnel |
- Faits positifs
- Faits marquants
- Résumé des discussions intéressantes
- Réflexions/Essais
* 2021-02-08 Monday
** 10:56
Celà fait un moment que j'ai pas écris d'entrée dans le journal.
Et bien j'ai l'impression que celà va un peu avec mon humeur évidemment.
Je veux dire qu'il me semble écrire lorsque j'en ai un peu plus besoin.
Et donc qu'est-ce qui a changé évolué ?
Depuis la dernière fois, les évenements récents qui ont occupé ma vie.
1. Achat de voiture. Nous devrions avoir nos nouvelles voiture il y a 2
semaines et nous les attendons toujours.
De problèmes un peu accumulés qui ne nous semblent pas du tout normaux.
2. Ma promotion grade 11 annoncée en fanfarre, ce qui me permet d'avoir un
salaire encore meilleur (hausse de 5.4% environ, mon brut s'élève à 91k)
3. Krystelle recommence à avoir pas mal de douleurs à son pied et son genou.
4. Bastien peut depuis hier conduire la twingo.
5. Je n'ai pas de nouvelles pour les aménagements des épreuves anticipées
au Bac d'Anna.
6. Nous essayons de jouer un peu plus à des jeux de société en famille.
7. Bastien est de moins en moins présent à la maison.
8. J'ai recommencé à me poser des questions un peu métaphysiques, enfin...
plutôt un questionnement sur ma condition humaine et personnelle.

View file

@ -0,0 +1,41 @@
#+Title: Journal (2021-02-28 - ∆y=43.99 (16066))
#+Author: Yann Esposito
#+Date: [2021-02-28]
#+STARTUP: showeverything
#+STARTUP: inlineimages
* Résume Journée
:PROPERTIES:
:CREATED: 20210228
:END:
| sommeil | 3/5 | horrible -> comme un bébé |
| activité φ | 1/5 | au lit -> sport |
| nourriture | 3/5 | malbouffe -> saine |
| humeur | 4/5 | exécrable -> excellente |
| intérêt | 3/5 | ennuie -> exceptionnel |
- Faits positifs
- Faits marquants
- Résumé des discussions intéressantes
- Réflexions/Essais
* 2021-02-28 Sunday
** 12:03
Premier week-end de reconfinement depuis l'an dernier.
Je suis avec Krystelle uniquement.
Bastien est parti chez Jena, et Anna est chez mes beaux parents.
Je me suis un peu reposé.
J'ai un peu travaillé samedi matin pour fixer les pb de tooling/build.
J'ai tué les toolistes en virant toute la merde.
J'ai un peu joué à factorio, je m'essaye aux train de façon un peu plus
avancée.
J'utilise deux voies et des intersection à 3 directions.
Je re-regarde la série Hemlock Grove.
Ça me permet de me détendre l'esprit de regarder des séries que j'ai déjà
vu.
Je m'étais re-re-regardé Buffy contre les vampires par exemple.

View file

@ -0,0 +1,35 @@
#+Title: Journal (2021-03-01 - ∆y=43.99 (16066))
#+Author: Yann Esposito
#+Date: [2021-03-01]
#+STARTUP: showeverything
#+STARTUP: inlineimages
* Résume Journée
:PROPERTIES:
:CREATED: 20210301
:END:
| sommeil | 3/5 | horrible -> comme un bébé |
| activité φ | ?/5 | au lit -> sport |
| nourriture | ?/5 | malbouffe -> saine |
| humeur | ?/5 | exécrable -> excellente |
| intérêt | ?/5 | ennuie -> exceptionnel |
- Faits positifs
- Faits marquants
- Résumé des discussions intéressantes
- Réflexions/Essais
* 2021-03-01 Monday
** 09:01
Ce matin Bastien part à Martigues avec Jena.
Il va rester quelques jour et revenir avec Anna en conduisant la nouvelle voiture.
Krystelle travaille.
J'ai une journée de congés offerte par Cisco.
Je suis dont tout seul à pouvoir faire un peu ce que je veux.
C'est pas mal.
Je vais probablement jouer un peu, geeker, je ne sais pas trop encore.

Binary file not shown.