🚧 WIP 🚧

This commit is contained in:
Yann Esposito (Yogsototh) 2022-03-07 09:58:01 +01:00
parent e3cb01264a
commit a8c628fc40
Signed by untrusted user who does not match committer: yogsototh
GPG key ID: 7B19A4C650D59646
321 changed files with 802 additions and 13775 deletions

View file

@ -1,2 +1,2 @@
(("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/inbox.org" "1644E007-AFBE-4F4B-9307-B007C60548E8" "8B092321-BA1F-47F9-A927-76D2E232CF51" "49981B50-AFBD-4C93-A9C2-8D88550AB425" "90110976-520D-4B0C-B1D9-3798323C370E" "2110820C-4877-40B3-A351-2DEDE0F222C6" "a4ebd43b-b589-499e-85e1-7ebea0abf3af" "9207b53a-e38e-4996-abc6-140c31f2960a") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/archives/TODO.archive.org" "96343FD2-E7A9-4AAA-A40A-8D048DA340E9" "B72E4288-E96B-4099-8684-37DDF3395C50" "797ba971-6ae3-49a1-9499-928572760d09") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/interview_shafiq.org" "094630db-95cf-416f-a147-ca5fdeddd902") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/factorio_maps.org" "e5c17702-09d5-4d7d-97ff-95a8de353ea0") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/artificial_life_game_approach.org" "8a37b5d3-8ee5-45cd-8c32-021b8d42210f") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/customer_manager.org" "99fd9444-ae5d-4d51-a295-a936fc01928a") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/cisco_team_history.org" "e3296579-2f2e-4f23-92e2-1ce9fef6fe04") ("../y/her.esy.fun/src/posts/0013-how-to-choose-your-tools/index.org" "c2e61938-8493-434a-9ffa-9fd4698d9863") ("../y/her.esy.fun/src/posts/0019-utopia-tv-show/index.org" "88e25182-ee54-4d2e-b373-b4e06fc292c8") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/interview_certification.org" "93027c33-dcf8-4bda-8aee-60f507e0ff4a") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/how_to_speak.org" "4ad5f64e-c330-4f36-8f8a-d82a1ae993a0") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/cisco_ft_securex_registration.org" "1208f09c-d37d-4e6b-9110-151f3c6b7d34") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/simplex_chat.org" "5a711803-6a92-40e3-817d-40f564ac5cf8") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/security.org" "2351f4cb-85a3-45ca-9bb5-f13a559afcfe") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/chat.org" "fb32a68e-b32c-4ce5-9c6a-cc141a122708") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/encryption.org" "80630a59-70f2-435b-967b-abb162324be8"))
(("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/inbox.org" "1644E007-AFBE-4F4B-9307-B007C60548E8" "8B092321-BA1F-47F9-A927-76D2E232CF51" "49981B50-AFBD-4C93-A9C2-8D88550AB425" "90110976-520D-4B0C-B1D9-3798323C370E" "2110820C-4877-40B3-A351-2DEDE0F222C6" "a4ebd43b-b589-499e-85e1-7ebea0abf3af" "9207b53a-e38e-4996-abc6-140c31f2960a") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/archives/TODO.archive.org" "96343FD2-E7A9-4AAA-A40A-8D048DA340E9" "B72E4288-E96B-4099-8684-37DDF3395C50" "797ba971-6ae3-49a1-9499-928572760d09") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/cisco_securex_ips.org" "c9e0342f-f082-4c9b-9dcd-f1629124ac71") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/new_iroh_auth_apis.org" "2c317dbe-4fca-444b-b0bc-f9174522e106") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/remove_securex_tg_login_button.org" "3290e028-b7a6-4be3-a5d2-45bf89ff2f0d") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/interview_shafiq.org" "094630db-95cf-416f-a147-ca5fdeddd902") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/factorio_maps.org" "e5c17702-09d5-4d7d-97ff-95a8de353ea0") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/artificial_life_game_approach.org" "8a37b5d3-8ee5-45cd-8c32-021b8d42210f") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/customer_manager.org" "99fd9444-ae5d-4d51-a295-a936fc01928a") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/cisco_team_history.org" "e3296579-2f2e-4f23-92e2-1ce9fef6fe04") ("../y/her.esy.fun/src/posts/0013-how-to-choose-your-tools/index.org" "c2e61938-8493-434a-9ffa-9fd4698d9863") ("../y/her.esy.fun/src/posts/0019-utopia-tv-show/index.org" "88e25182-ee54-4d2e-b373-b4e06fc292c8") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/interview_certification.org" "93027c33-dcf8-4bda-8aee-60f507e0ff4a") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/how_to_speak.org" "4ad5f64e-c330-4f36-8f8a-d82a1ae993a0") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/cisco_ft_securex_registration.org" "1208f09c-d37d-4e6b-9110-151f3c6b7d34") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/simplex_chat.org" "5a711803-6a92-40e3-817d-40f564ac5cf8") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/security.org" "2351f4cb-85a3-45ca-9bb5-f13a559afcfe") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/chat.org" "fb32a68e-b32c-4ce5-9c6a-cc141a122708") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/encryption.org" "80630a59-70f2-435b-967b-abb162324be8") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/redirect_to_new_page_with_useridentity_jwt.org" "f46a4a9e-6a06-4b9e-8764-30cd8c501d7e") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/one_one_meetings.org" "cd101af9-2dd7-41b7-85d6-4de5c0c594df") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/management.org" "719fabee-1094-4596-b26e-55fe7a512113") ("../Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/notes/high_iq_captcha.org" "b6402aa6-3315-4317-82a5-367af38f0ead"))

697
2022-03-tracker-archive.org Normal file
View file

