C’est juste une longue liste de trucs lus ou à lire qui, peut-être un jour, me serviront. Mis à jour quand j’en ai envie.
Notions d’informatique
- Mainframe : https://en.wikipedia.org/wiki/Mainframe_computer
Notions de typage
- Bottom type : https://en.wikipedia.org/wiki/Bottom_type
- Duck typing : https://stackoverflow.com/questions/4205130/what-is-duck-typing
- Expression problem : https://homepages.inf.ed.ac.uk/wadler/papers/expression/expression.txt
- Gradual typing : https://wphomes.soic.indiana.edu/jsiek/what-is-gradual-typing/
- Manifest typing : https://en.wikipedia.org/wiki/Manifest_typing
- Nominal and structural typing : https://www.typescriptlang.org/play/?#example/nominal-typing
- Quasi-static typing : https://dl.acm.org/doi/10.1145/96709.96747
- Top type : https://en.wikipedia.org/wiki/Top_type
Notions bas niveau
- Concurrency vs Parallelism : https://blog.heroku.com/concurrency_is_not_parallelism
- Cooperative multitasking : https://en.wikipedia.org/wiki/Cooperative_multitasking
- Coroutine : https://en.wikipedia.org/wiki/Coroutine
- Futex (Fast Userspace Mutex) : https://www.akkadia.org/drepper/futex.pdf
- NX bit : https://en.wikipedia.org/wiki/NX_bit
- RTC (Run-to-completion) : https://en.wikipedia.org/wiki/Run_to_completion_scheduling
- Preemptive multitasking : https://en.wikipedia.org/wiki/Preemption_(computing)
- Spinlock : https://en.wikipedia.org/wiki/Spinlock
- Torn reads with cache coherence : https://stackoverflow.com/a/64602926
- Watchdog timer : https://en.wikipedia.org/wiki/Watchdog_timer
Notions de programmation fonctionnelle
- Continuation Passing Style : https://matt.might.net/articles/by-example-continuation-passing-style/
Architecture logicielle
- Observer Synchronization : https://martinfowler.com/eaaDev/MediatedSynchronization.html
- Presentation Domain Data Layering : https://martinfowler.com/bliki/PresentationDomainDataLayering.html
- Saga : https://microservices.io/patterns/data/saga.html
Conventions de code
- Convention over configuration : https://en.wikipedia.org/wiki/Convention_over_configuration
- Hungarian Notation : https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-6.0/aa260976(v=vs.60)?redirectedfrom=MSDN
- The Power of 10 (C) : https://en.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Developing_Safety-Critical_Code
- Zen of Python (Python) : https://en.wikipedia.org/wiki/Zen_of_Python
Techniques de programmation
- Duff’s device (C) : https://en.wikipedia.org/wiki/Duff’s_device
- Pigeon’s device (C) : http://pigeonsnest.co.uk/stuff/pigeons-device.html
Sécurité appliquée à la programmation Web
- Hop-by-hop HTTP header : https://0xn3va.gitbook.io/cheat-sheets/web-application/abusing-http-hop-by-hop-request-headers
- XXE Injection : https://book.hacktricks.xyz/pentesting-web/xxe-xee-xml-external-entity
Javascript
- Automatic Semicolon Insertion : https://262.ecma-international.org/7.0/#sec-rules-of-automatic-semicolon-insertion
call/cc
in Javascript : https://martin-henz.github.io/martin-henz/2022/05/02/ece-with-call-cc.html- Labeled statement : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label
- Opérateur d’exponentation : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/Exponentiation
- Shared memory and atomics : https://exploringjs.com/es2016-es2017/ch_shared-array-buffer.html
- Syntactic Tail Calls : https://github.com/tc39/proposal-ptc-syntax
- Tagged templates : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates
- Tail calls elimination in V8 status : https://chromestatus.com/feature/5516876633341952
- Test262 : https://github.com/tc39/test262
- Trampoline computing : https://stackoverflow.com/a/27704484/6608382
- (ES262 Stage 2.7) ShadowRealm : https://github.com/tc39/proposal-shadowrealm
- (ES262 Stage 3) Temporal : https://github.com/tc39/proposal-temporal
Python
- GIL (Global Interpreter Lock) : https://realpython.com/python-gil/
Outils de sécurité
- HackTricks (doc) : https://book.hacktricks.xyz/
- nginxpwner : https://github.com/stark0de/nginxpwner