Skip to content

Commit

Permalink
feat: more links
Browse files Browse the repository at this point in the history
  • Loading branch information
matoous committed Mar 12, 2024
1 parent 07b3cc9 commit 8a3aa56
Show file tree
Hide file tree
Showing 15 changed files with 61 additions and 39 deletions.
2 changes: 1 addition & 1 deletion computer_science/DevOps.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,4 @@
- [A conversation about how to enable high-velocity DevOps culture at your organization](https://stackoverflow.blog/2021/12/13/a-conversation-about-how-to-enable-high-velocity-devops-culture-at-your-organization/)
- [90DaysOfDevOps](https://github.com/MichaelCade/90DaysOfDevOps) - better foundational knowledge of DevOps in 90 short lessons
- [State of DevOps 2021](https://services.google.com/fh/files/misc/state-of-devops-2021.pdf)

- [2023 State of DevOps Report: Culture is everything](https://cloud.google.com/blog/products/devops-sre/announcing-the-2023-state-of-devops-report)
3 changes: 2 additions & 1 deletion computer_science/architecture.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Architecture

**Entity component system** - Entity Component System is a software architectural pattern mostly used in video game development for the representation of game world objects. An ECS comprises entities composed from components of data, with systems which operate on entities' components.
- [**Entity component system**](https://en.wikipedia.org/wiki/Entity_component_system) is a software architectural pattern mostly used in video game development for the representation of game world objects. An ECS comprises entities composed from components of data, with systems which operate on entities' components.
- [**Hexagonal architecture**](https://en.wikipedia.org/wiki/Hexagonal_architecture_(software)) is an architectural pattern used in software design. It aims at creating loosely coupled application components that can be easily connected to their software environment by means of ports and adapters. This makes components exchangeable at any level and facilitates test automation.

## Resources

Expand Down
1 change: 1 addition & 0 deletions computer_science/command_line/nix.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@
- [Tutorial: Getting started with Home Manager for Nix](https://ghedam.at/24353/tutorial-getting-started-with-home-manager-for-nix)
- [Using Nix on macOS](https://checkoway.net/musings/nix/) by Stephen Checkoway
- [Using Nix to install Go tools for VS Code](https://mgdm.net/weblog/vscode-nix-go-tools/) by Michael Maclean
- [Searching and installing old versions of Nix packages](https://lazamar.github.io/download-specific-package-version-with-nix/)
34 changes: 0 additions & 34 deletions computer_science/computer_science.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,5 @@
# Computer Science

- [OSI Model](https://www.cloudflare.com/en-gb/learning/ddos/glossary/open-systems-interconnection-model-osi/)
1. Physical layer
2. Data link layer
3. Network layer
4. Transport layer
5. Session layer
6. Presentation layer
7. Application layer

- **Cross-Cutting Concerns** - Cross-cutting concerns are things that affect many parts of a product. And are hard to separate. For example, monitoring and alerting the health of the services.

- [The Cathedral and the Bazaar](https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar)
- Every good work of software starts by scratching a developer's personal itch.
- Good programmers know what to write. Great ones know what to rewrite (and reuse). (edit: _"What not to write"_)
- Plan to throw one [version] away; you will, anyhow (copied from Frederick Brooks's [The Mythical Man-Month](https://en.wikipedia.org/wiki/The_Mythical_Man-Month)).
- If you have the right attitude, interesting problems will find you.
- When you lose interest in a program, your last duty to it is to hand it off to a competent successor.
- Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
- [Release early. Release often.](https://en.wikipedia.org/wiki/Release_early,_release_often) And listen to your customers.
- Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.
- Smart data structures and dumb code works a lot better than the other way around.
- If you treat your beta-testers as if they're your most valuable resource, they will respond by becoming your most valuable resource.
- The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.
- Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.
- Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away. (attributed to [Antoine de Saint-Exupéry](https://en.wikipedia.org/wiki/Antoine_de_Saint-Exup%C3%A9ry))
- Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
- When writing gateway software of any kind, take pains to disturb the data stream as little as possible—and never throw away information unless the recipient forces you to!
- A security system is only as secure as its secret. Beware of pseudo-secrets.
- To solve an interesting problem, start by finding a problem that is interesting to you.
- Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.

## Dictionary

- [YAGNI](https://wiki.c2.com/?YouArentGonnaNeedIt) - You Aren't Gonna Need It

## Books

Expand Down
3 changes: 2 additions & 1 deletion computer_science/data.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Data

- [**Extract, transform, load**](https://en.wikipedia.org/wiki/Extract,_transform,_load) is a three-phase process where data is extracted, transformed (cleaned, sanitized, scrubbed) and loaded into an output data container. The data can be collated from one or more sources and it can also be output to one or more destinations. ETL processing is typically executed using software applications but it can also be done manually by system operators. ETL software typically automates the entire process and can be run manually or on reccurring schedules either as single jobs or aggregated into a batch of jobs.

## Resources

- [Flat Data](https://octo.github.com/projects/flat-data) - bringing working datasets into your repositories and versioning them
- [The sad state of personal data and infrastructure](https://beepb00p.xyz/sad-infra.html#exports)

1 change: 1 addition & 0 deletions computer_science/developer_experience.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@
- [Developer Experience Infrastructure (DXI)](https://kenneth.io/post/developer-experience-infrastructure-dxi)
- [What is Developer Experience? a roundup of links and goodness](https://redmonk.com/jgovernor/2022/02/21/what-is-developer-experience-a-roundup-of-links-and-goodness/)
- [The ultimate guide to developer experience](https://www.swarmia.com/blog/developer-experience-what-why-how/?utm_campaign=Pointer&utm_source=email&utm_medium=cpv&utm_content=july23)
- [DevEx: What Actually Drives Productivity](https://queue.acm.org/detail.cfm?id=3595878)
1 change: 1 addition & 0 deletions computer_science/dns.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
- [Why do domain names sometimes end with a dot?](https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/)
- [Why is DNS still hard to learn?](https://jvns.ca/blog/2023/07/28/why-is-dns-still-hard-to-learn/)
- [Implement DNS in a weekend](https://implement-dns.wizardzines.com)
- [The Top of the DNS Hierarchy](https://computer.rip/2024-02-11-the-top-of-the-DNS-hierarchy.html)
31 changes: 30 additions & 1 deletion computer_science/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,43 @@

## Dictionary

- [YAGNI](https://wiki.c2.com/?YouArentGonnaNeedIt) - You Aren't Gonna Need It
- [**YAGNI**](https://wiki.c2.com/?YouArentGonnaNeedIt) - You Aren't Gonna Need It
- [**Read-copy-update**](https://en.wikipedia.org/wiki/Read-copy-update) (RCU) is a synchronization mechanism that avoids the use of lock primitives while multiple threads concurrently read and update elements that are linked through pointers and that belong to shared data structures (e.g., linked lists, trees, hash tables).
- [**OSI Model**](https://en.wikipedia.org/wiki/OSI_model), [What is the OSI Model?](https://www.cloudflare.com/en-gb/learning/ddos/glossary/open-systems-interconnection-model-osi/)
1. Physical layer
2. Data link layer
3. Network layer
4. Transport layer
5. Session layer
6. Presentation layer
7. Application layer
- **Cross-Cutting Concerns** - Cross-cutting concerns are things that affect many parts of a product. And are hard to separate. For example, monitoring and alerting the health of the services.

## Books

* [Computer Science Readings](https://github.com/erikgrinaker/readings)
* [A list of computer-science readings I recommend](https://github.com/amilajack/reading) - _by Amila Welihinda_
* [Ask HN: What book to read to get a footing in CS theory?](https://news.ycombinator.com/item?id=20729252)
* [Ask HN: What are the most fundamental books on computer science?](https://news.ycombinator.com/item?id=21311302)
- [The Cathedral and the Bazaar](https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar)
- Every good work of software starts by scratching a developer's personal itch.
- Good programmers know what to write. Great ones know what to rewrite (and reuse). (edit: _"What not to write"_)
- Plan to throw one [version] away; you will, anyhow (copied from Frederick Brooks's [The Mythical Man-Month](https://en.wikipedia.org/wiki/The_Mythical_Man-Month)).
- If you have the right attitude, interesting problems will find you.
- When you lose interest in a program, your last duty to it is to hand it off to a competent successor.
- Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
- [Release early. Release often.](https://en.wikipedia.org/wiki/Release_early,_release_often) And listen to your customers.
- Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.
- Smart data structures and dumb code works a lot better than the other way around.
- If you treat your beta-testers as if they're your most valuable resource, they will respond by becoming your most valuable resource.
- The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.
- Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.
- Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away. (attributed to [Antoine de Saint-Exupéry](https://en.wikipedia.org/wiki/Antoine_de_Saint-Exup%C3%A9ry))
- Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
- When writing gateway software of any kind, take pains to disturb the data stream as little as possible—and never throw away information unless the recipient forces you to!
- A security system is only as secure as its secret. Beware of pseudo-secrets.
- To solve an interesting problem, start by finding a problem that is interesting to you.
- Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.

## Services

Expand Down
1 change: 1 addition & 0 deletions computer_science/languages/golang.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,4 @@
- [Profiling Go Programs](https://benchkram.de/blog/dev/profiling-go-programs)
- [Case Study: Algorithmic Trading With Go](https://polygon.io/blog/case-study-algorithmict-trading-with-go/)
- [How to start a Go project in 2023](https://boyter.org/posts/how-to-start-go-project-2023/)
- [Running the “Reflections on Trusting Trust” Compiler ](https://research.swtch.com/nih) by [Russ Cox](https://swtch.com/~rsc/) on [Reflections on Trusting Trust](https://dl.acm.org/doi/pdf/10.1145/358198.358210) by [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson)
6 changes: 6 additions & 0 deletions computer_science/search_engines.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,9 @@
- [A look at search engines with their own indexes](https://seirdy.one/posts/2021/03/10/search-engines-with-own-indexes/)
- [Almost all searches on my independent search engine are now from SEO spam bots](https://blog.searchmysite.net/posts/almost-all-searches-on-my-independent-search-engine-are-now-from-seo-spam-bots/)
- [PruningRadixTrie](https://github.com/wolfgarbe/PruningRadixTrie)

## Resources

- [The small web is beautiful](https://benhoyt.com/writings/the-small-web-is-beautiful/)
- [Rediscovering the Small Web](https://neustadt.fr/essays/the-small-web/)
- [What is the Small Web?](https://ar.al/2020/08/07/what-is-the-small-web/)
7 changes: 7 additions & 0 deletions computer_science/security/auth.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Auth

## OAuth2

- [RFC 9126 - OAuth 2.0 Pushed Authorization Requests](https://datatracker.ietf.org/doc/html/rfc9126)
- [RFC 9449 - OAuth 2.0 Demonstrating Proof of Possession (DPoP)](https://datatracker.ietf.org/doc/html/rfc9449)
- [RFC 7591 - OAuth 2.0 Dynamic Client Registration Protocol](https://www.rfc-editor.org/rfc/rfc7591.html)
- [RFC 8417 - Security Event Token (SET)](https://datatracker.ietf.org/doc/html/rfc8417)

## Resources

- [Basic HTTP Auth via Cloudflare Workers](https://github.com/dommmel/cloudflare-workers-basic-auth) - Can be used to protect static HTML pages.
Expand Down
1 change: 1 addition & 0 deletions life/life.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,4 @@
- [Effective Spaced Repetition](https://borretti.me/article/effective-spaced-repetition) #memory #life
- [Scholarsome](https://github.com/hwgilbert16/scholarsome) - an open source system for flashcard sutyding
- [The Ultimate Deliberate Practice Guide: How to Be the Best](https://fs.blog/deliberate-practice-guide/)
- [What I Wish Someone Had Told Me](https://blog.samaltman.com/what-i-wish-someone-had-told-me) by [Sam Altman](https://en.wikipedia.org/wiki/Sam_Altman)
6 changes: 5 additions & 1 deletion life/productivity.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@

- [Maker's schedule](http://www.paulgraham.com/makersschedule.html)
- maker's need larger units of time (half a day or so), meetings can blow their whole afternoon by breaking their flow.
- [Productivity by Sam Altman](https://blog.samaltman.com/productivity)
- [Productivity](https://blog.samaltman.com/productivity) by Sam Altman
> Compound growth gets discussed as a financial concept, but it works in careers as well, and it is magic. A small productivity gain, compounded over 50 years, is worth a lot. So it’s worth figuring out how to optimize productivity. If you get 10% more done and 1% better every day compared to someone else, the compounded difference is massive.
- What you work on
- Three key pillars: “Make sure to get the important shit done”, “Don’t waste time on stupid shit”, and “make a lot of lists”.
- [Why Procrastinators Procrastinate](https://waitbutwhy.com/2013/10/why-procrastinators-procrastinate.html)
- [Alexey Guzey on productivity](https://guzey.com/productivity/)
- [My productivity app for the past 12 years has been a single .txt file](https://news.ycombinator.com/item?id=22276184)
Expand Down
2 changes: 2 additions & 0 deletions work/career.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@
- "Do I want to maintain this?"
- [The surprising connection between after-hours work and decreased productivity](https://slack.com/blog/news/the-surprising-connection-between-after-hours-work-and-decreased-productivity)
- [Readability: Google's Temple to Engineering Excellence](https://www.moderndescartes.com/essays/readability/)
- [Software Engineering at Google](https://abseil.io/resources/swe-book/html/toc.html)
- [Knowledge Sharing](https://abseil.io/resources/swe-book/html/ch03.html#readability_standardized_mentorship_thr)

## Senior Software Engineer

Expand Down
1 change: 1 addition & 0 deletions work/work.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ _Get it done_ - the mandate of your job is not _do the best you can_ but _get it
- Make experimentation effortless
- Embrace reliable mainstream formats (JSON, RSS, etc)
- Write code that can be replaced
- [Team Topologies](https://martinfowler.com/bliki/TeamTopologies.html)

## Soft Skills

Expand Down

0 comments on commit 8a3aa56

Please sign in to comment.