@ -0,0 +1,697 @@
* 2022
** 2022-W05
*** 2022-02-03 Thursday
**** IN-PROGRESS activate logout issue :work:
:LOGBOOK:
CLOCK: [2022-02-03 Thu 17:17]--[2022-02-03 Thu 19:02] => 1:45
:END:
[2022-02-03 Thu 17:17]
- ref :: [[id:7fa185e4-9866-4ce8-ab60-d62d8c80b041][Mode d'évaluation au paradis]]
For https://github.com/advthreat/iroh/issues/6250
The fix (https://github.com/advthreat/iroh/pull/6194) has been reverted
(https://github.com/advthreat/iroh/pull/6246) because SecureX and CTR work
differently.
GLaDOS and CTR must find a common solution, for now, we are blocked.
I think the technical solution to return a 401 when the org change from
unactivated to activated was proposed by @alucigna but I couldn't find the link
to the discussion.
cc: @alucigna @DarMontou @sabrinamokerji
*** 2022-02-04 Friday
**** MEETING Weekly Kirill Presentation :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-04 Fri 17:04]--[2022-02-04 Fri 20:24] => 3:20
:END:
[2022-02-04 Fri 17:04]
- ref ::
***** Notes
**** MEETING Simplify Registration :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-04 Fri 16:37]--[2022-02-04 Fri 17:04] => 0:27
:END:
[2022-02-04 Fri 16:37]
- ref :: https://cisco-my.sharepoint.com/:w:/p/prdass/EXwUr_HCwOVNte7KFcFzUeABxvTZiL8vZTgd8-5WInt4hA?e=4%3an55ogS&at=9
Add your status in
https://cisco-my.sharepoint.com/:w:/p/prdass/EXwUr_HCwOVNte7KFcFzUeABxvTZiL8vZTgd8-5WInt4hA?e=4%3an55ogS&at=9
***** Agenda (to discuss about)
***** Notes
***** Actions
** 2022-W06
*** 2022-02-07 Monday
**** REVIEW Github tour :work:review:
:LOGBOOK:
CLOCK: [2022-02-07 Mon 10:54]--[2022-02-08 Tue 09:49] => 22:55
:END:
[2022-02-07 Mon 10:54]
- ref :: [[file:~/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*Webex tour][Webex tour]]
**** CHAT Webex tour :work:chat:
:LOGBOOK:
CLOCK: [2022-02-07 Mon 10:33]--[2022-02-07 Mon 10:54] => 0:21
:END:
[2022-02-07 Mon 10:53]
- ref :: [[file:~/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*Check Customer bug with tiles.][Check Customer bug with tiles.]]
**** IN-PROGRESS Check Customer bug with tiles. :work:
:LOGBOOK:
CLOCK: [2022-02-07 Mon 09:52]--[2022-02-07 Mon 10:33] => 0:41
:END:
[2022-02-07 Mon 10:52]
- ref :: https://github.com/advthreat/response/issues/1076
Confirmed this is UI for now.
*** 2022-02-08 Tuesday
**** CHAT random rambling :work:chat:
:LOGBOOK:
CLOCK: [2022-02-08 Tue 10:47]--[2022-02-08 Tue 17:32] => 6:45
:END:
[2022-02-08 Tue 10:47]
- ref :: [[file:~/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*Email tour][Email tour]]
**** EMAIL Email tour :work:email:
:LOGBOOK:
CLOCK: [2022-02-08 Tue 10:13]--[2022-02-08 Tue 10:47] => 0:34
:END:
[2022-02-08 Tue 10:13]
- ref :: [[file:~/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*Replace SSE IDB with SXSO][Replace SSE IDB with SXSO]]
**** CHAT Webex tour :work:chat:
:LOGBOOK:
CLOCK: [2022-02-08 Tue 09:49]--[2022-02-08 Tue 10:13] => 0:24
:END:
[2022-02-08 Tue 09:49]
***** IROH
Remark about deps in IROH for Ag (pb with the formatting-stack and clojurescript)
***** IROH-Social
***** OPs General
***** DI Integration
***** Replace SSE IDB with SXSO
Jason Chamber links:
- A-Ha link (Epic) https://ciscosecurity.aha.io/epics/SECUREX-E-471
- A-Ha link (Feature) https://ciscosecurity.aha.io/features/SECUREX-557
- Jira link https://jira-eng-rtp3.cisco.com/jira/projects/SSO/issues/SSO-458?filter=myopenissues
Demand A-HA access
***** SecureX + ThreatGrid
Follow 1-click deactivation discussion.
*** 2022-02-09 Wednesday
**** MEETING API Design Meeting :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-09 Wed 17:30]--[2022-02-09 Wed 18:16] => 0:46
:END:
[2022-02-09 Wed 17:30]
- ref ::
***** Agenda (to discuss about)
***** Notes
***** Actions
**** MEETING Sync on the IROH Team capacity :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-09 Wed 15:26]--[2022-02-09 Wed 17:30] => 2:04
:END:
[2022-02-09 Wed 15:26]
- participants :: Prerna
***** notes
*** 2022-02-10 Thursday
**** MEETING Town Hall Namrata :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-10 Thu 20:02]--[2022-02-10 Fri 21:09] => 1:07
:END:
[2022-02-10 Thu 20:02]
Really excited for our session today.
Really candid feedback from you.
Every Quarter.
What we are working on and why and where we're headed.
***** Intro
- Business Result (Martin)
- Product Strategy (demos)
- Product Demonstrations
Leave a few minutes at the end for some Q&A.
***** Business update & strategy discussion
****** Made a sell by showing SecureX
****** XDR FY23 (top priority for Cisco)
****** 10k customers
****** Improve Renewals Rates
****** Customer with EndPoint + Umbrella lot of usage.
****** Big Users use SecureX more than small ones
**** MEETING Farewell Alex :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-10 Thu 19:01]--[2022-02-10 Thu 20:02] => 1:01
:END:
[2022-02-10 Thu 19:01]
Expertise and broad culture.
You have always been extremely helpful.
Your insights were essential.
Without them I wouldn't have been able to grasp the scope about what we are building.
And thanks for helping me remember about Gundam and all the first times.
**** MEETING Weekly Team Meeting :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-10 Thu 17:00]--[2022-02-10 Thu 19:01] => 2:01
:END:
[2022-02-10 Thu 17:00]
Waiting
Discussion about updating doc in the response repository.
***** Ag
- Module Type Patch UI
***** Ambrose
- put something in TEST might break something
***** G2
Description of lot of work for Q3, etc…
***** Irina
- soft delete
***** Kirill
Improve timeouts. Started a work around =pmap=.
***** Mark
OIDC with AO.
***** Matt
Addressing security issue discovered by the Engine team.
***** Olivier
Emails of users in lower-case.
Done in the code.
Rollback system.
And maintenance service that could update the stores.
Adding a new search function.
***** Rob
Support all modules that have a module-type in App Links.
Integrating SXSO into that.
SecureX endpoint.
***** Wanderson
Simplification Registration FT
Adding a new session to a new frontend.
***** Yann
- customer session to fix a bug
- IDB decommission must take the time, probably ask Matt some help.
- Registration Simplification
- Wanderson work make it possible to finally have an IROH-Auth Application Session.
- Olivier is working on improving our textual search services and API.
- Reduction of the scope should make it possible to finish for Q3
- The current work will make it a lot easier to provide a better UI to
manage your multiple orgs (like hide/disable/rename etc…)
- (background) fix the issue related to refresh token state in the DB, most
of the work is now done for the new services, just need to populate the
data during OAuth2 Code flow.
***** Guillaume
Removed the arrow, and now, design with OIDC to propose trial.
*** 2022-02-11 Friday
**** MEETING Registration Simlification :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-11 Fri 16:31]--[2022-02-11 Fri 17:48] => 1:17
:END:
[2022-02-11 Fri 16:31]
- ref ::
***** Agenda (to discuss about)
***** Notes
***** Actions
**** CHAT Olivier Question like-match rule :work:chat:
:LOGBOOK:
CLOCK: [2022-02-11 Fri 15:19]--[2022-02-11 Fri 16:31] => 1:12
:END:
[2022-02-11 Fri 15:19]
- ref :: [[file:~/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*Security Training][Security Training]]
**** DONE Security Training :work:
:LOGBOOK:
CLOCK: [2022-02-11 Fri 11:24]--[2022-02-11 Fri 11:50] => 0:26
:END:
[2022-02-11 Fri 11:24]
- ref :: [[file:~/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*github notifications morning tour][github notifications morning tour]]
**** DISC github notifications morning tour :work:discussion:
:LOGBOOK:
CLOCK: [2022-02-11 Fri 10:15]--[2022-02-11 Fri 11:23] => 1:08
:END:
[2022-02-11 Fri 10:15]
- ref :: [[file:~/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*Webex morning tour][Webex morning tour]]
**** CHAT Webex morning tour :work:chat:
:LOGBOOK:
CLOCK: [2022-02-11 Fri 10:00]--[2022-02-11 Fri 10:15] => 0:15
:END:
[2022-02-11 Fri 10:14]
- ref :: [[file:~/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*Morning Email Tour][Morning Email Tour]]
**** EMAIL Morning Email Tour :work:email:
:LOGBOOK:
CLOCK: [2022-02-11 Fri 10:11]--[2022-02-11 Fri 10:14] => 0:03
:END:
[2022-02-11 Fri 10:11]
** 2022-W07
*** 2022-02-14 Monday
**** MEETING Simplify Registration :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-14 Mon 16:30]--[2022-02-14 Mon 17:19] => 0:49
:END:
[2022-02-14 Mon 16:30]
*** 2022-02-17 Thursday
**** MEETING Weekly Team Meetings :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-17 Thu 17:00]--[2022-02-17 Thu 20:45] => 3:45
:END:
[2022-02-17 Thu 17:00]
- ref ::
***** Ag
index page is always tk-server
*** 2022-02-18 Friday
**** IN-PROGRESS Fix module-type :work:
:LOGBOOK:
CLOCK: [2022-02-18 Fri 12:21]--[2022-02-18 Fri 15:51] => 3:30
:END:
[2022-02-18 Fri 12:21]
- ref :: [[file:~/dev/iroh/lib/iroh-core/test/iroh_core/test_helpers_test.clj::(deftest is-similar?-test]]
APJC SCA
#+begin_src js
{
"description": "Cisco Secure Cloud Analytics (formerly Stealthwatch Cloud) improves security and incident response across the distributed network, from the private network and branch office to the public cloud. This solution addresses the need for digital businesses to quickly identify threats posed by their network devices and cloud resources, and to do so with minimal management, oversight, and security manpower.\n\nThe network is evolving. IT resources are frequently being moved into the cloud. At the same time, the number of connected devices on the private network is increasing dramatically. Security personnel are struggling just to know what entities are operating in their environment, let alone whether they pose a threat to the organization.\n\nSecure Cloud Analytics addresses this problem by providing comprehensive visibility and high-precision alerts with low noise, without the use of agents. Organizations can accurately detect threats in real time, regardless of whether an attack is taking place on the network, in the cloud, or across both environments. Secure Cloud Analytics is a cloud-based, Software-as-a-Service (SaaS)-delivered solution. It detects ransomware and other malware, data exfiltration, network vulnerabilities, and role changes that indicate compromise.\n\nAlso, developer teams are continuously adopting new and more dynamic compute environments like serverless and containers such as AWS Lambda and Kubernetes. Secure Cloud Analytics provides visibility into these environments as well, so that organizations dont have to compromise on security on their path to digital transformation.",
"properties": "2MGqPrzLNIrfFeFK/UUzdpA98pKEUHLvd6d7+snqeh1lXokV9n6J8lKeAwp7tRdCSHT+crPhmilCkfBXkvfT+8NLp/rq+4TD32EkYqcYNngmgsAji/UJ6NuChgJnPd+FwwembDj2iPh7vFXHnGmLKlgOkweQzokI2CUROgbTw2JNruDhL47ws3LhMl2LRqlbJQP83yeGMmwjV0mjFSth/w25D1oIHR+mnYH7mrcKUH0XT/6xQzqJ3l6URkbun6wvzLycJhqtOtqtJSdB3cAfYlhfkpCY8ZXt9IO8/MyOeGJ6Qf2iz9gXIFAgtNBBz9bkZAPk4Uv0nei39F4lwFv9lmUdVGuHIHtHJKf4sn/qB40=",
"capabilities": [
{
"id": "health",
"description": "Healthcheck"
},
{
"id": "deliberate",
"description": "Deliberation"
},
{
"id": "observe",
"description": "Enrichments"
},
{
"id": "refer",
"description": "Reference links"
},
{
"id": "tiles",
"description": "Dashboard Tiles"
}
],
"app_link_meta": {
"url": "https://portal-anz.obsrvbl.com/auth/?next=%2Fv2%2F%23%2Fsettings%2Fintegrations%2Fsecurex",
"meta": {
"x_okta_bookmark_id": "0oa1idxamsrOKeFuN357"
},
"title": "Stealthwatch Cloud (ANZ)"
},
"tips": "If the Secure Cloud Analytics (formerly Stealthwatch Cloud) integration module displays a **Bidirectional** icon on the module panel, it indicates that the integration was enabled in Secure Cloud Analytics or SecureX. \n\nFor information on the Secure Cloud Analytics integration with SecureX, see [Secure Cloud Analytics SecureX integration Guide](https://www.cisco.com/c/dam/en/us/td/docs/security/stealthwatch/cloud/SecureX/SecureX_Integration_Guide_DV_2_0.pdf).",
"logo": "data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM0LjEgMzIuMiI+PHBhdGggZmlsbD0iIzI3NGJhMCIgZD0iTTAgMGgzNC4xdjMyLjE2SDB6Ii8+PHBhdGggZD0iTTIyLjcgMTYuOGEzIDMgMCAwMC0zLTNoLS4xYTQuMyA0LjMgMCAwMC04LjEgMS41IDIuMyAyLjMgMCAwMC0yLjYgMS44LjkuOSAwIDAwLS4xLjUgMi4yIDIuMiAwIDAwMi40IDIuMkgyMGEzIDMgMCAwMDIuNy0zeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yMC4zIDhhOC43IDguNyAwIDAwLTUuOC0yLjIgMTEuNyAxMS43IDAgMDAtNS4xIDEuNk0xMC4xIDIzLjZoMTMuM3M1LjctLjcgNS43LTYuM2E2LjUgNi41IDAgMDAtMi45LTUuNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPjxjaXJjbGUgY3g9IjIyLjciIGN5PSIxMC44IiByPSIxLjciIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI2LjMiIGN5PSIyMy42IiByPSIxLjgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI4IiBjeT0iOC43IiByPSIxLjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+PC9zdmc+",
"org_id": "4f169b08-bb0d-4e97-a358-8fd3fd819066",
"configuration_spec": [
{
"key": "token",
"type": "api_key",
"label": "Authorization Token",
"required": true
}
],
"short_description": "Gain the visibility and continuous threat detection needed to secure your public cloud, private network, and hybrid environments.",
"title": "Secure Cloud Analytics",
"external_references": [
{
"link": "https://info.securexanalytics.com/SecureX-Trial-Request.html",
"label": "Free Trial"
},
{
"link": "https://www.cisco.com/c/en/us/products/security/stealthwatch-cloud/index.html",
"label": "Product Information"
},
{
"link": "https://www.cisco.com/c/dam/r/ctp/docs/privacydatasheet/security/cisco-stealthwatch-cloud-privacy-data-sheet.pdf",
"label": "Privacy Policy"
},
{
"link": "https://portal-anz.obsrvbl.com/auth/?next=%2Fv2%2F%23%2Fsettings%2Fintegrations%2Fsecurex%3Fstatus%3Dtrue",
"class": "activation",
"label": "Activate"
}
],
"updated_at": "2022-02-18T10:17:14.710Z",
"id": "f31e83d1-48e7-4384-9c6a-64a5c9cee05b",
"record": "relay-module.module/RelayModule",
"user_id": "207347d9-65c0-402b-88ce-ef028989e95f",
"client_id": "iroh-ui",
"default_name": "Secure Cloud Analytics",
"flags": [
"default"
],
"enabled": true,
"visibility": "global",
"created_at": "2020-05-15T17:45:46.904Z",
"former_title": "Stealthwatch Cloud"
}
#+end_src
NAM:
#+begin_src js
{
"description": "Cisco Secure Cloud Analytics (formerly Stealthwatch Cloud) improves security and incident response across the distributed network, from the private network and branch office to the public cloud. This solution addresses the need for digital businesses to quickly identify threats posed by their network devices and cloud resources, and to do so with minimal management, oversight, and security manpower.\n\nThe network is evolving. IT resources are frequently being moved into the cloud. At the same time, the number of connected devices on the private network is increasing dramatically. Security personnel are struggling just to know what entities are operating in their environment, let alone whether they pose a threat to the organization.\n\nSecure Cloud Analytics addresses this problem by providing comprehensive visibility and high-precision alerts with low noise, without the use of agents. Organizations can accurately detect threats in real time, regardless of whether an attack is taking place on the network, in the cloud, or across both environments. Secure Cloud Analytics is a cloud-based, Software-as-a-Service (SaaS)-delivered solution. It detects ransomware and other malware, data exfiltration, network vulnerabilities, and role changes that indicate compromise.\n\nAlso, developer teams are continuously adopting new and more dynamic compute environments like serverless and containers such as AWS Lambda and Kubernetes. Secure Cloud Analytics provides visibility into these environments as well, so that organizations dont have to compromise on security on their path to digital transformation.",
"properties": "yUY5o15RUpAfB7Lk3RxosIJYx2JpDTaf4TkddVzepwSbz3A9m9b+/KyHxuiSH1SbTf6r5qk2SgaSKA8efk3pbDqL2RQC248eQoez0EI0GaAmnXnnhuEH91ZFtddwyQdvX+tUY+vxbHfdkES6rKP0hLWxMMZcYikD5ONBfNwak3kqlq0g07c52Gnx9Qgg5UOdzwBqTVb883tJZ+fRAFhYU7Hu7DNZDRDnccTOUFNJw84hmg7NEFMjK5Z48BG51qBgW50u/Wxv7+ceCUFUYrwbFzQLB/zbspQcFJtlUwZHZ7jl/VQbLT5QqJLthRnphAIGE/xIsEeCG66fZg1Ds60Vwp/c12ueYJVsVZyhHBIG0wk=",
"capabilities": [
{
"id": "health",
"description": "Healthcheck"
},
{
"id": "deliberate",
"description": "Deliberation"
},
{
"id": "observe",
"description": "Enrichments"
},
{
"id": "refer",
"description": "Reference links"
},
{
"id": "tiles",
"description": "Dashboard Tiles"
}
],
"app_link_meta": {
"url": "https://portal-staging.obsrvbl.com/auth/?next=%2Fv2%2F%23%2Fsettings%2Fintegrations%2Fsecurex",
"meta": {
"x_okta_bookmark_id": "0oa1hyf3xtXD6Xqxg357"
},
"title": "Stealthwatch Cloud (US)"
},
"tips": "If the Secure Cloud Analytics (formerly Stealthwatch Cloud) integration module displays a **Bidirectional** icon on the module panel, it indicates that the integration was enabled in Secure Cloud Analytics or SecureX. \n\nFor information on the Secure Cloud Analytics integration with SecureX, see [Secure Cloud Analytics SecureX integration Guide](https://www.cisco.com/c/dam/en/us/td/docs/security/stealthwatch/cloud/SecureX/SecureX_Integration_Guide_DV_2_0.pdf).",
"logo": "data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM0LjEgMzIuMiI+PHBhdGggZmlsbD0iIzI3NGJhMCIgZD0iTTAgMGgzNC4xdjMyLjE2SDB6Ii8+PHBhdGggZD0iTTIyLjcgMTYuOGEzIDMgMCAwMC0zLTNoLS4xYTQuMyA0LjMgMCAwMC04LjEgMS41IDIuMyAyLjMgMCAwMC0yLjYgMS44LjkuOSAwIDAwLS4xLjUgMi4yIDIuMiAwIDAwMi40IDIuMkgyMGEzIDMgMCAwMDIuNy0zeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yMC4zIDhhOC43IDguNyAwIDAwLTUuOC0yLjIgMTEuNyAxMS43IDAgMDAtNS4xIDEuNk0xMC4xIDIzLjZoMTMuM3M1LjctLjcgNS43LTYuM2E2LjUgNi41IDAgMDAtMi45LTUuNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPjxjaXJjbGUgY3g9IjIyLjciIGN5PSIxMC44IiByPSIxLjciIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI2LjMiIGN5PSIyMy42IiByPSIxLjgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI4IiBjeT0iOC43IiByPSIxLjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+PC9zdmc+",
"org_id": "964a8c3b-9aef-4e1d-aadf-e2754004d230",
"configuration_spec": [
{
"key": "token",
"type": "api_key",
"label": "Authorization Token",
"required": true
}
],
"short_description": "Gain the visibility and continuous threat detection needed to secure your public cloud, private network, and hybrid environments.",
"title": "Secure Cloud Analytics",
"external_references": [
{
"link": "https://info.securexanalytics.com/SecureX-Trial-Request.html",
"label": "Free Trial"
},
{
"link": "https://www.cisco.com/c/en/us/products/security/stealthwatch-cloud/index.html",
"label": "Product Information"
},
{
"link": "https://www.cisco.com/c/dam/r/ctp/docs/privacydatasheet/security/cisco-stealthwatch-cloud-privacy-data-sheet.pdf",
"label": "Privacy Policy"
}
],
"updated_at": "2022-02-18T08:55:49.295Z",
"id": "b3874a82-1967-4f9c-a42a-47f1d61ab835",
"record": "relay-module.module/RelayModule",
"user_id": "dcffe020-1c6a-4d78-ba09-f21674a59c9c",
"client_id": "iroh-ui",
"default_name": "Secure Cloud Analytics",
"flags": [
"default"
],
"enabled": true,
"visibility": "global",
"created_at": "2020-05-15T17:38:39.788Z",
"former_title": "Stealthwatch Cloud"
}
#+end_src
EU
#+begin_src js
{
"description": "Cisco Secure Cloud Analytics (formerly Stealthwatch Cloud) improves security and incident response across the distributed network, from the private network and branch office to the public cloud. This solution addresses the need for digital businesses to quickly identify threats posed by their network devices and cloud resources, and to do so with minimal management, oversight, and security manpower.\n\nThe network is evolving. IT resources are frequently being moved into the cloud. At the same time, the number of connected devices on the private network is increasing dramatically. Security personnel are struggling just to know what entities are operating in their environment, let alone whether they pose a threat to the organization.\n\nSecure Cloud Analytics addresses this problem by providing comprehensive visibility and high-precision alerts with low noise, without the use of agents. Organizations can accurately detect threats in real time, regardless of whether an attack is taking place on the network, in the cloud, or across both environments. Secure Cloud Analytics is a cloud-based, Software-as-a-Service (SaaS)-delivered solution. It detects ransomware and other malware, data exfiltration, network vulnerabilities, and role changes that indicate compromise.\n\nAlso, developer teams are continuously adopting new and more dynamic compute environments like serverless and containers such as AWS Lambda and Kubernetes. Secure Cloud Analytics provides visibility into these environments as well, so that organizations dont have to compromise on security on their path to digital transformation.",
"properties": "Y+2BcDiVdoyWy7JxQwcOXuCG+S/JH98ncFxmwhz27utYxlhrSNQIHGTGGifUZx4Yw2GQe5oy2051VjsrcTrXVCmXAEVpU7NVqLwjmgT01zoDkE1o2lO3bMQbLTZLkNnUKAnaef/4UFqlcorJ0CGfhQPvWZG6OnAPx5PLzbS0TjsRfSGpVSRPeW+aANy+CEXul1l6FKzHohgTelMZuYNGYncHEa+eqtpSVvFl5HITj7rx7NMPWWeRaqN3Ljnbs3l26picBEvRfPzXeAT26gh0gdieWYtB2xnUU8gFUx4MNcqyMVNwGYbtLQ150uQYbOxuoiVZ41ujCWgt0Eksa/g0MkLg+QC5QBHgquwpVdMDDSE=",
"capabilities": [
{
"id": "health",
"description": "Healthcheck"
},
{
"id": "deliberate",
"description": "Deliberation"
},
{
"id": "observe",
"description": "Enrichments"
},
{
"id": "refer",
"description": "Reference links"
},
{
"id": "tiles",
"description": "Dashboard Tiles"
}
],
"app_link_meta": {
"url": "https://portal-eu.obsrvbl.com/auth/?next=%2Fv2%2F%23%2Fsettings%2Fintegrations%2Fsecurex",
"meta": {
"x_okta_bookmark_id": "0oa1idwgt8itDu9jQ357"
},
"title": "Stealthwatch Cloud (EU)"
},
"tips": "If the Secure Cloud Analytics (formerly Stealthwatch Cloud) integration module displays a **Bidirectional** icon on the module panel, it indicates that the integration was enabled in Secure Cloud Analytics or SecureX. \n\nFor information on the Secure Cloud Analytics integration with SecureX, see [Secure Cloud Analytics SecureX integration Guide](https://www.cisco.com/c/dam/en/us/td/docs/security/stealthwatch/cloud/SecureX/SecureX_Integration_Guide_DV_2_0.pdf).",
"logo": "data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM0LjEgMzIuMiI+PHBhdGggZmlsbD0iIzI3NGJhMCIgZD0iTTAgMGgzNC4xdjMyLjE2SDB6Ii8+PHBhdGggZD0iTTIyLjcgMTYuOGEzIDMgMCAwMC0zLTNoLS4xYTQuMyA0LjMgMCAwMC04LjEgMS41IDIuMyAyLjMgMCAwMC0yLjYgMS44LjkuOSAwIDAwLS4xLjUgMi4yIDIuMiAwIDAwMi40IDIuMkgyMGEzIDMgMCAwMDIuNy0zeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yMC4zIDhhOC43IDguNyAwIDAwLTUuOC0yLjIgMTEuNyAxMS43IDAgMDAtNS4xIDEuNk0xMC4xIDIzLjZoMTMuM3M1LjctLjcgNS43LTYuM2E2LjUgNi41IDAgMDAtMi45LTUuNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPjxjaXJjbGUgY3g9IjIyLjciIGN5PSIxMC44IiByPSIxLjciIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI2LjMiIGN5PSIyMy42IiByPSIxLjgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI4IiBjeT0iOC43IiByPSIxLjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+PC9zdmc+",
"org_id": "99c5cf95-7788-4ce1-906f-86811aa57752",
"configuration_spec": [
{
"key": "token",
"type": "api_key",
"label": "Authorization Token",
"required": true
}
],
"short_description": "Gain the visibility and continuous threat detection needed to secure your public cloud, private network, and hybrid environments.",
"title": "Secure Cloud Analytics",
"external_references": [
{
"link": "https://info.securexanalytics.com/SecureX-Trial-Request.html",
"label": "Free Trial"
},
{
"link": "https://www.cisco.com/c/en/us/products/security/stealthwatch-cloud/index.html",
"label": "Product Information"
},
{
"link": "https://www.cisco.com/c/dam/r/ctp/docs/privacydatasheet/security/cisco-stealthwatch-cloud-privacy-data-sheet.pdf",
"label": "Privacy Policy"
}
],
"updated_at": "2022-02-18T09:00:11.280Z",
"id": "7739968f-4259-49c2-8c14-21e569a11d1c",
"record": "relay-module.module/RelayModule",
"user_id": "be72933d-8e87-4430-8b33-870e3db35bce",
"client_id": "iroh-ui",
"default_name": "Secure Cloud Analytics",
"flags": [
"default"
],
"enabled": true,
"visibility": "global",
"created_at": "2020-05-15T17:44:34.285Z",
"former_title": "Stealthwatch Cloud"
}
#+end_src
** 2022-W08
*** 2022-02-22 Tuesday
**** CANCELED SXO Meeting :work:meeting:
:LOGBOOK:
CLOCK: [2022-02- Tue 18:00]--[2022-02-22 Tue 18:02] => 0:02
:END:
[2022-02-22 Tue 18:00]
- ref ::
*** 2022-02-23 Wednesday
**** MEETING SXO Meeting :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-23 Wed 19:39]
:END:
[2022-02-23 Wed 19:39]
- ref ::
1. Tenant Provisioning
2. Create CTR Client
**** MEETING Ribbon SCI :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-23 Wed 19:23]--[2022-02-23 Wed 19:39] => 0:16
:END:
[2022-02-23 Wed 19:23]
- ref ::
- client-6ff982a1-cc5a-4121-8f8c-b0f5b08c8860
- client-c4d3554b-452e-49e2-b76e-41458610adc1
Patched with availability everyone.
**** MEETING API Design :work:meeting:
:LOGBOOK:
CLOCK: [2022-02-23 Wed 17:33]--[2022-02-23 Wed 19:23] => 1:50
:END:
[2022-02-23 Wed 17:33]
Two subjects
- Data Deletion
- Logs / debugging
*****
**** IN-PROGRESS IDB Decomissioning :work:
:LOGBOOK:
CLOCK: [2022-02-23 Wed 14:48]--[2022-02-23 Wed 15:18] => 0:30
:END:
[2022-02-23 Wed 14:48]
Found in tenzin repository very old commit (ce43ddb)
The configs details are in: =saltstack/pillar/*/iroh/init.sls=
***** INT
#+begin_src yaml
idps:
amp:
kind: saml
authorize_uri: https://auth.amp.cisco.com/auth/session/new
cert_path: /srv/iroh/resources/cert/amp_idp.cert
threatgrid:
kind: oidc
authorize_uri: https://int.threatgrid.com/oauth2/authorize
token_uri: https://int.threatgrid.com/api/v3/oauth/token
org_id_key: :tg_org
client_id: 884a152d-e2a2-4552-b56b-7618274ab988
client_secret: |
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1
hQIMA84RaiSk55caAQ/+NXy974NKjfdujj01jODDqqIIp4QXdGH8pC4LcHDW9rwx
EE1XELuP+7eZ1+UA2+qhPwcT+kOCEJteXGJt00FoL4bjfOTHqV6Zjl+KySGGYsHw
LQRQhI+odKpakGmtnMD7Zjf14phfUTHKs4Zs6EjLP0rm5LMw+eo3PhQ4zNGfoF1G
W3S7J+dmjNc0ZEsgOStxAmQ5SZM6nIoOo8qJY5p8LujbAzPTGq1hKYVjxM2FnuoQ
SkoIA77z9twJpFMqr3TgOPI/IZqu8rAAVEeAZHRP0W4j4Wk/PetmG4mJrJT5hFqV
Z6iOChTL8t2lbSd/QkwoxD2cZzZlY4c3Pe2JqtdfffhaF7LXcOtHm8R2cv2kjEm3
gdAw2EZucYZa2n78vxofXrLWayltFTzM9hmn616Yy3UtExOHv/ydj0xhLGEx+Woc
X0LS0La8ElNOMnp99x+9y1xmShlZMsRNOm5kjTFMtLry4K3QKTZLAzVa2835RV3e
Tb6T2tdkK5fIVpIQpv3E6meAmkFHWHl3rZw4qdPaPbDWctPDt8TxyX4LQ555ED2N
roCuBSWsu7Efz8s+oUgK3GleSj37O7kIyJq+GxOayyepU8D6WJqqh6TbeFQlyUBJ
YYrFxd+wUAEdeq4LoTxGrZp4jDopg9wVVdEmlcltJ79GbpOGf9uo0nyrlVRXDoHS
WwFPEYM+r1FWnWhrH+zbE3LwvVBMi8KluExN8KcilTnzhISrhR40J/HvEBXMM2DV
7TnS+FyxWHu0vBzIg2y7DdGh4SYw7ru35wH9V8x6L449ffD6diMaXLGoBAU=
=0OIa
-----END PGP MESSAGE-----
#+end_src
***** TEST
#+begin_src yaml
idps:
amp:
kind: saml
authorize_uri: https://auth.amp.cisco.com/auth/session/new
cert_path: /srv/iroh/resources/cert/amp_idp.cert
threatgrid:
kind: oidc
authorize_uri: https://test.threatgrid.com/oauth2/authorize
token_uri: https://test.threatgrid.com/api/v3/oauth/token
org_id_key: :tg_org
client_id: d1f5cbd2-610c-44b9-b5dd-92ecc7ef7f24
client_secret: |
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1
hQIMA84RaiSk55caAQ//czS1KlsdqexkdpO7KizewEY5Wy2rBIT74FYJaJRPOh2k
YDTs1pxbu4SY/PWmyNVh97UAGVjwMAOEJvMaZt2fOA0EqHVwaPqe5xV1pS9eIAIf
JfmQyAzaCADaFvLpVwF7yuzJzUhrPq1JBbwssXh0YLnEOfEandspL6Tw2JunK67A
9GfPiSRNPr90wflsOAObuxRqtThw6usQKDVh8r5lSTpfLN/3gyDX/BNwYOBIgY/D
TvTtX9zYAKwb9lyvvAjVPueHwLBwwLJ0J2C4soKKM/xyqRfllFzWHAuF8dKAmsNO
t1HGcSmHh1mT8hLnZf453PHbItVc8gvyeEcFAtWmGI3hB8JGIFLrzSoO3Vu/opRy
5xovtKDbAcB6xjvkix6s4ppim2lunPa4uzni1XcXUZ5iF424SSSooWmySmFuYniS
pr5t2sulSWr4ptR5e/jWLr6hx6rkLntvJHf99DkK2MeAe35+lkvnKu4algH0Bul6
r3eXvtSZl+Ejwy8fLGv3Zkj12xL3eIZ5PIihAqmJ8cPcY8mZfoz7BjpfXLL0ykuY
HPeAU2YzG9+1TiZk/hADsb6B558nj9DjFbi5P1CyCCWvIAdN+lq3BWaU8VsphC5A
w8L7DGUSlVQXuvHzvuFktYG5z/2FL4Oil924/jiTMiyglcq0qUqTIaR6F/5UdMfS
WwFQJ7Mco7nkak9JMzCos+h/l4IpeM0nSK/5ANzXeNRq5TzGXCYsNZhRtH2JNa1d
Et1dSAy0iR+v5wyozjppTC/o6vOkIVhvYoiDaT9ZVx4/t5552/qGRIdIH8c=
=RJtM
-----END PGP MESSAGE-----
#+end_src
***** PROD
#+begin_src yaml
idps:
amp:
kind: saml
authorize_uri: https://auth.amp.cisco.com/auth/session/new
cert_path: /srv/iroh/resources/cert/amp_idp.cert
threatgrid:
kind: oidc
authorize_uri: https://panacea.threatgrid.com/oauth2/authorize
token_uri: https://panacea.threatgrid.com/api/v3/oauth/token
org_id_key: :tg_org
client_id: 4fe0068b-eb2a-4918-871f-dd9c9592990e
client_secret: |
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1
hQIMA84RaiSk55caAQ/+JHsdFHlM0yxwYJTMgzCPp0wOJozy1/lB4I3pdk/mQlA3
KX0D9VahiZatTG+N0z2dx+rDs/T3XJIShwJsDbO0kBN18kOSEIU5eFZGTj1u7ev1
vPAq+ekmxfRnYsQ0CRdp45uM8jhrO19zbJVu7oL1XaLGFYJxzt6BIkCExSnEBA/i
T3nNxa0CNw7sYUjw0kxDkCwl2RpdmMJ6QWNuqKqRc5olzz0mnu0ioCMXnPu1w4oD
Sck0pZQYacnr8/bCWsLR7kLA9GFHcApT1DoLDhOr8PB6/blpCd+t+nHflUx5SCgn
rqeeA8PaFCZ7wBRa8WuVZXmSll8/siSlTUyBxDKq9y5EjhJBFVRgCRjd4WzwGaMn
F3soOMKKpM1Dj1u3+PkgIprV6nWSUvEOrYxtUEWfBeVdD7Kng57AG+Xz8k1e9ium
s+ITYdo5oG5O4ks5bXuO9ILpt92GLoKC/TAbo2doxiGk63rBxu9HsUTMZVC96FzE
PkWXQxD4LDXlFTqIlCQmjUq6Q6K71t0+pvAS0x4dKHhvuJdAJEHrZe6nnLtiBcjA
TcYoFGHqx32mqbvq7LThoRYFVXvO2tMDoRrDjYKRKNpmTfHNDjhGf+TOhHiw7Rnf
TAJLWCyHrpupu47NPtqAN1fnY9m6yjNGRe6tzgG78vsdCSR6QdAHILwMjUR1QULS
WwHmb/heYDgwuhzbcwDAQuiotWA++xYzAy52cXNuunkC+e/4qob7iIN/ifcPDH3z
rEmF6TVvvE0tzW81X7tdyaOf3Q8rmwMSZzhK7HUhgWIdDhf3Dl6FrrdFoi0=
=srU6
-----END PGP MESSAGE-----
#+end_src

102
notes/high_iq_captcha.org Normal file
View file

@ -0,0 +1,102 @@
:PROPERTIES:
:ID: b6402aa6-3315-4317-82a5-367af38f0ead
:END:
#+TITLE: High IQ captcha
#+Author: Yann Esposito
#+Date: [2022-02-21]
- tags ::
- source :: https://news.ycombinator.com/item?id=30414374
I just recently read into HN a new notion.
High IQ Captcha. Captcha designated to prevent low IQ people to access
some resources, but are easy to get from higher level IQ.
We could extend this notion to use community filtering captchas.
And I think this looks like a great idea.
It will not make it impossible to retrieve some resources, but the price
to pay will be different depending on your community.
For some, it will be almost impossible to reach.
Maybe it could be the great system to prevent eternal September in social
networks.
Another interesting idea will be to hide a few gems into my articles behind
such kind of system.
Like having a small encrypted text which would only be revealed if the
reader want to put the extra effort in finding the result.
Let's try to find a few different exercises for the reader.
** Visible only via the HTML source:
#+begin_src html
<div style="display:none>
The hidden text is here.
I expect it not to be difficult to find.
</div>
#+end_src
And perhaps we could generate a specific `css` with only the good answer:
#+begin_src html
<html>
<head>
<style>
#hidden {
display: none;
border: solid 3px;
text-align: center;
font-size: large;
padding: 2em;
}
p + .r1t:checked + .r1f
+ p + .r2t:checked + .r2f
+ p + .r3t:checked + .r3f
+ div#hidden
, p + .r1t + .r1f:checked
+ p + .r2t + .r2f:checked
+ p + .r3t + .r3f:checked
+ div#hidden
{
display: block;
}
</style>
</head>
<body>
<form>
<p> What is ... your name? </p>
<input type="radio" name="response1" class="r1t">Galaad</inpu>
<input type="radio" name="response1" class="r1f">Arthur</input>
<p> What is ... your quest? </p>
<input type="radio" name="response2" class="r2t">to seek the holy grail!</inpu>
<input type="radio" name="response2" class="r2f">to seek the holy grail!</input>
<p> What is ... your favorite color? </p>
<input type="radio" name="response3" class="r3t">red</inpu>
<input type="radio" name="response3" class="r3f">blue</input>
<div id="hidden">
This is the CSS hidden message and it works.
</div>
</form>
</body>
</html>
#+end_src
Then ask users to use the inspector to retrieve the data.
Then potentially, hide the data into some comment, or extra meta difficult
to retrieve and ask them to look at the HTML source.
** Encrypted
A better idea is to use random long bits of data, with XOR.
And answering all good answers will provide the correct XOR key.
Can we make that with a static website without js?
Hmm.... I don't think so ;)
Secret being: ~MAIN_URL/secret~ with secret being the letters/numbers of the answers.
I think we could do that with a ~form~ with some sort of backend dynamic program.
Anyway it was a fun though experiement.

View file

@ -47,5 +47,6 @@ Les grand faits marquants.
- Approche pour vendre l'appartement pour acheter une maison
- On accueille Pô pour être un chien d'assistance pour Anna
- Nous gardons Dorien pendant les vacances
- Aujourd'hui le fils de Guillaume et Émilie est né. Il s'appelle Baptiste.
Je pense que j'oublie beaucoup d'autres évênements.
Je pense que j'oublie beaucoup d'autres évènements.

View file

@ -1,11 +0,0 @@
#+TITLE: Starting with org roam
#+AUTHOR: Yann Esposito
- tags :: [[file:20200428130640-learning.org][learning]] [[file:20200428130658-org_mode.org][org-mode]] [[file:20200428130708-roam.org][roam]]
- source :: [[https://blog.jethro.dev/posts/how_to_take_smart_notes_org/][How To Take Smart Notes With Org-mode (14 Feb 2020)]]
The workflow looks like.
1. Toggle show org-roam backlinks (SPC orr)
2. org-roam-find-file (SPC orf)
3. org-roam-insert (SPC ori)

View file

@ -1,19 +0,0 @@
#+TITLE: Test org-roam-templates
#+Author: Yann Esposito
tags :: [[file:20200428130708-roam.org][roam]] [[file:20200428130658-org_mode.org][org-mode]] [[file:2020-06-05--09-01-34Z--org_roam.org][org-roam]] [[file:2020-06-05--09-02-50Z--zettelkasten.org][zettelkasten]]
https://github.com/org-roam/org-roam/blob/master/org-roam-capture.el#L82
I've been wondering how to make =org-roam= use the templates.
Just needed to do that.
#+begin_src elisp
(setq org-roam-capture-templates
'(("d" "default" plain (function org-roam--capture-get-point)
"%?"
:file-name "%(format-time-string \"%Y-%m-%d--%H-%M-%SZ--${slug}\" (current-time) t)"
:head "#+TITLE: ${title}\n#+Author: Yann Esposito\n\ntags ::\nsource ::\n"
:unnarrowed t)))
#+end_src

View file

@ -1,6 +0,0 @@
#+TITLE: sens-de-vie
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: AI
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: AGI
#+Author: Yann Esposito
tags :: [[file:2020-05-12--06-05-57Z--ai.org][AI]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: emacs
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: tidal
#+Author: Yann Esposito
tags ::
source :: https://tidalcycles.org/index.php/Tutorial

View file

@ -1,20 +0,0 @@
#+TITLE: Getting compound interest on your thoughts with Conor White-Sullivan
#+Author: Yann Esposito
tags :: [[file:20200428130708-roam.org][roam]] [[file:2020-05-16--15-08-05Z--discoverability.org][discoverability]]
source :: https://nesslabs.com/conor-white-sullivan-interview?utm_source=rss&utm_medium=rss&utm_campaign=conor-white-sullivan-interview
Interresting read about how to use roam.
Kind of a post-modernist view about wikipedia.
No single source of truth.
More like twitter.
Interresting usages:
- kitchen recipes
- memory card
Important point /discoverability/ of data.

View file

@ -1,6 +0,0 @@
#+TITLE: discoverability
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,67 +0,0 @@
#+TITLE: Impots 2019
#+Author: Yann Esposito
tags :: [[file:2020-05-17--09-11-34Z--impots.org][impots]] [[file:2020-05-17--09-25-08Z--2019.org][2019]] [[file:2020-05-17--09-40-31Z--appartements.org][appartements]] [[file:2020-05-17--11-34-48Z--actions.org][actions]]
source :: https://www.impots.gouv.fr/portail/
* Déclaration
- numero fiscal: 1208764994115
** Revenus
- Y: 94853 (retenu 14673€)
- K: 15677 (retenu 68€)
** Foncier 2044
Etape 3; Selectionner:
- Revenus: Micro foncier
- Charges: Investissement locatif (...,Duflot,...)
C.f.:
[[./assets/declaration-2019-helper.png]]
- [[file:assets/esposito.pdf][Revenus Fonciers 2019]]
- [227]: Taxe Foncière (612) - Taxe ordure ménagères (122) = 490
*** DUFLOT (7FK)
- 3060€ dans la case 7FK (investissement Duflot 2014)
** DONE Dons [7UD] - 260
CLOSED: [2020-06-01 Mon 15:58]
| assoc | don |
|-------------------------------+-----|
| [[file:assets/Unicef_2019.HEIC][Unicef 2019]] | 140 |
| [[file:assets/Medecins_sans_frontieres_2019.pdf][Medecins Sans Frontieres 2019]] | 120 |
|-------------------------------+-----|
*** DONE [6RS] AXA Declaration Epargne Retraite: 0970808057
CLOSED: [2020-06-01 Mon 15:58] SCHEDULED: <2020-05-18 Mon>
- Case 6RS
- Via l'outil ESS Access *EN FRANCAIS*
#+DOWNLOADED: file:///Users/yaesposi/Library/Mobile%20Documents/iCloud~com~appsonthemove~beorg/Documents/org/journal/assets/impots2019/article-83-PreRetraite.pdf @ 2020-06-01 15:57:56
[[file:assets/Déclaration/2020-06-01_15-57-56_article-83-PreRetraite.pdf][article-83-pre-retraite]]
- AXA reinit mot de passe 0970808057
- https://ere.axa.fr
- Identifiant Internet: 70475738
- Votre entreprise : CISCO SYSTEMS France
- Votre numéro d'adhésion : 2722501130200/00888
- email: yann.esposito@gmail.com
*** DONE Actions ESPP/RSU
CLOSED: [2020-06-01 Mon 15:58] SCHEDULED: <2020-05-18 Mon>
#+DOWNLOADED: file:///Users/yaesposi/Library/Mobile%20Documents/iCloud~com~appsonthemove~beorg/Documents/org/journal/assets/2020-05-19_13-37-48_cisco_systems_france__-_pre__sentation_rsu-so_-_v.13.05.19.pdf @ 2020-05-30 10:32:44
[[file:assets/Déclaration/2020-05-30_10-32-44_2020-05-19_13-37-48_cisco_systems_france__-_pre__sentation_rsu-so_-_v.13.05.19.pdf][Presentation Actions Cisco]]

View file

@ -1,6 +0,0 @@
#+TITLE: impots
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,38 +0,0 @@
#+TITLE: Tidalcycles Resources
#+Author: Yann Esposito
tags :: [[file:2020-05-15--06-12-22Z--tidal.org][tidal]]
source ::
* MIDI
Video: [[file:assets/Tidal Acid Jam (MIDI test)--fpSKvxOA0k.mkv][Tidal Acid Jam (MIDI test)]] ; https://www.youtube.com/watch?v=-fpSKvxOA0k
Init MIDI
- https://www.youtube.com/watch?v=cdB0dBGiar4
- https://tidalcycles.org/index.php/SuperDirt_MIDI_Tutorial
* Chiptune like
https://www.youtube.com/watch?v=MbCNdB3hfpc&feature=youtu.be
#+begin_src tidal
import qualified Sound.Tidal.Chords as Chords
let mute = const silence
do
let arp = "[0 0 2 4]*2"
pat = "<0 2 5 4>"
oct = -2
d1 $ fast 2 $ stack [
n (toScale Chords.major (arp + pat) + 2*oct) # s "superchip" # release 0.075,
n ("0*8" + (slow 4 pat) - 14) # s "superchip" # release 0.3 # cut 2
] # orbit 1 # room 0.15 # size 0.93 # gain 0.9
d2 $ fast 2 $ stack [
"bd:10(3,8)",
s "~ sn" # n 3,
s "[~ cp:1]*2"
] # orbit 2 # room 0.05 # size 0.2
#+end_src

View file

@ -1,6 +0,0 @@
#+TITLE: 2019
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: appartements
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: actions
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: fp
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,35 +0,0 @@
#+TITLE: Marketin For Engineers
#+Author: Yann Esposito
tags :: [[file:2020-05-24--08-32-15Z--startup.org][startup]] [[file:2020-05-24--08-32-33Z--marketing.org][marketing]]
source :: https://github.com/LisaDziuba/Marketing-for-Engineers
* Plan
- [[https://github.com/LisaDziuba/Marketing-for-Engineers/blob/master/README.md#-user-research][User Research]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers/blob/master/README.md#mag_right-market-research][Market Research]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#triumph-marketing-without-budget][Marketing without Budget]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#-content-marketing][Content Marketing]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#sunglasses-personal-blog][Personal blog]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#green_book-medium-marketing][Medium Marketing]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#mega-promotion-of-your-content][Promotion of your content]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#influencer-marketing][Influencer Marketing]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#cat-marketing-for-product-hunt-launch][Marketing for Product Hunt Launch]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#-social-media-marketing][Social Media Marketing]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#-twitter][Twitter]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#facebook][Facebook]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#reddit][Reddit]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#-linkedin][LinkedIn]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#quora][Quora]]
- Instagram (coming soon)
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#love_letter-lifecycle-email-marketing][Lifecycle Email Marketing]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#fearful-cold-email-marketing][Cold Emails Marketing]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#bowtie-building-partnerships][Building Partnerships]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#%EF%B8%8F-psychology-in-marketing][Psychology in Marketing]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers/blob/master/README.md#moneybag-business-model-and-pricing][Business Model and Pricing]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers/blob/master/README.md#-marketing-automation][Marketing Automation]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers/blob/master/README.md#moving-to-saas-model][Moving to SaaS model]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#other-useful-materials][Other Useful Materials]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#-authors][Authors]]
- [[https://github.com/LisaDziuba/Marketing-for-Engineers#future-plans][Future Plans]]

View file

@ -1,6 +0,0 @@
#+TITLE: startup
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: marketing
#+Author: Yann Esposito
tags :: [[file:2020-05-24--08-32-15Z--startup.org][startup]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: politic
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: shake
#+Author: Yann Esposito
tags :: [[file:2020-05-25--19-54-25Z--build_system.org][build-system]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: build-system
#+Author: Yann Esposito
tags :: [[file:2020-05-25--19-54-12Z--shake.org][shake]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: idris
#+Author: Yann Esposito
tags :: [[file:2020-05-26--06-13-41Z--functional_programming.org][functional programming]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: functional programming
#+Author: Yann Esposito
tags :: [[file:2020-05-26--06-13-13Z--idris.org][idris]] [[file:2020-05-26--06-16-14Z--clojure.org][clojure]] [[file:2020-05-26--06-19-53Z--haskell.org][haskell]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: clojure
#+Author: Yann Esposito
tags :: [[file:2020-05-26--06-13-41Z--functional_programming.org][functional programming]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: haskell
#+Author: Yann Esposito
tags :: [[file:2020-05-26--06-13-41Z--functional_programming.org][functional programming]]
source ::

View file

@ -1,12 +0,0 @@
#+TITLE: Idiomatic Clojure: Mixing Side Effects and Iteration
#+Author: Yann Esposito
tags :: [[file:2020-05-26--06-16-14Z--clojure.org][clojure]]
source :: [[https://bsless.github.io/side-effects/][Idiomatic Clojure: Mixing Side Effects and Iteration]]
Main lessons:
- Never use ~doall~
- use ~mapv~ or ~(into [] (map f) coll)~ if you want to retrieve the elements
- use ~(run! f coll)~ or ~doseq~

View file

@ -1,7 +0,0 @@
#+TITLE: Evolving non-determinism
#+Author: Yann Esposito
tags :: [[file:2020-05-26--06-19-53Z--haskell.org][haskell]] [[file:2020-05-26--06-13-41Z--functional_programming.org][functional programming]]
source :: https://oleg.fi/gists/posts/2020-05-26-evolving-non-determinism.html
A nice article about evolving algorithms.

View file

@ -1,10 +0,0 @@
#+TITLE: org-clone-subtree-with-time-shift
#+Author: Yann Esposito
tags :: [[file:20200428130658-org_mode.org][org-mode]]
source :: https://karl-voit.at/2017/01/15/org-clone-subtree-with-time-shift/
Main lesson, use ~org-clone-subtree-with-time-shift~.
This will ask number of copies and the recurring date.
Just did that for drugs I need to take for only 6 days.

View file

@ -1,14 +0,0 @@
#+TITLE: mail
#+Author: Yann Esposito
tags ::
source ::
Use gmi (gmailieer).
#+begin_src
cd ~/mail
mkdir yann.esposito.gmail
gmi pull
gmi sync
#+end_src

View file

@ -1,30 +0,0 @@
#+TITLE: Haskell criticisms
#+Author: Yann Esposito
tags :: [[file:2020-05-26--06-19-53Z--haskell.org][haskell]]
source :: https://news.ycombinator.com/item?id=23364485
We dance around this issue in the comments to every Haskell story, but the
reason Haskell is hard to market is that it's bad.
It's a research language being shoehorned into production by a few people
who really love it.
Some details of this have been given in this thread; let me suggest the
following threads for more:
1) https://www.reddit.com/r/ocaml/comments/3ifwe9/what_are_ocamlers_critiques_of_haskell/cugohyn/
2) https://www.reddit.com/r/ocaml/comments/e7g4nb/haskell_vs_ocaml/fa4bnsw/
Yes, the Haskell community hates that guy and considers him a troll.
But he does functional programming professionally as part of a private
consultancy and wrote a book on OCaml.
If anyone's equipped to understand what's wrong with Haskell, it's him.
Haskell has had 30 years to get its act together.
Any benefits it has are drowned out by a sea of buggy tooling and
accidental complexity (monads, etc.).
Ask yourself this: if there are literally billions of dollars in industry
riding on writing efficient and correct software, and Haskell is such an
obvious productivity win, why does it have a market share that rounds to
zero?
Time to move on.

View file

@ -1,14 +0,0 @@
#+TITLE: Krystelle idées cadeaux
#+Author: Yann Esposito
#+Date: [2020-05-31 Sun]
tags :: [[file:2020-05-31--15-48-11Z--family.org][family]]
source ::
Juste un endroit pour centraliser les idées potentielles.
Les thèmes:
- produits naturel
- zen
- jardinage, plantes
- thé

View file

@ -1,6 +0,0 @@
#+TITLE: family
#+Author: Yann Esposito
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: nix
#+Author: Yann Esposito
#+Date: [2020-06-02]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: geek
#+Author: Yann Esposito
#+Date: [2020-06-02]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: testing
#+Author: Yann Esposito
#+Date: [2020-06-03]
tags :: [[file:2020-06-03--19-49-30Z--programming.org][programming]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: programming
#+Author: Yann Esposito
#+Date: [2020-06-03]
tags ::
source ::

View file

@ -1,67 +0,0 @@
#+TITLE: Zettelkasten -- How One German Scholar Was So Freakishly Productive
#+Author: Yann Esposito
#+Date: [2020-06-05]
tags :: [[file:20200428130658-org_mode.org][org-mode]] [[file:2020-06-05--08-52-23Z--note_taking.org][note taking]] [[file:2020-06-05--09-01-34Z--org_roam.org][org-roam]] [[file:2020-06-05--09-02-50Z--zettelkasten.org][zettelkasten]]
source :: https://writingcooperative.com/zettelkasten-how-one-german-scholar-was-so-freakishly-productive-997e4e0ca125
* The Zettelkasten principles
1. *The principle of atomicity*: The term was coined by Christian Tietze.
It means that each note should contain one idea and one idea only.
This makes it possible to link ideas with a laser focus.
2. *The principle of autonomy*: Each note should be autonomous, meaning it
should be self-contained and comprehensible on its own.
This allows notes to be moved, processed, separated, and concatenated
independently of its neighbors.
It also ensures that notes remain useful even if the original source of
information disappears.
3. *Always link your notes*: Whenever you add a note, make sure to link it to
already existing notes.
Avoid notes that are disconnected from other notes.
As Luhmann himself put it, “each note is just an element that derives its
quality from the network of links in the system.
A note that is not connected to the network will be lost, will be forgotten
by the Zettelkasten” (original in German).
4. *Explain why youre linking notes*: Whenever you are connecting two notes by
a link, make sure to briefly explain why you are linking them.
Otherwise, years down the road when you revisit your notes, you may have no
idea why you connected them.
5. *Use your own words*: Dont copy and paste.
If you come across an interesting idea and want to add it to your
Zettelkasten, you must express that idea with your own words, in a way that
youll be sure to understand years later.
Dont turn your Zettelkasten into a dump of copy-and-pasted information.
6. *Keep references*: Always add references to your notes so that you know where
you got an idea from.
This prevents plagiarism and makes it easy for you to revisit the original
source later on.
7. *Add your own thoughts to the Zettelkasten*: If you have thoughts of your
own, add them to the Zettelkasten as notes while keeping in mind the
principle of atomicity, autonomy, and the need for linking.
8. *Dont worry about structure*: Dont worry about putting notes in neat
folders or into unique preconceived categories.
As Schmidt put it, in a Zettelkasten “there are no privileged positions”
and “there is no top and no bottom.”
The organization develops organically.
9. *Add connection notes*: As you begin to see connections among seemingly
random notes, create connection notes, that is, specific notes whose
purpose is to link together other notes and explain their relationship.
10. *Add outline notes*: As ideas begin to coalesce into themes, create outline
notes.
An outline note is a note that simply contains a sequence of links to other
notes, putting those other notes into a particular order to create a story,
narrative, or argument.
11. *Never delete*: Dont delete old notes.
Instead, link to new notes that explain whats wrong with the old ones.
In that way, your Zettelkasten will reflect how your thinking has evolved
over time, which will prevent hindsight bias.
Moreover, if you dont delete, you might revisit old ideas that may turn
out to be correct after all.
12. *Add notes without fear*: You can never have too much information in your
Zettelkasten.
At worst, youll add notes that wont be of immediate use.
But adding more notes will never break your Zettelkasten or interfere with
its proper operation.
Remember, Luhmann had 90,000 notes in his Zettelkasten!

View file

@ -1,6 +0,0 @@
#+TITLE: note taking
#+Author: Yann Esposito
#+Date: [2020-06-05]
tags :: [[file:20200428130658-org_mode.org][org-mode]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: org-roam
#+Author: Yann Esposito
#+Date: [2020-06-05]
tags :: [[file:20200428130658-org_mode.org][org-mode]] [[file:2020-06-05--08-52-23Z--note_taking.org][note taking]] [[file:2020-06-05--09-02-50Z--zettelkasten.org][zettelkasten]] [[file:20200428130708-roam.org][roam]]
source :: https://github.com/org-roam/org-roam

View file

@ -1,6 +0,0 @@
#+TITLE: zettelkasten
#+Author: Yann Esposito
#+Date: [2020-06-05]
tags :: [[file:2020-06-05--08-52-23Z--note_taking.org][note taking]]
source :: https://writingcooperative.com/zettelkasten-how-one-german-scholar-was-so-freakishly-productive-997e4e0ca125

View file

@ -1,6 +0,0 @@
#+TITLE: opinion
#+Author: Yann Esposito
#+Date: [2020-06-11]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: social-media
#+Author: Yann Esposito
#+Date: [2020-06-11]
tags :: [[file:2020-06-11--10-03-12Z--internet.org][internet]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: internet
#+Author: Yann Esposito
#+Date: [2020-06-11]
tags ::
source ::

View file

@ -1,43 +0,0 @@
#+TITLE: Why no defmethod?
#+Author: Yann Esposito
#+Date: [2020-06-12]
tags :: [[file:2020-05-26--06-16-14Z--clojure.org][clojure]] [[file:2020-05-26--06-13-41Z--functional_programming.org][functional programming]]
source ::
The main reason is that it is harder to reason about in our environment.
~defmethod~ is exactly like a ~cond~ or ~case~ but potentially distributed
between multiple files.
So:
#+begin_src clojure
(ns foo.bar
(:require [baz]))
...300 lines of code...
(foo :x) => "NICE X"
#+end_src
And after a few weeks someone add a require:
#+begin_src clojure
(ns foo.bar
(:require [[baz]
[pownd.core]]))
...300 lines of code...
(foo :x) => "PWND!!!!"
#+end_src
So ~defmethod~ is harder to reason about because the logic is distributed.
And as a developer it is harder to reason statically about the code.
Still, this could totally be fine for clojure libraries doing "magic" stuff.
There is a big difference between the code aimed for a production
environment /application/ written by a team and a codebase for a /library/.
So "never use defmethod" is a way of saying that it is only allowed if you
really tried your best not to use it but this does not make sense, and you
can show why to the rest of the team.

View file

@ -1,15 +0,0 @@
#+TITLE: The performance of ghcied 0.2.0
#+Author: Yann Esposito
#+Date: [2020-06-13]
tags :: [[file:2020-05-26--06-19-53Z--haskell.org][haskell]] [[file:2020-06-13--17-25-54Z--benchmarks.org][benchmarks]]
source :: https://mpickering.github.io/ide/posts/2020-06-12-performance-of-ghcide-020.html
* Benchmarks
Benchmarks should focus on both performance and space usage to prevent
introducing space leaks.
Benchmarks made using a shake script: https://github.com/digital-asset/ghcide/pull/629
Before the benchmarks some improvement weren't obvious.

View file

@ -1,6 +0,0 @@
#+TITLE: benchmarks
#+Author: Yann Esposito
#+Date: [2020-06-13]
tags :: [[file:2020-06-03--19-49-30Z--programming.org][programming]]
source ::

View file

@ -1,10 +0,0 @@
#+TITLE: Gabriel Gonzalez - A bare-bones Twitter clone implemented with Haskell + Nix @ ZuriHac 2020
#+Author: Yann Esposito
#+Date: [2020-06-13]
tags :: [[file:2020-05-26--06-19-53Z--haskell.org][haskell]] [[file:2020-06-13--17-47-28Z--zurihac.org][zurihac]]
source :: https://www.youtube.com/watch?v=Q3qjTVcU9cg&list=PLiU7KJ5_df6aZbNfh_TUJt-6w9N3rYkTX&index=2&t=0s
Introduction by Jasper to Gabriel (dhall, etc...)
The implementaiton is here: https://github.com/Gabriel439/simple-twitter

View file

@ -1,8 +0,0 @@
#+TITLE: zurihac
#+Author: Yann Esposito
#+Date: [2020-06-13]
tags :: [[file:2020-05-26--06-19-53Z--haskell.org][haskell]] [[file:2020-05-26--06-13-41Z--functional_programming.org][functional programming]]
source :: https://zfoh.ch/zurihac2020/
- https://www.youtube.com/playlist?list=PLiU7KJ5_df6aZbNfh_TUJt-6w9N3rYkTX

View file

@ -1,10 +0,0 @@
#+TITLE: Datatype-Generic Programming - Andre Loh @Zurihac 2020
#+Author: Yann Esposito
#+Date: [2020-06-13]
tags :: [[file:2020-05-26--06-19-53Z--haskell.org][haskell]] [[file:2020-06-13--17-47-28Z--zurihac.org][zurihac]]
source :: https://www.youtube.com/watch?v=pwnrfREbhWY
Inlining Trees via subset of template haskell.
https://github.com/well-typed/gp-zurihac-2020

View file

@ -1,6 +0,0 @@
#+TITLE: philo
#+Author: Yann Esposito
#+Date: [2020-06-18]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: philo
#+Author: Yann Esposito
#+Date: [2020-06-18]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: stress
#+Author: Yann Esposito
#+Date: [2020-07-01]
tags :: [[file:2020-07-01--07-25-51Z--psychology.org][psychology]]
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: psychology
#+Author: Yann Esposito
#+Date: [2020-07-01]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: macos
#+Author: Yann Esposito
#+Date: [2020-07-02]
tags ::
source ::

View file

@ -1,8 +0,0 @@
#+TITLE: David Lynch explains Transcendantal Meditation
#+Author: Yann Esposito
#+Date: [2020-08-16]
tags :: [[file:2020-08-16--19-59-35Z--meditation.org][meditation]]
source :: https://youtu.be/Em3XplqnoF4

View file

@ -1,6 +0,0 @@
#+TITLE: meditation
#+Author: Yann Esposito
#+Date: [2020-08-16]
tags ::
source ::

View file

@ -1,141 +0,0 @@
#+TITLE: cistercien
#+Author: Yann Esposito
#+Date: [2020-08-24]
tags :: [[file:2020-08-24--20-22-44Z--histoire.org][histoire]]
source :: https://fr.wikipedia.org/wiki/Ordre_cistercien
en latin: Ordo cisterciensis
Restauration de la règle bénédictine.
- ascétisme
- rigueur liturgique
- travail comme valeur cardinale
* Naissance et expansion de l'ordre
Poussé par Bernard de Clairvaux (1090-1153).
Il est le maître spirituel des cisterciens.
Inclination pour la solitude et la méditation.
Formé au combat, il préfère devenir moine.
Persuasif et charismatique.
Il accable les autres ordres et les clercs et prélats qui succombent aux
richesses.
Il n'hésite pas de ruse, mauvaise foi ou injure pour abatre son adversaire.
Cependant il ne s'est jamais mis Rome à dos.
Il accélère les fondations de nouvelles abbayes durant sa vie.
- 762 monastères.
- 341 maisons dont 80 "filles" directes.
* Règle bénédictine
Syntèse entre exigences contraires:
- indépendance économique
- activité liturgique
- activité apostolique
- refus du monde
La règle:
- stricte observance de la règle bénédictine
- recherche de l'isolement
- pauvreté intégrale
- refus des bénéfices ecclésiastiques
- travail manuel
- autarcie
Équilibre: ascèse et goût de la culture.
Exemption de juridiction épiscopale permet de mettre deux institutions:
- visites des abbés-pères
- chapitre général annuel
Le père de l'abbaye mère descend et controle ce que fait l'abbaye fille.
Pouvoir de révoquer le responsable et de le remplacer.
Une fois par an.
* Les Abbayes
Une abbaye mère qui fait des filles.
L'abbaye envoie des moines qui vont faire une autre abbaye.
Chaque abbaye est autonome, cachée, et concentrée sur leur mission.
Les abbayes sont cachées et pas faites pour être des lieux d'accueil ou des
lieux de cultes publics.
Ce sont des lieux reclus, isolés, pour laisser les moines se concentrer sur
leur mission.
Charte de charité postérieure (leur constitution)
Cîteau reste l'autorité spirituelle gardienne de l'observance de la sainte règle.
Chaque monastère doit secours aux fondations les plus démunies.
Les abbayes mères assurant le contrôle et l'élection des abbés au sein des
abbayes filles.
Chaque abbé doit se rendre à Citeau opur le Chapitre général.
* Difficultés de l'ordre
L'ordre devient populaire et reçoit des dons.
Le dévelopement économmique est peu compatible avec la vocation initialie
de pauvreté qui a fait le succès de l'ordre.
Guerres, changements des temps, immision de la papauté.
En 1422, reforme de l'ordre pour retrouver les principes fondamentaux.
Réafirmation des exigences et de la discipline.
* Vie dans le monastère
- Silence, obéissance, frugalité
- communication non verbales, un langage par signes.
Règle du silence pour ne pas être détourné de Dieu, mais les travaux
quotidiens exigent qu'ils puissent communiquer.
** Groupes
- les moines (frères clercs) qui savent lire le latin.
- les moins "laïcs", qui ne savent pas lire
- les convers, ne font pas vœux religieux, portent la barbe (travailleurs)
- les novices
- les infirmes (un des 4 groupes, mais ne participent pas à tout)
- familiers attachés au monastère
1 an de noviciat, les novices sont initiés.
S'ils le demandent et que la commmunauté accepte, ils sont admis à la "profession".
Certains frères avec des responsabilités particulières:
- tenue du chapitre, administration
** Prières
durées en fonction de l'heure du lever du soleil et du coucher du soleil
(pas d'horloge classique).
- 2h du matin (1h le dimanche)
- 5h30
- 7h00
- dimanche 9h30
- 13h30
- 15h00
- 19h00
** Repas
- 2 repas de pâques au 13 septembre (11h30, 19h)
- 1 repas sinon (15h, ou 17/18h carême)
** Travail
- travail dans les champs dans la mesure ou celà n'entrave pas les prières.
7h de travail par jour.
* Ordre moteur des évolutions techniques
- techniques de culture
- techniques de constructions
- génie hydraulique, eau courante, moulin hydrolique

View file

@ -1,6 +0,0 @@
#+TITLE: histoire
#+Author: Yann Esposito
#+Date: [2020-08-24]
tags ::
source ::

View file

@ -1,812 +0,0 @@
#+TITLE: Ordre des Informaticiens
#+Author: Yann Esposito
#+Date: [2020-08-29]
- tags :: [[file:2020-08-24--18-14-53Z--cistercien.org][cistercien]] [[file:2020-08-29--14-09-05Z--ordre.org][ordre]] [[file:2020-06-18--15-24-25Z--philo.org][philo]] [[file:2020-09-01--10-01-49Z--society.org][society]]
- source ::
Bonjour,
Avant de commencer à entrer sur le vif du sujet.
Quelques précisions sur cet email.
J'ai envoyé ce mail à quelques destinataires choisi.
Seulement des personnes que j'apprécie et qui j'estime pourront en retour
apprécier cet email.
Il s'agit d'une longue lettre.
C'est un format inhabituel qui s'est perdu avec nos nouvelles habitudes de
consommations immédiates et courtes.
Je pense qu'il est grand temps de faire renaître ce type de communication
de fond.
Cette forme permet d'aborder des sujets de fond.
* Introduction
Bonjour à tous.
Cette année fût forte en rebondissements et nouvelles de toutes sortes.
Ce sont certainement les signes d'un changement profond de notre façon de
vivre qui se dessinent.
Personnellement, cette année m'a demandé un engagement dans mon travail
inhabituel.
Et donc pour la plupart d'entre vous je n'ai pas pu discuter autant que je
l'aurais aimé.
J'ai eu la chance de pouvoir prendre quatres semaines entières de congés.
Malgré ces vacances, je n'ai pas totalement pu récupérer de l'effet de ce
surplus de pression et de travail intense.
Par contre les vacances et le repos sont propices à la réflexion et c'est
pourquoi j'aimerai partager avec vous le fruit de mes quelques réflexions
d'été.
Comme je l'ai dis, j'étais assez épuisé nerveusement.
Je n'ai donc pas pu lire de livre de fond, ou « geeker » en explorant de
nouveaux outils, languages informatiques, etc...
Mais, je pense avoir une idée qui pourrait s'avérer intéressante.
Si on reste dans le milieu des « geeks », on voit toujours les mêmes
questions revenir.
Souvent un individu ou un groupe d'individus essaye de résoudre ces
problèmes d'une manière ou d'une autre.
Généralement avec une réponse technique.
Dans notre milieux c'est une erreur classique de répondre à un problème
humain par une solution technique.
Jusqu'ici, j'ai l'impression que les arguments tournent en rond.
Et que les solutions aussi reprennent de veilles idées qui ont échouées.
Alors quels sont ces problèmes:
** Reconnaissance de l'Informatique
Notre métier n'est pas reconnu à sa juste valeur.
Du moins en Europe.
Pour moi, l'informatique devrait être une /profession/ au sens
sociologique.
Aujourd'hui nous sommes de vulgaires ouvriers spécialisés.
La raison principale je pense c'est qu'on laisse l'informatique se réduire
à la programmation.
Hors l'informatique va beaucoup plus loin.
Elle s'immmisce dans énormément d'activités modernes.
Et cet état de fait n'est pas reconnu, ni visible par la culture Française
et par la classe politique.
Je dis Française, mais je pense c'est le cas dans le monde entier à
l'exception des USA où Barak Obama lors de son discours d'inoguration avait
un mot relatif à l'informatique et nouvelles techno pour tous les domaines
de l'État.
L'armée, la finance, la santé, l'éducation, etc...
De mon point de vue l'Informatique mérite une meilleure place dans nos
sociétés.
Un nouveau domaine de spécialité Humaine qui devient de plus en plus
indispensable à tous comme l'accès à l'eau potable ou à l'éducation.
** Mise à mal du progrès
C'est une réflexion que je partage souvent.
La différence fondamentale entre progrès et innovation.
Le progrès profite à toute l'humanité.
Comme la découvert d'un vaccin, d'un nouveau soin.
L'innovation se restreint à avoir de la plus value financière.
Et récemment il y a beaucoup d'innovations qui se soldent par une
régression au lieu d'un progrès pour le reste de l'Humanité.
J'espère encore que l'équilibre global reste positif.
Mais il est difficile d'en juger à cours terme.
Le fond de ce problème c'est qu'une très grande partie des cerveaux passe
sont temps sur du travail régressif.
Je pense à Google, FB, mais aussi une majorité des applis web, etc...
Il existe aussi un philosophe qui a évalué à plus de 80% la part des
informaticiens qui travaillent sur des "bullshit jobs".
Donc des domaine avec progrès nul ou négatif.
** Brigading
Par brigading j'entends les nouveaux mouvements de foules sur les réseaux
sociaux.
Parfois ses effets sont positifs, parfois négatifs mais assez souvent assez
hératiques avec un peu des deux cotés.
Précédemment il me semblait qu'il s'agissait d'un problème mineur.
Un problème aussi plutôt restreint au web.
Aujourd'hui le problème se répand tel un cancer social dans la vie réelle.
Il est presque impossible de parler de certains sujet sans voir apparaître
des intervenants contres productif à toute discussion appaisée sur le web.
Mais de plus en plus d'idées saugrenues font leur apparition lors des
diners de famille.
De plus il semble de plus en plus évident que l'influence sur les réseaux
sociaux est devenu plus qu'un business mais une arme internationale.
Même les petites communautés spécialisées comme Hacker News, Lobsters, ont
des agents qui perturbent les discussions.
Ces attaques d'argumentation ont un effet mécanique et efficace.
Le niveau d'intelligence semble diminuer avec chaque nouvelle réponse dans
un fil de discussion.
Ces problèmes ont toujours existé auparavant.
Mais je trouve que l'ampleur récente est nouvelle et inquiétante.
Il est aussi très important de remarquer que l'intelligence n'est en rien
un bouclier aussi efficace que l'on pourrait l'imaginer contre cest attaques.
Il faut faire preuve d'un apprentissage constant pour faire face aux
nouvelles techniques d'influences.
Beaucoup de nos proches et une grande partie de la population n'est
simplement pas armée pour faire face à ces attaques.
Le "brigading" renforce l'effet de stagnation en empêchant les idées de
s'élever.
** L'open source n'est pas rétribué à sa juste valeur
Les fondations de tous les systèmes informatiques mondiaux ne progressent
presque plus.
Les créateurs de logiciels libres ne sont pas rétribués pour le bien qu'il
produise.
C'est un problème qui me semble classique.
Le salaire ne correspond pas à l'utilité sociale des individus.
Je pense même que dans beaucoup de cas, et pour les informaticiens c'est
presque l'inverse.
* Ma petite expérience lors de mes vacances; les Cisterciens
Nous sommes allé avec Krystelle visiter l'Abbaye cistercienne du Thoronet.
La visite fut vraiment très agréable mais aussi inspirante.
Je vous la conseille.
Ce n'est pas relié avec le reste de ce mail mais le son de la chapelle est
unique.
Le seul autre batiment mondial qui le dépasse en terme de durée de
raisonnance est le Taj Mahal.
Tout d'abord, je n'étais pas familier des Cisterciens.
En quelques mots il s'agit d'un ordre catholique créé au début du XIIe
siècle qui voulait revenir à l'essentiel de la chrétienté.
L'ordre estime que les chrétiens se sont perdus avec l'accumulation de
richesses.
Très vite à l'aide de la force d'influence d'un seul moine de nombreuses
abbaye Cisctersciennes sont créées.
Attention, très vite ne signifie pas la même chose que pour nous.
Il faut aussi imaginer les différences de la relation au temps de l'époque.
Trois moines sont envoyés d'une autre abbaye « mère » dans la région du
Thoronet pour demander des terres au seigneur local.
Ces moines étaient des nobles avec de l'argent.
Le temps d'obtenir les terres, de trouver le meilleur lieu de construction
il faudra 20 ans avant de poser la première pierre de l'Abbaye.
Il faudra encore 20 ans pour finir la chappelle et encore 60 ans pour finir
l'Abbaye dans son entier.
Environ un siècle.
Pour son époque l'Abbaye est très en avance technologique.
Il y avait une fontaine avec l'eau courante au XIIe siècle.
Tout au long de son existence l'ordre à toujours été à la pointe de la
technologie.
Les moines étaient très instruits et ouverts d'esprit contrairemment à ce
que pourrait laissé penser leur mode de vie.
Les règles bénédictines sont très strictes.
Recherche de l'isolement, pauvreté intégrale, refus des bénéfices
ecclésiastiques, travail manuel, autarcie.
Ça ne rigolait pas.
Les cisterciens se méfient de la parole.
Tous les jours, ils se réunissent pour lire les règles bénédictines.
C'est le seul moment où la parole peut-être émise.
Avant de rentrer dans la sale, il y a des symboles qui rapellent que la
parole peut à la fois être utilisée pour le bien ou pour le mal.
Il convient donc de ne pas parler sans y avoir préalablement bien réfléchi.
Autre détail intéressant sur l'organisation sociale.
Tout devait être fait pour la méditation et le recueillement tout en ne
négligeant pas le travail manuel.
Mais certains métier étaient nécessaires.
Il y avait donc d'autres groupes d'individus qui sans être moines devaient
aussi respecter des règles de vie très strictes.
Il fallait un an de mise à l'épreuve avant d'être admis.
L'organisation de l'ordre est interressante aussi.
Pour éviter des prises de pouvoir qui iraient contre la vision de l'ordre.
Chaque année le moine principal d'une abbaye mère descend pour vérifier les
comptes, ainsi que l'état et l'organisation de l'abbaye.
Et pour la 1ere maison mère ce sont les filles qui faisaient aussi son
inspection.
Pas de culte de la personalité chez les Cisterciens.
Même les moines avec des responsabilités n'était pas au dessus des autres.
Il s'agit des charactéristiques principales que j'ai retenu.
Évidemment on a envie de faire le lien avec l'informatique.
Nombre d'informaticien ont perdu leur voie pour gagner leur vie.
Il est aujourd'hui très difficile de gagner un salaire honnête en faisant
de l'open source/free software.
Nous ne sommes plus à une époque où nous voudrions sacrifier nos vies pour
nous consacrer à un but transcendental comme un super projet open source.
Cependant il y a je pense dans cette histoire cistercienne de quoi nous
inspirer pour la création d'un ordre des informaticiens.
Mais à condition de le penser sur le long terme et de bien préparer sa
place.
Même si la création d'une telle communauté échoue à devenir influente elle
pourra participer à un effort dans la bonne direction dont en étant une
expérience agréable et enrichissante pour ses participants.
* La solution que je propose de faire ensemble
Il est temps d'esquisser une première proposition sur ce que nous pourrions
faire pour être moteur de progrès.
Et si nous le sommes déjà comme certains d'entre vous, comment peut-être
faire encore mieux.
Tout d'abord, je pense que le premier point important à garder à l'esprit
c'est que je propose de faire quelque chose sur du temps long.
Pas de précipitation, même si rien n'empêche, bien au contraire de
commencer à faire des choses.
** l'Ordre
Mon idée serait de former un « ordre des informaticiens ».
Je n'aime pas trop ce nom, mais c'est tout ce que j'ai trouvé pour l'instant.
Même si on le traduit, je pense que j'utiliserait quand même
"Informatician" qui reprensent plus ce que nous sommes.
On est pas des "Computer Scientist".
L'ordinateur pourrait disparaitre, notre métier serait toujours utile.
Je pense qu'on peut se donner quelques années avant de vraiment sortir et
s'appeler « ordre des informaticiens ».
De plus je pense que tous les informaticiens de métier ne pourraient pas
faire parti de cet ordre.
Il devrait y avoir des critères plus restrictif que juste savoir utiliser
quelques outils et savoir programmer.
Le but premier de cet « Ordre » serait donc promouvoir le progrès.
Comme le but de l'ordre des médecins et de promouvoir la bonne santé.
Mais un « ordre » pourrait aussi avoir des avantages évidents avec l'extérieur.
Gagner une autonomie et sa place au sein de la société.
Autonomie de la formation.
L'« ordre » décide de comment former ses membre et des règles internes.
Promouvoir ses intérêt et celui de ses membres.
Entre-aide.
Etre une voix pour promouvoir les différences fondamentales entre les
informaticiens et d'autres groupes d'ingénieurs ou scientifiques qui
justifient que les informaticiens deviennent une profession (toujours au
sens sociologique).
À l'intérieur de l'ordre par contre les sujets abordés seraient très différents.
Forum de question sur comment se rendre utile et moteur de progrès ?
Quelle serait la méthode la plus efficace ?
Et évidemment dans une environnement adapté à nos vie modernes.
Je n'imagine pas nous retrouver dans une Abbaye cachée pour coder du matin
au soir.
Même si ça fait un peu sectaire, je parlerai de l'Ordre sans les guillemets
pour la suite.
** Pour vivre heureux vivont cachés
Comme les moines cisterciens il me semble important d'avoir un lieu protégé
de l'extérieur.
Lors de mon arrivée sur le parking de la visite de l'Abbaye du Thoronet, on
ne voyait rien.
Pas de bâtiment visible.
L'abbaye était cachés.
Il me semble que c'est une bonne solution pour éviter d'être vu et ensuite
attaqué par des systèmes d'influences court-termistes.
Pas de forum ouvert.
Je pense même qu'on peut aller plus loin.
J'ai vu des communauté comme le tildeverse.
Il s'agit d'ouvrir un compte ssh sur une machine à des individus.
Et celà devient une sorte de réseau social clos.
Réservé aux personnes qui savent utiliser ~ssh~ et qui ont donc une
connaissance technique non nulle.
Je pense aussi que même si on est entre nous.
Nous baignons dans une environnement très bruyants.
Nous ne pouvons pas toujours nous faire confiance pour être dans un état
d'esprit calme et raisonnable nécessaire à ce type de lieu de rencontre.
C'est pourquoi je pense que l'entrée devrait imposer une sorte de temps de
pause à chacun.
Le temps de reprendre ses esprits loin de toute notification ou imperatif
extérieur.
Il faudrait arriver à communiquer lorsque l'on sait que l'on va avoir un
temps isolé et calme prompt à la réflexion.
S'imposer de couper toutes les sources potentielles de notification.
Retrouver en quelque sorte un lieu où on se sente bien entre individus de
confiances.
Dans un premier temps communiquer par mail encrypté avec GPG est déjà un
moyen de restreindre le groupe.
Mais je pense qu'il faudrait conserver des archives visible par tous ceux
qui pourraient le rejoindre à l'avenir.
** Constitution
Concernant les règles des groupes.
Il est clair si l'on regarde tous les forums et réseaux sociaux, il existe
une taille critique qui fait que l'on passe d'une expérience agréable à un
système qui va privilégier la réaction plutot que la réflexion.
Voici donc une proposition pour gérer la scalabilité de l'Ordre.
Bien entendu inspirée par des propositions connues d'organisations
décentralisées.
Pour éviter l'effet "Eternal September" je pense qu'il faudrait une
constellation de réseaux sociaux mais très limités en nombre de
participants.
De plus imposer une stabilité des participants; on reste dans le même
groupe et on ne participe pas à plusieurs groupes sauf exception.
Et ce pour rendre quasi totalement impossible l'effet "buzz".
Il me semble avoir lu qu'un individu ne peut pas vraiment connaitre plus de
120 personnes.
Donc si nous limitons la taille du groupe à 120 (peut-être même juste 60)
on peut faire un groupe où chacun de nous pourra en quelque sorte connaître
assez bien tous les autres individus.
Evidemment un tel système devrait être sur invitation seulement.
J'irai même plus loin.
Il faudrait dans une première phase n'inviter que des gens assez proches.
Lorsque le groupe atteint un seuil, il est alors nécessaire d'établir un
autre groupe séparé du premier.
Je pense qu'il faudrait des volontaires du groupe pour monter le suivant.
Ces volontaires seraient ensuite garrant de conserver le même esprit
progressiste et amical dans le groupe « fille ».
Et comme les Abbayes qui se surveillaient les unes les autres.
Il serait très intéressant d'entretenir une relation similaire.
Comparer les réflexions des groupes.
Vérifier si un groupe se spécialise.
Si differents groupes convergent ou divergent.
Avoir de façon régulières mais peu fréquentes des "synchronisations".
Prendre les meilleures idées, discussions, productions de chaque groupes et
le promouvoir aux autres groupes.
Pour éviter un effet "overflow" et "buzz" la synchronisation sera limité
aur relation directe mère fille (dans les deux sens je pense) et aussi
prendre gare à désynchroniser les dates de ces synchronisations.
Et bien entendu imposer un nombre maximal de « filles » d'un groupe.
** Détail des Principes
Je pense qu'il faut lier un ordre à un ensemble de grands principes.
De plus il faut non seulement énoncer les principes mais leur hiérarchies.
Car si toutes les sociétés prônent les même principes c'est leur hiérarchie
qui diffère.
Pour moi le principe fondateur c'est la promotion du progrès.
Et le plus difficile se mettre d'accord sur une définition suffisamment
précise du progrès pour pouvoir le distinguer.
Progrès individuel, social, technique, etc...
Souvent différents points de vus s'opposent.
Comme la parole était suspicieuse pour les cistercien certains détail de
nos communication devraient aussi être regardé d'un œil suspicieux et si
possible être évité.
*** Le contenu
**** Pas de news
Si on voit quelque chose sur Hacker News, reddit, etc...
Une mise à jour, une dernière nouveauté, un nouveau service en ligne, un
nouveau PC, téléphone, gadget.
De la politique.
À 99% ce ne devrait pas avoir sa place dans les discussions sur ce groupe.
La plupart des discussions politiques devraient être exclues.
La plupart des informations qui datent de moins de 6 mois.
Je pense qu'il pourrait y avoir certaines exceptions; les décès de
personnes proches de la communauté.
Les news touchant directement un des membres du groupe ou de l'Ordre,
etc...
Peut-être des discussions de fond sur des mouvements politiques mais rien
de récent.
Il faut à tout prix éviter de s'embourber dans les discussions
emotionnelles.
Typiquement, pendant le COVID, il faudrait éviter d'en parler complètement
à l'exception des détails techniques.
Le but de ces groupes de discussions sont la recherche du progrès à long
terme.
Le temps passé à discuter de ses peurs, émotions, dernières nouvelles
reviennent à regarder sidéré BFM TV pendant des attentats ou n'importe quel
autre évênement stupéfiant.
Au contraire, cet espace devrait être préservé du quotidiens et de
l'évênementiel pour se tourner vers du méditatif à très long terme.
**** Presque pas d'humour
Sans vouloir l'interdire totalement certaines des formes de l'humour devraient être
prohibés dans les communications.
C'est la malheureuse conclusion à laquelle je suis arrivé.
Pour plusieurs raisons mais qui se rejoignent par le fait que l'humour se
partage mal hors d'un groupe d'amis.
Les sensibilités de chacun sont différentes.
Une remarque humoristique qui nous semble innocente sera perçue comme
offensante par une personne ayant une histoire et une sensibilité
différente.
Si les communications du groupe sont publiés il ne faudrait pas qu'elles
soient mal interprétés ou puissent être utilisé pour attaquer le groupe via
des canaux extérieurs.
J'ai bien peur que pour le bien du groupe il faille refuser un humour de
détente pour se contenter d'un humour politiquement correct ou d'un humour
subtil plus difficile d'accès.
Par humour subtil j'entend un humour qui passerait par des critiques de
raisonnements un peu avancé.
***** Pas d'humour de détente
Je pense toutes les formes d'humour relatives à la distraction; les mèmes
Internet, les petits chatons, les blagues.
***** Pas de sarcasme
Je suis le premier à utiliser le sarcasme sur le chat, les forums dans la
vie courante.
Cependant, dans un système avec archive impossible à supprimer une phrase
peut simplement être utilisée hors de son contexte.
Plus que ça, il n'est pas toujours compris et c'est ce qui fait le drôle de
la situation.
Le petit moment de flottement où les individues ne savent pas si l'on est
sérieux ou pas.
Je pense que dans les communications sur les groupes, ce ne peut être acceptable.
***** Pas d'exagérations
Pas d'exagération non plus, de tournure déplaisante, etc...
Si on dit "c'est carrément fasciste" il faut que vous pensier vraiment que
l'acte décrit soit au niveau historique du fascisme.
Evidemment il faudrait absolument éviter le point Godwin.
De cette manière les règles seront aussi très strictes.
**** Pas d'anecdotes
Encore une remarque pour garder son sérieux et éviter des débats inutiles.
En gros il s'agit d'éviter les "Logical falacies" et autres erreurs de
raisonnements.
La plupart du temps, les anecdotes font partie de ces informations qui
n'ont que très peu de valeur de fond.
Elles peuvent par contre être utilisées en contre argument d'une fausse
généralité.
*** Asynchronicité
À peut-être quelques exceptions près.
Les communications au sein du groupe devraient être asynchrones.
Chaque individu devrait avoir le temps de penser la réponse à un texte, un commentaire.
Les communications mêmes anciennes ne devraient pas disparaître comme on le
voit sur les sites comme HN, reddit.
Au contraire, on peut prolonger une discussion sans fin ou très longtemps.
Et la discussion, l'activité doit encore être visible.
De même les discussions les plus importantes relatives à la prise de
certaines décisions de groupes devraient faire parti des productions
publiques du groupe.
*** Privé vs Read-only
Je pense qu'il serait bénéfique que les productions du groupe soient
publiques.
Mais je pense que les discussions internes ne devraient pas nécessairement
l'être.
Celà permettrait d'avoir des discussions dans une bulle où nous pourrions
avoir confiance en la bonne foi de chacun des participants.
Tout en sachant que les détails de la discussion ne fuiteront pas vers le
domaine public pour éviter un brigading possible.
En ce qui concerne les productions, je pense aussi que dans la plupart des
cas il faudrait qu'elles soient read-only pour l'extérieur du groupe.
Si c'est du code, le repository reste read-only.
On autorise les forks, mais on autorise pas les non-membres à participer.
C'est un peu dur, mais sinon, celà ouvrirait une brêche où pourrait
s'engouffrer les trolls, le brigading...
J'imagine qu'on pourrait trouver un système intermédiaire mais, je ne vois
pas quelque chose qui me parraisse correct pour l'instant.
*** Pseudonyme pour l'extérieur pas d'anonymat pour l'intérieur
Il me semble difficile d'intégrer de l'anonymat au sein du système.
Il faudrait éviter à tout prix qu'un individu triche en se faisant inscrire
dans plusieurs groupes en même temps.
J'imagine que l'on pourrait trouver un moyen technique qui obligerait tous
les membres de tous les groupes à se connecter en même temps dans certaines
conditions pour éviter les duplicata de compte.
Mais il faut connaître le vrai nom des gens au moins entre membres du
groupe.
Pour les archives publiques, il me semble au contraire préférable d'avoir
le maximum d'anonymat pour éviter toute possibilité de pression extérieure.
Il me semble donc cohérent d'avoir un nickname différent de celui que l'on
utilise ailleurs.
** Règles
Les cisterciens ont des règles très strictes d'hygiène de vie à respecter
tous les jours.
Je pense que c'est totalement hors de propos pour le type de communauté à
laquelle je pense.
Au contraire, je pense qu'au delà des principes et d'une forme de recueil
technique pour éviter les prises de pouvoir.
Il ne faut pas de loi, pas de règle, pas de process qui ne soit modifiable
par le jugement de bonne foi.
Si on part sur du progrès et que la communauté se constitue de personnes
de confiance.
La communauté doit avoir le droit de changer radicalement toutes les règles.
nb: c'est l'exact inverse de ce que propose les cryptos avec des
constitutions dans le marbre.
Donc il y a une tension ici.
D'une part j'ai énoncé des règles constitutionnelles pour éviter des prises
de pouvoir.
De l'autre je considère qu'il faut un moyen de réforme absolue basé sur la
bonne foi des participants.
La fondation immuable devrait être cette idée de progrès qui ne doit jamais
être confondu avec une idée d'innovation ou autres stratagèmes.
** Banissement
Si une personne emet un avis totalement en désaccord avec l'esprit
progressiste du groupe il devrait être banni.
Il pourra utiliser twitter pour faire valoir son opinion.
Dans ce cas, je propose que le bannissement demande au moins l'accord de 3
membres du groupe.
Dont probablement un membre considéré comme modérateur.
Je pense qu'il faut quelques membres qui soient considérés modérateurs,
opérateurs.
Celà ne devrait pas particulièrement leur conféré des privilèges mais
plutôt des devoirs de maintenance.
** Arrivée dans le groupe
Il fallait un an pour passer de novice à moine.
Il me semble que c'est une bonne façon de faire.
Avoir une période d'essai qui ne serait pas nécessairement un an.
Après un vote si possible secret à l'hunanimité un membre pourra soit
devenir membre définitif, soit reconduire sa période d'essai, soit être
rejeté par la communauté.
** Financement
De même que les cisterciens commencèrent à accumuler de l'argent avec
beaucoup de dons mais aussi beaucoup d'innovations et découvertes
techniques.
Il me semble que l'idéal serait que la compétence de chacun des membre
puisse favoriser le progrès mais aussi les innovations qui en
découleraient.
Et pouvoir utiliser celà pour financer le mouvement.
Pour moi il faut un plan à la SpaceX mais pour l'open source.
Avoir un objectif lointain de fonder un Ordre comme les Bene Geserit de
Dune et jalonner des étapes qui pourrait à chaque étape devenir rentable et
renforcer le mouvement.
Evidemment, il est hors de question que cet argent soit jeté par les
fenêtre ou utilisé pour s'acheter des yatchs.
Sans parler de pauvreté, il me semble qu'une certaine décence des dépenses
est nécessaire pour un mouvement humaniste et progressiste.
Mais si un groupe pouvait obtenir une indépendance financière pour payer à
temps plein des codeurs sur de l'open source je pense que celà constituerai
un immense pas en avant.
* Digression
Attention cette idée est peut-être saugrenue.
Mais elle raisonne depuis un moment il doit donc y avoir quelque chose a en
tirer.
Une autre idée relative à cet « Ordre » serait de produire un « super
software ».
C'est un nom que j'ai inventé, je ne sais pas trop coment appeler ça.
L'idée serait de produire un ressource gigantesque et publique de code
source.
Une sorte de super repository potentiellement décentralisé mais 100%
autonome et cohérent.
Un peu comme tous les paquets Linux/BSD.
En fait j'aimerai aller encore plus loin.
Dans l'idéal nous trouverions en tant que groupe un consensus sur un seul
language de programmation qui possèderait toutes les propriété que nous
pourrions vouloir.
Ou au moins réduire les langages de programmation d'intérêt.
Tout en prenant en compte l'évolution scientifique des languages de
programmation.
Il faudrait que ce « super software » contienne des libs pour tout, mais
tout en conservant les autres version (potentiellement fausses) des
anciennes implémentation de fonction pour avoir une retro-compatibilité
parfaite.
Ajouter du nouveau code ne pourrait ainsi jamais casser du vieux code.
La modification de code serait interdite ainsi que la suppression de code
(sauf peut-être exception de Garbage collect).
Ainsi si il y a un bug dans une fonction, plutot que la modifier.
Il faut réécrire une autre fonction, avec un autre nom (qui contiendrait
probablement un numero de version).
Celà fabriquerait petit à petit une sorte de gigantesque « boule
d'accretion code » (un peu comme le soleil).
De plus, d'expérience une petite équipe code mieux sur du code qu'une
grande équipe.
Ce qui rejoins l'idée de conserver un nombre de membre du groupe faible.
Merger serait trivial avec une simple convention de nommage.
Le premier groupe s'appelerait ~0x~.
Ses filles ~0x0~, ~0x1~, ~0x2~, ...
~0xf~ (on pourrait limiter le nombre de filles à 16).
Les filles de ~0x3~ seraient alors (~0x30~ ... ~0x3f~).
Ainsi si la convention de nomage des fonctions serait:
~[function-name]-[groupe]-version~.
Et il n'y aurait jamais de conflit possible entre groupe puis que chaque
commit serait uniquement additif avec des noms différents.
Rien ne serait modifié ni supprimé.
Evidemment j'imagine qu'une telle convention sera proposé nativement via
des IDE, ou un système qui automatise le nommage.
Ansi tous les merges seraient triviaux.
Après de longues années il n'est pas impossible que nous puissions avoir un
code qui s'oriente uniquement vers des résolutions de problèmes utiles.
Vers du progrès.
Et pourquoi pas, même imaginer la fabrication de hardware dédié compatible
avec ce système.
Avec un tel système de convention de nommage on pourrait même totalement
décentraliser les codes sources et chaque « objet » connecté pourrait ne
réclamer que les codes qu'ils souhaite de façon transitive.
Les mises à jours seraient aussi simplifiées et triviales.
* Comment Techniquement?
Je n'ai pas parlé de l'implémentation techniques.
L'hébergement ? Web, ssh, gpg, mails ?
Pour l'instant c'est secondaire.
Cependant j'ai quelques petites idées:
J'imagine une interface qui ressemblerait à un forum de discussion un peu
comme Reddit ou les newsgroups.
Peut-être pas sur le web mais directement dans un terminal via ssh.
Ce serait une première pour moi.
Certains choix de l'interface de l'IETF sont intéressants aussi.
Quoi qu'il en soit, il faudrait que l'on « entre » dans la communauté.
Avoir un petit temps d'attente qui permette de respirer avant d'entrer pour
retrouver ses esprits et se mettre en condition.
Avoir des messages de rappel des règles pour éviter les débordements, les erreurs.
Checker le contenu des commentaires pour potentiellement ajouter un rappel
des règles.
Typiquement si le message contient certains mots clés.
Que le message est trop court, etc...
Uploader les clés GPG publiques de tous les membres pour discuter en privé
via mail (ou autre).
Si c'est le cas, il faudra que ce trousseau soit encrypté pour éviter les
fuites publiques des emails des membres.
Ou simplement demander à tout le monde d'envoyer les clés.
L'idéal serait d'avoir de l'e2e et plus généralement de chiffrer toutes les
communications internes.
Le volume des converstations devrait rester assez faible pour que l'on
puisse tout lire à chaque fois.
Et donc pas besoin d'un algorithme intelligent qui positionnerait des
priorités de certaines discussions.
Peut-être avoir une notion de discussion amenée à son terme.
On pourrait donc par consensus fermer une discussion lorsque l'on arrive à
une conclusion.
Et si c'est le cas pouvoir potentiellement publier une « production » qui
retrace la conclusion de la discussion avec une explication des différents arguments.
La discussion en elle même pouvant ou non rester cachée et archivée.
Peut-être décider d'un nombre maximal de sujet à traiter jusqu'à obtention
de consensus.
Si le consensus ne peut pas être atteint et que plus personne ne peut
ajouter de commentaire sur la discussion.
On pourrait mettre une discussion en « couveuse » pour un certain temps.
Elle serait alors dépriorisée et réapparaitrait de nouveau au premier plan
après le temps d'attente.
L'objectif final étant de produire des conclusions consensuelles et
d'essayer d'avancer.
De même il me semble qu'il faudra un ou plusieurs repository git.
Pour aider à la production de code.
* Qui ?
Jusqu'ici je n'ai pas dit qui inclure et comment.
Mais je considère qu'il doit y avoir un certain nombre de qualités que nous
devons rechercher chez les membres.
1. *Compétent techniquement*; pas de nul.
2. *Éthiquement compatible*; qui partage les valeurs du groupe.
3. *Socialement compatible*; une personne ouverte d'esprit qui sera
bienveillante envers les autres membres.
4. *Techniquement compatible*; qui partage les opinions fortes du groupe sur
le plan technique.
5. *Productif*; il serait triste d'avoir des membres brillants incapables
d'accepter des solutions temporaires imperfectes mais utiles.
Il faut une personne qui aide à la production et qui ne s'arrête pas à la
discussion théorique.
Même si l'objectif est sur du temps long et qu'il n'y a pas de
précipitation.
6. *Impliqués*; nos vies modernes sont remplies et nous laissent peu de temps.
Mais il faudrait que les membres puissent s'engager à participer pendant
un temps régulier suffisant.
J'imagine pour que les choses se fasse bien il faudrait procéder un peu
comme un recrutement.
Pour aussi montrer que joindre ce groupe c'est différent de juste d'abonner
à reddit ou HN.
* Conclusion
Merci d'avoir lu jusqu'ici.
Si ce n'est pas clair je voudrais simplement lancer une discussion sur le
sujet.
Et je tiens à ajouter que je n'ai aucune compétence ni en science sociale,
ni en science politique.
J'ai très probablement émis une énorme quantité d'erreurs et d'idées naives
sur ces sujets.
Cependant j'espère que cette idée pourrait contribuer à créer une bulle
protectrice pour un environnement positif.
Positif pour nous mais aussi pour les autres.
Avec un petit espoir qu'une telle communauté puisse naître et avoir une
influence positive.
À bien y regarder, il s'agit simplement de faire des communautés comme ce
qui existe déjà pour la plupart des projets open sources.
Mais au lieu de se focaliser sur un outil technique ici il s'agit d'aller
plus sur le terrain de la politique et de la philosophie tout en ne
négligeant pas le coté « travail productif » pour qu'il en découle du
concret.
J'attends vos commentaires avec impatience.
Bien entendu, si vous pensez que je me trompe complètement, je préfère une
honnêté brutale à un compatissement bienveillant.
N'hésitez pas à émettres vos critiques et vos idées.
Si suffisamment d'entre vous me répondent et que vous acceptez de partager
ces discussions entre vous.
Je trouverai un moyen de tous nous mettre en relation.
Bien que je pense cet aspect de communication direct est aussi intéressant.
Et si vous êtes même partiellement convaincu.
Dans ce cas, nous pourrons commencer à discuter des détails d'organisation
et des détails techniques.
Et probablement ainsi construire ensemble une communauté de confiance qui
nous convient.
Y.

View file

@ -1,7 +0,0 @@
#+TITLE: ordre
#+Author: Yann Esposito
#+Date: [2020-08-29]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: society
#+Author: Yann Esposito
#+Date: [2020-09-01]
tags ::
source ::

View file

@ -1,9 +0,0 @@
#+TITLE: cours universite en ligne
#+Author: Yann Esposito
#+Date: [2020-09-06]
tags ::
source ::
http://r.news1.fun-mooc.fr/mk/mr/TtObuvCBFz4rW3fNKQrCSjJ4Qk4neqQyOG0VFDm5Zr1vtg-Ei1uDV-Co1B506BJliEhSUhbD95V9NaiHA_YBawdrpwiFmpMKd7VxexWR_Yts9Q

View file

@ -1,10 +0,0 @@
#+TITLE: Cours université en ligne
#+Author: Yann Esposito
#+Date: [2020-09-06]
tags :: [[file:20200428130640-learning.org][learning]]
source :: [[notmuch:id:202028082220.nrnx041tgg9qvbj@news1.fun-mooc.fr][Email from France Université Numérique: Vos prochains MOOC sur FUN pour la première quinzaine de septembre]]
Exemple
http://r.news1.fun-mooc.fr/mk/mr/TtObuvCBFz4rW3fNKQrCSjJ4Qk4neqQyOG0VFDm5Zr1vtg-Ei1uDV-Co1B506BJliEhSUhbD95V9NaiHA_YBawdrpwiFmpMKd7VxexWR_Yts9Q

View file

@ -1,6 +0,0 @@
#+TITLE: vie
#+Author: Yann Esposito
#+Date: [2020-09-20]
tags ::
source ::

View file

@ -1,215 +0,0 @@
#+TITLE: Luc follow.sh review
#+Author: Yann Esposito
#+Date: [2020-10-04]
tags :: [[file:2020-06-03--19-49-30Z--programming.org][programming]] [[file:2020-10-04--10-30-25Z--product.org][product]] [[file:2020-10-04--10-30-41Z--app.org][app]] [[file:2020-10-04--10-30-54Z--review.org][review]]
source :: https://www.follow.sh/en/
* Review
J'ai testé pas mal de choses.
C'est cool, ça marche j'ai fait pas mal de remarque.
Good luck! :)
** Site web
Très bonne première impression très propre.
Bemol, les couleurs ne sont pas alignées entre le logo et le thème du site.
C'est un détail mais c'est important puis que ça montre quasi immédiatement
que le branding n'est pas parfaitement aligné.
Le violet est assez sympa, donc je pense ça serait pas d'utiliser le violet
plutot que le bleu du logo partout.
Ça me semble plus facile dans ce sens.
*** Conseils
Sur la page d'accueil FR: je pense j'ajouterai "local" quelque part dans la
phrase d'accroche.
Peut-être même que j'utiliserai une formulation pour rassurrer
psychologiquement.
Du genre « Restez en contact avec vos commerçants de proximité », à
améliorer, mais tu vois.
Aussi, contrairement à ce que j'ai dit juste avant, s'il faut appuyer sur
le coté rassurant, local, etc...
Malheureusement le thème du site n'est pas super adapté.
Il faudrait un truc qui fasse plus chaud les couleurs choisies ici sont
froides et technologiques.
Typiquement y aller à fond genre un theme comme =gruvbox= par exemple.
Un truc qui rapelle les affiches genre biscuit lu des années 20.
Donc plutôt du jaune, du marron, du bleu doux, etc...
En gros, j'irai vair des couleurs vintage plutôt chaudes
Ma préfée serait: https://www.schemecolor.com/yellow-vintage-color-palette.php
Mais qui irait aussi:
- https://www.schemecolor.com/vintage-by-choice.php
- https://www.schemecolor.com/vintage-brown-look.php
- https://www.schemecolor.com/vintage-tirp.php le plus doux, rassurant mais féminin
Et assez important pour donner cette impression de chaleur, ne pas utiliser
de background blanc. Probablement utiliser une fonte qui fasse un peu vintage.
Exemples:
- https://ourstoriesin.com
- https://themeforest.net/item/retro-portfolio-one-page-vintage-wordpress-theme/1708109?s_rank=8&_ga=2.52183969.96619734.1601802127-201122956.1575809459
*** Problèmes
1. En allant sur =follow.sh= je suis tombé sur le site anglais, pas moyen de
trouver comment aller sur le site en FR.
C'est en allant sur =confidentialité= et en cliquant sur la petite maison
que je suis arrivé sur le site en FR (mon env est en Anglais).
2. [EN] Typo: Feature au lieu de Features dans le titre.
3. Le texte anglais ne semble pas adapté à ce que fait l'app. Cette partie
est assez difficile, il faudrait d'abord savoir qui arrive sur ce site
et adapter le discours et le vocabulaire pour le public visé.
4. En allant sur https://www.follow.sh/confidentialite j'ai cru qu'il n'y
avait pas de bouton retour. En fait j'ai pris le triangle en background
pour un bouton retour et je n'ai pas vue la petite maison.
Je pense qu'il faudrait mettre un top menu ou avoir la maison dans un
cercle coloré ou noir pour que l'icône se voit.
5. Le mail dans Contactez nous n'est pas cliquable. Vous pouvez à minima
obfusquer le `mailto:contact@follow.sh` en utilisant un mix de `&#xxx;`
genre http://www.wbwip.com/wbw/emailencoder.html.
** App
J'ai désinstallé et réinstallé l'app pour reproduire les conditions d'un
nouvel utilisateur.
*** Première expérience utilisateur non commerçant
1. permiere expérience, l'app lance une page de load avec le logo au
centre.
Directement après on se prend une notification, "follow would like to
send you notifications".
En général c'est plus simpa d'arriver directement dans un "wizard" qui
fait le tour du propriétaire avec un petit message explicatif.
« Pour ne rien râter des news locales merci d'autoriser follow à vous
envoyer des notifications; le niveau des notifications est configurable
dans l'applications ». Par exemple, on appuis sur "suivant" et hop on se
prend la demande. Sans ce premier message la plupart des gens refusent
systématiquement.
Avec le message je pense ça augmente sensiblement l'engagement.
2. Après avoir accepté, on arrive sur "Actualités et bon plans"
avec un bouton "Mes abonnements".
On clique dessus on arrive sur l'onglet "Abonnements", c'est sympa, je
pense qu'en premier usage il serait plus cool d'arriver sur une plage
explicative (toujours type wizard) et quand on fait "suivant" hop on
arrive sur l'onglet "Abonnements".
3. Je clique sur scanner QR code, la page affiche une page avec le top bleu
"Scan" et el contenu est du texte non designé (top left petit)
"Requesting for camera permission".
Là encore pour premier usage, je pense ça serait bien un texte
explicatif avant de demander la permission d'accès à la caméra.
Plein de gens ne savent pas scanner un QR code.
Juste une page du genre « Les QR codes sont ces images que l'on voit un
peu partout "exemple de QR code" il suffit de les filmer avec la caméra
de votre iPhone pour les scanner, c'est pour celà que nous vous
demandons l'accès à votre caméra. ». Et hop suivant, demande d'accès.
4. Si on choisit "Rechercher" l'interface est naturelle, par contre les
commerces ne semblent pas ordonnés. J'imagine qu'ils sont ordonnés par
date d'ajout. Si une personne veut chercher en scrollant (parce que des
gens peuvent être masochistes) il devient très difficile de trouver son commerce.
Je pense qu'il serait plus naturel de les ordonner par ordre
alphabetique et si possible d'avoir comme dans "Contact" la liste des
premières lettres sur la droite et d'ailleurs pour les tests, il serait
pas mal d'engendrer quelques dizaines de faux commerces. Et pourquoi pas
plusieurs milliers pour voir comment cela se comporterait.
A mon avis si l'app commence à être utilisé beaucoup cette interface
avec liste n'est absolument pas gérable, il faudra un prefiltre par
geoloc pour minimiser la liste à moins de 50 ou moins de 100 commerces.
5. Dans la liste "Rechercher" il y a un commerce avec un tick bleu.
Aucune idée de quelle est la signification.
6. Lorsqu'on clique pour s'abonner on revient sur l'onglet "Mes abonnements".
Mais du coups il ne reste que le bouton + et QR-code en haut.
Et il n'est pas tout de suite évident qu'il faudra cliquer là pour
ajouter un nouvel abonnement.
Souvent on s'attend à avoir un bouton + en bas de la liste en plus.
Sans ajouter le bouton, je pense il serait pas mal pour le tout premier
retour après le premier abonnement d'avoir un wizard qui fasse le focus
sur les deux boutons pour expliquer comment ajouter de nouveaux abonnements.
À la limite je laisserais deux gros bouton en haut plutôt que ces deux
petits icônes qui font plus jolis mais sont plus difficile à détecter.
Et de même j'agrandirais ces boutons pour rendre plus évident leur présence.
7. En retournant sur l'onglet "Actu" il y a un bug (iPhone 11), le bas de
la page est grisé, la taille de la liste n'est pas égale à la taille de
l'espace disponible.
8. L'onglet "A propos" le texte manque de contraste et est trop petit. La
moitié de la page est vide. Autant en profiter.
Le "Contactez-nous à info@follow.sh" n'est pas actionnable (cliquable).
*** Onglet commerçant
Je clique sur le bouton "Connexion".
Je vois le nombre de followers et le nombre de publications restantes.
C'est très bien.
Si je clique sur "nouvelle publication" immédiatement demande d'accès à mes
photos.
Je refuse de donner l'accès message [missing
"fr.send_notification.image.permissions_required" translation] Je pense
qu'il vaut mieux se passer de cette erreur visible par l'utilisateur final.
J'essaye d'écrire malgré tout, à chaque nouvelle lettre, je me prend le
meme message d'erreur.
Donc oui, il faut vraiment supprimer cette notificaiton d'erreur.
Surtout que même en image, ça marche.
**** Onglet packs de publications
Connaissant les commerçants, ils en ont marre de payer pour tout et rien.
Je pense qu'il ne serait pas trop mal plutôt que limiter leurs
"publication".
De faire une distinction entre "publication donnant lieu à des
notifications" et "publication silencieuses" qui seraient donc moins chère
ou avec des packs du genre 1 ou 2 pub silencieuses par semaine offerte
etc...
Mais ça risque de changer un peu le backend, mais d'un point de vue
marketing je pense que l'idée sera mieux reçue des commerçants.
Un autre aspect à considérer et peut-être de ne pas montrer directement le
nombre d'abonnés surtout pendant la période de lancement.
Histoire de laisser une sorte de croyance se mettre en place.
Avec certain qui feront des erreurs de corrélations entre l'utilisation de
l'app et une meilleure affluence.
Et aussi en terme de vente, peut-être plutot que compter le "nombre de notification"
considerer de limiter la fréquence des publications.
Du genre, pas plus que 1/semaine, 1/jour, 3/jour, etc...
Sinon vous risquez de vous retrouver avec des anti-joueurs assez vite
surtout que ce n'est pas très cher de faire l'anti-joueur.
De la même manière, je pense que coté utilisateur il faut un option qui
permette de limiter le nombre de notifications par jour et peut-être meme
aider les utilisateurs à configurer les notifications via l'app pour éviter
que les gens la désinstalle parce qu'au lieu d'être utile l'app devienne
une source de nuisance.
Après tout c'est une demande de recevoir de la pub.
Dans notre monde moderne, les gens essayent plutôt de limiter leur
exposition aux pubs.
Une autre piste potentielle serait d'augmenter une forme d'engagement des
utilisateurs en les rémunérant avec quelque chose, pas juste en recevant la
promo. Typiquement des promos exclusives via l'app, etc...
Détail technique, il y a une poubelle en haut à droite de "Nouvelle
publication" Aucune idée de comment utiliser ça.
De même un problème bien plus grave, je ne vois pas comment
supprimer/editer une publication.
Je pense ça risque d'amener des pb du genre, typo dans la promo, genre,
mauvais prix, à cause d'une typo pouvant causer des pertes financières à un
commerçant avec potentiellement des conséquences juridiques.
Si j'essaye d'éditer mon compte, je reprend le message d'erreur à cause de
mon refus de donner l'accès à mes photos.
La même erreur trigger à chaque fois que j'appuis sur une lettre pour
éditer. Il me semble que c'est aussi un pb de code, la demande d'accès ne
devrait se faire que lorsqu'on change une image pas à chaque fois que l'on
edite du texte.
*** Problèmes/bug/remarques
1. Comportement inattendu, si on fait scanner QR code et qu'on ne scanne rien, qu'on
change d'onglet et qu'on revient sur l'onglet "Abonnement" l'appli reste
toujours en mode scan de QR code et on voit toujours la vue caméra.
Je pense que lorsqu'on change d'onglet, il faudrait revenir à la page
d'acceuil de l'onglet "Abonnements".

View file

@ -1,6 +0,0 @@
#+TITLE: product
#+Author: Yann Esposito
#+Date: [2020-10-04]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: app
#+Author: Yann Esposito
#+Date: [2020-10-04]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: review
#+Author: Yann Esposito
#+Date: [2020-10-04]
tags ::
source ::

View file

@ -1,73 +0,0 @@
#+TITLE: clojure job discussion
#+Author: Yann Esposito
#+Date: [2020-10-09]
tags ::
source :: [[notmuch:id:1053023735.5165546.1602236330261.JavaMail.app@lor1-app45372.prod.linkedin.com][Email from Remi Thandi: Clojure Development - Europe]]
#+BEGIN_QUOTE
Clojure Development - Europe
Hi yann,
Hope you're well,
I came across your profile as I see that you've got some great skills in
Clojure!
As a specialist software development recruiter I'm building a desk around
Clojure specifically.
I'm working with a few organisations around Europe (now branching out to
the rest of the world) with some very strong conversations happening with
more vacancies soon to be on my desk!
Right now I'm looking for skilled Engineers who are looking for new roles.
Please let me know your situation and what you're looking for.
Role type
Role location (Please confirm remote if this is what you are looking for)
Salary/Pay - (Per day/Month/Year)
Kind Regards,
Remi Singh | Delivery Manager - Europe
Web, Mobile &amp; Desktop (WMD)
UK: 0044 (0)208 0047784
#+END_QUOTE
Hi Remi,
Thanks a lot for your interest.
While I love my current position I've been there for quite a time now.
So I'm glad that you could give me the occasion to take a look elsewhere.
While I am not actively looking for a new role, that could change soon.
I have mostly worked on web applications.
Even though I have a full stack experience I am a lot more often focused on
the backend.
Recently I specialized around the Authentication and User identities
technologies and protocols.
I was the main developer to write a full OAuth2 Service Provider that also
support OpenID Connect.
Knowing that, I think my profile fit with backend engineer positions.
Regarding the location, I would prefer to remain in the South of France and
continue to work as a full remote employee.
Regarding the Salary, this is a bit tricky, currently my salary is about
90k€/month before advantages.
I often performed very well so I've got a lot of bonuses typically 80k of
RSU (on a 4 year period) and every year a ~20k bonus to add on top that.
So everything combined I am close to a 120k€/year salary.
So, to resume:
Role type: Senior Software Engineer
Role location: full remote
Salary: 120k€
Thanks,
Yann.

View file

@ -1,43 +0,0 @@
#+TITLE: I'm Thinking of Ending Things (2020)
#+Author: Yann Esposito
#+Date: [2020-10-25]
tags :: [[file:2020-10-25--15-47-30Z--film.org][film]]
source :: https://www.imdb.com/title/tt7939766/
Un film qui m'a fait beaucoup pensé aux films de David Lynch.
Les personnages parraissent vivant mais des choses « impossible » leur arrive.
Des pertes de mémoire, des inconsistences dans leur mémoire, leur vie, etc...
Parfois un personne se retourne au milieu d'une discussion pour se
retrouver au milieu d'un pièce vide.
Et c'est ce dont il s'agit dans "I'm Thinking of Ending Things".
Mais comme je suis un fan de David Lynch et que j'analyse ce genre de
chose.
Et bien, j'étais un peu « à la maison » en regardant ce film.
Les personnages sont tous des personnages inventés dans l'esprit du
personnage principal qui fantasme d'un scénario.
Le personnage principal est un "janitor" de lycée.
Il est la cible des ricanneries des jeunes filles qui lui trouve un air
bizarre.
Il aurait aimé être un scientifique, un poète, ou tout un tas d'autres
choses.
Mais il n'a toujours été bon qu'à s'occuper de nettoyer le lycée le soir.
Dans le scénario qu'il imagine, il s'imagine de nouveau jeune.
Avec une jeune fille qui lui ressemble et qui le trouve super.
Il s'imagine lui faire découvrir sa vie.
Sa famille, là où il a vécu.
Ses moments difficiles, lorsque ses parents tombent malades et meurent.
Et finalement il l'amène au lieu qui a fini sa vie.
Le lycée qu'il n'a jamais quitté et qu'il soccupe de nettoyer.
Dans ce film il y avait beaucoup de choses bien faites.
Mais aussi certains ratés.
Les acteurs sont vraiment très bon à mon goût.
Je trouve la fin un peu ratée.
Et il est trop long, certaines scènes sont ennuyeuses.
Pourtant j'aime bien les films avec des longeurs en général, mais là les
longeurs manquaient de profondeur.

View file

@ -1,6 +0,0 @@
#+TITLE: film
#+Author: Yann Esposito
#+Date: [2020-10-25]
tags ::
source ::

View file

@ -1,84 +0,0 @@
#+TITLE: Personal Plan
#+Author: Yann Esposito
#+Date: [2020-11-19]
- tags :: [[file:../../../../../../.org/journal/2020-12-01--10-41-19Z--plan.org][plan]] [[file:../../../../../../.org/journal/2020-12-01--10-39-44Z--y_project.org][y-project]]
- source ::
Bon je vais écrire en Français puisque c'est pour moi et que je suis bien
entendu bien plus à l'aise en français.
OK, holà, on est le 1er décembre.
* Plans
Les plans possibles sont:
1. Progresser chez Cisco
2. Aller dans une autre boite
3. Faire du freelance
4. Créer sa propre boite
** Plan 1: Cisco
Tout étant possible de faire plusieurs choses à la fois.
Donc il ne faut pas négliger l'option 1.
Il suffit de continuer.
La difficulté est de dégager du temps et de l'énergie pour le reste.
Important, améliorer son Anglais.
J'ai vu à quel point ça donne une mauvaise impression un accent fort.
Même sur moi qui suis Français.
*** TODO Améliorer son Anglais
** Plan 2: Employé autre boite
Il convient de mettre à jour son CV.
Savoir ce qu'on veut, savoir se vendre.
Donc la solution 2, revient à trouver une boite comme Cisco.
Mais maintenant que j'ai fait mon trou, j'espère pouvoir avoir plus de
temps libre et monter avec beaucoup moins d'efforts.
Cependant il faut répondre et postuler de temps en temps.
*** TODO Améliorer son Anglais (bis)
*** TODO Garder son CV à jour
*** TODO Postuler fréquemment
** Plan 3: Freelance
Via le Plan 2, je pense que celà pourra créer des relations.
Certaines ne pourront, voudront pas m'embaucher.
Ou moi aussi je ne voudrais pas.
Mais il pourrait être suffisant de convenir de travail à temps partiel de
consulting.
Ce n'est pas nécessairement le plus intéressant.
Cependant, on peut créer une entreprise de consulting.
Typiquement pour toute la gestion de l'Auth.
Je suis un expert après tout.
*** TODO Creation site freelance anonyme
** Plan 4: Création de Produit
Pour créer un produit il faut des idées.
Il y a plusieurs stratégies ici.
Il faut le bon équilibre entre production et approfondissement.
L'idée pour que ça fonctionne est d'avoir une système où rien ne se perd.
Donc si le but est de faire un gros produit, il faut découper en beaucoup
de micro-produit, chacun pouvant être utilise et pouvant se vendre.
C'est la partie la plus intéressante.
Mais il faut trouver de l'énergie pour le temps libre.
Des idées, un stack, etc...
Une idée de fond, serait de créer quelque chose qui me dépasse.
Avoir un plan, visible, établi, et avoir un groupe de personne, pas
seulement moi travailler pour arriver à un but ultime.
Peut-être sur des dizaines, centaines d'années.
Peut importe.
Il faut voir grand.
*** TODO Etablir un plan, produit final, chemin, création.

View file

@ -1,135 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Org present test</title>
<meta name="author" content="Yann Esposito"/>
<style type="text/css">
.underline { text-decoration: underline; }
</style>
<link rel="stylesheet" href="/Users/esposito/.emacs.d/.local/straight/build-27.1/revealjs/dist/reveal.css"/>
<link rel="stylesheet" href="/Users/esposito/.emacs.d/.local/straight/build-27.1/revealjs/dist/theme/black.css" id="theme"/>
</head>
<body>
<div class="reveal">
<div class="slides">
<section id="sec-title-slide">
<h1 class="title">Org present test</h1><h2 class="author">Yann Esposito</h2><h2 class="date">2020-11-21 Sat 00:00</h2><p class="date">Created: 2020-11-21 Sat 18:51</p>
</section>
<section id="table-of-contents-section">
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#/slide-1">1. First slide</a>
<ul>
<li><a href="#/slide-1-1">1.1. Sub 1.1</a></li>
</ul>
</li>
<li><a href="#/slide-2">2. Slide 2</a></li>
<li><a href="#/slide-3">3. Slide 3</a></li>
<li><a href="#/slide-4">4. Slide 4</a></li>
<li><a href="#/slide-5">5. The End</a></li>
</ul>
</div>
</div>
</section>
<p>
tags :: <a href="20200428130658-org_mode.html">org-mode</a>
source :: <a href="https://github.com/rlister/org-present">https://github.com/rlister/org-present</a>
</p>
<section>
<section id="slide-1">
<h2 id="1"><span class="section-number-2">1</span> First slide</h2>
<ul>
<li>This is the first slide.</li>
<li>With an item list.</li>
</ul>
</section>
<section id="slide-1-1">
<h3 id="1-1"><span class="section-number-3">1.1</span> Sub 1.1</h3>
</section>
</section>
<section>
<section id="slide-2">
<h2 id="2"><span class="section-number-2">2</span> Slide 2</h2>
<p>
This is slide 1.2
</p>
<div class="org-src-container">
<pre class="src src-elisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">defun</span> <span style="color: #b57614;">foo</span> <span style="color: #b16286;">()</span> <span style="color: #79740e; font-style: italic;">"foo"</span><span style="color: #076678;">)</span>
</pre>
</div>
</section>
</section>
<section>
<section id="slide-3">
<h2 id="3"><span class="section-number-2">3</span> Slide 3</h2>
<p>
Slide
</p>
</section>
</section>
<section>
<section id="slide-4">
<h2 id="4"><span class="section-number-2">4</span> Slide 4</h2>
<p>
With some text.
</p>
</section>
</section>
<section>
<section id="slide-5">
<h2 id="5"><span class="section-number-2">5</span> The End</h2>
</section>
</section>
</div>
</div>
<script src="/Users/esposito/.emacs.d/.local/straight/build-27.1/revealjs/dist/reveal.js"></script>
<script src="/Users/esposito/.emacs.d/.local/straight/build-27.1/revealjs/plugin/markdown/markdown.js"></script>
<script src="/Users/esposito/.emacs.d/.local/straight/build-27.1/revealjs/plugin/notes/notes.js"></script>
<script src="/Users/esposito/.emacs.d/.local/straight/build-27.1/revealjs/plugin/search/search.js"></script>
<script src="/Users/esposito/.emacs.d/.local/straight/build-27.1/revealjs/plugin/zoom/zoom.js"></script>
<script>
// Full list of configuration options available here:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: false,
center: true,
slideNumber: 'c',
rollingLinks: false,
keyboard: true,
mouseWheel: false,
fragmentInURL: false,
hashOneBasedIndex: false,
pdfSeparateFragments: true,
overview: true,
transition: 'convex',
transitionSpeed: 'default',
// Plugins with reveal.js 4.x
plugins: [ RevealMarkdown, RevealNotes, RevealSearch, RevealZoom ],
// Optional libraries used to extend reveal.js
dependencies: [
]
});
</script>
</body>
</html>

View file

@ -1,55 +0,0 @@
#+TITLE: Org present test
#+Author: Yann Esposito
#+Date: [2020-11-21]
tags :: [[file:20200428130658-org_mode.org][org-mode]]
source :: https://github.com/rlister/org-present
* Presentation 1
** Title
Yann Esposito
** First slide
yolo
** Second slide
#+BEGIN_SRC clojure
(defn foo [x] (:something x))
#+END_SRC
** Conclusion
the end.
* Presentations 2
** First slide
- This is the first slide.
- With an item list.
*** Sub 1.1
Hello
*** Sub 1.2
Sub
**** Sub 1.2.1
My
**** Sub 1.2.2
Old
*** Sub 1.3
Friend
** Slide 2
This is slide 1.2
#+BEGIN_SRC elisp
(defun foo () "foo")
#+END_SRC
** Slide 3
Slide
** Slide 4
With some text.
** The End

View file

@ -1,119 +0,0 @@
#+TITLE: [Meta RFC] RFC template
#+Author: Yann Esposito
#+Date: [2020-11-26]
tags :: [[file:../../../../../../.org/journal/2020-11-26--10-12-21Z--work.org][work]] [[file:../../../../../../.org/journal/2020-11-26--10-12-42Z--organisation.org][organisation]]
source ::
/Abstract/: Yesterday in our weekly meeting I discussed about how I would
like us to work with RFCs.
I would like to add this document to talk about RFCs.
So this is a meta document.
I hope not to trigger the need for a meta-meta-document ;).
I will try to keep it self-referencing by using its own description.
Closer to the quine :).
*Audience*: (Who's impacted?)
+ iroh team
+ managers
*RFC kind*:
+ team organisation
** Objective
*Improvement*: Write a proper RFC template.
* Proposed Solutions
** Template
This is the template I would like us to provide.
We should probably add that as a github template for issue.
So if you declare you want to create a new RFC issue you will be presented
this template.
The author will only need to fill the blanks and remove parts that are not
relevant.
*** [Title] <- name of the issue in github
/Abstract/: A little bit more than in the title
*Audience*: (Who's impacted?)
+ iroh team
+ ops
+ ui team
+ managers
+ customers
*RFC kind*: (remove non relevant part)
+ code convention (=> Audience; iroh-team only)
- ns naming convention
- position of args
- naming of args
- etc..
+ dev tooling (=> Audience; iroh-team, maybe ops)
- emacs mode
- cider
- clj-refactor
- CI
- scripts
- git commit message
- docker
- etc...
+ team organisation (=> Audience; iroh-team, managers)
- github dashboard, issue templates, github labels, etc...
+ technical specification (Audience not constrained);
The goal of a technical specification RFC is is to produce a
document containing:
- a functional specification
- a technical specification for our team
- technical specification(s) for other team if necessary (ops, UI, etc...)
- an execution plan
**** Objectives
- *Problems*:
- *New Features*:
- *Improve the current situation*:
**** Proposed Solutions
***** [Solution 1]
Describe one possible solution
+ pros
+ cons
***** [Solution 2]
Describe another possible solution
+ pros
+ cons
**** Furter Considerations and Remarks
Generic place to put comment not suitable in any other subsection.
Typically, we could add
+ Security
+ Communication
**** Plan
Optional, complete once a consensus has been reached.
Should contain a plan to achieve the solution.
** Further Considerations and Remarks
*** =dev= label
We already have a =dev= label we should probably use for RFC whose audience
is just the iroh team.
*** =Epic= label
We should continu to use the =Epic= label for issues whose goal is to
produce a specification document along with an execution plan.

View file

@ -1,6 +0,0 @@
#+TITLE: work
#+Author: Yann Esposito
#+Date: [2020-11-26]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: organisation
#+Author: Yann Esposito
#+Date: [2020-11-26]
tags ::
source ::

View file

@ -1,6 +0,0 @@
#+TITLE: y-project
#+Author: Yann Esposito
#+Date: [2020-12-01]
tags ::
source ::

View file

@ -1,31 +0,0 @@
#+TITLE: The Huge Y Project
#+Author: Yann Esposito
#+Date: [2020-12-01]
- tags :: [[file:2020-12-01--10-39-44Z--y_project.org][y-project]] [[file:2020-12-01--10-41-19Z--plan.org][plan]]
- source :: [[file:../../../../../../.org/journal/2020-11-19--10-36-42Z--personal_plan.org][Personal Plan]]
* Quel projet?
- General AI?
- Space exploration?
- Infinite Energy?
- Huge code network?
- Eternal Life?
- Super Education and Learning? Make human smarts.
- Toward Utopia?
De tout ceci on peut déduire un projet qui dépasse de loin une vie humaine.
Et elles sont toutes reliées.
Tous ces objectifs ont le point commun d'être des idées classiques de SF.
La seule un peu originale et la plus risquée est celle de la gestion de
l'Humain via un environnement social positif.
Mais celà pose un problème éthique de décider à priori ce que serait de bon
ou de mauvais comportements humains.
Si nous devions faire un plan pour arriver au plus vite à une utopie.
Il y a plusieurs chemins possible.
L'un d'entre eux est de de se fabriquer notre propre Dieu.
Une être à la fois supérieur aux Hommes en tout point et bienveillant.
Et il semblerait donc naturel de se tourner vers la résolution de General
IA en premier.

View file

@ -1,6 +0,0 @@
#+TITLE: plan
#+Author: Yann Esposito
#+Date: [2020-12-01]
tags ::
source ::

View file

@ -1,21 +0,0 @@
#+TITLE: English Lesson
#+Author: Yann Esposito
#+Date: [2020-12-04]
tags :: [[file:2020-12-04--13-20-08Z--english.org][english]]
source ::
* Ted
https://www.italki.com/teacher/4869805
** Lesson 1 (30 min)
:PROPERTIES:
:ID: 1a758996-2bb0-4753-8365-34ca3ef0f940
:END:
Pronounciation,
French accent,
Grammatical errors,
Maybe a bit of vocabulary, but more about local expressions.
Tyipcally, Austin, Texas.

View file

@ -1,6 +0,0 @@
#+TITLE: english
#+Author: Yann Esposito
#+Date: [2020-12-04]
tags ::
source ::

View file

@ -1,13 +0,0 @@
#+TITLE: CRUX Past Present and Future!
#+Author: Yann Esposito
#+Date: [2020-12-04]
tags :: [[file:../../../../../../.org/journal/2020-05-26--06-16-14Z--clojure.org][clojure]] [[file:../../../../../../.org/journal/2020-12-04--15-33-28Z--re_clojure_2020.org][re:clojure 2020]]
source ::
CRUX DB, with SQL-like querying with time index.
- =seek= find the first event after a date. Index by date.
- trick to reverse the timeline to lookup in reverse.
Query Indices

View file

@ -1,6 +0,0 @@
#+TITLE: re:clojure 2020
#+Author: Yann Esposito
#+Date: [2020-12-04]
tags :: [[file:../../../../../../.org/journal/2020-05-26--06-16-14Z--clojure.org][clojure]]
source :: https://reclojure.org

View file

@ -1,8 +0,0 @@
#+TITLE: Ketu the Kafka Client we deserve
#+Author: Yann Esposito
#+Date: [2020-12-04]
tags :: [[file:../../../../../../.org/journal/2020-05-26--06-16-14Z--clojure.org][clojure]] [[file:../../../../../../.org/journal/2020-12-04--15-33-28Z--re_clojure_2020.org][re:clojure 2020]]
source ::
Presentation by Yonatan Elhanan

View file

@ -1,112 +0,0 @@
#+TITLE: Effects system in Clojure
#+Author: Yann Esposito
#+Date: [2020-12-23]
tags :: [[file:2020-05-26--06-16-14Z--clojure.org][clojure]]
source ::
Warning foreword. The Effect system (see type à la carte) from the Freer
Monad article takes in root in a precise definition.
Here the notion of Effect system will probably feel totally skewed from the
perspective of this article.
But I will talk about how to use the same ideas in a dynamicly typed
programming language. And in particular Clojure.
On a high level perspective the end goal of an Effect system is to be able
to write program such that the semantic of the program will depend on the
context the program is executed in.
So for example, let's say you write a program like this:
#+begin_src clojure
(defn user-logged-in [user-id]
(if-let [user (get-user user-id)]
(do
(log "user found!")
(update-last-time-logged user))
(throw {:error :user-not-found
:user-id user-id})))
#+end_src
Generally you expect every =*-action= to be a well defined function.
You can take a look at that function and see what code will be execute.
Within an effect system, you would be able to write something like this:
#+begin_src clojure
(with-effects
[logs-eff
db-eff]
(my-action))
(with-effects
[test-logs-eff
test-db-eff]
(my-action))
#+end_src
You can imagine that =logs-eff= and =db-eff= to be /Effects/ the first
could be used to write logs and the second one will be able to access a DB.
And in the second bloc =test-logs-eff= would be a completely pure
implementation of the =logs= and a fake =db= implementation.
So that way of writting your code is extremely appealing because it will
help a lot to test it.
Mainly you only need to change the list of effects used in your main
function and you will have the same code you will use in production to only
use pure effect. And thus will be completely reproductible and easy to test.
Effects systems while used in some languages (like Purescript, and some
libs exists in Haskell) does not really appear to be a very hot subject in
the Clojure community.
One of the reason might be because in Clojure the concepts and design space
is occupied with different existing solutions to a similar solution.
Mainly, compononent and trapperkeeper libraries for example.
Unlike effects, component and trapperkeeper have a few advantages.
I will not talk too much about component as I never used it.
So I will use trapperkeeper to explain myself.
One major advantage is the ability to describe dependecies between
different Effects in trapperkeeper.
Typically, one can simply imagine you would like to create an Effect to
handle the persistence of your Users.
It would seems natural that to provide an API to manipulate Users it will
need a DB related effect.
And thus you will also probably need to describe the fact that you need the
DB effect to be "ready" before being able to provide the User Effect.
So instead of talking about "Effects" we are talking about "Services".
They start, they stop and you can use functions they provide and the
services will take care about their internal state.
This has similarities with object oriented programming, but it sounds a lot
better to use this system in a functional programming context.
The generic pattern will be something like:
#+begin_src clojure
(defprotocol Protocol
(fn-of-protocol [this params]))
(defservice ServiceName
Protocol
[OtherService1
OtherService2]
(init [this context])
(start [this context])
(stop [this context])
(fn-of-protocol [this params]))
#+end_src
To start an application you just need to provide a list of instances of
services to start.
So in order to test with subbed services you can write the code of pure
fake services that expose an identical Protocol than the service you wish
to stub.
That's nice. But this is not 100% a positive outcome.
One issue is that as this is a completely dynamic language you will lose
all the static analysis tools you are used to.
Typically you pass the method of the services to your methods.
And thus you end up only using higher level functions in your code.
You are no more able to discover which function will be really used.
This is a feature of that effect system.

View file

@ -1,224 +0,0 @@
#+TITLE: We've got depression all wrong. It's trying to save us.
#+Author: Dr Escalante
#+Date: [2020-12-27]
- tags :: [[file:2020-07-01--07-25-51Z--psychology.org][psychology]]
- source :: https://www.psychologytoday.com/us/blog/shouldstorm/202012/we-ve-got-depression-all-wrong-it-s-trying-save-us
- ref :: https://news.ycombinator.com/item?id=25546043
* Weve Got Depression All Wrong. Its Trying to Save Us.
New theories recognize depression as part of a biological survival
strategy.
Posted Dec 22, 2020
For generations, we have seen depression as an illness, an unnecessary
deviation from normal functioning.
Its an idea that makes sense because depression causes suffering and even
death.
But what if weve got it all wrong?
What if depression is not an aberration at all, but an important part of
our biological defense system?
Depression is a courageous biological strategy to help us survive.
Source: ActionVance/Unsplash More and more researchers across specialties
are questioning our current definitions of depression.
Biological anthropologists have argued that depression is an adaptive
response to adversity and not a mental disorder.
In October, the British Psychological Society published a new report on
depression, stating that “depression is best thought of as an experience,
or set of experiences, rather than as a disease.”
And neuroscientists are focusing on the role of the autonomic nervous
system (ANS) in depression.
According to the Polyvagal Theory of the ANS, depression is part of a
biological defense strategy meant to help us survive.
The common wisdom is that depression starts in the mind with distorted
thinking.
That leads to "psychosomatic" symptoms like headaches, stomachaches, or
fatigue.
Now, models like the Polyvagal Theory suggest that weve got it backward.
Its the body that detects danger and initiates a defense strategy meant to
help us survive.
That biological strategy is called immobilization, and it manifests in the
mind and the body with a set of symptoms we call depression.
When we think of depression as irrational and unnecessary suffering, we
stigmatize people and rob them of hope.
But when we begin to understand that depression, at least initially,
happens for a good reason we lift the shame.
People with depression are courageous survivors, not damaged invalids.
Laura believes that depression saved her life.
Most of the time her father only hurt her with words, but it was when she
stood up to him that Lauras dad got dangerous.
Thats when hed get that vicious look in his eyes.
More than once his violence had put Lauras life at risk.
Lauras father was so perceptive, that he could tell when she felt
rebellious on the inside even when she was hiding it.
And he punished her for those feelings.
It was the depression that helped Laura survive.
Depression kept her head down, kept her from resisting, helped her accept
the unacceptable.
Depression numbed her rebellious feelings.
Laura grew up at a time where there was no one to tell, nowhere for her to
get help outside her home.
Her only strategy was to survive in place.
And she did.
article continues after advertisement Looking back, Laura does not regret
her childhood depression.
She values it.
Going through her own healing process and working with her therapist helped
her see how depression served her.
Lauras story is stark.
Its ugly.
And it helps us understand that even though depression may happen for a
good reason, that does not make it a good thing.
Laura suffered deeply and describes the pain of her hopelessness vividly.
Her depression was a bad experience that started as the last resort of a
good biological system.
* Depression starts with immobilization
According to the Polyvagal Theory, discovered and articulated by
neuroscientist Stephen Porges, our daily experience is based on a hierarchy
of states in the autonomic nervous system.
When the ANS feels safe, we experience a sense of well-being and social
connection.
Thats when we feel like ourselves.
But the autonomic nervous system is also constantly scanning our internal
and external environment for signs of danger.
If our ANS detects a threat or even a simple lack of safety, its next
strategy is the fight or flight response which we often feel as anxiety.
Sometimes the threat is so bad or goes on for so long, that the nervous
system decides there is no way to fight or to flee.
At that point, there is only one option left: immobilization.
The immobilization response is the original biological defense in higher
animals.
This is the shutdown response we see in reptiles.
Also known as the freeze or faint response, immobilization is mediated by
the dorsal vagus nerve.
It turns down the metabolism to a resting state, which often makes people
feel faint or sluggish.
Owlie Harring/Unsplash
The immobilization response dulls pain.
Source: Owlie Harring/Unsplash Immobilization has an important role.
It dulls pain and makes us feel disconnected.
Think of a rabbit hanging limply in the foxs mouth: that rabbit is
shutting down so it wont suffer too badly when the fox eats it.
And the immobilization response also has a metabolic effect, slowing the
metabolism and switching the body to ketosis.
Some doctors speculate that this metabolic state could help healing in
severe illness.
In humans, people often describe feeling "out of their bodies" during
traumatic events, which has a defensive effect of cushioning the emotional
shock.
This is important because some things are so terrible, we dont want people
to be fully present when they happen.
So the immobilization response is a key part of the biological defense, but
it is ideally designed to be short term.
Either the metabolic shut down preserves the organism, i.e.
the rabbit gets away, or the organism dies and the fox eats the rabbit.
But if the threat continues indefinitely and there is no way to fight or
flee, the immobilization response continues.
And since the response also changes brain activity, it impacts how peoples
emotions and their ability to solve problems.
People feel like they cant get moving physically or mentally, they feel
hopeless and helpless.
Thats depression.
* Does depression have value?
Its easy to see why Laura's childhood circumstances would set off the
immobilization response, and even how it might have helped her survive.
But why does it happen in people with less obvious adversity?
Our culture tends to think of depression in the person who finds work too
stressful as a sign of weakness.
Self-help articles imply that they just need more mental toughness and they
could lean in and solve it.
Even some therapists tell them that their depression is a distorted
perception of circumstances that arent so bad.
But that is not how the body sees it.
The defense responses in the autonomic nervous system, whether fight/flight
or immobilization are not about the actual nature of the trigger.
They are about whether this body decides there is a threat.
And that happens at a pre-conscious point.
The biological threat response starts before we think about it, and then
our higher-level brain makes up a story to explain it.
We dont get to choose this response; it happens before we even know it.
Studying anxiety has revealed that many modern circumstances can set off
the fight or flight response.
For instance, low rumbling noises from construction equipment sound to the
nervous system like the growl of a large predator.
Better run.
Or feeling like they are being evaluated at school removes kids' sense of
safety and triggers fight or flight.
Better give the teacher attitude or avoid homework.
And to most of us, fight or flight feels like anxiety.
Eventually, if these modern triggers last long enough, the body decides it
cant get away.
Next comes immobilization which the body triggers to defend us.
According to Porges, what we call depression is the cluster of emotional
and cognitive symptoms that sits on top of a physiological platform in the
immobilization response.
Its a strategy meant to help us survive; the body is trying to save us.
Depression happens for a fundamentally good reason.
And that changes everything.
When people who are depressed learn that they are not damaged, but have a
good biological system that is trying to help them survive, they begin to
see themselves differently.
After all, depression is notorious for the feelings of hopelessness and
helplessness.
But if depression is an active defense strategy, people may recognize they
are not quite so helpless as they thought.
* Shifting out of immobilization
If depression is the emotional expression of the immobilization response,
then the solution is to move out of that state of defense.
Porges believes it is not enough to simply remove the threat.
Rather, the nervous system has to detect robust signals of safety to bring
the social state back online.
The best way to do that?
Social connection.
One of the symptoms of depression is shame, a sense of having let other
people down or being unworthy to be with them.
When people are told that depression is an aberration, we are telling them
that they are not part of the tribe.
They are not right, they dont belong.
Thats when their shame deepens and they avoid social connection.
We have cut them off from the path that leads them out of depression.
It is time that we start honoring the courage and strength of depressed
people.
It is time we start valuing the incredible capacity of our biology to find
a way in hard times.
And it is time that we stop pretending depressed people are any different
than anyone else.
* References
- Porges, Stephen. (Apr 2009) The polyvagal theory:
New insights into adaptive reactions of the autonomic nervous system.
Cleve Clin J Med.
- Porges, Stephen. (Feb 2007) The polyvagal perspective
Biol Psychology.

View file

@ -1,23 +0,0 @@
#+Title: Journal (∆y=42.97 (15696))
#+STARTUP: showeverything
* Resumé Journée
| sommeil | 2/5 |
| activité | 2/5 |
| nourriture | 2/5 |
| interaction | 3/5 |
** Faits marquants
- Audrey et Jordan sont venu pour voir Krystelle aujourd'hui.
- Anna a sortie le chien avec Rose et Émerick
** Réflexions
** Découvertes
* 2020-02-24
** 09:45
- couché à 2h, reveil vers 7h30.
- Krystelle se reveille, m'a réveillé.
- mon humeur n'est pas au top
- sortie du chien en après que mon beau père l'ait sorti
- Je viens de prendre mon ordinateur pour commencer à travailler
** 23:29
Je suis en train de regarder "Le Congrès".
J'ai failli m'endormir, j'en profite pour écrire un mot ici.

View file

@ -1,25 +0,0 @@
-*- epa-file-encrypt-to: ("yann.esposito@gmail.com") -*-
#+Title: Journal (∆y=42.98 (15696))
#+Author: Yann Esposito
#+Date: [2020-02-25]
#+STARTUP: showeverything
* Resumé Journée
| sommeil | 5/5 | horrible -> comme un bébé |
| activité φ | 3/5 | au lit -> activité sportive |
| nourriture | 4/5 | malbouffe -> saine |
| humeur | 1/5 | exécrable -> excellente |
| interêt | 1/5 | habituel -> exceptionel |
- Faits marquants
- Résumé des discussions intéressantes
- Réflexions/Éssais
* 2020-02-25 Tuesday
:PROPERTIES:
:CREATED: 20200225
:END:
** 23:17 Fin de journée
*** Faits marquants
- reçu des mails de Filip pour Gridpocket, revente?
- Viktor potentiel nouveau de l'equipe dort en decalage constant de 25min
par jour

View file

@ -1,28 +0,0 @@
;; -*- epa-file-encrypt-to: ("yann.esposito@gmail.com") -*-
#+Title: Journal (∆y=42.98 (15698))
#+Author: Yann Esposito
#+Date: [2020-02-26]
#+STARTUP: showeverything
* Resumé Journée
| sommeil | 2/5 | horrible -> comme un bébé |
| activité φ | 2/5 | au lit -> activité sportive |
| nourriture | 4/5 | malbouffe -> saine |
| humeur | 2/5 | exécrable -> excellente |
| interêt | 2/5 | habituel -> exceptionel |
- Faits marquants
- reveil avec migraine
- Résumé des discussions intéressantes
- Réflexions/Éssais
* 2020-02-26 Wednesday
:PROPERTIES:
:CREATED: 20200226
:END:
** 23:04
Pas grand chose à raconter aujourd'hui.
Boulot: fait le support de PKCE pour le serveur OAuth2.
C'est plus sympa que l'ajout d'un workflow d'invitation.
C'est pas non plus super intéressant.

View file

@ -1,27 +0,0 @@
;; -*- epa-file-encrypt-to: ("yann.esposito@gmail.com") -*-
#+Title: Journal (∆y=42.98 (15699))
#+Author: Yann Esposito
#+Date: [2020-02-28]
#+STARTUP: showeverything
* Resumé Journée
| sommeil | 2/5 | horrible -> comme un bébé |
| activité φ | 1/5 | au lit -> activité sportive |
| nourriture | 3/5 | malbouffe -> saine |
| humeur | 4/5 | exécrable -> excellente |
| interêt | 3/5 | habituel -> exceptionel |
- Faits marquants
- mail pour la mutuelle aux elus du CE
- discussion whiskey Irlandais avec Yohan et ?
- Résumé des discussions intéressantes
- Réflexions/Éssais
* 2020-02-28 Friday
:PROPERTIES:
:CREATED: 20200228
:END:
** 23:39
Envoi du mail aux élus.
Pour une raison que je ne comprends pas bien meilleur moral aujourd'hui.
Demande d'aide pour taches bidon dans le salon au boulot.

View file

@ -1,21 +0,0 @@
;; -*- epa-file-encrypt-to: ("yann.esposito@gmail.com") -*-
#+Title: Journal (∆y=42.99 (15701))
#+Author: Yann Esposito
#+Date: [2020-03-01]
#+STARTUP: showeverything
* Resumé Journée
| sommeil | ?/5 | horrible -> comme un bébé |
| activité φ | ?/5 | au lit -> activité sportive |
| nourriture | ?/5 | malbouffe -> saine |
| humeur | ?/5 | exécrable -> excellente |
| interêt | ?/5 | habituel -> exceptionel |
- Faits marquants
- Résumé des discussions intéressantes
- Réflexions/Éssais
* 2020-03-01 Sunday
:PROPERTIES:
:CREATED: 20200301
:END:
** 00:22 Still looking at the Office

View file

@ -1,31 +0,0 @@
#+Title: Journal (∆y=42.99 (15703))
#+Author: Yann Esposito
#+Date: [2020-03-02]
#+STARTUP: showeverything
#+BIND: epa-file-encrypt-to "yann.esposito@gmail.com"
#+BIND: epa-file-select-keys nil
* Resumé Journée
| sommeil | 3/5 | horrible -> comme un bébé |
| activité φ | 2/5 | au lit -> activité sportive |
| nourriture | 3/5 | malbouffe -> saine |
| humeur | 3/5 | exécrable -> excellente |
| interêt | 1/5 | habituel -> exceptionel |
- Faits marquants
- Oslo est remonté sans laisse
- Résumé des discussions intéressantes
- Réflexions/Éssais
* 2020-03-02 Monday
:PROPERTIES:
:CREATED: 20200302
:END:
** 20:37
Sortie avec le chien.
#+NAME: Oslo près de la Bouillide
[[file:2020-03-02/IMG_3975.HEIC]]
Il est remonté sans laisse.
Pour Oslo c'est un petit exploit.

View file

@ -1,46 +0,0 @@
#+Title: Journal (∆y=43.00 (15706))
#+Author: Yann Esposito
#+Date: [2020-03-05]
#+STARTUP: showeverything
#+BIND: epa-file-encrypt-to "yann.esposito@gmail.com"
#+BIND: epa-file-select-keys nil
* Resumé Journée
| sommeil | 3/5 | horrible -> comme un bébé |
| activité φ | 3/5 | au lit -> activité sportive |
| nourriture | ?/5 | malbouffe -> saine |
| humeur | 3/5 | exécrable -> excellente |
| interêt | ?/5 | habituel -> exceptionel |
- Faits positifs
- C'est mon anniversaire
- Faits marquants
- Résumé des discussions intéressantes
- Réflexions/Éssais
* 2020-03-05 Thursday
:PROPERTIES:
:CREATED: 20200305
:END:
** 10:16
J'accompagne Krystelle pour sa radio.
Je prend un double expresso au café F&B Burger café.
Des jeunes du CIV sont aussi assis à coté de moi.
J'avoue que ça me peine de les voir si proche de moi et de savoir mon fils
faire un entraînement de sport à Marseille si loin de ce que je peux
comprendre.
Je me suis réveillé tôt, je ne me sentais pas trop mal.
Maintenant je me sens totallement épuisé.
Nerveusement, mais aussi mes muscles.
Je ne sais pas trop.
J'essaye de travailler au café.
Mais j'ai des problèmes de connection.
** 23:53
Fin de mon anniversaire.
Avec Krystelle nous avons mangé au Relais de la pinède, à Mouans Sartoux.
C'était un très bon restaurant, très agréable.
Dans l'après midi j'ai sorti le chien sous la pluie.
Mon manteau n'étais pas très étanche.
J'ai travaillé un petit peu, mais pas beaucoup.

Some files were not shown because too many files have changed in this diff Show more