-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c0c2770
commit 7bb77f9
Showing
11 changed files
with
95 additions
and
160 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
## How Things Work | ||
|
||
- [Behind "Hello World" on Linux](https://jvns.ca/blog/2023/08/03/behind--hello-world/) | ||
- [Putting the “You” in CPU](https://cpu.land/) | ||
- [How Browsers Work](https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work) | ||
- [How do open source solutions for logs work](https://itnext.io/how-do-open-source-solutions-for-logs-work-elasticsearch-loki-and-victorialogs-9f7097ecbc2f) | ||
- [What happens when you run 'Hello, world'](https://jvns.ca/blog/2013/11/29/what-happens-when-you-run-a-unix-program/) | ||
- [What happens when you press a key in your terminal?](https://jvns.ca/blog/2022/07/20/pseudoterminals/) | ||
- [What happens when you load a URL?](https://danluu.com/navigate-url/) | ||
- [What happens when a CPU starts](https://lateblt.tripod.com/bit68.txt) | ||
- [What happens when you start a process on Linux?](https://jvns.ca/blog/2016/10/04/exec-will-eat-your-brain/) | ||
- [What happens when you update your DNS?](https://jvns.ca/blog/how-updating-dns-works/) | ||
- [What happens when...](https://github.com/alex/what-happens-when) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,38 +1,14 @@ | ||
## Inter-Process Communication (IPC) | ||
|
||
- [Inter-Process Communication in a Microservices Architecture](https://www.nginx.com/blog/building-microservices-inter-process-communication/) | ||
- Approaches: | ||
- Legacy Technologies: | ||
- Simple Object Access Protocol (SOAP) | ||
- Remote Method Invocation (RMI) | ||
- Common Object Request Broker Architecture (CORBA) | ||
- Synchronous Communication: | ||
- Representational state transfer ([REST](https://www.restapitutorial.com/)) | ||
- [GraphQL](https://training.linuxfoundation.org/training/exploring-graphql-a-query-language-for-apis-lfs141/?utm_source=lftraining&utm_medium=twitter&utm_campaign=mooc) | ||
- [gRPC](https://grpc.io/docs/what-is-grpc/introduction/) | ||
- [Falcor](https://netflix.github.io/falcor/starter/what-is-falcor.html) | ||
- Asynchronous Communication: | ||
- Message Queues | ||
- Publish-Subscribe Pattern | ||
- Protocols: | ||
- Sockets: | ||
- Network Sockets: | ||
- TCP | ||
- [HTTP/1, HTTP/2 and HTTP/3](https://medium.com/@sandeep-verma/http-1-to-http-2-to-http-3-647e73df67a8) | ||
- [HTTP/3 explained](https://http3-explained.haxx.se/) | ||
Real-time communication protocols: | ||
- [Full-duplex HTTP Streaming](https://datatracker.ietf.org/doc/html/draft-zhu-http-fullduplex-08) | ||
- WebSockets | ||
- [Server-Sent Events (SSE)](https://en.wikipedia.org/wiki/Server-sent_events) | ||
- [WebTransport](https://developer.chrome.com/docs/capabilities/web-apis/webtransport#whats_webtransport) | ||
- [WebRTC](https://webrtcforthecurious.com/) | ||
- [UDP | ||
- Unix Domain Sockets | ||
- Messaging: | ||
- AMQP | ||
- MQTT | ||
- STOMP | ||
- [An introduction to APIs](https://zapier.com/resources/guides/apis) | ||
- [Difference between SPI and API](https://stackoverflow.com/questions/2954372/difference-between-spi-and-api) | ||
- [Gough et al., Mastering API Architecture](https://www.oreilly.com/library/view/mastering-api-architecture/9781492090625/) | ||
- [The HTTP crash course nobody asked for](https://fasterthanli.me/articles/the-http-crash-course-nobody-asked-for) | ||
- [Mediocre Engineer’s guide to HTTPS](https://devonperoutky.super.site/blog-posts/mediocre-engineers-guide-to-https) | ||
- [The perils of the "real" client IP](https://adam-p.ca/blog/2022/03/x-forwarded-for/) | ||
- [Developers don't understand CORS](https://fosterelli.co/developers-dont-understand-cors) | ||
- [You don't need that CORS request](https://nickolinger.com/blog/2021-08-04-you-dont-need-that-cors-request/) | ||
- [Understanding "same-site" and "same-origin"](https://web.dev/same-site-same-origin/) | ||
- [Roy Fielding's Misappropriated REST Dissertation](https://twobithistory.org/2020/06/28/rest.html) | ||
- [Zalando RESTful API and Event Guidelines](https://opensource.zalando.com/restful-api-guidelines/) | ||
- [Standards.REST](https://standards.rest/) | ||
- [List of HTTP status codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) | ||
- [The HTTP QUERY Method](https://www.ietf.org/archive/id/draft-ietf-httpbis-safe-method-w-body-02.html) | ||
- [Free Public APIs for Developers](https://rapidapi.com/collection/list-of-free-apis) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,121 +1,32 @@ | ||
## Best Practices, Common Pitfalls, Curious Stuff & Basic Things You Should Know | ||
## Miscellanea | ||
|
||
- Git: | ||
- [Oh Shit, Git!?!](https://ohshitgit.com/) | ||
- [Confusing git terminology](https://jvns.ca/blog/2023/11/01/confusing-git-terminology/) | ||
- [How to Write a Git Commit Message](https://cbea.ms/git-commit/) | ||
- [Organizing multiple Git identities](https://garrit.xyz/posts/2023-10-13-organizing-multiple-git-identities) | ||
- [Conditional Git Configuration](https://blog.scottlowe.org/2023/12/15/conditional-git-configuration/) | ||
- [Conventional Commits](https://www.conventionalcommits.org) | ||
- Shell Scripting | ||
- [Shell Script Best Practices](https://sharats.me/posts/shell-script-best-practices/) | ||
- Characters: | ||
- [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)](https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/) | ||
- [The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!)](https://tonsky.me/blog/unicode/) | ||
- [The Great Newline Schism](https://blog.codinghorror.com/the-great-newline-schism/) | ||
- [ASCII Table](https://www.freecodecamp.org/news/ascii-table-hex-to-ascii-value-character-code-chart-2/) | ||
- [Invisible characters](https://invisible-characters.com/) | ||
- [You can't just assume UTF-8](https://csvbase.com/blog/9) | ||
- Internationalization and localization (i18n) | ||
- [PO Files](https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html) | ||
- Dates: | ||
- [UTC is enough for everyone... right?](https://zachholman.com/talk/utc-is-enough-for-everyone-right) | ||
- [Storing UTC is not a silver bullet](https://codeblog.jonskeet.uk/2019/03/27/storing-utc-is-not-a-silver-bullet/) | ||
- [Designing a REST API: Unix time vs ISO-8601](https://nickb.dev/blog/designing-a-rest-api-unix-time-vs-iso-8601) | ||
- Numbers: | ||
- [Bit Math](https://docs.arduino.cc/learn/programming/bit-math) | ||
- [Floating Point Math](https://0.30000000000000004.com/) | ||
- [Float Toy](https://evanw.github.io/float-toy/) | ||
- [Onboarding floating-point](https://www.altdevarts.com/p/onboarding-floating-point?r=yknp0&utm_campaign=post&utm_medium=web) | ||
- RegEx: | ||
- [How to Find or Validate an Email Address](https://www.regular-expressions.info/email.html) | ||
- [Possessive Quantifiers](https://www.regular-expressions.info/possessive.html) | ||
- OS Interoperability: | ||
- [A Guide to POSIX](https://www.baeldung.com/linux/posix) | ||
- [Use the XDG Base Directory Specification!](https://xdgbasedirectoryspecification.com/) | ||
- Linux: | ||
- [Optimizing Linux for Slow Computers](https://www.akitaonrails.com/2017/01/17/optimizing-linux-for-slow-computers) | ||
- [Linux Hardening Guide](https://madaidans-insecurities.github.io/guides/linux-hardening.html#choosing-the-right-distro) | ||
- CLI: | ||
- [Command Line Interface Guidelines](https://clig.dev/) | ||
- ["Rules" that terminal programs follow](https://jvns.ca/blog/2024/11/26/terminal-rules/) | ||
- HTTP: | ||
- [The perils of the "real" client IP](https://adam-p.ca/blog/2022/03/x-forwarded-for/) | ||
- [The HTTP crash course nobody asked for](https://fasterthanli.me/articles/the-http-crash-course-nobody-asked-for) | ||
- [Mediocre Engineer’s guide to HTTPS](https://devonperoutky.super.site/blog-posts/mediocre-engineers-guide-to-https) | ||
- CORS: | ||
- [Developers don't understand CORS](https://fosterelli.co/developers-dont-understand-cors) | ||
- [You don't need that CORS request](https://nickolinger.com/blog/2021-08-04-you-dont-need-that-cors-request/) | ||
- [Understanding "same-site" and "same-origin"](https://web.dev/same-site-same-origin/) | ||
- REST APIs: | ||
- [OpenAPI Specification](https://www.openapis.org) | ||
- [Roy Fielding's Misappropriated REST Dissertation](https://twobithistory.org/2020/06/28/rest.html) | ||
- [Best Practices for Designing a Pragmatic RESTful API](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api) | ||
- [Zalando RESTful API and Event Guidelines](https://opensource.zalando.com/restful-api-guidelines/) | ||
- [Standards.REST](https://standards.rest/) | ||
- [List of HTTP status codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) | ||
- [The HTTP QUERY Method](https://www.ietf.org/archive/id/draft-ietf-httpbis-safe-method-w-body-02.html) | ||
- Web: | ||
- [To www or not to www - Should you use www or not in your domain?](https://www.bjornjohansen.com/www-or-not) | ||
- [Making Websites Small](https://santurcesoftware.com/making-web-sites-small) | ||
- Browser: | ||
- [67 Weird Debugging Tricks Your Browser Doesn't Want You to Know](https://alan.norbauer.com/articles/browser-debugging-tricks) | ||
- Containers: | ||
- [Best practices for writing Dockerfiles](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/) | ||
- [Attack of the mutant tags!. Or why tag mutability is a real security threat](https://sysdig.com/blog/toctou-tag-mutability/) | ||
- [Container security best practices: Comprehensive guide](https://sysdig.com/blog/container-security-best-practices/) | ||
- Distributed Systems: | ||
- [Don't start with microservices - monoliths are your friend](https://arnoldgalovics.com/microservices-in-production/) | ||
- [Fallacies of Distributed Systems](https://architecturenotes.co/fallacies-of-distributed-systems/) | ||
- [You Are Not Google](https://blog.bradfieldcs.com/you-are-not-google-84912cf44afb) | ||
- [Microservices and the Big Ball of Mud](https://www.infoq.com/news/2014/08/microservices_ballmud/) | ||
- [Architecture Antipatterns](https://architecture-antipatterns.tech/) | ||
- Networks: | ||
- [ICMP, Ping, and Traceroute - What I Wish I Was Taught](https://xkln.net/blog/icmp-ping-and-traceroute--what-i-wish-i-was-taught/) | ||
- [How to Hide Your IP Address](https://educatedguesswork.org/posts/traffic-relaying/) | ||
- Memory: | ||
- [What Every Programmer Should Know About Memory](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf) | ||
- [Memory Management Every Developer Should Know](https://webdeveloper.beehiiv.com/p/memory-management-every-programmer-know) | ||
- [Exploring How Cache Memory Really Works](https://pikuma.com/blog/understanding-computer-cache) | ||
- Performance: | ||
- [Latency Numbers Every Programmer Should Know](https://samwho.dev/numbers/) | ||
- [Good performance is not just big O](https://jmmv.dev/2023/09/performance-is-not-big-o.html) | ||
- [Do you know how much your computer can do in a second?](https://computers-are-fast.github.io/?utm_source=substack&utm_medium=email) | ||
- Data Compression: | ||
- [Zip Files: History, Explanation and Implementation](https://www.hanshq.net/zip.html) | ||
- [The Log: What every software engineer should know about real-time data's unifying abstraction](https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying) | ||
- Laws, Principles and Mantra: | ||
- [Programming Principles](https://java-design-patterns.com/principles/) | ||
- [The Law of Leaky Abstractions](https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/) | ||
- [Conway's law](https://en.wikipedia.org/wiki/Conway%27s_law) | ||
- [Make It Work Make It Right Make It Fast](https://wiki.c2.com/?MakeItWorkMakeItRightMakeItFast) | ||
- What Happens When: | ||
- [What happens when you run 'Hello, world'](https://jvns.ca/blog/2013/11/29/what-happens-when-you-run-a-unix-program/) | ||
- [What happens when you press a key in your terminal?](https://jvns.ca/blog/2022/07/20/pseudoterminals/) | ||
- [What happens when you load a URL?](https://danluu.com/navigate-url/) | ||
- [What happens when a CPU starts](https://lateblt.tripod.com/bit68.txt) | ||
- [What happens when you start a process on Linux?](https://jvns.ca/blog/2016/10/04/exec-will-eat-your-brain/) | ||
- [What happens when you update your DNS?](https://jvns.ca/blog/how-updating-dns-works/) | ||
- [What happens when...](https://github.com/alex/what-happens-when) | ||
- [Behind "Hello World" on Linux](https://jvns.ca/blog/2023/08/03/behind--hello-world/) | ||
- How Things Work: | ||
- [Putting the “You” in CPU](https://cpu.land/) | ||
- [How Browsers Work](https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work) | ||
- [How do open source solutions for logs work](https://itnext.io/how-do-open-source-solutions-for-logs-work-elasticsearch-loki-and-victorialogs-9f7097ecbc2f) | ||
- Hard Stuff: | ||
- [Hard things in Computer Science](https://blog.frankel.ch/hard-things-computer-science/) | ||
- [How to name things: the hardest problem in programming](https://www.slideshare.net/pirhilton/how-to-name-things-the-hardest-problem-in-programming) | ||
- [Files are Hard](https://danluu.com/file-consistency/) | ||
- [Text Rendering Hates You](https://faultlore.com/blah/text-hates-you/) | ||
- [Text Editing Hates You Too](https://lord.io/text-editing-hates-you-too/) | ||
- [Hardest Problem in Computer Science: Centering Things](https://tonsky.me/blog/centering/) | ||
- CS Theory: | ||
- [Great Ideas in Theoretical Computer Science](https://www.cs251.com/) | ||
- [Turing Machines](https://samwho.dev/turing-machines/) | ||
- Miscellanea: | ||
- [Quantum computing for the very curious](https://quantum.country/qcvc) | ||
- [What scientists must know about hardware to write fast code](https://viralinstruction.com/posts/hardware/) | ||
- [Why do arrays start at 0?](https://buttondown.email/hillelwayne/archive/why-do-arrays-start-at-0/) | ||
- [Do you know how much your computer can do in a second?](https://computers-are-fast.github.io/) | ||
- [A few facts about POSIX](https://vorakl.com/articles/posix/) | ||
- [A Visual Comparison of Different National Layouts on a Computer Keyboard](https://www.farah.cl/Keyboardery/A-Visual-Comparison-of-Different-National-Layouts) | ||
- [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)](https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/) | ||
- [The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!)](https://tonsky.me/blog/unicode/) | ||
- [The Great Newline Schism](https://blog.codinghorror.com/the-great-newline-schism/) | ||
- [ASCII Table](https://www.freecodecamp.org/news/ascii-table-hex-to-ascii-value-character-code-chart-2/) | ||
- [Invisible characters](https://invisible-characters.com/) | ||
- [You can't just assume UTF-8](https://csvbase.com/blog/9) | ||
- [PO Files](https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html) | ||
- [UTC is enough for everyone... right?](https://zachholman.com/talk/utc-is-enough-for-everyone-right) | ||
- [Storing UTC is not a silver bullet](https://codeblog.jonskeet.uk/2019/03/27/storing-utc-is-not-a-silver-bullet/) | ||
- [Designing a REST API: Unix time vs ISO-8601](https://nickb.dev/blog/designing-a-rest-api-unix-time-vs-iso-8601) | ||
- [How to Find or Validate an Email Address](https://www.regular-expressions.info/email.html) | ||
- [Possessive Quantifiers](https://www.regular-expressions.info/possessive.html) | ||
- [Use the XDG Base Directory Specification!](https://xdgbasedirectoryspecification.com/) | ||
|
||
- [Zip Files: History, Explanation and Implementation](https://www.hanshq.net/zip.html) | ||
- [Programming Principles](https://github.com/webpro/programming-principles) | ||
- [The Law of Leaky Abstractions](https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/) | ||
- [Conway's law](https://en.wikipedia.org/wiki/Conway%27s_law) | ||
- [Make It Work Make It Right Make It Fast](https://wiki.c2.com/?MakeItWorkMakeItRightMakeItFast) | ||
- [Hard Things in Computer Science](https://blog.frankel.ch/hard-things-computer-science/) | ||
- [How to name things: the hardest problem in programming](https://www.slideshare.net/pirhilton/how-to-name-things-the-hardest-problem-in-programming) | ||
- [Files are Hard](https://danluu.com/file-consistency/) | ||
- [Hardest Problem in Computer Science: Centering Things](https://tonsky.me/blog/centering/) | ||
- [Text Rendering Hates You](https://faultlore.com/blah/text-hates-you/) | ||
- [Text Editing Hates You Too](https://lord.io/text-editing-hates-you-too/) | ||
- [Turing Machines](https://samwho.dev/turing-machines/) | ||
- [Quantum computing for the very curious](https://quantum.country/qcvc) | ||
- [Why do arrays start at 0?](https://buttondown.email/hillelwayne/archive/why-do-arrays-start-at-0/) | ||
- [A few facts about POSIX](https://vorakl.com/articles/posix/) | ||
- [A Visual Comparison of Different National Layouts on a Computer Keyboard](https://www.farah.cl/Keyboardery/A-Visual-Comparison-of-Different-National-Layouts) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.