# notes

path: Readwise/17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist.md
sortable_path: Readwise17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist.md
title: 17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist
lead: ![rw-book-cover](https://news.ycombinator.com/favicon.ico)
checksum: 051911ac83c1b1b38fd49929fd0cdb0f0dbae03a4d9bf6a490c5b64c29a120e5
created: 2024-09-12 14:56:45.621498943+00:00
modified: 2024-09-04 23:31:38.907969304+00:00
metadata: {}
body:
  ![rw-book-cover](https://news.ycombinator.com/favicon.ico)

  ## Metadata
  - Author: [[isaacfrond]]
  - Full Title: 17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist
  - Category: #articles
  - URL: https://torrentfreak.com/17-year-old-student-exposes-germanys-secret-pirate-site-blocklist-240822/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=17-Year-Old%20Student%20Exposes%20Germany%27s%20%27Secret%27%20Pirate%20Site%20Blocklist
  > [!tldr]
  > A 17-year-old student in Germany has created a website to reveal the blocked pirate sites that major internet providers do not disclose. This initiative aims to increase transparency and address concerns about censorship related to copyright enforcement. The site, CUIIliste.de, lists 275 blocked domains, allowing users to see which sites are restricted.

  ## Highlights
  watchdog [View Highlight](https://read.readwise.io/read/01j64wj1fy8b0dyhcdsjgv4vta))
  > [!note]
  > Watchdog: A term used to describe an individual or organization that monitors and oversees the actions of others, often to ensure accountability, transparency, and adherence to laws or regulations. Watchdogs play a critical role in various fields, including journalism, government, and environmental protection, by investigating misconduct, exposing corruption, and advocating for the public interest. Their function is essential in promoting ethical standards and fostering public trust in institutions.
  > In the context of Isaac Frond's article, the term "watchdog" refers to individuals or organizations that monitor and ensure accountability regarding governmental or institutional actions, particularly in relation to transparency and rights. The lack of public knowledge about the blocked pirate sites in Germany has led to frustration among journalists and advocates, highlighting the need for oversight. The 17-year-old student, along with his friends, embodies this watchdog role by exposing the secretive blocklist, thereby promoting transparency and challenging potential overreach in copyright enforcement.

raw_content:
  # 17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist

  ![rw-book-cover](https://news.ycombinator.com/favicon.ico)

  ## Metadata
  - Author: [[isaacfrond]]
  - Full Title: 17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist
  - Category: #articles
  - URL: https://torrentfreak.com/17-year-old-student-exposes-germanys-secret-pirate-site-blocklist-240822/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=17-Year-Old%20Student%20Exposes%20Germany%27s%20%27Secret%27%20Pirate%20Site%20Blocklist
  > [!tldr]
  > A 17-year-old student in Germany has created a website to reveal the blocked pirate sites that major internet providers do not disclose. This initiative aims to increase transparency and address concerns about censorship related to copyright enforcement. The site, CUIIliste.de, lists 275 blocked domains, allowing users to see which sites are restricted.

  ## Highlights
  watchdog [View Highlight](https://read.readwise.io/read/01j64wj1fy8b0dyhcdsjgv4vta))
  > [!note]
  > Watchdog: A term used to describe an individual or organization that monitors and oversees the actions of others, often to ensure accountability, transparency, and adherence to laws or regulations. Watchdogs play a critical role in various fields, including journalism, government, and environmental protection, by investigating misconduct, exposing corruption, and advocating for the public interest. Their function is essential in promoting ethical standards and fostering public trust in institutions.
  > In the context of Isaac Frond's article, the term "watchdog" refers to individuals or organizations that monitor and ensure accountability regarding governmental or institutional actions, particularly in relation to transparency and rights. The lack of public knowledge about the blocked pirate sites in Germany has led to frustration among journalists and advocates, highlighting the need for oversight. The 17-year-old student, along with his friends, embodies this watchdog role by exposing the secretive blocklist, thereby promoting transparency and challenging potential overreach in copyright enforcement.


path: Readwise/3 Simple Hacks to Stay Up-to-Date as a Developer.md
sortable_path: Readwise3 Simple Hacks to Stay Up-to-Date as a Developer.md
title: 3 Simple Hacks to Stay Up-to-Date as a Developer
lead: ![rw-book-cover](https://i.ytimg.com/vi/AIUw82G-jKE/maxresdefault.jpg)
checksum: aadb7f3b19170b6c595fabbfe140871e3b11a4ee2a55c3254569a0b85779cb45
created: 2024-09-12 14:56:45.627428211+00:00
modified: 2024-09-04 23:31:39.240970187+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/AIUw82G-jKE/maxresdefault.jpg)

  ## Metadata
  - Author: [[Bran van der Meer]]
  - Full Title: 3 Simple Hacks to Stay Up-to-Date as a Developer
  - Category: #articles
  - Document Tags: [[star]] 
  - URL: https://www.youtube.com/watch?v=AIUw82G-jKE
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=3%20Simple%20Hacks%20to%20Stay%20Up-to-Date%20as%20a%20Developer

  ## Highlights
  there's just too much you have to filter somehow you have to find the right news aggregators for your topic [View Highlight](https://read.readwise.io/read/01j6ye17qj6mqt3hvcv776vd0t))

  social media is it's itself an
  aggregator of content of course and you can even argue that daily doev which I just showed is social media I recommend to follow specific creators that you like and if you don't have anybody you like yet then you can try and find those people from now on whenever you go to conferences you can pay attention who the speaker is whenever you're reading books or reading articles look up the author see if they have a Blog see if they publish other things [View Highlight](https://read.readwise.io/read/01j6ye8bktbvyjv1763jf4333z))

  try and go to at least one conference a year [View Highlight](https://read.readwise.io/read/01j6yebe0q7bq1gdgmf4zzw6xa))

  I like conferences because they have a
  tendency to burst your filter bubble [View Highlight](https://read.readwise.io/read/01j6yeckqdxp8na7meb3m1fz14))

  you're looking for a job a Meetup is often a chance to meet a company that's very local that's very close to where you live and you get a chance to meet them outside of the normal hiring process which can also be an advantage [View Highlight](https://read.readwise.io/read/01j6yees1azkpzgsabf3r546av))

  calm any fear you may have fear fear of becoming
  irrelevant [View Highlight](https://read.readwise.io/read/01j6yefnrc19pj2f04dq6p6h7g))

  what I do is once a year I read a lot of vacancies I don't think about applying for another job I'm not actually applying for another job I am just purely looking at what companies are looking for [View Highlight](https://read.readwise.io/read/01j6yeg5yy6m8g2tpgd4xj5gv6))

raw_content:
  # 3 Simple Hacks to Stay Up-to-Date as a Developer

  ![rw-book-cover](https://i.ytimg.com/vi/AIUw82G-jKE/maxresdefault.jpg)

  ## Metadata
  - Author: [[Bran van der Meer]]
  - Full Title: 3 Simple Hacks to Stay Up-to-Date as a Developer
  - Category: #articles
  - Document Tags: [[star]] 
  - URL: https://www.youtube.com/watch?v=AIUw82G-jKE
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=3%20Simple%20Hacks%20to%20Stay%20Up-to-Date%20as%20a%20Developer

  ## Highlights
  there's just too much you have to filter somehow you have to find the right news aggregators for your topic [View Highlight](https://read.readwise.io/read/01j6ye17qj6mqt3hvcv776vd0t))

  social media is it's itself an
  aggregator of content of course and you can even argue that daily doev which I just showed is social media I recommend to follow specific creators that you like and if you don't have anybody you like yet then you can try and find those people from now on whenever you go to conferences you can pay attention who the speaker is whenever you're reading books or reading articles look up the author see if they have a Blog see if they publish other things [View Highlight](https://read.readwise.io/read/01j6ye8bktbvyjv1763jf4333z))

  try and go to at least one conference a year [View Highlight](https://read.readwise.io/read/01j6yebe0q7bq1gdgmf4zzw6xa))

  I like conferences because they have a
  tendency to burst your filter bubble [View Highlight](https://read.readwise.io/read/01j6yeckqdxp8na7meb3m1fz14))

  you're looking for a job a Meetup is often a chance to meet a company that's very local that's very close to where you live and you get a chance to meet them outside of the normal hiring process which can also be an advantage [View Highlight](https://read.readwise.io/read/01j6yees1azkpzgsabf3r546av))

  calm any fear you may have fear fear of becoming
  irrelevant [View Highlight](https://read.readwise.io/read/01j6yefnrc19pj2f04dq6p6h7g))

  what I do is once a year I read a lot of vacancies I don't think about applying for another job I'm not actually applying for another job I am just purely looking at what companies are looking for [View Highlight](https://read.readwise.io/read/01j6yeg5yy6m8g2tpgd4xj5gv6))


path: Readwise/8 Principles for a Secure Cloud Environment.md
sortable_path: Readwise8 Principles for a Secure Cloud Environment.md
title: 8 Principles for a Secure Cloud Environment
lead: ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png)
checksum: 8e317bf01f4f8e39925abc873efe579f2d04367f143605bf9a122c019572ca77
created: 2024-09-12 14:56:45.634667846+00:00
modified: 2024-09-04 23:31:38.629968567+00:00
metadata: {}
body:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png)

  ## Metadata
  - Author: [[omerxx@gmail.com]]
  - Full Title: 8 Principles for a Secure Cloud Environment
  - Category: #articles
  - URL: https://omnivore.app/aleidk/8-principles-for-a-secure-cloud-environment-18f1fa5c54d
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=8%20Principles%20for%20a%20Secure%20Cloud%20Environment
  > [!tldr]
  > On July 15th, 2019, I messed up bad. Real bad. I wanted to finish a project quickly, and show a quick POC to a customer I was working with. To make a long story short, I pushed a container, to a public repo, containing admin credentials to an AWS account.

  ## Highlights
  CISO BS. [View Highlight](https://read.readwise.io/read/01j58cb911jv15qjeccffqxbv1))
  > [!note]
  > In "8 Principles For a Secure Cloud Environment," the term "CISO" refers to the Chief Information Security Officer, a role responsible for overseeing and ensuring the security of an organization's information and systems. The author implies that some principles may be perceived as excessive or overly cautious, often dismissed as "CISO BS," yet emphasizes their importance based on personal experiences with security incidents. Ultimately, the mention of CISO highlights the necessity of adopting robust security practices to mitigate risks in cloud environments, regardless of differing opinions on their complexity.

  Key resources should only be placed in private subnets, effectively isolating them from direct internet access and reducing vulnerability. [View Highlight](https://read.readwise.io/read/01j58ch8xmresvx0x8mty8h37s))

  The sharing of SSH keys is a common security pitfall. [View Highlight](https://read.readwise.io/read/01j58ckd7mgrh2b6f6dzmzstz9))

  Utilize a dedicated secret manager to securely store and handle access to these sensitive elements, ensuring they’re encrypted and accessible only to those who truly need them. [View Highlight](https://read.readwise.io/read/01j58cm13bxanfd7bxg5th88j4))

  Implement a routine where every merge commit is scanned for secret leaks and vulnerabilities using tools like [gitleaks](https://click.convertkit-mail2.com/xmuvr2v7d6h6hr6eg6pc5h03owzllbn/dpheh0h0dwroe6hm/aHR0cHM6Ly9naXRodWIuY29tL2dpdGxlYWtzL2dpdGxlYWtz). Establish strict policies to halt deployments if issues are found in the codebase or in the container images during CI. Don’t have a CI in place yet? 1. Do it! 2. Run these locally before EVERY push. [View Highlight](https://read.readwise.io/read/01j58cn5zg2y5dkd0m9emzevtw))

  Move away from traditional firewall-based security for accessing internal systems remotely. Instead, adopt a VPN or, ideally, a Zero Trust framework [View Highlight](https://read.readwise.io/read/01j58cq5q1j7w0xcm19cynt6j7))

  Regularly reviewing your cloud bills can help you identify unused or forgotten resources and even expose potential security threats. [View Highlight](https://read.readwise.io/read/01j58dr7eagpfs41b1g7cp42fr))

  Deploying a WAF can provide a critical defense layer against numerous web-based threats. The default set of rules can cover 80% of randomly sent malicious query attempts which you can then tweak over time to block additional potentially harmful requests. [View Highlight](https://read.readwise.io/read/01j58drvb7t9633re0pfwc567x))

  consider deploying containers that lack any form of shell environment. Building your containers with containers starting with `FROM: scratch` ensures that only the essential application binaries are running, thereby hardening your containers against simple intrusion attempts. [View Highlight](https://read.readwise.io/read/01j58dsmfdt50cgke4skb9d4vf))

raw_content:
  # 8 Principles for a Secure Cloud Environment

  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png)

  ## Metadata
  - Author: [[omerxx@gmail.com]]
  - Full Title: 8 Principles for a Secure Cloud Environment
  - Category: #articles
  - URL: https://omnivore.app/aleidk/8-principles-for-a-secure-cloud-environment-18f1fa5c54d
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=8%20Principles%20for%20a%20Secure%20Cloud%20Environment
  > [!tldr]
  > On July 15th, 2019, I messed up bad. Real bad. I wanted to finish a project quickly, and show a quick POC to a customer I was working with. To make a long story short, I pushed a container, to a public repo, containing admin credentials to an AWS account.

  ## Highlights
  CISO BS. [View Highlight](https://read.readwise.io/read/01j58cb911jv15qjeccffqxbv1))
  > [!note]
  > In "8 Principles For a Secure Cloud Environment," the term "CISO" refers to the Chief Information Security Officer, a role responsible for overseeing and ensuring the security of an organization's information and systems. The author implies that some principles may be perceived as excessive or overly cautious, often dismissed as "CISO BS," yet emphasizes their importance based on personal experiences with security incidents. Ultimately, the mention of CISO highlights the necessity of adopting robust security practices to mitigate risks in cloud environments, regardless of differing opinions on their complexity.

  Key resources should only be placed in private subnets, effectively isolating them from direct internet access and reducing vulnerability. [View Highlight](https://read.readwise.io/read/01j58ch8xmresvx0x8mty8h37s))

  The sharing of SSH keys is a common security pitfall. [View Highlight](https://read.readwise.io/read/01j58ckd7mgrh2b6f6dzmzstz9))

  Utilize a dedicated secret manager to securely store and handle access to these sensitive elements, ensuring they’re encrypted and accessible only to those who truly need them. [View Highlight](https://read.readwise.io/read/01j58cm13bxanfd7bxg5th88j4))

  Implement a routine where every merge commit is scanned for secret leaks and vulnerabilities using tools like [gitleaks](https://click.convertkit-mail2.com/xmuvr2v7d6h6hr6eg6pc5h03owzllbn/dpheh0h0dwroe6hm/aHR0cHM6Ly9naXRodWIuY29tL2dpdGxlYWtzL2dpdGxlYWtz). Establish strict policies to halt deployments if issues are found in the codebase or in the container images during CI. Don’t have a CI in place yet? 1. Do it! 2. Run these locally before EVERY push. [View Highlight](https://read.readwise.io/read/01j58cn5zg2y5dkd0m9emzevtw))

  Move away from traditional firewall-based security for accessing internal systems remotely. Instead, adopt a VPN or, ideally, a Zero Trust framework [View Highlight](https://read.readwise.io/read/01j58cq5q1j7w0xcm19cynt6j7))

  Regularly reviewing your cloud bills can help you identify unused or forgotten resources and even expose potential security threats. [View Highlight](https://read.readwise.io/read/01j58dr7eagpfs41b1g7cp42fr))

  Deploying a WAF can provide a critical defense layer against numerous web-based threats. The default set of rules can cover 80% of randomly sent malicious query attempts which you can then tweak over time to block additional potentially harmful requests. [View Highlight](https://read.readwise.io/read/01j58drvb7t9633re0pfwc567x))

  consider deploying containers that lack any form of shell environment. Building your containers with containers starting with `FROM: scratch` ensures that only the essential application binaries are running, thereby hardening your containers against simple intrusion attempts. [View Highlight](https://read.readwise.io/read/01j58dsmfdt50cgke4skb9d4vf))


path: Readwise/A Cyberspace Inquisition #2 Impressions.md
sortable_path: ReadwiseA Cyberspace Inquisition #2 Impressions.md
title: A Cyberspace Inquisition Impressions
lead: ![rw-book-cover](https://www.adamsdesk.com/assets/img/posts/cyberspace-wormhole.webp)
checksum: 09d06b2815498bd8f0059e697a84ab6f8c746dbe06360064c714629d10554e2e
created: 2024-09-12 14:56:45.64056217+00:00
modified: 2024-09-04 23:31:38.696968745+00:00
metadata: {}
body:
  ![rw-book-cover](https://www.adamsdesk.com/assets/img/posts/cyberspace-wormhole.webp)

  ## Metadata
  - Author: [[Adam Douglas]]
  - Full Title: A Cyberspace Inquisition #2: Impressions
  - Category: #articles
  - URL: https://www.adamsdesk.com/posts/a-cyberspace-inquisition-2/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20Cyberspace%20Inquisition%20%232%3A%20Impressions
  > [!tldr]
  > Navigate cyberspace with me and discover unique content that leave you with impressions and trigger your own inner curiosity to explore and innovate.

  ## Highlights
  (https://sudhir.io/the-big-little-guide-to-message-queues/)
  If you have every [View Highlight](https://read.readwise.io/read/01j59rfbd66tv18q7vdpc0brt3))

raw_content:
  # A Cyberspace Inquisition #2: Impressions

  ![rw-book-cover](https://www.adamsdesk.com/assets/img/posts/cyberspace-wormhole.webp)

  ## Metadata
  - Author: [[Adam Douglas]]
  - Full Title: A Cyberspace Inquisition #2: Impressions
  - Category: #articles
  - URL: https://www.adamsdesk.com/posts/a-cyberspace-inquisition-2/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20Cyberspace%20Inquisition%20%232%3A%20Impressions
  > [!tldr]
  > Navigate cyberspace with me and discover unique content that leave you with impressions and trigger your own inner curiosity to explore and innovate.

  ## Highlights
  (https://sudhir.io/the-big-little-guide-to-message-queues/)
  If you have every [View Highlight](https://read.readwise.io/read/01j59rfbd66tv18q7vdpc0brt3))


path: Readwise/A Successful Git Branching Model.md
sortable_path: ReadwiseA Successful Git Branching Model.md
title: A Successful Git Branching Model
lead: ![rw-book-cover](http://nvie.com/img/git-model@2x.png)
checksum: 384fa82a6f5724fd111f07307be2fbdb29c4dfdea4db845fefaed6f5019fdbc6
created: 2024-09-12 14:56:45.652099209+00:00
modified: 2024-09-04 23:31:38.550968358+00:00
metadata: {}
body:
  ![rw-book-cover](http://nvie.com/img/git-model@2x.png)

  ## Metadata
  - Author: [[Vincent Driessen]]
  - Full Title: A Successful Git Branching Model
  - Category: #articles
  - URL: https://nvie.com/posts/a-successful-git-branching-model/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20Successful%20Git%20Branching%20Model
  > [!tldr]
  > The Git branching model, git-flow, is widely used but can be seen as overly rigid by some teams. It is beneficial for versioned software and managing multiple versions. Git has revolutionized how developers handle branching and merging in version control.

  ## Highlights
  If your team is doing continuous delivery of software, I would suggest to adopt a much simpler workflow (like [GitHub flow](https://guides.github.com/introduction/flow/)) instead of trying to shoehorn git-flow into your team.
  If, however, you are building software that is explicitly versioned, or if you need to support multiple versions of your software in the wild, then git-flow may still be as good of a fit to your team as it has been to people in the last 10 years. [View Highlight](https://read.readwise.io/read/01j548q3y82vb6tgpcxkff732r))

  We consider `origin/master` to be the main branch where the source code of `HEAD` always reflects a *production-ready* state. [View Highlight](https://read.readwise.io/read/01j548s6wn5tww0q86agt4mc3b))

  We consider `origin/develop` to be the main branch where the source code of `HEAD` always reflects a state with the latest delivered development changes for the next release. Some would call this the “integration branch”. This is where any automatic nightly builds are built from. [View Highlight](https://read.readwise.io/read/01j548sbx0chxzjqhbdxbfkd34))

  Next to the main branches `master` and `develop`, our development model uses a variety of supporting branches to aid parallel development between team members, ease tracking of features, prepare for production releases and to assist in quickly fixing live production problems. Unlike the main branches, these branches always have a limited life time, since they will be removed eventually.
  The different types of branches we may use are:
  • Feature branches
  • Release branches
  • Hotfix branches [View Highlight](https://read.readwise.io/read/01j548v29py8ken2hnj4kqn7d4))

  Feature branches (or sometimes called topic branches) are used to develop new features for the upcoming or a distant future release. When starting development of a feature, the target release in which this feature will be incorporated may well be unknown at that point. The essence of a feature branch is that it exists as long as the feature is in development, but will eventually be merged back into `develop` (to definitely add the new feature to the upcoming release) or discarded (in case of a disappointing experiment). [View Highlight](https://read.readwise.io/read/01j548xe9jrd2c98pd2kch582r))

  The `--no-ff` flag causes the merge to always create a new commit object, even if the merge could be performed with a fast-forward. This avoids losing information about the historical existence of a feature branch and groups together all commits that together added the feature. Compare: [View Highlight](https://read.readwise.io/read/01j548z6jfdzegbyxqcbw9qzg8))

  Release branches support preparation of a new production release. __They allow for last-minute dotting of i’s and crossing t’s. Furthermore, they allow for minor bug fixes and preparing meta-data for a release__ (version number, build dates, etc.). By doing all of this work on a release branch, the `develop` branch is cleared to receive features for the next big release. [View Highlight](https://read.readwise.io/read/01j54919d0891s3web647x0zkt))

  Hotfix branches are very much like release branches in that they are also meant to prepare for a new production release, albeit unplanned. __They arise from the necessity to act immediately upon an undesired state of a live production version__. When a critical bug in a production version must be resolved immediately, a hotfix branch may be branched off from the corresponding tag on the master branch that marks the production version. [View Highlight](https://read.readwise.io/read/01j5498mt0tq7m5y0gk06rst3t))

raw_content:
  # A Successful Git Branching Model

  ![rw-book-cover](http://nvie.com/img/git-model@2x.png)

  ## Metadata
  - Author: [[Vincent Driessen]]
  - Full Title: A Successful Git Branching Model
  - Category: #articles
  - URL: https://nvie.com/posts/a-successful-git-branching-model/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20Successful%20Git%20Branching%20Model
  > [!tldr]
  > The Git branching model, git-flow, is widely used but can be seen as overly rigid by some teams. It is beneficial for versioned software and managing multiple versions. Git has revolutionized how developers handle branching and merging in version control.

  ## Highlights
  If your team is doing continuous delivery of software, I would suggest to adopt a much simpler workflow (like [GitHub flow](https://guides.github.com/introduction/flow/)) instead of trying to shoehorn git-flow into your team.
  If, however, you are building software that is explicitly versioned, or if you need to support multiple versions of your software in the wild, then git-flow may still be as good of a fit to your team as it has been to people in the last 10 years. [View Highlight](https://read.readwise.io/read/01j548q3y82vb6tgpcxkff732r))

  We consider `origin/master` to be the main branch where the source code of `HEAD` always reflects a *production-ready* state. [View Highlight](https://read.readwise.io/read/01j548s6wn5tww0q86agt4mc3b))

  We consider `origin/develop` to be the main branch where the source code of `HEAD` always reflects a state with the latest delivered development changes for the next release. Some would call this the “integration branch”. This is where any automatic nightly builds are built from. [View Highlight](https://read.readwise.io/read/01j548sbx0chxzjqhbdxbfkd34))

  Next to the main branches `master` and `develop`, our development model uses a variety of supporting branches to aid parallel development between team members, ease tracking of features, prepare for production releases and to assist in quickly fixing live production problems. Unlike the main branches, these branches always have a limited life time, since they will be removed eventually.
  The different types of branches we may use are:
  • Feature branches
  • Release branches
  • Hotfix branches [View Highlight](https://read.readwise.io/read/01j548v29py8ken2hnj4kqn7d4))

  Feature branches (or sometimes called topic branches) are used to develop new features for the upcoming or a distant future release. When starting development of a feature, the target release in which this feature will be incorporated may well be unknown at that point. The essence of a feature branch is that it exists as long as the feature is in development, but will eventually be merged back into `develop` (to definitely add the new feature to the upcoming release) or discarded (in case of a disappointing experiment). [View Highlight](https://read.readwise.io/read/01j548xe9jrd2c98pd2kch582r))

  The `--no-ff` flag causes the merge to always create a new commit object, even if the merge could be performed with a fast-forward. This avoids losing information about the historical existence of a feature branch and groups together all commits that together added the feature. Compare: [View Highlight](https://read.readwise.io/read/01j548z6jfdzegbyxqcbw9qzg8))

  Release branches support preparation of a new production release. __They allow for last-minute dotting of i’s and crossing t’s. Furthermore, they allow for minor bug fixes and preparing meta-data for a release__ (version number, build dates, etc.). By doing all of this work on a release branch, the `develop` branch is cleared to receive features for the next big release. [View Highlight](https://read.readwise.io/read/01j54919d0891s3web647x0zkt))

  Hotfix branches are very much like release branches in that they are also meant to prepare for a new production release, albeit unplanned. __They arise from the necessity to act immediately upon an undesired state of a live production version__. When a critical bug in a production version must be resolved immediately, a hotfix branch may be branched off from the corresponding tag on the master branch that marks the production version. [View Highlight](https://read.readwise.io/read/01j5498mt0tq7m5y0gk06rst3t))


path: Readwise/ACID Databases – Atomicity, Consistency, Isolation & Durability Explained.md
sortable_path: ReadwiseACID Databases – Atomicity, Consistency, Isolation & Durability Explained.md
title: ACID Databases – Atomicity, Consistency, Isolation & Durability Explained
lead: ![rw-book-cover](https://www.freecodecamp.org/news/content/images/2024/01/cover-fcc.png)
checksum: 231c3138ea44b9b3acfc8ccf90218819d6932077e809ca197e97bab35d871a6e
created: 2024-09-12 14:56:45.661691086+00:00
modified: 2024-09-04 23:31:38.570968411+00:00
metadata: {}
body:
  ![rw-book-cover](https://www.freecodecamp.org/news/content/images/2024/01/cover-fcc.png)

  ## Metadata
  - Author: [[Daniel Adetunji]]
  - Full Title: ACID Databases – Atomicity, Consistency, Isolation & Durability Explained
  - Category: #articles
  - URL: https://www.freecodecamp.org/news/acid-databases-explained/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=ACID%20Databases%20%E2%80%93%20Atomicity%2C%20Consistency%2C%20Isolation%20%26%20Durability%20Explained
  > [!tldr]
  > ACID (Atomicity, Consistency, Isolation, and Durability) is a set of guarantees provided by database management systems (DBMS). While most popular DBMS offer ACID guarantees, the implementation can vary. Atomicity ensures that all parts of a transaction are completed or none at all. Consistency, or referential integrity, ensures data accuracy and reliability. Isolation guarantees that concurrent transactions do not interfere with each other. Durability ensures that changes made by committed transactions are not lost. These properties are important for maintaining data integrity and fault tolerance in a DBMS.

  ## Highlights
  Consistency in the context of ACID means *consistency in data*, which is defined by the creator of the database. The technical term for consistency in data is called referential integrity. __Referential integrity is a method of ensuring that relationships between tables remain consistent__. It's usually enforced through the use of **foreign keys**. [View Highlight](https://read.readwise.io/read/01j549yzv6a3s4x73cc7qj06rg))

  Isolation is a guarantee that concurrently running transactions should not interfere with each other. Concurrency here refers to two or more transactions trying to modify or read the same database record(s) at the same time. [View Highlight](https://read.readwise.io/read/01j54a1g3dka9smm3v4ct09v4d))

  In this example, read committed isolation ensures that Marie is not prematurely excluded from buying the burger just because someone else said they wanted it. __Only committed transactions can be read__. Therefore, the burger is available to be ordered as long as no one has paid for it. [View Highlight](https://read.readwise.io/read/01j54a6t2df5kjvy8q4tyhkwas))

  A repeatable read guarantees that if a transaction reads a row of data, any subsequent reads of that same row of data within the same transaction will yield the same result, regardless of changes made by other transactions. This consistency is maintained throughout the duration of the transaction. [View Highlight](https://read.readwise.io/read/01j54a7baf7scbgptfwf5a5hgf))

  Durability is a guarantee that changes made by a committed transaction must not be lost. All committed transactions must be persisted on durable, non-volatile storage, that is on disk. This ensures that any committed transactions are protected even if the database crashes. [View Highlight](https://read.readwise.io/read/01j54aa01whthekb1jegqsx42w))

raw_content:
  # ACID Databases – Atomicity, Consistency, Isolation & Durability Explained

  ![rw-book-cover](https://www.freecodecamp.org/news/content/images/2024/01/cover-fcc.png)

  ## Metadata
  - Author: [[Daniel Adetunji]]
  - Full Title: ACID Databases – Atomicity, Consistency, Isolation & Durability Explained
  - Category: #articles
  - URL: https://www.freecodecamp.org/news/acid-databases-explained/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=ACID%20Databases%20%E2%80%93%20Atomicity%2C%20Consistency%2C%20Isolation%20%26%20Durability%20Explained
  > [!tldr]
  > ACID (Atomicity, Consistency, Isolation, and Durability) is a set of guarantees provided by database management systems (DBMS). While most popular DBMS offer ACID guarantees, the implementation can vary. Atomicity ensures that all parts of a transaction are completed or none at all. Consistency, or referential integrity, ensures data accuracy and reliability. Isolation guarantees that concurrent transactions do not interfere with each other. Durability ensures that changes made by committed transactions are not lost. These properties are important for maintaining data integrity and fault tolerance in a DBMS.

  ## Highlights
  Consistency in the context of ACID means *consistency in data*, which is defined by the creator of the database. The technical term for consistency in data is called referential integrity. __Referential integrity is a method of ensuring that relationships between tables remain consistent__. It's usually enforced through the use of **foreign keys**. [View Highlight](https://read.readwise.io/read/01j549yzv6a3s4x73cc7qj06rg))

  Isolation is a guarantee that concurrently running transactions should not interfere with each other. Concurrency here refers to two or more transactions trying to modify or read the same database record(s) at the same time. [View Highlight](https://read.readwise.io/read/01j54a1g3dka9smm3v4ct09v4d))

  In this example, read committed isolation ensures that Marie is not prematurely excluded from buying the burger just because someone else said they wanted it. __Only committed transactions can be read__. Therefore, the burger is available to be ordered as long as no one has paid for it. [View Highlight](https://read.readwise.io/read/01j54a6t2df5kjvy8q4tyhkwas))

  A repeatable read guarantees that if a transaction reads a row of data, any subsequent reads of that same row of data within the same transaction will yield the same result, regardless of changes made by other transactions. This consistency is maintained throughout the duration of the transaction. [View Highlight](https://read.readwise.io/read/01j54a7baf7scbgptfwf5a5hgf))

  Durability is a guarantee that changes made by a committed transaction must not be lost. All committed transactions must be persisted on durable, non-volatile storage, that is on disk. This ensures that any committed transactions are protected even if the database crashes. [View Highlight](https://read.readwise.io/read/01j54aa01whthekb1jegqsx42w))


path: Readwise/All You Need Is Data and Functions.md
sortable_path: ReadwiseAll You Need Is Data and Functions.md
title: All You Need Is Data and Functions
lead: ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)
checksum: f033db4c90c4c798f1f84e740c9e4b9719198e99e15c4e89b59bc09e743eb2db
created: 2024-09-12 14:56:45.672776609+00:00
modified: 2024-09-04 23:31:38.97796949+00:00
metadata: {}
body:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)

  ## Metadata
  - Author: [[mckayla.blog]]
  - Full Title: All You Need Is Data and Functions
  - Category: #articles
  - Document Tags: [[dev]] [[star]] 
  - URL: https://mckayla.blog/posts/all-you-need-is-data-and-functions.html
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=All%20You%20Need%20Is%20Data%20and%20Functions

  > [!note]
  > **Background:** I would like to implement the ideas from "All you need is data and functions" by mckayla.blog in my programming project.
  > ### Key Takeaways:
  > 🛠️ **Emphasize Type Over Traits:** Instead of relying on traits, create a data-type that encapsulates the desired behavior. Then, implement a conversion function to transform your data-type into the trait-type when needed.
  > 🔄 **Utilize Implicit Conversions:** Understand that trait-types allow for implicit conversions, which can simplify your code. This means the language can handle the transformation from your data-type to the trait-type automatically, reducing boilerplate and improving readability.
  > 📜 **Represent Traits with Types:** Recognize that traits can be viewed as types themselves. For example, a Display trait can be represented by a String type alongside a function that converts your original type into a String, enabling clearer and more direct handling of type-specific logic.
  > ---
  > 1. How does the omission of traits in Gleam influence the way developers approach generic programming compared to languages like Rust?
  > 2. In what ways might the simplicity of Gleam's design, focusing on data and functions, lead to both advantages and disadvantages in software development?
  > 3. How does Gleam's approach to immutability and function-based programming compare with the mutable state and trait systems commonly found in other languages?
  > [!tldr]
  > The document explores the concept of traits in programming languages, using the example of the Gleam language. Traits are compared to types and functions, emphasizing how traits can be represented and achieved through types and functions. The discussion covers examples from Rust and Gleam to illustrate how traits can be replaced by types and functions in a language like Gleam, where simplicity and low concept count are valued. The document concludes that data and functions can effectively replace the need for traits, particularly in languages like Gleam.

  ## Highlights
  **traits are just types**. Our `Display` trait in this example, can be represented by the `String` type, and a function which converts from our original type to a `String`. [View Highlight](https://read.readwise.io/read/01j6axgxbj76x7jbz4zsc45tdv))

  The biggest difference between most trait/interface systems and trait-types is that the language is essentially doing implicit conversions for you, from your data-type to the trait-type. [View Highlight](https://read.readwise.io/read/01j6ccvpskph772e8r479esbq4))

  Instead of a trait, just make a type that implements the generic behavior you want, and then write a function to convert your data-type into your trait-type. If you need some data-type specific logic, then pass around functions as necessary (usually from your conversion function). [View Highlight](https://read.readwise.io/read/01j6ccz00s0t2aydshas3xw962))

raw_content:
  # All You Need Is Data and Functions

  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)

  ## Metadata
  - Author: [[mckayla.blog]]
  - Full Title: All You Need Is Data and Functions
  - Category: #articles
  - Document Tags: [[dev]] [[star]] 
  - URL: https://mckayla.blog/posts/all-you-need-is-data-and-functions.html
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=All%20You%20Need%20Is%20Data%20and%20Functions

  > [!note]
  > **Background:** I would like to implement the ideas from "All you need is data and functions" by mckayla.blog in my programming project.
  > ### Key Takeaways:
  > 🛠️ **Emphasize Type Over Traits:** Instead of relying on traits, create a data-type that encapsulates the desired behavior. Then, implement a conversion function to transform your data-type into the trait-type when needed.
  > 🔄 **Utilize Implicit Conversions:** Understand that trait-types allow for implicit conversions, which can simplify your code. This means the language can handle the transformation from your data-type to the trait-type automatically, reducing boilerplate and improving readability.
  > 📜 **Represent Traits with Types:** Recognize that traits can be viewed as types themselves. For example, a Display trait can be represented by a String type alongside a function that converts your original type into a String, enabling clearer and more direct handling of type-specific logic.
  > ---
  > 1. How does the omission of traits in Gleam influence the way developers approach generic programming compared to languages like Rust?
  > 2. In what ways might the simplicity of Gleam's design, focusing on data and functions, lead to both advantages and disadvantages in software development?
  > 3. How does Gleam's approach to immutability and function-based programming compare with the mutable state and trait systems commonly found in other languages?
  > [!tldr]
  > The document explores the concept of traits in programming languages, using the example of the Gleam language. Traits are compared to types and functions, emphasizing how traits can be represented and achieved through types and functions. The discussion covers examples from Rust and Gleam to illustrate how traits can be replaced by types and functions in a language like Gleam, where simplicity and low concept count are valued. The document concludes that data and functions can effectively replace the need for traits, particularly in languages like Gleam.

  ## Highlights
  **traits are just types**. Our `Display` trait in this example, can be represented by the `String` type, and a function which converts from our original type to a `String`. [View Highlight](https://read.readwise.io/read/01j6axgxbj76x7jbz4zsc45tdv))

  The biggest difference between most trait/interface systems and trait-types is that the language is essentially doing implicit conversions for you, from your data-type to the trait-type. [View Highlight](https://read.readwise.io/read/01j6ccvpskph772e8r479esbq4))

  Instead of a trait, just make a type that implements the generic behavior you want, and then write a function to convert your data-type into your trait-type. If you need some data-type specific logic, then pass around functions as necessary (usually from your conversion function). [View Highlight](https://read.readwise.io/read/01j6ccz00s0t2aydshas3xw962))


path: Readwise/Best Practices for Maintainers.md
sortable_path: ReadwiseBest Practices for Maintainers.md
title: Best Practices for Maintainers
lead: ![rw-book-cover](https://opensource.guide/assets/images/cards/best-practices.png)
checksum: 20c30fe71bd6302e1e19c4cdd80623fe8a7dc239c401a6282ff1727cbfe94562
created: 2024-09-12 14:56:45.688753448+00:00
modified: 2024-09-04 23:31:38.681968705+00:00
metadata: {}
body:
  ![rw-book-cover](https://opensource.guide/assets/images/cards/best-practices.png)

  ## Metadata
  - Author: [[Open Source Guides]]
  - Full Title: Best Practices for Maintainers
  - Category: #articles
  - Document Tags: [[dev]] 
  - URL: https://opensource.guide/best-practices/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Best%20Practices%20for%20Maintainers
  > [!tldr]
  > Maintaining a popular open source project involves more than just coding; it requires effective communication and managing contributions. It's important to set clear expectations for your time and the types of contributions you accept, while also being kind and responsive to contributors. Taking breaks and prioritizing your own happiness is essential for the long-term success of the project.

  ## Highlights
  Written and enforced fairly, however, good rules empower maintainers. They prevent you from getting dragged into doing things you don’t want to do. [View Highlight](https://read.readwise.io/read/01j59endsw1rpkb9tf8m8qawvj))

  Don’t forget to document your interactions, too. Wherever you can, keep communication about your project public. If somebody tries to contact you privately to discuss a feature request or support need, politely direct them to a public communication channel, such as a mailing list or issue tracker. [View Highlight](https://read.readwise.io/read/01j59eq13dn3wga93d01tnfqmy))

  Having everything written down, however, helps depersonalize situations when you do need to enforce your rules.
  Saying no isn’t fun, but *“Your contribution doesn’t match this project’s criteria”* feels less personal than *“I don’t like your contribution”*. [View Highlight](https://read.readwise.io/read/01j59eskv2qw7f8cfrkz5g3rvt))

  The key to handling support for large-scale open source projects is to keep issues moving. Try to avoid having issues stall. If you’re an iOS developer you know how frustrating it can be to submit radars. You might hear back 2 years later, and are told to try again with the latest version of iOS. [View Highlight](https://read.readwise.io/read/01j59ezaxynf5z61amr95w7x7m))

  I cater to the 80% use case. If you are one of the unicorns, please fork my work. I won’t get offended! My public projects are almost always meant to solve the most common problems; I try to make it easy to go deeper by either forking my work or extending it. [View Highlight](https://read.readwise.io/read/01j59ftzzkh4m5fkbbgse1qs8y))

  It’s almost inevitable that once a project becomes big, maintainers have to become a lot more conservative about how they introduce new code. You become good at saying “no”, but a lot of people have legitimate needs. So, instead you end up converting your tool into a platform. [View Highlight](https://read.readwise.io/read/01j59fw4nd6sjdfxwtxgbn89zy))

  I believe that tests are necessary for all code that people work on. If the code was fully and perfectly correct, it wouldn’t need changes – we only write code when something is wrong, whether that’s “It crashes” or “It lacks such-and-such a feature”. And regardless of the changes you’re making, tests are essential for catching any regressions you might accidentally introduce. [View Highlight](https://read.readwise.io/read/01j59fyszkgtfzj58msft420j5))

  There are a [variety of tools available](https://github.com/showcases/tools-for-open-source) to help automate some aspects of maintenance work. A few examples:
  • [semantic-release](https://github.com/semantic-release/semantic-release) automates your releases
  • [mention-bot](https://github.com/facebook/mention-bot) mentions potential reviewers for pull requests
  • [Danger](https://github.com/danger/danger) helps automate code review
  • [no-response](https://github.com/probot/no-response) closes issues where the author hasn’t responded to a request for more information
  • [dependabot](https://github.com/dependabot) checks your dependency files every day for outdated requirements and opens individual pull requests for any it finds [View Highlight](https://read.readwise.io/read/01j59g05hnrn42hj1ey8s0cjhe))

  Burnout is a real and pervasive issue in open source work, especially among maintainers. As a maintainer, your happiness is a non-negotiable requirement for the survival of any open source project. [View Highlight](https://read.readwise.io/read/01j59g44y47gfp6bexny1cf077))

  In maintaining WP-CLI, I’ve discovered I need to make myself happy first, and set clear boundaries on my involvement. The best balance I’ve found is 2-5 hours per week, as a part of my normal work schedule. This keeps my involvement a passion, and from feeling too much like work. Because I prioritize the issues I’m working on, I can make regular progress on what I think is most important. [View Highlight](https://read.readwise.io/read/01j59g63w7h9j6krg5wpjh40ap))

raw_content:
  # Best Practices for Maintainers

  ![rw-book-cover](https://opensource.guide/assets/images/cards/best-practices.png)

  ## Metadata
  - Author: [[Open Source Guides]]
  - Full Title: Best Practices for Maintainers
  - Category: #articles
  - Document Tags: [[dev]] 
  - URL: https://opensource.guide/best-practices/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Best%20Practices%20for%20Maintainers
  > [!tldr]
  > Maintaining a popular open source project involves more than just coding; it requires effective communication and managing contributions. It's important to set clear expectations for your time and the types of contributions you accept, while also being kind and responsive to contributors. Taking breaks and prioritizing your own happiness is essential for the long-term success of the project.

  ## Highlights
  Written and enforced fairly, however, good rules empower maintainers. They prevent you from getting dragged into doing things you don’t want to do. [View Highlight](https://read.readwise.io/read/01j59endsw1rpkb9tf8m8qawvj))

  Don’t forget to document your interactions, too. Wherever you can, keep communication about your project public. If somebody tries to contact you privately to discuss a feature request or support need, politely direct them to a public communication channel, such as a mailing list or issue tracker. [View Highlight](https://read.readwise.io/read/01j59eq13dn3wga93d01tnfqmy))

  Having everything written down, however, helps depersonalize situations when you do need to enforce your rules.
  Saying no isn’t fun, but *“Your contribution doesn’t match this project’s criteria”* feels less personal than *“I don’t like your contribution”*. [View Highlight](https://read.readwise.io/read/01j59eskv2qw7f8cfrkz5g3rvt))

  The key to handling support for large-scale open source projects is to keep issues moving. Try to avoid having issues stall. If you’re an iOS developer you know how frustrating it can be to submit radars. You might hear back 2 years later, and are told to try again with the latest version of iOS. [View Highlight](https://read.readwise.io/read/01j59ezaxynf5z61amr95w7x7m))

  I cater to the 80% use case. If you are one of the unicorns, please fork my work. I won’t get offended! My public projects are almost always meant to solve the most common problems; I try to make it easy to go deeper by either forking my work or extending it. [View Highlight](https://read.readwise.io/read/01j59ftzzkh4m5fkbbgse1qs8y))

  It’s almost inevitable that once a project becomes big, maintainers have to become a lot more conservative about how they introduce new code. You become good at saying “no”, but a lot of people have legitimate needs. So, instead you end up converting your tool into a platform. [View Highlight](https://read.readwise.io/read/01j59fw4nd6sjdfxwtxgbn89zy))

  I believe that tests are necessary for all code that people work on. If the code was fully and perfectly correct, it wouldn’t need changes – we only write code when something is wrong, whether that’s “It crashes” or “It lacks such-and-such a feature”. And regardless of the changes you’re making, tests are essential for catching any regressions you might accidentally introduce. [View Highlight](https://read.readwise.io/read/01j59fyszkgtfzj58msft420j5))

  There are a [variety of tools available](https://github.com/showcases/tools-for-open-source) to help automate some aspects of maintenance work. A few examples:
  • [semantic-release](https://github.com/semantic-release/semantic-release) automates your releases
  • [mention-bot](https://github.com/facebook/mention-bot) mentions potential reviewers for pull requests
  • [Danger](https://github.com/danger/danger) helps automate code review
  • [no-response](https://github.com/probot/no-response) closes issues where the author hasn’t responded to a request for more information
  • [dependabot](https://github.com/dependabot) checks your dependency files every day for outdated requirements and opens individual pull requests for any it finds [View Highlight](https://read.readwise.io/read/01j59g05hnrn42hj1ey8s0cjhe))

  Burnout is a real and pervasive issue in open source work, especially among maintainers. As a maintainer, your happiness is a non-negotiable requirement for the survival of any open source project. [View Highlight](https://read.readwise.io/read/01j59g44y47gfp6bexny1cf077))

  In maintaining WP-CLI, I’ve discovered I need to make myself happy first, and set clear boundaries on my involvement. The best balance I’ve found is 2-5 hours per week, as a part of my normal work schedule. This keeps my involvement a passion, and from feeling too much like work. Because I prioritize the issues I’m working on, I can make regular progress on what I think is most important. [View Highlight](https://read.readwise.io/read/01j59g63w7h9j6krg5wpjh40ap))


path: Readwise/Building a Second Brain - Tags.md
sortable_path: ReadwiseBuilding a Second Brain - Tags.md
title: Building a Second Brain - Tags
lead: ![rw-book-cover](https://m.media-amazon.com/images/I/71jhK9zsKEL.jpg)
checksum: c1f2407833b7f017d41bc56b0544711bb17831f3dad2da94458499d864632e21
created: 2024-09-12 14:56:45.700166647+00:00
modified: 2024-09-04 23:31:39.034969641+00:00
metadata: {}
body:
  ![rw-book-cover](https://m.media-amazon.com/images/I/71jhK9zsKEL.jpg)

  ## Metadata
  - Author: [[Tiago Forte]]
  - Full Title: Building a Second Brain - Tags
  - Category: #articles
  - Document Tags: [[notetaking]] [[productivity]] 
  - URL: https://readwise.io/reader/document_raw_content/2217137
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Building%20a%20Second%20Brain%20-%20Tags
  > [!tldr]
  > Creating a universal tagging system for notes is impractical and can lead to frustration. Instead, tags should be used to track the progress and purpose of notes, focusing on actionable use cases. Start small with simple organization methods and apply tags retroactively as needed to maintain clarity and motivation.

  ## Highlights
  The goal of all these endeavors was to create a system of classification – known as a “taxonomy” – that every piece of knowledge could be placed into. [View Highlight](https://read.readwise.io/read/01j6hh4c8747s1xrb59f93826q))

  Like Pandora’s Box, once we begin to apply tags it can be incredibly tempting to start labeling each and every note ... Building a Second Brain: Chapter 11 | buildingasecondbrain.com understand what we are trying to use our notes to accomplish to avoid the trap of “tagging for the sake of tagging.”

  There are three practical approaches to tagging you can use as your Second Brain grows and matures. Each one follows the principle of actionability and answers an important question about the purpose of a given note: 1. Create personalized tags for your use cases. (How will my notes be used?) 2. Use tags to track the progress of notes. (How are my notes currently being used?) 3. Tag notes retroactively and only as needed. (How have my notes been used?) [View Highlight](https://read.readwise.io/read/01j6hhjytn42dbdcgskyjrr74q))

  if you already know how your notes are likely to be used – such as for citations in a paper [Source], as evidence in a trial [Evidence], or as slides in a presentation [Slides] – it can be helpful to tag your notes according to those use cases. [View Highlight](https://read.readwise.io/read/01j6hhp4pghcnk2r4z4r95n287))

  Ask yourself, “What are the most common use cases for the content I capture?” Here are a couple common examples: • Tagging according to the final product a note will be used in: [Presentation], [Essay], [Report], [Website], [Project plan], [Meeting agenda], or [Budget]
  • Tagging according to the kind of information a note contains: [Arguments], [Theories], [Frameworks], [Evidence], [Claim], [Counterpoint], or [Question] [View Highlight](https://read.readwise.io/read/01j6hhwgwga3a4t0bm9p3t12y6))

  tags to track the progress of their notes: • Tagging according to its role in a project: [Meeting notes], [Timeline], [Budget], [Decision], [Action], [Idea], or [Objective]
  • Tagging according to the current stage of their workflow: [Planned], [In process], [Waiting for approval], [Reviewed], [Approved], [On hold], or [Finished] [View Highlight](https://read.readwise.io/read/01j6hj21kk7kmc7c4f40hg3004))

  These kinds of tags aren’t about the contents of a note. They are about its context – specifically, the context in which it is being used. Since [View Highlight](https://read.readwise.io/read/01j6hj2t79v8mg6rey564bm350))

  We didn’t want to move her existing notes from their respective PARA folders, but we did want to be able to see all the notes related to “writing job descriptions” or “reviewing applications” in one place with a quick search. This is the perfect situation for tags: when you want a different way of “viewing” your notes, without having to [View Highlight](https://read.readwise.io/read/01j6hj859j9vyq735n7t634791))

  Building a Second Brain: Chapter 11 | buildingasecondbrain.com undertake a massive reorganization of your entire system. [View Highlight](https://read.readwise.io/read/01j6hj84vq0hfy5rtaxw7nk0wa))

  Instead of applying tags when you first capture content, I recommend applying them when it’s time to use it. Often, the ideal moment is when you are getting ready to start a new project. When you apply tags with a specific use case in mind, the tags you come up with will be far more concrete and actionable. And you will have the motivation to do the work of adding them because of the immediate needs of the project you are taking on. [View Highlight](https://read.readwise.io/read/01j6hjb00pwcgt92e9ek7ad2p7))

  using tags in this way means it’s perfectly fine to skip adding tags altogether if you don’t feel like it. ... This eliminates the frustrating experience of trying to force yourself to think of a tag for a note, even when nothing comes to mind, because you fear that otherwise it will be lost forever. Even if no tags are applied, the note will always be right in the folder where you left it.

raw_content:
  # Building a Second Brain - Tags

  ![rw-book-cover](https://m.media-amazon.com/images/I/71jhK9zsKEL.jpg)

  ## Metadata
  - Author: [[Tiago Forte]]
  - Full Title: Building a Second Brain - Tags
  - Category: #articles
  - Document Tags: [[notetaking]] [[productivity]] 
  - URL: https://readwise.io/reader/document_raw_content/2217137
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Building%20a%20Second%20Brain%20-%20Tags
  > [!tldr]
  > Creating a universal tagging system for notes is impractical and can lead to frustration. Instead, tags should be used to track the progress and purpose of notes, focusing on actionable use cases. Start small with simple organization methods and apply tags retroactively as needed to maintain clarity and motivation.

  ## Highlights
  The goal of all these endeavors was to create a system of classification – known as a “taxonomy” – that every piece of knowledge could be placed into. [View Highlight](https://read.readwise.io/read/01j6hh4c8747s1xrb59f93826q))

  Like Pandora’s Box, once we begin to apply tags it can be incredibly tempting to start labeling each and every note ... Building a Second Brain: Chapter 11 | buildingasecondbrain.com understand what we are trying to use our notes to accomplish to avoid the trap of “tagging for the sake of tagging.”

  There are three practical approaches to tagging you can use as your Second Brain grows and matures. Each one follows the principle of actionability and answers an important question about the purpose of a given note: 1. Create personalized tags for your use cases. (How will my notes be used?) 2. Use tags to track the progress of notes. (How are my notes currently being used?) 3. Tag notes retroactively and only as needed. (How have my notes been used?) [View Highlight](https://read.readwise.io/read/01j6hhjytn42dbdcgskyjrr74q))

  if you already know how your notes are likely to be used – such as for citations in a paper [Source], as evidence in a trial [Evidence], or as slides in a presentation [Slides] – it can be helpful to tag your notes according to those use cases. [View Highlight](https://read.readwise.io/read/01j6hhp4pghcnk2r4z4r95n287))

  Ask yourself, “What are the most common use cases for the content I capture?” Here are a couple common examples: • Tagging according to the final product a note will be used in: [Presentation], [Essay], [Report], [Website], [Project plan], [Meeting agenda], or [Budget]
  • Tagging according to the kind of information a note contains: [Arguments], [Theories], [Frameworks], [Evidence], [Claim], [Counterpoint], or [Question] [View Highlight](https://read.readwise.io/read/01j6hhwgwga3a4t0bm9p3t12y6))

  tags to track the progress of their notes: • Tagging according to its role in a project: [Meeting notes], [Timeline], [Budget], [Decision], [Action], [Idea], or [Objective]
  • Tagging according to the current stage of their workflow: [Planned], [In process], [Waiting for approval], [Reviewed], [Approved], [On hold], or [Finished] [View Highlight](https://read.readwise.io/read/01j6hj21kk7kmc7c4f40hg3004))

  These kinds of tags aren’t about the contents of a note. They are about its context – specifically, the context in which it is being used. Since [View Highlight](https://read.readwise.io/read/01j6hj2t79v8mg6rey564bm350))

  We didn’t want to move her existing notes from their respective PARA folders, but we did want to be able to see all the notes related to “writing job descriptions” or “reviewing applications” in one place with a quick search. This is the perfect situation for tags: when you want a different way of “viewing” your notes, without having to [View Highlight](https://read.readwise.io/read/01j6hj859j9vyq735n7t634791))

  Building a Second Brain: Chapter 11 | buildingasecondbrain.com undertake a massive reorganization of your entire system. [View Highlight](https://read.readwise.io/read/01j6hj84vq0hfy5rtaxw7nk0wa))

  Instead of applying tags when you first capture content, I recommend applying them when it’s time to use it. Often, the ideal moment is when you are getting ready to start a new project. When you apply tags with a specific use case in mind, the tags you come up with will be far more concrete and actionable. And you will have the motivation to do the work of adding them because of the immediate needs of the project you are taking on. [View Highlight](https://read.readwise.io/read/01j6hjb00pwcgt92e9ek7ad2p7))

  using tags in this way means it’s perfectly fine to skip adding tags altogether if you don’t feel like it. ... This eliminates the frustrating experience of trying to force yourself to think of a tag for a note, even when nothing comes to mind, because you fear that otherwise it will be lost forever. Even if no tags are applied, the note will always be right in the folder where you left it.


path: Readwise/Caching vs Content Delivery Networks – What's the Difference.md
sortable_path: ReadwiseCaching vs Content Delivery Networks – What's the Difference.md
title: Caching vs Content Delivery Networks – What's the Difference?
checksum: f89c17ff9bae6eb3fe4855c18fd49943ebe11c2600a2773601da1df5e96d7a6b
created: 2024-09-12 14:56:45.715580701+00:00
modified: 2024-09-04 23:31:38.787968986+00:00
metadata: {}
lead:
  ![rw-book-cover](https://www.freecodecamp.org/news/content/images/2024/02/Conducting-Research-Projects-Educational-Presentation-in-Pink-and-Yellow-Colorful-Line-Style-1.jpg)

body:
  ![rw-book-cover](https://www.freecodecamp.org/news/content/images/2024/02/Conducting-Research-Projects-Educational-Presentation-in-Pink-and-Yellow-Colorful-Line-Style-1.jpg)

  ## Metadata
  - Author: [[anamika.ahmed.792]]
  - Full Title: Caching vs Content Delivery Networks – What's the Difference?
  - Category: #articles
  - URL: https://www.freecodecamp.org/news/caching-vs-content-delivery-network/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Caching%20vs%20Content%20Delivery%20Networks%20%E2%80%93%20What%27s%20the%20Difference%3F
  > [!tldr]
  > In the world of network optimization, Content Delivery Networks (CDNs) and caching are essential for enhancing website performance and user experience. Caching involves temporarily storing frequently accessed data to reduce response times, while CDNs use a network of servers to deliver web content more efficiently. Both methods aim to improve performance, optimize resource utilization, and enhance user experience. Caching is ideal for frequently accessed static content, while CDNs excel at delivering content globally, especially dynamic content and media. Combining caching and CDNs can offer optimal results, particularly for websites with a mix of static and dynamic content.

  ## Highlights
  Caching is a technique used to store copies of frequently accessed data temporarily. The cached data can be anything from web pages and images to database query results. When a user requests cached content, the server retrieves it from the cache instead of generating it anew, significantly reducing response times. [View Highlight](https://read.readwise.io/read/01j5rvjkrkd34kjh984axnab87))

  What to Consider When Implementing a Cache SystemDecide When to Use a Cache:
  • A cache is best for frequently read but infrequently modified data.
  • Cache servers are not suitable for storing critical data as they use volatile memory.
  • Important data should be stored in persistent data stores to prevent loss in case of cache server restarts. [View Highlight](https://read.readwise.io/read/01j5rvj1mdcbaqnj0e9n2vnw3v))

  In technical terms, a CDN is a network of servers distributed across various locations globally. Its primary purpose is to deliver web content, such as images, videos, scripts, and stylesheets to users more efficiently by reducing the physical distance between the server and the user. [View Highlight](https://read.readwise.io/read/01j5rvrwx5kh2fpqwfpnvxeqd9))

  What to Consider When Implementing a CDN
  • **Cost Management**: CDNs charge for data transfers. It’s wise to cache frequently accessed content, but not everything.
  • **Cache Expiry**: Set appropriate cache expiry times. Too long, and content might be stale. Too short, and it strains origin servers.
  • **CDN Fallback**: Plan for CDN failures. Ensure your website can switch to fetching resources directly from the origin if needed.
  • **Invalidating Files**: You can remove files from the CDN before they expire using various methods provided by CDN vendors. [View Highlight](https://read.readwise.io/read/01j5rvvgawfs37758cbyyz9g69))

  In fact, studies show that CDNs can ****reduce video startup time by up to 50%****, making a significant difference in user satisfaction. [View Highlight](https://read.readwise.io/read/01j5rvxqm29rk1kwr36j6m9nmp))

  Caching is ideal for frequently accessed content that doesn't change frequently. This includes static assets like images, CSS files, and JavaScript libraries.
  It's particularly effective for websites with a substantial user base accessing similar content, such as news websites, blogs, and e-commerce platforms. [View Highlight](https://read.readwise.io/read/01j5rw4q49kh725b3er30axw9q)) [[dev]] [[favorite]] 

  CDNs are invaluable for delivering content to a global audience, especially when geographical distance between users and origin servers leads to latency issues.
  They are well-suited for serving dynamic content, streaming media, and handling sudden spikes in traffic.
  CDNs also excel in scenarios where content needs to be delivered reliably and consistently across diverse geographic regions, ensuring optimal user experience regardless of location. [View Highlight](https://read.readwise.io/read/01j5rw5x54n9bs6qg1mygc0vd9))

raw_content:
  # Caching vs Content Delivery Networks – What's the Difference?

  ![rw-book-cover](https://www.freecodecamp.org/news/content/images/2024/02/Conducting-Research-Projects-Educational-Presentation-in-Pink-and-Yellow-Colorful-Line-Style-1.jpg)

  ## Metadata
  - Author: [[anamika.ahmed.792]]
  - Full Title: Caching vs Content Delivery Networks – What's the Difference?
  - Category: #articles
  - URL: https://www.freecodecamp.org/news/caching-vs-content-delivery-network/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Caching%20vs%20Content%20Delivery%20Networks%20%E2%80%93%20What%27s%20the%20Difference%3F
  > [!tldr]
  > In the world of network optimization, Content Delivery Networks (CDNs) and caching are essential for enhancing website performance and user experience. Caching involves temporarily storing frequently accessed data to reduce response times, while CDNs use a network of servers to deliver web content more efficiently. Both methods aim to improve performance, optimize resource utilization, and enhance user experience. Caching is ideal for frequently accessed static content, while CDNs excel at delivering content globally, especially dynamic content and media. Combining caching and CDNs can offer optimal results, particularly for websites with a mix of static and dynamic content.

  ## Highlights
  Caching is a technique used to store copies of frequently accessed data temporarily. The cached data can be anything from web pages and images to database query results. When a user requests cached content, the server retrieves it from the cache instead of generating it anew, significantly reducing response times. [View Highlight](https://read.readwise.io/read/01j5rvjkrkd34kjh984axnab87))

  What to Consider When Implementing a Cache SystemDecide When to Use a Cache:
  • A cache is best for frequently read but infrequently modified data.
  • Cache servers are not suitable for storing critical data as they use volatile memory.
  • Important data should be stored in persistent data stores to prevent loss in case of cache server restarts. [View Highlight](https://read.readwise.io/read/01j5rvj1mdcbaqnj0e9n2vnw3v))

  In technical terms, a CDN is a network of servers distributed across various locations globally. Its primary purpose is to deliver web content, such as images, videos, scripts, and stylesheets to users more efficiently by reducing the physical distance between the server and the user. [View Highlight](https://read.readwise.io/read/01j5rvrwx5kh2fpqwfpnvxeqd9))

  What to Consider When Implementing a CDN
  • **Cost Management**: CDNs charge for data transfers. It’s wise to cache frequently accessed content, but not everything.
  • **Cache Expiry**: Set appropriate cache expiry times. Too long, and content might be stale. Too short, and it strains origin servers.
  • **CDN Fallback**: Plan for CDN failures. Ensure your website can switch to fetching resources directly from the origin if needed.
  • **Invalidating Files**: You can remove files from the CDN before they expire using various methods provided by CDN vendors. [View Highlight](https://read.readwise.io/read/01j5rvvgawfs37758cbyyz9g69))

  In fact, studies show that CDNs can ****reduce video startup time by up to 50%****, making a significant difference in user satisfaction. [View Highlight](https://read.readwise.io/read/01j5rvxqm29rk1kwr36j6m9nmp))

  Caching is ideal for frequently accessed content that doesn't change frequently. This includes static assets like images, CSS files, and JavaScript libraries.
  It's particularly effective for websites with a substantial user base accessing similar content, such as news websites, blogs, and e-commerce platforms. [View Highlight](https://read.readwise.io/read/01j5rw4q49kh725b3er30axw9q)) [[dev]] [[favorite]] 

  CDNs are invaluable for delivering content to a global audience, especially when geographical distance between users and origin servers leads to latency issues.
  They are well-suited for serving dynamic content, streaming media, and handling sudden spikes in traffic.
  CDNs also excel in scenarios where content needs to be delivered reliably and consistently across diverse geographic regions, ensuring optimal user experience regardless of location. [View Highlight](https://read.readwise.io/read/01j5rw5x54n9bs6qg1mygc0vd9))


path: Readwise/Developer With ADHD You’re Not Alone..md
sortable_path: ReadwiseDeveloper With ADHD You’re Not Alone..md
title: Developer With ADHD? You’re Not Alone.
checksum: 2b7a0cfa15feb442c4aa5f91c2c82b58191d3a75e2e0c7d18b41bf026d05dda1
created: 2024-09-12 14:56:45.732125377+00:00
modified: 2024-09-04 23:31:39.105969829+00:00
metadata: {}
lead:
  ![rw-book-cover](https://stackoverflow.blog/wp-content/uploads/2017/03/cropped-SO_Logo_glyph-use-this-one-smaller-32x32.jpg)

body:
  ![rw-book-cover](https://stackoverflow.blog/wp-content/uploads/2017/03/cropped-SO_Logo_glyph-use-this-one-smaller-32x32.jpg)

  ## Metadata
  - Author: [[Eira May]]
  - Full Title: Developer With ADHD? You’re Not Alone.
  - Category: #articles
  - URL: https://stackoverflow.blog/2023/12/26/developer-with-adhd-youre-not-alone/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Developer%20With%20ADHD%3F%20You%E2%80%99re%20Not%20Alone.
  > [!tldr]
  > There is a connection between programming and ADHD, as many developers with ADHD feel that their job is a perfect fit for how they think and approach problems. Coding provides the kind of stimulation that ADHD brains crave, and it rewards a state of hyperfocus, which is a symptom of ADHD. However, ADHD can also present challenges such as inattentive mistakes and missed deadlines. It is important to have an open dialogue about ADHD and other forms of neurodiversity in order to combat stigma and create psychologically safe environments in the tech industry.

  ## Highlights
  Many developers with ADHD feel their job is a perfect fit for how they think and approach problems. “Coding can give ADHD brains exactly the kind of stimulation they crave,” [explains](https://dev.to/abbeyperini/coding-and-adhd-adhd-brains-im1) full-stack developer Abbey Perini. “Not only is coding a creative endeavor that involves constantly learning new things, but also once one problem is solved, there’s always a brand new one to try.” [View Highlight](https://read.readwise.io/read/01j6pxdgk8q9zpq1a1dmjf050g))

  coding can reward and encourage a state of [hyperfocus](https://health.clevelandclinic.org/hyperfocus-and-adhd/): a frequently cited symptom of ADHD that developer [Neil Peterson](https://adapthd.com/topics/coping-strategies/programming-with-adhd-the-good-the-bad-and-the-hyperfocus/) calls “a state of laser-like concentration in which distractions and even a sense of passing time seem to fade away.” It’s easy to draw parallels between hyperfocus and the [flow state](https://stackoverflow.blog/2022/09/14/what-science-says-about-flow-state/), a distraction-free groove in which programmers, writers, musicians, artists, and other creators produce their best work (occasionally while forgetting to eat). [View Highlight](https://read.readwise.io/read/01j6pxkb2v38syn1hs3tw6exyk))

  ADHD can make people more vulnerable to inattentive mistakes, missed deadlines, or unfinished projects. A perennial question on Reddit is [some variation](https://www.reddit.com/r/learnprogramming/comments/kftc4g/any_programmers_with_adhd/) of “Programmers with ADHD, how do you stay on track?” [View Highlight](https://read.readwise.io/read/01j6pxt1ppawyk5bfb7yqbb4cs))
  > [!note]
  > Inattentive mistakes: Errors that occur when an individual fails to fully focus on a task, often resulting in oversights or miscalculations. These mistakes can stem from distractions, fatigue, or cognitive overload, and are frequently associated with conditions such as Attention Deficit Hyperactivity Disorder (ADHD). Inattentive mistakes may manifest as missed deadlines, incomplete work, or simple errors in judgment, highlighting the importance of attention and concentration in effective task management.

raw_content:
  # Developer With ADHD? You’re Not Alone.

  ![rw-book-cover](https://stackoverflow.blog/wp-content/uploads/2017/03/cropped-SO_Logo_glyph-use-this-one-smaller-32x32.jpg)

  ## Metadata
  - Author: [[Eira May]]
  - Full Title: Developer With ADHD? You’re Not Alone.
  - Category: #articles
  - URL: https://stackoverflow.blog/2023/12/26/developer-with-adhd-youre-not-alone/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Developer%20With%20ADHD%3F%20You%E2%80%99re%20Not%20Alone.
  > [!tldr]
  > There is a connection between programming and ADHD, as many developers with ADHD feel that their job is a perfect fit for how they think and approach problems. Coding provides the kind of stimulation that ADHD brains crave, and it rewards a state of hyperfocus, which is a symptom of ADHD. However, ADHD can also present challenges such as inattentive mistakes and missed deadlines. It is important to have an open dialogue about ADHD and other forms of neurodiversity in order to combat stigma and create psychologically safe environments in the tech industry.

  ## Highlights
  Many developers with ADHD feel their job is a perfect fit for how they think and approach problems. “Coding can give ADHD brains exactly the kind of stimulation they crave,” [explains](https://dev.to/abbeyperini/coding-and-adhd-adhd-brains-im1) full-stack developer Abbey Perini. “Not only is coding a creative endeavor that involves constantly learning new things, but also once one problem is solved, there’s always a brand new one to try.” [View Highlight](https://read.readwise.io/read/01j6pxdgk8q9zpq1a1dmjf050g))

  coding can reward and encourage a state of [hyperfocus](https://health.clevelandclinic.org/hyperfocus-and-adhd/): a frequently cited symptom of ADHD that developer [Neil Peterson](https://adapthd.com/topics/coping-strategies/programming-with-adhd-the-good-the-bad-and-the-hyperfocus/) calls “a state of laser-like concentration in which distractions and even a sense of passing time seem to fade away.” It’s easy to draw parallels between hyperfocus and the [flow state](https://stackoverflow.blog/2022/09/14/what-science-says-about-flow-state/), a distraction-free groove in which programmers, writers, musicians, artists, and other creators produce their best work (occasionally while forgetting to eat). [View Highlight](https://read.readwise.io/read/01j6pxkb2v38syn1hs3tw6exyk))

  ADHD can make people more vulnerable to inattentive mistakes, missed deadlines, or unfinished projects. A perennial question on Reddit is [some variation](https://www.reddit.com/r/learnprogramming/comments/kftc4g/any_programmers_with_adhd/) of “Programmers with ADHD, how do you stay on track?” [View Highlight](https://read.readwise.io/read/01j6pxt1ppawyk5bfb7yqbb4cs))
  > [!note]
  > Inattentive mistakes: Errors that occur when an individual fails to fully focus on a task, often resulting in oversights or miscalculations. These mistakes can stem from distractions, fatigue, or cognitive overload, and are frequently associated with conditions such as Attention Deficit Hyperactivity Disorder (ADHD). Inattentive mistakes may manifest as missed deadlines, incomplete work, or simple errors in judgment, highlighting the importance of attention and concentration in effective task management.


path: Readwise/Five Terminal Applications I Can't Live Without.md
sortable_path: ReadwiseFive Terminal Applications I Can't Live Without.md
title: Five Terminal Applications I Can't Live Without
lead: ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)
checksum: c05ecd79d01efa4645cbe4ab2f962087329d6ab5bac3c0e68d8a9a9d36bfa9fe
created: 2024-09-12 14:56:45.745045807+00:00
modified: 2024-09-04 23:31:38.515968265+00:00
metadata: {}
body:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)

  ## Metadata
  - Author: [[DevOps Toolbox]]
  - Full Title: Five Terminal Applications I Can't Live Without
  - Category: #articles
  - Document Tags: [[cli-tools]] 
  - URL: https://omnivore.app/aleidk/five-terminal-applications-i-can-t-live-without-19137768dab
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Five%20Terminal%20Applications%20I%20Can%27t%20Live%20Without
  > [!tldr]
  > We all love the terminal. But what if I told you that some of the most powerful security tools are slo available, right at your fingertips, within your familiar terminal?

  ## Highlights
  [age](https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/qvh8h7hrpoermrbl/aHR0cHM6Ly9naXRodWIuY29tL0ZpbG9Tb3R0aWxlL2FnZQ==) is a simple, modern file encryption tool that’s perfect for quickly securing sensitive data. Whether you’re using keys or passwords, age makes file encryption a breeze. [View Highlight](https://read.readwise.io/read/01j544wrjfxa9s9bfvp3nww6hh)) [[cli-tools]] 

  [sshs](https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/g3hnh5h3w6g38mhr/aHR0cHM6Ly9naXRodWIuY29tL3F1YW50dW1zaGVlcC9zc2hz) is a terminal user interface for SSH that takes the pain out of managing multiple server connections. It picks up your SSH config and presents your servers in a neat, easy-to-navigate list. [View Highlight](https://read.readwise.io/read/01j544yqsb0j8442d97546tgyy)) [[cli-tools]] 

  [atac](https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/9qhzhnhprz4pvzc9/aHR0cHM6Ly9naXRodWIuY29tL0p1bGllbi1jcHNuL0FUQUM=) (Arguably a terminal API client) brings the power of Postman to your command line. It’s perfect for testing and debugging API endpoints without leaving your terminal. [View Highlight](https://read.readwise.io/read/01j544zs5250tst193evsrth2c)) [[cli-tools]] 

  [portal](https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/48hvhehr86wrdwtx/aHR0cHM6Ly9naXRodWIuY29tL1NwYXRpdW1Qb3J0YWUvcG9ydGFs) is a sleek file transfer utility that works in your terminal. It makes sending files between computers secure and straightforward. [View Highlight](https://read.readwise.io/read/01j5450tnt3tjstzyn3tzs4xyx)) [[cli-tools]]

raw_content:
  # Five Terminal Applications I Can't Live Without

  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)

  ## Metadata
  - Author: [[DevOps Toolbox]]
  - Full Title: Five Terminal Applications I Can't Live Without
  - Category: #articles
  - Document Tags: [[cli-tools]] 
  - URL: https://omnivore.app/aleidk/five-terminal-applications-i-can-t-live-without-19137768dab
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Five%20Terminal%20Applications%20I%20Can%27t%20Live%20Without
  > [!tldr]
  > We all love the terminal. But what if I told you that some of the most powerful security tools are slo available, right at your fingertips, within your familiar terminal?

  ## Highlights
  [age](https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/qvh8h7hrpoermrbl/aHR0cHM6Ly9naXRodWIuY29tL0ZpbG9Tb3R0aWxlL2FnZQ==) is a simple, modern file encryption tool that’s perfect for quickly securing sensitive data. Whether you’re using keys or passwords, age makes file encryption a breeze. [View Highlight](https://read.readwise.io/read/01j544wrjfxa9s9bfvp3nww6hh)) [[cli-tools]] 

  [sshs](https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/g3hnh5h3w6g38mhr/aHR0cHM6Ly9naXRodWIuY29tL3F1YW50dW1zaGVlcC9zc2hz) is a terminal user interface for SSH that takes the pain out of managing multiple server connections. It picks up your SSH config and presents your servers in a neat, easy-to-navigate list. [View Highlight](https://read.readwise.io/read/01j544yqsb0j8442d97546tgyy)) [[cli-tools]] 

  [atac](https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/9qhzhnhprz4pvzc9/aHR0cHM6Ly9naXRodWIuY29tL0p1bGllbi1jcHNuL0FUQUM=) (Arguably a terminal API client) brings the power of Postman to your command line. It’s perfect for testing and debugging API endpoints without leaving your terminal. [View Highlight](https://read.readwise.io/read/01j544zs5250tst193evsrth2c)) [[cli-tools]] 

  [portal](https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/48hvhehr86wrdwtx/aHR0cHM6Ly9naXRodWIuY29tL1NwYXRpdW1Qb3J0YWUvcG9ydGFs) is a sleek file transfer utility that works in your terminal. It makes sending files between computers secure and straightforward. [View Highlight](https://read.readwise.io/read/01j5450tnt3tjstzyn3tzs4xyx)) [[cli-tools]] 


path: Readwise/HTMX 3 IRL Use Cases.md
sortable_path: ReadwiseHTMX 3 IRL Use Cases.md
title: HTMX: 3 IRL Use Cases
lead: ![rw-book-cover](https://i.ytimg.com/vi/sTzF57GE4-k/maxresdefault.jpg)
checksum: 3630dd65363cf611619efdf4b9d47d8dff1972cf29aaa2039a4aeaeb6492adc0
created: 2024-09-12 14:56:45.784552384+00:00
modified: 2024-09-04 23:31:38.804969031+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/sTzF57GE4-k/maxresdefault.jpg)

  ## Metadata
  - Author: [[ThePrimeTime]]
  - Full Title: HTMX: 3 IRL Use Cases
  - Category: #articles
  - URL: https://www.youtube.com/watch?v=sTzF57GE4-k
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=HTMX%3A%203%20IRL%20Use%20Cases
  > [!tldr]
  > HTMX is a simple tool that can make web development easier by keeping things straightforward. It allows developers to build dynamic web applications without relying heavily on JavaScript frameworks. Many tasks can be achieved with just a few lines of code, making it a valuable addition to a developer's toolkit.

  ## Highlights
  if you started web dev after 2015 it is hard to see how to do a site without anything other than client-side Frameworks [View Highlight](https://read.readwise.io/read/01j5tc1j7ke8vs2vmcs34c07kn))

raw_content:
  # HTMX: 3 IRL Use Cases

  ![rw-book-cover](https://i.ytimg.com/vi/sTzF57GE4-k/maxresdefault.jpg)

  ## Metadata
  - Author: [[ThePrimeTime]]
  - Full Title: HTMX: 3 IRL Use Cases
  - Category: #articles
  - URL: https://www.youtube.com/watch?v=sTzF57GE4-k
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=HTMX%3A%203%20IRL%20Use%20Cases
  > [!tldr]
  > HTMX is a simple tool that can make web development easier by keeping things straightforward. It allows developers to build dynamic web applications without relying heavily on JavaScript frameworks. Many tasks can be achieved with just a few lines of code, making it a valuable addition to a developer's toolkit.

  ## Highlights
  if you started web dev after 2015 it is hard to see how to do a site without anything other than client-side Frameworks [View Highlight](https://read.readwise.io/read/01j5tc1j7ke8vs2vmcs34c07kn))


path: Readwise/How Do You Program for 8h in a Row.md
sortable_path: ReadwiseHow Do You Program for 8h in a Row.md
title: How Do You Program for 8h in a Row?
checksum: ed6c41a6dad339768887546ec80b925b4e93c6c08d139d7858d5356b014494ae
created: 2024-09-12 14:56:45.791063037+00:00
modified: 2024-09-04 23:31:38.837969119+00:00
metadata: {}
lead:
  ![rw-book-cover](https://substackcdn.com/image/fetch/w_1200,h_600,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa68add58-ed53-40af-972e-222f936aa4bd_512x312.png)

body:
  ![rw-book-cover](https://substackcdn.com/image/fetch/w_1200,h_600,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa68add58-ed53-40af-972e-222f936aa4bd_512x312.png)

  ## Metadata
  - Author: [[Bite Code!]]
  - Full Title: How Do You Program for 8h in a Row?
  - Category: #articles
  - Document Tags: [[dev]] [[productivity]] 
  - URL: https://www.bitecode.dev/p/how-do-you-program-for-8h-in-a-row
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20Do%20You%20Program%20for%208h%20in%20a%20Row%3F
  > [!tldr]
  > Most programmers can't work for 8 hours straight every day without feeling burnt out. It's important to focus on your own coding goals and productivity rather than comparing yourself to others. Finding a balance that works for you will lead to a happier and more sustainable coding experience.

  ## Highlights
  Unless you are going to deny John von Neumann and Usain Bolt have existed, you have to accept the idea some individuals are able to produce results you can’t. [View Highlight](https://read.readwise.io/read/01j5ve0w5gwghcgzxsyvvhmwqt))

  Here I am with the damn spectrum again. But it’s a curve, y’all, of course, it’s a spectrum. You don’t have 10x and 1x, you have 0.3x, 5x, 1.479878x (and -2x because aggressive imbeciles are also part of our reality)... [View Highlight](https://read.readwise.io/read/01j5ve777bthcmj83k6k7cec5f))
  > [!note]
  > Aquí estoy de nuevo con el maldito espectro. Pero es una curva, amigos, por supuesto, es un espectro. No tienes 10x y 1x, tienes 0.3x, 5x, 1.479878x (y -2x porque los imbéciles agresivos también son parte de nuestra realidad)...
  > lol xd

  you will have to adapt your rhythm, and the size of the task you are going for, plus manage expectations, yours and others, to be a happy coder [View Highlight](https://read.readwise.io/read/01j5veddky3z4g488sy5bcd4a2)) [[favorite]] 

  Figure out what you can do, and find the load that fits you. If you like it, you may attempt to outgrow this by giving yourself more challenges or even putting yourself in an extremely hard situation. However, remember that life, often in the form of customers, bosses and DDOS, will bring that to you anyway. [View Highlight](https://read.readwise.io/read/01j5vee0j5h4jqxfyarnvpxnkt))

raw_content:
  # How Do You Program for 8h in a Row?

  ![rw-book-cover](https://substackcdn.com/image/fetch/w_1200,h_600,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa68add58-ed53-40af-972e-222f936aa4bd_512x312.png)

  ## Metadata
  - Author: [[Bite Code!]]
  - Full Title: How Do You Program for 8h in a Row?
  - Category: #articles
  - Document Tags: [[dev]] [[productivity]] 
  - URL: https://www.bitecode.dev/p/how-do-you-program-for-8h-in-a-row
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20Do%20You%20Program%20for%208h%20in%20a%20Row%3F
  > [!tldr]
  > Most programmers can't work for 8 hours straight every day without feeling burnt out. It's important to focus on your own coding goals and productivity rather than comparing yourself to others. Finding a balance that works for you will lead to a happier and more sustainable coding experience.

  ## Highlights
  Unless you are going to deny John von Neumann and Usain Bolt have existed, you have to accept the idea some individuals are able to produce results you can’t. [View Highlight](https://read.readwise.io/read/01j5ve0w5gwghcgzxsyvvhmwqt))

  Here I am with the damn spectrum again. But it’s a curve, y’all, of course, it’s a spectrum. You don’t have 10x and 1x, you have 0.3x, 5x, 1.479878x (and -2x because aggressive imbeciles are also part of our reality)... [View Highlight](https://read.readwise.io/read/01j5ve777bthcmj83k6k7cec5f))
  > [!note]
  > Aquí estoy de nuevo con el maldito espectro. Pero es una curva, amigos, por supuesto, es un espectro. No tienes 10x y 1x, tienes 0.3x, 5x, 1.479878x (y -2x porque los imbéciles agresivos también son parte de nuestra realidad)...
  > lol xd

  you will have to adapt your rhythm, and the size of the task you are going for, plus manage expectations, yours and others, to be a happy coder [View Highlight](https://read.readwise.io/read/01j5veddky3z4g488sy5bcd4a2)) [[favorite]] 

  Figure out what you can do, and find the load that fits you. If you like it, you may attempt to outgrow this by giving yourself more challenges or even putting yourself in an extremely hard situation. However, remember that life, often in the form of customers, bosses and DDOS, will bring that to you anyway. [View Highlight](https://read.readwise.io/read/01j5vee0j5h4jqxfyarnvpxnkt))


path: Readwise/How I Remember Everything I Read With Readwise.md
sortable_path: ReadwiseHow I Remember Everything I Read With Readwise.md
title: How I Remember Everything I Read With Readwise
lead: ![rw-book-cover](https://i.ytimg.com/vi/OlWomVta4DU/maxresdefault.jpg)
checksum: e0f8b2913986bc173af9cdc351aa5d01344fc9af7e0a4f2def181c833a1b5f93
created: 2024-09-12 14:56:45.801424061+00:00
modified: 2024-09-04 23:31:38.941969395+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/OlWomVta4DU/maxresdefault.jpg)

  ## Metadata
  - Author: [[Tiago Forte]]
  - Full Title: How I Remember Everything I Read With Readwise
  - Category: #articles
  - Document Tags: [[notetaking]] [[productivity]] 
  - URL: https://youtube.com/watch?v=OlWomVta4DU&si=9kSzbiC8eY_Bncgq
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20I%20Remember%20Everything%20I%20Read%20With%20Readwise
  > [!tldr]
  > Readwise is a platform that helps you remember everything you read by collecting highlights from books, articles, and other content. It can export these highlights to various note-taking apps, making it easy to organize your thoughts. This way, you can revisit important information whenever you need it without the hassle of copying and pasting.

  ## Highlights
  that kind of focused aware reading where you're not just reading a tweet or an Instagram caption you're actually taking the time and space to sit down and really think about something really take an idea seriously that is a rare and precious experience [View Highlight](https://read.readwise.io/read/01j69ty4jsa8qyqrm76cb82e1c))

  most of the internet if you think about it especially social media is not designed for calm deep purposeful reflection it's exactly the opposite [View Highlight](https://read.readwise.io/read/01j69v3539zhtvg4z09r0mhj0c))

  what I find is I end up deleting never even looking at maybe half of the stuff that is saving my relater app and it's the half that is most click-baity most sensationalistic most pointless most full of hype that's the stuff that I don't even want to be filling my mind
  anyway [View Highlight](https://read.readwise.io/read/01j69v79j1jfc2ptn55y886ee5))

raw_content:
  # How I Remember Everything I Read With Readwise

  ![rw-book-cover](https://i.ytimg.com/vi/OlWomVta4DU/maxresdefault.jpg)

  ## Metadata
  - Author: [[Tiago Forte]]
  - Full Title: How I Remember Everything I Read With Readwise
  - Category: #articles
  - Document Tags: [[notetaking]] [[productivity]] 
  - URL: https://youtube.com/watch?v=OlWomVta4DU&si=9kSzbiC8eY_Bncgq
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20I%20Remember%20Everything%20I%20Read%20With%20Readwise
  > [!tldr]
  > Readwise is a platform that helps you remember everything you read by collecting highlights from books, articles, and other content. It can export these highlights to various note-taking apps, making it easy to organize your thoughts. This way, you can revisit important information whenever you need it without the hassle of copying and pasting.

  ## Highlights
  that kind of focused aware reading where you're not just reading a tweet or an Instagram caption you're actually taking the time and space to sit down and really think about something really take an idea seriously that is a rare and precious experience [View Highlight](https://read.readwise.io/read/01j69ty4jsa8qyqrm76cb82e1c))

  most of the internet if you think about it especially social media is not designed for calm deep purposeful reflection it's exactly the opposite [View Highlight](https://read.readwise.io/read/01j69v3539zhtvg4z09r0mhj0c))

  what I find is I end up deleting never even looking at maybe half of the stuff that is saving my relater app and it's the half that is most click-baity most sensationalistic most pointless most full of hype that's the stuff that I don't even want to be filling my mind
  anyway [View Highlight](https://read.readwise.io/read/01j69v79j1jfc2ptn55y886ee5))


checksum: e3e7ac705d8792e3ea4073361c1de897ad43c42ee6ac2d0dd83e69af12cb1075
created: 2024-09-12 14:56:45.809147588+00:00
modified: 2024-09-04 23:31:38.854969164+00:00
metadata: {}
path:
  Readwise/How a Collaborative Zettelkasten Might Work A Modest Proposal for a New Kind of Collective Creativity.md

sortable_path:
  ReadwiseHow a Collaborative Zettelkasten Might Work A Modest Proposal for a New Kind of Collective Creativity.md

title:
  How a Collaborative Zettelkasten Might Work: A Modest Proposal for a New Kind of Collective Creativity

lead:
  ![rw-book-cover](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSBHZPD3JWcWaVg_AFb1m5du55SCFgj2hbE1Ek60-RFG4I3W8kvc35rFvniOx-G0NcNnwg&usqp=CAU)

body:
  ![rw-book-cover](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSBHZPD3JWcWaVg_AFb1m5du55SCFgj2hbE1Ek60-RFG4I3W8kvc35rFvniOx-G0NcNnwg&usqp=CAU)

  ## Metadata
  - Author: [[hidden (bobdoto)]]
  - Full Title: How a Collaborative Zettelkasten Might Work: A Modest Proposal for a New Kind of Collective Creativity
  - Category: #articles
  - URL: https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20a%20Collaborative%20Zettelkasten%20Might%20Work%3A%20A%20Modest%20Proposal%20for%20a%20New%20Kind%20of%20Collective%20Creativity
  > [!tldr]
  > This article gives a preliminary framework for people wanting to experiment with a collaborative zettelkasten. Keep in mind, these are mere suggestions, since I've not yet experimented with this type of slip box. As to whether the suggestions are valid, this will be determined by anyone who attempts to put them into practice. Note: While this article was written in the context of a Luhmann-style zettelkasten, people using similar, adjacent models, should feel free to work with what's presented in ways that fit their system.
  What's a Collaborative Zettelkasten?A collaborative zettelkasten is maintained by multiple people, one in which all the participants add main notes, establish connections between ideas, and freely pull from the network of notes for their own projects / projects worked on as a collective. The contents of the zettelkasten may or may not be aligned with a single, agreed upon subject. Participants may or may not have a common output, goal, or project in mind when they start. The only requirements...

  ## Highlights
  A collaborative zettelkasten is maintained by multiple people, one in which all the participants add main notes, establish connections between ideas, and freely pull from the network of notes for their own projects / projects worked on as a collective. The contents of the zettelkasten may or may not be aligned with a single, agreed upon subject. Participants may or may not have a common output, goal, or project in mind when they start. [View Highlight](https://read.readwise.io/read/01j5xzksta891sj1jfpexpb9vs))

  "[Luhmann's] main concern was not to develop an idea to maximum sophistication; rather, he operated on the assumption that a decision on the usefulness of a note could only be made in relating it to the other notes."[2](https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/#fn-2) [View Highlight](https://read.readwise.io/read/01j5xzxhwd0d5cgcvstt6y57z4))

  As Luhmann states in his own notes, let the zettelkasten function as a "septic tank."[3](https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/#fn-3) Allow the relationships between ideas to determine their value. [View Highlight](https://read.readwise.io/read/01j5xzz8xhq5r1tde4vkhr0fhp))

raw_content:
  # How a Collaborative Zettelkasten Might Work: A Modest Proposal for a New Kind of Collective Creativity

  ![rw-book-cover](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSBHZPD3JWcWaVg_AFb1m5du55SCFgj2hbE1Ek60-RFG4I3W8kvc35rFvniOx-G0NcNnwg&usqp=CAU)

  ## Metadata
  - Author: [[hidden (bobdoto)]]
  - Full Title: How a Collaborative Zettelkasten Might Work: A Modest Proposal for a New Kind of Collective Creativity
  - Category: #articles
  - URL: https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20a%20Collaborative%20Zettelkasten%20Might%20Work%3A%20A%20Modest%20Proposal%20for%20a%20New%20Kind%20of%20Collective%20Creativity
  > [!tldr]
  > This article gives a preliminary framework for people wanting to experiment with a collaborative zettelkasten. Keep in mind, these are mere suggestions, since I've not yet experimented with this type of slip box. As to whether the suggestions are valid, this will be determined by anyone who attempts to put them into practice. Note: While this article was written in the context of a Luhmann-style zettelkasten, people using similar, adjacent models, should feel free to work with what's presented in ways that fit their system.
  What's a Collaborative Zettelkasten?A collaborative zettelkasten is maintained by multiple people, one in which all the participants add main notes, establish connections between ideas, and freely pull from the network of notes for their own projects / projects worked on as a collective. The contents of the zettelkasten may or may not be aligned with a single, agreed upon subject. Participants may or may not have a common output, goal, or project in mind when they start. The only requirements...

  ## Highlights
  A collaborative zettelkasten is maintained by multiple people, one in which all the participants add main notes, establish connections between ideas, and freely pull from the network of notes for their own projects / projects worked on as a collective. The contents of the zettelkasten may or may not be aligned with a single, agreed upon subject. Participants may or may not have a common output, goal, or project in mind when they start. [View Highlight](https://read.readwise.io/read/01j5xzksta891sj1jfpexpb9vs))

  "[Luhmann's] main concern was not to develop an idea to maximum sophistication; rather, he operated on the assumption that a decision on the usefulness of a note could only be made in relating it to the other notes."[2](https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/#fn-2) [View Highlight](https://read.readwise.io/read/01j5xzxhwd0d5cgcvstt6y57z4))

  As Luhmann states in his own notes, let the zettelkasten function as a "septic tank."[3](https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/#fn-3) Allow the relationships between ideas to determine their value. [View Highlight](https://read.readwise.io/read/01j5xzz8xhq5r1tde4vkhr0fhp))


path: Readwise/How to Actually Use What You Read With Readwise Part 2.md
sortable_path: ReadwiseHow to Actually Use What You Read With Readwise Part 2.md
title: How to Actually Use What You Read With Readwise: Part 2
lead: ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2018/03/kindle-highlights.png)
checksum: a4d9fbce361b636acb38b8ba0f0a60eba8c1efa6175bbc06cf7e579afc43e093
created: 2024-09-12 14:56:45.814636203+00:00
modified: 2024-09-04 23:31:39.070969736+00:00
metadata: {}
body:
  ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2018/03/kindle-highlights.png)

  ## Metadata
  - Author: [[Daniel Doyon]]
  - Full Title: How to Actually Use What You Read With Readwise: Part 2
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://blog.readwise.io/reading-workflow-part-2/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise%3A%20Part%202
  > [!tldr]
  > In Part 2 of the Readwise series, we learn to enhance our reading workflow by actively engaging with what we read. This includes capturing highlights and notes, which help create a two-sided conversation with the text. The article emphasizes the importance of reviewing these materials through the Readwise web app for a more interactive experience.

  ## Highlights
  you'll find yourself asking as you read: Do I actually want to see this passage again? Is this passage actually highlight-worthy? Will my future self be able to make sense of what I've highlighted? And so on. [View Highlight](https://read.readwise.io/read/01j6mqyk29xd598f62nayabzfj))

  The internal dialog is actually a sign that you're *actively* — rather than passively — reading. [View Highlight](https://read.readwise.io/read/01j6mqzsxe83y8t342knm6y82h))

  "If your aim in reading is to profit from it — to grow somehow in mind or spirit — you have to keep awake. That means reading as actively as possible. It means making an effort — an effort for which you expect to be repaid." [View Highlight](https://read.readwise.io/read/01j6mrf2e1tg6jz2209brj24yk))

  Once you grow accustomed to actually revisiting what you've captured, however, you'll likely discover that you also want to review more than just the original passages. You'll also want to review your original reaction *to* those passages. You can capture these reactions, of course, by taking notes. [View Highlight](https://read.readwise.io/read/01j6mtvq8kd9c0cxcjmwp5bfpq))

  The objective is simply to start a conversation rather than just silently highlighting. Maybe you strongly agree with something the author has written. Even better, maybe you strongly disagree. Note why. Maybe a section confuses you. Maybe a section could be helpful to something you're working on. [View Highlight](https://read.readwise.io/read/01j6mtym0q2qhrbap1r1tby8cn))

raw_content:
  # How to Actually Use What You Read With Readwise: Part 2

  ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2018/03/kindle-highlights.png)

  ## Metadata
  - Author: [[Daniel Doyon]]
  - Full Title: How to Actually Use What You Read With Readwise: Part 2
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://blog.readwise.io/reading-workflow-part-2/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise%3A%20Part%202
  > [!tldr]
  > In Part 2 of the Readwise series, we learn to enhance our reading workflow by actively engaging with what we read. This includes capturing highlights and notes, which help create a two-sided conversation with the text. The article emphasizes the importance of reviewing these materials through the Readwise web app for a more interactive experience.

  ## Highlights
  you'll find yourself asking as you read: Do I actually want to see this passage again? Is this passage actually highlight-worthy? Will my future self be able to make sense of what I've highlighted? And so on. [View Highlight](https://read.readwise.io/read/01j6mqyk29xd598f62nayabzfj))

  The internal dialog is actually a sign that you're *actively* — rather than passively — reading. [View Highlight](https://read.readwise.io/read/01j6mqzsxe83y8t342knm6y82h))

  "If your aim in reading is to profit from it — to grow somehow in mind or spirit — you have to keep awake. That means reading as actively as possible. It means making an effort — an effort for which you expect to be repaid." [View Highlight](https://read.readwise.io/read/01j6mrf2e1tg6jz2209brj24yk))

  Once you grow accustomed to actually revisiting what you've captured, however, you'll likely discover that you also want to review more than just the original passages. You'll also want to review your original reaction *to* those passages. You can capture these reactions, of course, by taking notes. [View Highlight](https://read.readwise.io/read/01j6mtvq8kd9c0cxcjmwp5bfpq))

  The objective is simply to start a conversation rather than just silently highlighting. Maybe you strongly agree with something the author has written. Even better, maybe you strongly disagree. Note why. Maybe a section confuses you. Maybe a section could be helpful to something you're working on. [View Highlight](https://read.readwise.io/read/01j6mtym0q2qhrbap1r1tby8cn))


path: Readwise/How to Actually Use What You Read With Readwise Part 3.md
sortable_path: ReadwiseHow to Actually Use What You Read With Readwise Part 3.md
title: How to Actually Use What You Read With Readwise: Part 3
lead: ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2018/03/kindle-highlights.png)
checksum: b5f1c05bafa9258a2c1e7c5b3b92361575c200af2e2c1a51b668e86b0ce379fe
created: 2024-09-12 14:56:45.820391937+00:00
modified: 2024-09-04 23:31:39.087969782+00:00
metadata: {}
body:
  ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2018/03/kindle-highlights.png)

  ## Metadata
  - Author: [[Daniel Doyon]]
  - Full Title: How to Actually Use What You Read With Readwise: Part 3
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://blog.readwise.io/reading-workflow-part-3/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise%3A%20Part%203
  > [!tldr]
  > In Part 3 of the Readwise series, the author explains how to use advanced workflows for two types of reading: practical and theoretical. Practical reading aims for action, while theoretical reading focuses on gaining knowledge, and Readwise helps users capture and review key insights for both. By utilizing features like Inline Tagging and spaced repetition, readers can turn their reading into meaningful actions and lasting insights.

  ## Highlights
  "Theoretical books teach you that something is the case. Practical books teach you how to do something you want to do or think you should do." [View Highlight](https://read.readwise.io/read/01j6mxk0qxsc1ge4ebcrabg7n8))

  When you read something practical, you are seeking some sort of action — to *do*. When you read something theoretical, you are seeking some sort of knowledge — to *know*. [View Highlight](https://read.readwise.io/read/01j6mxkgms2x7rkwt6qqaaq144))

  serendipitous [View Highlight](https://read.readwise.io/read/01j6mxnpq872bx9q40h1ez0hp3))
  > [!note]
  > serendipitous (adjective): occurring by chance in a happy or beneficial way; unexpected and fortunate 🌟🍀

  For example, we might make it so highlights tagged `.i` for inbox, like above, are accelerated into your daily reviews until you do something about them. [View Highlight](https://read.readwise.io/read/01j6my11vve93ecp1hwdrd5n9n))
  > [!note]
  > tags highlights for actionability, something that I can filter later to search stuff I want to do or apply

  to meaningfully understand a new concept, you need to ponder it repeatedly — in different moods and in different contexts, and from different perspectives. [View Highlight](https://read.readwise.io/read/01j6my5fjqcss9a8zb68vqerw4))

  [spaced repetition](https://en.wikipedia.org/wiki/Spaced_repetition), [View Highlight](https://read.readwise.io/read/01j6my96k3avt6s37knqkehh9s))
  > [!note]
  > Spaced repetition: A learning technique that involves increasing intervals of review for information to enhance long-term retention and mastery. By leveraging the psychological spacing effect, spaced repetition optimizes the timing of study sessions based on how well the learner knows the material, promoting efficient memory consolidation and reducing the forgetting curve. This method is commonly used in educational software and flashcard systems to facilitate language learning, exam preparation, and skill acquisition.

  [active recall](https://en.wikipedia.org/wiki/Active_recall), [View Highlight](https://read.readwise.io/read/01j6my8p2zekrx849jj5c4yj06))
  > [!note]
  > Active recall: A learning technique that involves actively stimulating memory during the learning process, typically by testing oneself on the material to be remembered. This method contrasts with passive review strategies, such as rereading or highlighting, by emphasizing retrieval practice, which has been shown to enhance long-term retention and understanding. Active recall can take various forms, including flashcards, quizzes, and self-questioning, and is widely used in educational settings to improve learning outcomes.

raw_content:
  # How to Actually Use What You Read With Readwise: Part 3

  ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2018/03/kindle-highlights.png)

  ## Metadata
  - Author: [[Daniel Doyon]]
  - Full Title: How to Actually Use What You Read With Readwise: Part 3
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://blog.readwise.io/reading-workflow-part-3/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise%3A%20Part%203
  > [!tldr]
  > In Part 3 of the Readwise series, the author explains how to use advanced workflows for two types of reading: practical and theoretical. Practical reading aims for action, while theoretical reading focuses on gaining knowledge, and Readwise helps users capture and review key insights for both. By utilizing features like Inline Tagging and spaced repetition, readers can turn their reading into meaningful actions and lasting insights.

  ## Highlights
  "Theoretical books teach you that something is the case. Practical books teach you how to do something you want to do or think you should do." [View Highlight](https://read.readwise.io/read/01j6mxk0qxsc1ge4ebcrabg7n8))

  When you read something practical, you are seeking some sort of action — to *do*. When you read something theoretical, you are seeking some sort of knowledge — to *know*. [View Highlight](https://read.readwise.io/read/01j6mxkgms2x7rkwt6qqaaq144))

  serendipitous [View Highlight](https://read.readwise.io/read/01j6mxnpq872bx9q40h1ez0hp3))
  > [!note]
  > serendipitous (adjective): occurring by chance in a happy or beneficial way; unexpected and fortunate 🌟🍀

  For example, we might make it so highlights tagged `.i` for inbox, like above, are accelerated into your daily reviews until you do something about them. [View Highlight](https://read.readwise.io/read/01j6my11vve93ecp1hwdrd5n9n))
  > [!note]
  > tags highlights for actionability, something that I can filter later to search stuff I want to do or apply

  to meaningfully understand a new concept, you need to ponder it repeatedly — in different moods and in different contexts, and from different perspectives. [View Highlight](https://read.readwise.io/read/01j6my5fjqcss9a8zb68vqerw4))

  [spaced repetition](https://en.wikipedia.org/wiki/Spaced_repetition), [View Highlight](https://read.readwise.io/read/01j6my96k3avt6s37knqkehh9s))
  > [!note]
  > Spaced repetition: A learning technique that involves increasing intervals of review for information to enhance long-term retention and mastery. By leveraging the psychological spacing effect, spaced repetition optimizes the timing of study sessions based on how well the learner knows the material, promoting efficient memory consolidation and reducing the forgetting curve. This method is commonly used in educational software and flashcard systems to facilitate language learning, exam preparation, and skill acquisition.

  [active recall](https://en.wikipedia.org/wiki/Active_recall), [View Highlight](https://read.readwise.io/read/01j6my8p2zekrx849jj5c4yj06))
  > [!note]
  > Active recall: A learning technique that involves actively stimulating memory during the learning process, typically by testing oneself on the material to be remembered. This method contrasts with passive review strategies, such as rereading or highlighting, by emphasizing retrieval practice, which has been shown to enhance long-term retention and understanding. Active recall can take various forms, including flashcards, quizzes, and self-questioning, and is widely used in educational settings to improve learning outcomes.


path: Readwise/How to Actually Use What You Read With Readwise.md
sortable_path: ReadwiseHow to Actually Use What You Read With Readwise.md
title: How to Actually Use What You Read With Readwise
lead: ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2018/03/kindle-highlights.png)
checksum: d8341a0338c8bba871536a3359de10499d4e3d3928b22ae98a8aeb7ae4f80ba3
created: 2024-09-12 14:56:45.828588002+00:00
modified: 2024-09-04 23:31:38.646968612+00:00
metadata: {}
body:
  ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2018/03/kindle-highlights.png)

  ## Metadata
  - Author: [[Daniel Doyon]]
  - Full Title: How to Actually Use What You Read With Readwise
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://blog.readwise.io/reading-workflow-part-1/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise
  > [!tldr]
  > Readwise is a tool that helps you remember and use the important ideas you find while reading. It offers a simple workflow with three steps: Capture your highlights, Review them regularly, and Integrate those insights into your life. By using Readwise, you can turn your reading into meaningful actions and lasting knowledge.

  ## Highlights
  We read in order to learn how to do something or we read to understand some new concept. For example, we might read a book to learn how to negotiate or we might read a book to understand behavioral economics. We call these motives meaningful action and lasting insight, respectively, and a reading workflow will help you get more of both.[](https://blog.readwise.io/reading-workflow-part-1#fn1) [View Highlight](https://read.readwise.io/read/01j58ez9vkh68ptwbnt951wkg9))

  *capture* any and all the things that might be meaningful to you — today or tomorrow, small or large — in a reliable system outside your mind so you can make use of those things later [View Highlight](https://read.readwise.io/read/01j58f1740ca5k7akyjp7enmkx))

  Now that you're capturing all the things that might be meaningful to you, the next step is to actually go back and *review* those things. Otherwise, what was the point of capturing in the first place? [View Highlight](https://read.readwise.io/read/01j58f3zcas4ewpxjf861kzfy6)) [[favorite]] 

  Integrate might mean **improved retention** (or compression) of new concepts thanks to a lightweight form of [spaced repetition](https://en.wikipedia.org/wiki/Spaced_repetition). [View Highlight](https://read.readwise.io/read/01j58f5aqe8f69a4rvvypb3r1n))

  Integrate might also mean **enhanced creativity** resulting from the serendipitous juxtaposition of seemingly unrelated ideas. [View Highlight](https://read.readwise.io/read/01j58f679pcp1vtd3ne64cxke9))
  > [!note]
  > This relates to BASB

  Integrate might also mean **sudden inspiration** to act on something you've read due to a well-timed reminder in a daily review. [View Highlight](https://read.readwise.io/read/01j58f8fa57a88b7647bwyaxp4))

raw_content:
  # How to Actually Use What You Read With Readwise

  ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2018/03/kindle-highlights.png)

  ## Metadata
  - Author: [[Daniel Doyon]]
  - Full Title: How to Actually Use What You Read With Readwise
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://blog.readwise.io/reading-workflow-part-1/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise
  > [!tldr]
  > Readwise is a tool that helps you remember and use the important ideas you find while reading. It offers a simple workflow with three steps: Capture your highlights, Review them regularly, and Integrate those insights into your life. By using Readwise, you can turn your reading into meaningful actions and lasting knowledge.

  ## Highlights
  We read in order to learn how to do something or we read to understand some new concept. For example, we might read a book to learn how to negotiate or we might read a book to understand behavioral economics. We call these motives meaningful action and lasting insight, respectively, and a reading workflow will help you get more of both.[](https://blog.readwise.io/reading-workflow-part-1#fn1) [View Highlight](https://read.readwise.io/read/01j58ez9vkh68ptwbnt951wkg9))

  *capture* any and all the things that might be meaningful to you — today or tomorrow, small or large — in a reliable system outside your mind so you can make use of those things later [View Highlight](https://read.readwise.io/read/01j58f1740ca5k7akyjp7enmkx))

  Now that you're capturing all the things that might be meaningful to you, the next step is to actually go back and *review* those things. Otherwise, what was the point of capturing in the first place? [View Highlight](https://read.readwise.io/read/01j58f3zcas4ewpxjf861kzfy6)) [[favorite]] 

  Integrate might mean **improved retention** (or compression) of new concepts thanks to a lightweight form of [spaced repetition](https://en.wikipedia.org/wiki/Spaced_repetition). [View Highlight](https://read.readwise.io/read/01j58f5aqe8f69a4rvvypb3r1n))

  Integrate might also mean **enhanced creativity** resulting from the serendipitous juxtaposition of seemingly unrelated ideas. [View Highlight](https://read.readwise.io/read/01j58f679pcp1vtd3ne64cxke9))
  > [!note]
  > This relates to BASB

  Integrate might also mean **sudden inspiration** to act on something you've read due to a well-timed reminder in a daily review. [View Highlight](https://read.readwise.io/read/01j58f8fa57a88b7647bwyaxp4))


path: Readwise/How to Not Write Like an Asshole.md
sortable_path: ReadwiseHow to Not Write Like an Asshole.md
title: How to Not Write Like an Asshole
lead: ![rw-book-cover](https://thehustle.co/wp-content/uploads/2015/09/copywork2_og_image.jpg)
checksum: bcf6fad40ba90ee4161515bf333127b179d57b2087d079622b9982921fbd30a3
created: 2024-09-12 14:56:45.835823367+00:00
modified: 2024-09-04 23:31:39.123969877+00:00
metadata: {}
body:
  ![rw-book-cover](https://thehustle.co/wp-content/uploads/2015/09/copywork2_og_image.jpg)

  ## Metadata
  - Author: [[The Hustle]]
  - Full Title: How to Not Write Like an Asshole
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://thehustle.co/how-to-not-write-like-an-asshole
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Not%20Write%20Like%20an%20Asshole
  > [!tldr]
  > Most people write poorly, using confusing sentences and unnecessary words. A simple way to improve writing is through copywork, where you hand-copy great writing to learn from it. By practicing this method for just a few minutes each day, anyone can become a better writer.

  ## Highlights
  The easiest way to become a better writer is to copy great writers. It’s that simple. [View Highlight](https://read.readwise.io/read/01j6py7hp221k6fzx7mza6b3k1))

  When I say you should copy great writers, I mean you should literally copy their best work, word-for-word, and preferably by hand.
  This process is called copywork and it’s mind-numbingly simple. You barely have to think. All you have to do is sit down with your favorite book, article, or blog post and copy it. [View Highlight](https://read.readwise.io/read/01j6py9pbrq5epw3sxgy5a9wv2))

  **Step 1: Pick a writer who you want to be like** ... To start with copywork, pick an author you love. Copywork is hard work, and you’ll spend a lot of time with whomever you decide to copy, so you need to love their work.

  **Step 2: Buy a ton of legal notebooks** 
  [Studies have shown](https://lifehacker.com/5738093/why-you-learn-more-effectively-by-writing-than-typing) that people learn better when they write by hand versus typing. So, for copywork it’s best to do all the copying by hand. I prefer using yellow legal notepads as they’re easy to read and cheap. [View Highlight](https://read.readwise.io/read/01j6pzrch7rq9ct4xr5f58nxhc))

  **Step 3: Start writing** 
  I suggest copying your favorite author for 10 minutes each day. It’s that simple. [View Highlight](https://read.readwise.io/read/01j6pzs8wpx24wawjxq7fypj7f))

raw_content:
  # How to Not Write Like an Asshole

  ![rw-book-cover](https://thehustle.co/wp-content/uploads/2015/09/copywork2_og_image.jpg)

  ## Metadata
  - Author: [[The Hustle]]
  - Full Title: How to Not Write Like an Asshole
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://thehustle.co/how-to-not-write-like-an-asshole
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Not%20Write%20Like%20an%20Asshole
  > [!tldr]
  > Most people write poorly, using confusing sentences and unnecessary words. A simple way to improve writing is through copywork, where you hand-copy great writing to learn from it. By practicing this method for just a few minutes each day, anyone can become a better writer.

  ## Highlights
  The easiest way to become a better writer is to copy great writers. It’s that simple. [View Highlight](https://read.readwise.io/read/01j6py7hp221k6fzx7mza6b3k1))

  When I say you should copy great writers, I mean you should literally copy their best work, word-for-word, and preferably by hand.
  This process is called copywork and it’s mind-numbingly simple. You barely have to think. All you have to do is sit down with your favorite book, article, or blog post and copy it. [View Highlight](https://read.readwise.io/read/01j6py9pbrq5epw3sxgy5a9wv2))

  **Step 1: Pick a writer who you want to be like** ... To start with copywork, pick an author you love. Copywork is hard work, and you’ll spend a lot of time with whomever you decide to copy, so you need to love their work.

  **Step 2: Buy a ton of legal notebooks** 
  [Studies have shown](https://lifehacker.com/5738093/why-you-learn-more-effectively-by-writing-than-typing) that people learn better when they write by hand versus typing. So, for copywork it’s best to do all the copying by hand. I prefer using yellow legal notepads as they’re easy to read and cheap. [View Highlight](https://read.readwise.io/read/01j6pzrch7rq9ct4xr5f58nxhc))

  **Step 3: Start writing** 
  I suggest copying your favorite author for 10 minutes each day. It’s that simple. [View Highlight](https://read.readwise.io/read/01j6pzs8wpx24wawjxq7fypj7f))


path: Readwise/I've built my first successful side project, and I hate it.md
sortable_path: ReadwiseI've built my first successful side project, and I hate it.md
title: I've built my first successful side project, and I hate it
checksum: ef5cff0997be60e4d3d38ae4390fc2c1cef83aca0a6eea25bf81e5140f2e56e1
created: 2024-09-12 14:56:45.841305471+00:00
modified: 2024-09-04 23:31:38.872969212+00:00
metadata: {}
lead:
  ![rw-book-cover](https://switowski.com/posts/2024/i-have-built-my-first-successful-side-project-and-i-hate-it/cover.jpg)

body:
  ![rw-book-cover](https://switowski.com/posts/2024/i-have-built-my-first-successful-side-project-and-i-hate-it/cover.jpg)

  ## Metadata
  - Author: [[switowski]]
  - Full Title: I've built my first successful side project, and I hate it
  - Category: #articles
  - URL: https://switowski.com/blog/i-have-built-my-first-successful-side-project-and-i-hate-it/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=I%27ve%20built%20my%20first%20successful%20side%20project%2C%20and%20I%20hate%20it
  > [!tldr]
  > Sebastian Witowski created a stock trading script that initially excited him, but he soon faced challenges with customer support and feature requests. Despite some sales, he experienced burnout from managing the project while juggling a full-time job. Ultimately, he learned that selling a product is just the beginning, and it requires ongoing effort and support.

  ## Highlights
  I'm an engineer, goddamit! We're not meant to click buttons in the browser or send the same email over and over again! [View Highlight](https://read.readwise.io/read/01j5y28d3ftfhss7wegbnkdwea)) [[favorite]] 

  Did disconnecting from my project affect my sanity? Oh, hell yes! The project went on autopilot, and it no longer felt like a dreaded chore when I was checking my emails or logging in to my TradingView account. It lost a lot of traction because I stopped updating it, so people think it's not useful anymore (even though it does its job as well as it did a few years ago). Its revenue declined in the past years. But I don't care. I'm happy again. [View Highlight](https://read.readwise.io/read/01j5y2yn2enf1aqz6y9akfmpxa))

  The dreaded truth that most programmers learn the hard way is that releasing a product is just the beginning. Once it's out there, you have to maintain it: fix bugs, implement new features, deal with disputes or frauds, and answer a LOT of emails (often from curious window shoppers who never convert to paying customers). [View Highlight](https://read.readwise.io/read/01j5y2gg4qd0p65b97g6xjgxy1))

  If your side project is not a source of genuine joy and you have other priorities, it's important to set some boundaries. [View Highlight](https://read.readwise.io/read/01j5y323gv3dwa4y15qzwpycg3))

  If you're planning to sell products globally, consider using a "merchant of record" like Gumroad or Paddle. This way, you won't have to figure out how much tax to charge for each country (basically, you only sell to Gumroad, and they resell your product to the final customer). [View Highlight](https://read.readwise.io/read/01j5y32rm97xwbjg1tv9hr65g6))

raw_content:
  # I've built my first successful side project, and I hate it

  ![rw-book-cover](https://switowski.com/posts/2024/i-have-built-my-first-successful-side-project-and-i-hate-it/cover.jpg)

  ## Metadata
  - Author: [[switowski]]
  - Full Title: I've built my first successful side project, and I hate it
  - Category: #articles
  - URL: https://switowski.com/blog/i-have-built-my-first-successful-side-project-and-i-hate-it/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=I%27ve%20built%20my%20first%20successful%20side%20project%2C%20and%20I%20hate%20it
  > [!tldr]
  > Sebastian Witowski created a stock trading script that initially excited him, but he soon faced challenges with customer support and feature requests. Despite some sales, he experienced burnout from managing the project while juggling a full-time job. Ultimately, he learned that selling a product is just the beginning, and it requires ongoing effort and support.

  ## Highlights
  I'm an engineer, goddamit! We're not meant to click buttons in the browser or send the same email over and over again! [View Highlight](https://read.readwise.io/read/01j5y28d3ftfhss7wegbnkdwea)) [[favorite]] 

  Did disconnecting from my project affect my sanity? Oh, hell yes! The project went on autopilot, and it no longer felt like a dreaded chore when I was checking my emails or logging in to my TradingView account. It lost a lot of traction because I stopped updating it, so people think it's not useful anymore (even though it does its job as well as it did a few years ago). Its revenue declined in the past years. But I don't care. I'm happy again. [View Highlight](https://read.readwise.io/read/01j5y2yn2enf1aqz6y9akfmpxa))

  The dreaded truth that most programmers learn the hard way is that releasing a product is just the beginning. Once it's out there, you have to maintain it: fix bugs, implement new features, deal with disputes or frauds, and answer a LOT of emails (often from curious window shoppers who never convert to paying customers). [View Highlight](https://read.readwise.io/read/01j5y2gg4qd0p65b97g6xjgxy1))

  If your side project is not a source of genuine joy and you have other priorities, it's important to set some boundaries. [View Highlight](https://read.readwise.io/read/01j5y323gv3dwa4y15qzwpycg3))

  If you're planning to sell products globally, consider using a "merchant of record" like Gumroad or Paddle. This way, you won't have to figure out how much tax to charge for each country (basically, you only sell to Gumroad, and they resell your product to the final customer). [View Highlight](https://read.readwise.io/read/01j5y32rm97xwbjg1tv9hr65g6))


path: Readwise/In Search of Code Purity.md
sortable_path: ReadwiseIn Search of Code Purity.md
title: In Search of Code Purity
lead: ![rw-book-cover](https://i.ytimg.com/vi/voRBS0r4EyI/maxresdefault.jpg?v=65aa862f)
checksum: 9b950bd1a971888db116bdda5ac150027788f7dd2ef3d36de3740c1c33e86d5c
created: 2024-09-12 14:56:45.849381789+00:00
modified: 2024-09-04 23:31:38.995969538+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/voRBS0r4EyI/maxresdefault.jpg?v=65aa862f)

  ## Metadata
  - Author: [[No Boilerplate]]
  - Full Title: In Search of Code Purity
  - Category: #articles
  - Document Tags: [[dev]] [[dev/rust]] 
  - URL: https://www.youtube.com/watch?v=voRBS0r4EyI
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=In%20Search%20of%20Code%20Purity

  > [!note]
  > Goal: The intention is to leverage the principles of functional programming purity in a project, utilizing Rust or other programming languages, to enhance code readability, maintainability, and reliability. This to-do list will help achieve that by outlining actionable steps for implementation.
  > - [ ] 🦀 **Familiarize with Rust's const functions** to understand how they execute at both compile time and runtime, ensuring the utilization of pure functions.
  > - [ ] ⚙️ **Implement pure functions** in the codebase, ensuring they do not produce side effects and maintain referential transparency for predictable behavior.
  > - [ ] 🔍 **Establish a system for tagging functions** as pure in the codebase, allowing both developers and the compiler to reason about function behavior effectively.
  > - [ ] 📜 **Utilize Rust macros wisely** to enable compile-time evaluations effectively, while understanding their limitations compared to const functions.
  > - [ ] 📝 **Incorporate error handling** strategies focused on return types and assertions for better debugging of const functions.
  > - [ ] 🧪 **Experiment with caching techniques** that leverage the predictability of pure functions to optimize performance in the application.
  > [!tldr]
  > Alternate title: Rust's Hidden Purity System
  I was taught formal methods at university but these ultra-safe development techniques are expensive, require using unusual external verification languages, and most damning for web and application developers, they slow down iteration.
  After graduating and getting a webdev job, I despaired that the safety and guarantees of the formal systems that I had been introduced to weren't available to me as a web developer.
  I was going to have to act if I wanted to live in a different world.

  ❤️ If you would like to support what I do, I have set up a Patreon here: https://www.patreon.com/noboilerplate - Thank you!

  📄 All my videos are built in compile-checked markdown, transcript source code available here https://github.com/0atman/noboilerplate this is also where you'll find links to everything mentioned. 

  🖊️ Corrections are in the pinned ERRATA comment.

  🦀 Start your Rust journey here: https://www.youtube.com/watch?v=2hXNd6x9sZs

  👕 Bad shirts available here https://www.teepub...

  ## Highlights
  first function here factorial is a pure function a function that doesn't cause or rely upon side effects we know this without reading the function body because it doesn't have IO in the signature the second function main prints to the screen and so must have I/O this is a fantastic way to keep side effects managed and covers half of the nightmare errors I've seen throughout my career [View Highlight](https://read.readwise.io/read/01j6ez3db15q2wagxxh4fxpagw))

  if your language has a way of separating or tagging functions that are pure and then can hold you to that contract both you and the compiler can reason about your code in useful new ways [View Highlight](https://read.readwise.io/read/01j6ezg1548mj8f5ntkwrhxh86))

  If a pure function is called twice with the same inputs the result is guaranteed to be the same every time this is called referential transparency or idance or determinism this enables perfect predictable caching of return values which your compiler might automatically and easier debugging [View Highlight](https://read.readwise.io/read/01j6ezh53e7hcszmxxd91aze3r))

  const functions are functions that can be executed at compile time as well as runtime they differ from rust macros which can only run at compile time and can do anything by being much more limited [View Highlight](https://read.readwise.io/read/01j6ezpb7jgqybcmhz38r5sdxk))

  when debugging the only way to get information out of a const function is by its return type or Hal in compilation
  with a panic or a failed assertion [View Highlight](https://read.readwise.io/read/01j6f15drv4ypknhpcqz8jh9dc))

  macros execute arbitrary code at compile time and then can insert the
  results of that processing as potentially const values [View Highlight](https://read.readwise.io/read/01j6f1arc85y5twtf781mgy5tz))

  rust's const functions are only pure once you get to runtime [View Highlight](https://read.readwise.io/read/01j6f1a5g0yddv78empzwmh1xp))

  rust
  is as pure as possible but no purer [View Highlight](https://read.readwise.io/read/01j6f1env98rtskyvf5sp1eygp)) [[dev/rust]] [[dev]]

raw_content:
  # In Search of Code Purity

  ![rw-book-cover](https://i.ytimg.com/vi/voRBS0r4EyI/maxresdefault.jpg?v=65aa862f)

  ## Metadata
  - Author: [[No Boilerplate]]
  - Full Title: In Search of Code Purity
  - Category: #articles
  - Document Tags: [[dev]] [[dev/rust]] 
  - URL: https://www.youtube.com/watch?v=voRBS0r4EyI
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=In%20Search%20of%20Code%20Purity

  > [!note]
  > Goal: The intention is to leverage the principles of functional programming purity in a project, utilizing Rust or other programming languages, to enhance code readability, maintainability, and reliability. This to-do list will help achieve that by outlining actionable steps for implementation.
  > - [ ] 🦀 **Familiarize with Rust's const functions** to understand how they execute at both compile time and runtime, ensuring the utilization of pure functions.
  > - [ ] ⚙️ **Implement pure functions** in the codebase, ensuring they do not produce side effects and maintain referential transparency for predictable behavior.
  > - [ ] 🔍 **Establish a system for tagging functions** as pure in the codebase, allowing both developers and the compiler to reason about function behavior effectively.
  > - [ ] 📜 **Utilize Rust macros wisely** to enable compile-time evaluations effectively, while understanding their limitations compared to const functions.
  > - [ ] 📝 **Incorporate error handling** strategies focused on return types and assertions for better debugging of const functions.
  > - [ ] 🧪 **Experiment with caching techniques** that leverage the predictability of pure functions to optimize performance in the application.
  > [!tldr]
  > Alternate title: Rust's Hidden Purity System
  I was taught formal methods at university but these ultra-safe development techniques are expensive, require using unusual external verification languages, and most damning for web and application developers, they slow down iteration.
  After graduating and getting a webdev job, I despaired that the safety and guarantees of the formal systems that I had been introduced to weren't available to me as a web developer.
  I was going to have to act if I wanted to live in a different world.

  ❤️ If you would like to support what I do, I have set up a Patreon here: https://www.patreon.com/noboilerplate - Thank you!

  📄 All my videos are built in compile-checked markdown, transcript source code available here https://github.com/0atman/noboilerplate this is also where you'll find links to everything mentioned. 

  🖊️ Corrections are in the pinned ERRATA comment.

  🦀 Start your Rust journey here: https://www.youtube.com/watch?v=2hXNd6x9sZs

  👕 Bad shirts available here https://www.teepub...

  ## Highlights
  first function here factorial is a pure function a function that doesn't cause or rely upon side effects we know this without reading the function body because it doesn't have IO in the signature the second function main prints to the screen and so must have I/O this is a fantastic way to keep side effects managed and covers half of the nightmare errors I've seen throughout my career [View Highlight](https://read.readwise.io/read/01j6ez3db15q2wagxxh4fxpagw))

  if your language has a way of separating or tagging functions that are pure and then can hold you to that contract both you and the compiler can reason about your code in useful new ways [View Highlight](https://read.readwise.io/read/01j6ezg1548mj8f5ntkwrhxh86))

  If a pure function is called twice with the same inputs the result is guaranteed to be the same every time this is called referential transparency or idance or determinism this enables perfect predictable caching of return values which your compiler might automatically and easier debugging [View Highlight](https://read.readwise.io/read/01j6ezh53e7hcszmxxd91aze3r))

  const functions are functions that can be executed at compile time as well as runtime they differ from rust macros which can only run at compile time and can do anything by being much more limited [View Highlight](https://read.readwise.io/read/01j6ezpb7jgqybcmhz38r5sdxk))

  when debugging the only way to get information out of a const function is by its return type or Hal in compilation
  with a panic or a failed assertion [View Highlight](https://read.readwise.io/read/01j6f15drv4ypknhpcqz8jh9dc))

  macros execute arbitrary code at compile time and then can insert the
  results of that processing as potentially const values [View Highlight](https://read.readwise.io/read/01j6f1arc85y5twtf781mgy5tz))

  rust's const functions are only pure once you get to runtime [View Highlight](https://read.readwise.io/read/01j6f1a5g0yddv78empzwmh1xp))

  rust
  is as pure as possible but no purer [View Highlight](https://read.readwise.io/read/01j6f1env98rtskyvf5sp1eygp)) [[dev/rust]] [[dev]] 


path: Readwise/Learn vLANs, Subnets, and NAT to Improve Your Network Security.md
sortable_path: ReadwiseLearn vLANs, Subnets, and NAT to Improve Your Network Security.md
title: Learn vLANs, Subnets, and NAT to Improve Your Network Security
lead: ![rw-book-cover](https://i.ytimg.com/vi/gk_kHgNhJVo/maxresdefault.jpg)
checksum: 7e654cb2820f2ee4ede92922078f051911a475de01677813d437c514b5ce0a8d
created: 2024-09-12 14:56:45.86268239+00:00
modified: 2024-09-04 23:31:38.590968464+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/gk_kHgNhJVo/maxresdefault.jpg)

  ## Metadata
  - Author: [[Jim's Garage]]
  - Full Title: Learn vLANs, Subnets, and NAT to Improve Your Network Security
  - Category: #articles
  - Document Tags: [[homelab]] 
  - URL: https://www.youtube.com/watch?v=gk_kHgNhJVo
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Learn%20vLANs%2C%20Subnets%2C%20and%20NAT%20to%20Improve%20Your%20Network%20Security
  > [!tldr]
  > This text explains how to set up a static IP address, configure subnets, and use VLANs and NAT for better network security. It emphasizes the importance of organizing your network into different subnets and assigning VLAN tags for improved traffic management. The author also highlights the role of firewalls in controlling access to various devices on the network.

  ## Highlights
  that's pretty much how op works it would know that your tablet is making an internet request even though it's coming from that same ISP IP address therefore we're able to break down One external IP address into multiple
  internal addresses [View Highlight](https://read.readwise.io/read/01j54cajqj3xyfj1eemhcmsvqw))
  > [!note]
  > NAT in a nutshell

  what it does is it takes a single wire and it splits it up into lots of little wires now if you do that right through proper subnetting and VLAN tagging you can introduce security but it's dependent on making sure that you put the right devices in the right subnets and you control or access those protocols those IP addresses with strict firewall rules [View Highlight](https://read.readwise.io/read/01j54hz2c5z7kpt964rxs33095))

raw_content:
  # Learn vLANs, Subnets, and NAT to Improve Your Network Security

  ![rw-book-cover](https://i.ytimg.com/vi/gk_kHgNhJVo/maxresdefault.jpg)

  ## Metadata
  - Author: [[Jim's Garage]]
  - Full Title: Learn vLANs, Subnets, and NAT to Improve Your Network Security
  - Category: #articles
  - Document Tags: [[homelab]] 
  - URL: https://www.youtube.com/watch?v=gk_kHgNhJVo
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Learn%20vLANs%2C%20Subnets%2C%20and%20NAT%20to%20Improve%20Your%20Network%20Security
  > [!tldr]
  > This text explains how to set up a static IP address, configure subnets, and use VLANs and NAT for better network security. It emphasizes the importance of organizing your network into different subnets and assigning VLAN tags for improved traffic management. The author also highlights the role of firewalls in controlling access to various devices on the network.

  ## Highlights
  that's pretty much how op works it would know that your tablet is making an internet request even though it's coming from that same ISP IP address therefore we're able to break down One external IP address into multiple
  internal addresses [View Highlight](https://read.readwise.io/read/01j54cajqj3xyfj1eemhcmsvqw))
  > [!note]
  > NAT in a nutshell

  what it does is it takes a single wire and it splits it up into lots of little wires now if you do that right through proper subnetting and VLAN tagging you can introduce security but it's dependent on making sure that you put the right devices in the right subnets and you control or access those protocols those IP addresses with strict firewall rules [View Highlight](https://read.readwise.io/read/01j54hz2c5z7kpt964rxs33095))


path: Readwise/Looking After Your Autistic Self.md
sortable_path: ReadwiseLooking After Your Autistic Self.md
title: Looking After Your Autistic Self
lead: ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png)
checksum: 404adca3ca5ba663dc2a0d56c977268774d7449bb78043da1661aa5ea2257c3a
created: 2024-09-12 14:56:45.871936219+00:00
modified: 2024-09-23 21:48:37.087686077+00:00
metadata: {}
body:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png)

  ## Metadata
  - Author: [[Niamh Garvey]]
  - Full Title: Looking After Your Autistic Self
  - Category: #books
  > [!tldr]
  > Autistic people often feel overwhelmed by sensory stress and emotional changes in their daily lives. Recognizing their triggers can help them manage these feelings and create a sense of safety. Using sensory tools and strategies allows them to participate in activities without becoming overwhelmed.

  ## Highlights
  In my experience, there is a misconception that autistic children grow into ‘less autistic’ adults. I believe this stems from our ability, as autistic adults, to adapt our behaviour to ‘stand out’ less, and to ‘fit in’ more. We learn how to hide our differences and hide our overwhelm. But this takes its toll on us, and can actually increase our levels of stress. [View Highlight](https://read.readwise.io/read/01j6ta5tywrynbek3nwrk4ztpf))

  Autistic people can react differently to stress than non-autistic people. Research has found that autistic children release higher amounts of the stress hormone cortisol than non-autistic children. Additionally, the levels of cortisol last longer in their bodies, even after the thing that caused the stress has gone (Spratt et al. 2012). [View Highlight](https://read.readwise.io/read/01j6tb32z54r5n39rmednd9p0d))

  What Skills Are Involved in Executive Function?
  • Planning: Recognising that a task needs to be done, and planning how to do it.
  • Organising: Getting ready for a task: Recognising what tools or skills you will need.
  • Initiation: Starting a task.
  • Flexible thinking: Seeing a task through and not giving up when faced with problems.
  • Time management: Being able to divide your time appropriately to complete all the steps of a task.
  • Finishing a task: Not giving up on a task, keeping focused and motivated until the end.
  • Evaluation: Looking back at how you did a task, evaluating how you did it, and learning from it.
  • Emotional regulation: Managing emotions throughout a task so that the task can be completed. [View Highlight](https://read.readwise.io/read/01j6tbdfg6e1wfrs92988vk3mb))

  A study published in 2015 (Bishop-Fitzpatrick et al. 2015) found that autistic adults without intellectual disability experienced substantially higher levels of stress than non-autistic adults. Not only that, but when stress levels increased, autistic adults’ social functioning went down significantly. [View Highlight](https://read.readwise.io/read/01j6tb2h8a03x46nqxsatrwcs2))

  Research has found that autistic adults have significantly more challenges with executive function skills than non-autistic adults, with one study finding that 20–30% of autistic adults had difficulty with planning, while 20% had difficulty with flexible thinking (Johnston et al. 2019). This study also found that having a higher IQ did not equate to having better executive function skills. Only 35% of autistic adults were found to have no impairment in executive function skills. [View Highlight](https://read.readwise.io/read/01j6tbg0wvc6rrxs57pnpbqpqn))

  A trigger is something that sets off your stress response. There are endless types of things that may trigger your stress response. For autistic people, a trigger could be a type of environment (e.g. a busy crowded room), a social difficulty, a sensory experience (e.g. a loud noise), a communication challenge, a demand on your organisation skills, a change in routine etc. [View Highlight](https://read.readwise.io/read/01j6tb3tpnc9cs5f76gkkm8b8b))

  There might be no real danger, but our brains and bodies acts like there is. When we are stressed, our bodies experience changes that may include dizziness, a racing heartbeat, high blood pressure, breathing fast, and sweating (World Health Organization 2008). [View Highlight](https://read.readwise.io/read/01j6tb4xc2qpbh3z0gvpt8958g))

  Triggers can cause you to feel anxious or overwhelmed, angry or frightened, unsafe or under attack. Sometimes individual triggers may not cause an immediate stress response, but a build-up of triggers, or too many triggers at once, can lead to fight, flight, or freeze mode, and you might experience anxiety, overwhelm, shutdown, or meltdown (see [Chapter 11](private://read/01j68en5pg3ysg1jcbwjsjmy61/#chap_11) for information on meltdowns and shutdowns). [View Highlight](https://read.readwise.io/read/01j6tb631tgjc6dyzvs1yw22kp))

  Learning what triggers your stress response is not just important to reduce the psychological impact of stress, but it also improves the physical health of your body. Putting strategies in place to deal with your triggers will help reduce the damaging effect of chronic stress on your body. Over-exposure to the stress hormone cortisol from chronic stress can increase the risk of anxiety, depression, headaches, muscle pain, problems with digestion, heart disease, sleep disturbance, difficulty maintaining a healthy weight, and impaired memory and concentration (Mayo Clinic 2021). [View Highlight](https://read.readwise.io/read/01j6tb9cyhtard039hqes709t7))

  The Five Steps to Managing Triggers
  1. The Detective Habit: Identifying your triggers.
  2. Coping Strategies: Learn to manage your triggers.
  3. Rationing: Spread out your triggers.
  4. Recovery: Plan your recovery time between triggers, and after triggers.
  5. Quick Calm Strategies: These are strategies to help you calm down quickly. As developing immediate calming strategies is a huge topic, this will be dealt with in the next chapter. [View Highlight](https://read.readwise.io/read/01j6tbn89zmyj8vdd2tvcqq327))

  Executive function is the ability to get things done. It is the ability to organise yourself, and carry tasks through from beginning to end. Our daily lives are full of tasks, and thus we rely on our executive function skills to do everything from getting dressed to leaving the house on time, from working to preparing meals etc. [View Highlight](https://read.readwise.io/read/01j6tbar3qva0233pbzz8xpgv2))

  In order to start identifying what my triggers are, I began to develop my ‘detective habit’. This is a habit of reflecting on how I felt and behaved in a scenario, so I could learn to identify my triggers. [View Highlight](https://read.readwise.io/read/01j6tbp0fjq1fvf5hxd3z6p5g1))

  The detective habit is about looking back at a scenario that I found hard, analysing it with non-judgemental eyes, and giving thought and consideration to what could have caused the stress. Once I identify the triggers, I then make plans to support myself when exposed to the identified triggers. [View Highlight](https://read.readwise.io/read/01j6tbq246p82d1yr80dj96dwx))

  How to Use the Detective Habit ... What happened?
  • What did I feel? Did I feel stressed, scared, out of control, angry etc.?
  • Was there anything in the environment that could have been a trigger? Was there a sensory stressor? ... Did the environment mean there was too much information to take in at once? Did the environment create challenges for any of my executive function skills? ... • At what point did I start to feel a stress response? Was it when someone started talking to me? Was it when someone tried to get eye contact? Was it when I walked into a shop? Was it when the environment changed? Was it at the point of transitioning from one task to another? ... Were my basic needs met before I encountered the trigger? By basic needs, I mean hunger, thirst, sleep, body temperature, and physical comfort. ... • What were my strengths in the situation, i.e. what did I manage well? Which of my strengths could I use in similar scenarios in future?
  • What would have helped me to feel more comfortable, or avoid becoming stressed and/or overwhelmed?
  • What coping strategies could I use if that situation happens again, or if I’m exposed to the same trigger or triggers?

  The DSM-5 (Diagnostic and Statistical Manual, 5th edition) is the American Psychiatric Association’s guide to mental illness and disorders, including diagnosing autistic people. It suggests that autistic people have rigid thinking, insist on sameness, are inflexible, and are overly ritualised. ... What the DSM-5 doesn’t explain properly, in my opinion, is that many of these diagnostic traits come out when we are stressed, but may improve when we are calm and happy.

  Every time I came up with a coping strategy, I asked myself what strength I was using to develop that strategy. [View Highlight](https://read.readwise.io/read/01j6tca09mxawkj3xcah30yy47))

  Interestingly, an autistic friend of mine lately told me about her strategy for getting the staff to turn down the music in restaurants. She taps her ear and says to the staff, ‘My hearing aid is buzzing from the music being so loud, could you please turn it down?’ It works every time. I expressed my discomfort with this as it’s a blatant lie (she has no hearing aid), and she said, ‘No, it’s not a lie, my ear is a hearing aid, in a way, and my ear hears the loud music as a horrible buzzing’. [View Highlight](https://read.readwise.io/read/01j6tcjsnfvnr1kz1906cpz5mz))

  Sometimes I’m not aware of my own triggers, or autistic differences, until someone else points them out to me. ... Validating the feelings of an autistic person is one of the best things someone else can do to support that autistic person, especially in times of stress. ... if you plan to ask others about your own triggers and traits, be prepared for some surprises, and be aware that you may find some observations upsetting.

  When I first began to identify my triggers, my first thought was ‘Now I know what to avoid’. But I soon realised that I would become agoraphobic if I tried to live a life avoiding all my triggers. I also wouldn’t be able to experience so many things that bring me joy. [View Highlight](https://read.readwise.io/read/01j6wyjkm7shc41zxzk5c6xzev))

  I therefore realised that I cannot shut all triggers out of my life; instead I need to learn to deal with them. Taking control of my triggers means taking care of myself while still living a full life. This involves planning and preparing myself to cope with triggers. [View Highlight](https://read.readwise.io/read/01j6wyprn8vttk71kp619rt10n))

  One of the ways I take control of my triggers is by rationing them out. This means being careful that I don’t plan too many triggering events or activities close together. By spreading triggers out, I give myself time to recover after each one, and time to prepare and plan for the next one. [View Highlight](https://read.readwise.io/read/01j6wyr4pg3m4n08ysqth3tgz7))

  The world is full of triggers, and dealing with them takes energy, mental planning, and work. I don’t have infinite energy to cope with triggers; I need time to rest and refuel my energy levels. I therefore pre-emptively plan time for myself to rest or decompress during and after social situations, or any situation that I know will require a lot of my coping strategies. [View Highlight](https://read.readwise.io/read/01j6wz0zc2hkz1z4417922tkks))

  KEY POINTS
  ◊ Triggers are things that set off a stress response in our brains, and make our body feel the need to fight, flight, or freeze.
  ◊ Autistic people can get overwhelmed or stressed from exposure to their triggers.
  ◊ Every autistic person has different triggers, so it’s important to get to know your own.
  ◊ The detective habit is a method of reflection that can help identify one’s triggers, and then create strength-based coping strategies.
  ◊ Other people can be helpful in identifying your triggers, but take caution that the person you ask is sensitive and uncritical.
  ◊ Autistic people can react differently to triggers at different times. If your basic needs are not met, or if you are stressed, you are more likely to react strongly to a trigger.
  ◊ Rationing out your triggers helps avoid triggers building up and becoming overwhelming.
  ◊ Planning time to rest after a build-up of triggers is really important, as is having a few techniques to calm yourself when out and about. [View Highlight](https://read.readwise.io/read/01j6wz69za3httx5ksj1zz0hnq))

  ---

  New highlights added at 2024-09-23 6:48 PM
  A Quick Calm Plan is a series of strategies or tools that you can use to calm down, refuel your energy, and to reduce the feeling of being overwhelmed. When I am overwhelmed and have either shut down (see [Chapter 11](private://read/01j68en5pg3ysg1jcbwjsjmy61/#chap_11) for more on shutdown) or am about to shut down, I cannot think flexibly, and therefore it’s very important to have a Quick Calm Plan made before I become overwhelmed. [View Highlight](https://read.readwise.io/read/01j8g84a4z0dxke72pje3wp9f4))

  • Realising I’m doing repetitive body movements such as rubbing my index finger against my thumb, or twitching my eye or head very slightly. [View Highlight](https://read.readwise.io/read/01j8g89vr2rf03z0v2jr6k5yta))

  • A strong desire not to talk to anyone. [View Highlight](https://read.readwise.io/read/01j8g8ak0vpa3chwn2q16nwsq7))

  • Exhaustion. [View Highlight](https://read.readwise.io/read/01j8g8cmw6qbcq8w1sxcz4q9t8))

  • Feeling like I will scream if one more demand is put on me. [View Highlight](https://read.readwise.io/read/01j8g8cpdn84p3nmvcyv50ybtr))

  • Feeling like I might burst into uncontrollable crying. [View Highlight](https://read.readwise.io/read/01j8g8cray1hcekkqjm5rtsj27))

  • Feeling like everything is just too much and I cannot cope. [View Highlight](https://read.readwise.io/read/01j8g8cwmqtmqeg0xydgywme9j))

  Remove yourself from the stressful situation, if possible. [View Highlight](https://read.readwise.io/read/01j8g8egz63debcmjcrhjktda3))

  Ask yourself are your basic needs met? [View Highlight](https://read.readwise.io/read/01j8g8etm4gkgpsys8k11nmq1a))

  When you feel stressed or anxious, you may feel an urge to breathe faster or deeper, as if you are hungry for more oxygen. But when you are hyperventilating, you actually need to breathe less, not more. This is because you need to bring up the amount of carbon dioxide in your body (i.e. stop blowing out so much air). You can do this by taking smaller breaths and holding your breath after you inhale for the count of four, and again holding your breath after you exhale for the count of four (NHS Borders 2005). [View Highlight](https://read.readwise.io/read/01j8g8kqt48za0cg0m9pc4pv9r))

  Take a drink. [View Highlight](https://read.readwise.io/read/01j8g8n8zh4rs2v31hsdfsxpp5))

  Find somewhere you can be alone. [View Highlight](https://read.readwise.io/read/01j8g8ngzvq0srdq7rw75a2rs4))

  Go home and go to bed for a while, [View Highlight](https://read.readwise.io/read/01j8g8pqabw067rt9jnbdr4er7))

  Hold a hot water bottle, heated pad, or warm mug just under your chest bone. [View Highlight](https://read.readwise.io/read/01j8g8q3nk4z3nmjkdk7xka7d1))

  Lie under a weighted blanket. [View Highlight](https://read.readwise.io/read/01j8g8qmdfsk0g4zgmsn0fvqjw))

  Put something heavy on your lap. [View Highlight](https://read.readwise.io/read/01j8g8rdcsrj07yj0bf0bgwnfb))

  Smell something lovely [View Highlight](https://read.readwise.io/read/01j8g8sv21bny6sxhqkr0p3sxs))

  Splash cold water on your face, the back of your neck, and on your palms and inner wrists. [View Highlight](https://read.readwise.io/read/01j8g8tgtasn1nbvbkezc3qr71))

  Get fresh air. [View Highlight](https://read.readwise.io/read/01j8g8tnmezvhkkazky6pfd47v))

  Avoid people putting demands on you if possible. [View Highlight](https://read.readwise.io/read/01j8g8v3a27x4e9n13fdpwvjn1))

  Listen to music or an audiobook. [View Highlight](https://read.readwise.io/read/01j8g8veva1a3kymtv71mt8p14))

  Darken the room. [View Highlight](https://read.readwise.io/read/01j8g8vqcrkejsy0s9jp1ary4k))

  Reduce visual stimulation. [View Highlight](https://read.readwise.io/read/01j8g8w54nzt72bn56w1qmt5rv))

  Take a shower or bath. [View Highlight](https://read.readwise.io/read/01j8g8wsnxw2njt5q037a5k9xs))

  Singing is a lovely way to control your breathing and expand your chest, [View Highlight](https://read.readwise.io/read/01j8g8xjm5pkzcn9g4r1nx1r2e))

  Go into nature, whether that’s a garden or a park, or maybe it’s just looking at nature on your phone. [View Highlight](https://read.readwise.io/read/01j8g8xx6fen4gz5x05ryjmfk8))

  Have a warm drink [View Highlight](https://read.readwise.io/read/01j8g8y1gt5frvjb7tfbqwkxdy))

  Turn off the internet on your phone, or turn off the phone so you can disconnect from people, if the overwhelm is caused by social stress. [View Highlight](https://read.readwise.io/read/01j8g8yks2t50qkn6s594re2ps))

  Say how you feel. I often find that even just saying how I feel out loud to someone helps ease the feelings. [View Highlight](https://read.readwise.io/read/01j8g8ys4ymwr3xnfmhm8c7wv8))

  Ask for help. [View Highlight](https://read.readwise.io/read/01j8g8zbp27ks99fn15zn0x6b6))

  Exercise. I used to go for a jog when I felt shaky with stress or anxiety, which is an activity that combines fresh air, time alone, and deep pressure into the joints, which is calming to the proprioceptive sensory system [View Highlight](https://read.readwise.io/read/01j8g8zy14e8xpxyaxtshp4d0f))

  Having a visual version of your Quick Calm Plan will help you to carry out the strategies and remember to use your calming tools, even when you are overwhelmed or stressed. [View Highlight](https://read.readwise.io/read/01j8g917881cdzmf5pj0znhqqk))

  Stimming, also known as self-stimulatory behaviour, is a repetitive, often rhythmic behaviour. ... There are many ways to stim, including using body movements, sounds, thought patterns, and more.

  If an autistic person is stimming, it may suggest they are feeling the need to release their overwhelm, distress, over-stimulation, anger, joy, excitement, or any intense emotion. This feeling of release is why stimming is a coping strategy. [View Highlight](https://read.readwise.io/read/01j8g9f8r6td0nfwc1n3w047t5))

raw_content:
  # Looking After Your Autistic Self

  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png)

  ## Metadata
  - Author: [[Niamh Garvey]]
  - Full Title: Looking After Your Autistic Self
  - Category: #books
  > [!tldr]
  > Autistic people often feel overwhelmed by sensory stress and emotional changes in their daily lives. Recognizing their triggers can help them manage these feelings and create a sense of safety. Using sensory tools and strategies allows them to participate in activities without becoming overwhelmed.

  ## Highlights
  In my experience, there is a misconception that autistic children grow into ‘less autistic’ adults. I believe this stems from our ability, as autistic adults, to adapt our behaviour to ‘stand out’ less, and to ‘fit in’ more. We learn how to hide our differences and hide our overwhelm. But this takes its toll on us, and can actually increase our levels of stress. [View Highlight](https://read.readwise.io/read/01j6ta5tywrynbek3nwrk4ztpf))

  Autistic people can react differently to stress than non-autistic people. Research has found that autistic children release higher amounts of the stress hormone cortisol than non-autistic children. Additionally, the levels of cortisol last longer in their bodies, even after the thing that caused the stress has gone (Spratt et al. 2012). [View Highlight](https://read.readwise.io/read/01j6tb32z54r5n39rmednd9p0d))

  What Skills Are Involved in Executive Function?
  • Planning: Recognising that a task needs to be done, and planning how to do it.
  • Organising: Getting ready for a task: Recognising what tools or skills you will need.
  • Initiation: Starting a task.
  • Flexible thinking: Seeing a task through and not giving up when faced with problems.
  • Time management: Being able to divide your time appropriately to complete all the steps of a task.
  • Finishing a task: Not giving up on a task, keeping focused and motivated until the end.
  • Evaluation: Looking back at how you did a task, evaluating how you did it, and learning from it.
  • Emotional regulation: Managing emotions throughout a task so that the task can be completed. [View Highlight](https://read.readwise.io/read/01j6tbdfg6e1wfrs92988vk3mb))

  A study published in 2015 (Bishop-Fitzpatrick et al. 2015) found that autistic adults without intellectual disability experienced substantially higher levels of stress than non-autistic adults. Not only that, but when stress levels increased, autistic adults’ social functioning went down significantly. [View Highlight](https://read.readwise.io/read/01j6tb2h8a03x46nqxsatrwcs2))

  Research has found that autistic adults have significantly more challenges with executive function skills than non-autistic adults, with one study finding that 20–30% of autistic adults had difficulty with planning, while 20% had difficulty with flexible thinking (Johnston et al. 2019). This study also found that having a higher IQ did not equate to having better executive function skills. Only 35% of autistic adults were found to have no impairment in executive function skills. [View Highlight](https://read.readwise.io/read/01j6tbg0wvc6rrxs57pnpbqpqn))

  A trigger is something that sets off your stress response. There are endless types of things that may trigger your stress response. For autistic people, a trigger could be a type of environment (e.g. a busy crowded room), a social difficulty, a sensory experience (e.g. a loud noise), a communication challenge, a demand on your organisation skills, a change in routine etc. [View Highlight](https://read.readwise.io/read/01j6tb3tpnc9cs5f76gkkm8b8b))

  There might be no real danger, but our brains and bodies acts like there is. When we are stressed, our bodies experience changes that may include dizziness, a racing heartbeat, high blood pressure, breathing fast, and sweating (World Health Organization 2008). [View Highlight](https://read.readwise.io/read/01j6tb4xc2qpbh3z0gvpt8958g))

  Triggers can cause you to feel anxious or overwhelmed, angry or frightened, unsafe or under attack. Sometimes individual triggers may not cause an immediate stress response, but a build-up of triggers, or too many triggers at once, can lead to fight, flight, or freeze mode, and you might experience anxiety, overwhelm, shutdown, or meltdown (see [Chapter 11](private://read/01j68en5pg3ysg1jcbwjsjmy61/#chap_11) for information on meltdowns and shutdowns). [View Highlight](https://read.readwise.io/read/01j6tb631tgjc6dyzvs1yw22kp))

  Learning what triggers your stress response is not just important to reduce the psychological impact of stress, but it also improves the physical health of your body. Putting strategies in place to deal with your triggers will help reduce the damaging effect of chronic stress on your body. Over-exposure to the stress hormone cortisol from chronic stress can increase the risk of anxiety, depression, headaches, muscle pain, problems with digestion, heart disease, sleep disturbance, difficulty maintaining a healthy weight, and impaired memory and concentration (Mayo Clinic 2021). [View Highlight](https://read.readwise.io/read/01j6tb9cyhtard039hqes709t7))

  The Five Steps to Managing Triggers
  1. The Detective Habit: Identifying your triggers.
  2. Coping Strategies: Learn to manage your triggers.
  3. Rationing: Spread out your triggers.
  4. Recovery: Plan your recovery time between triggers, and after triggers.
  5. Quick Calm Strategies: These are strategies to help you calm down quickly. As developing immediate calming strategies is a huge topic, this will be dealt with in the next chapter. [View Highlight](https://read.readwise.io/read/01j6tbn89zmyj8vdd2tvcqq327))

  Executive function is the ability to get things done. It is the ability to organise yourself, and carry tasks through from beginning to end. Our daily lives are full of tasks, and thus we rely on our executive function skills to do everything from getting dressed to leaving the house on time, from working to preparing meals etc. [View Highlight](https://read.readwise.io/read/01j6tbar3qva0233pbzz8xpgv2))

  In order to start identifying what my triggers are, I began to develop my ‘detective habit’. This is a habit of reflecting on how I felt and behaved in a scenario, so I could learn to identify my triggers. [View Highlight](https://read.readwise.io/read/01j6tbp0fjq1fvf5hxd3z6p5g1))

  The detective habit is about looking back at a scenario that I found hard, analysing it with non-judgemental eyes, and giving thought and consideration to what could have caused the stress. Once I identify the triggers, I then make plans to support myself when exposed to the identified triggers. [View Highlight](https://read.readwise.io/read/01j6tbq246p82d1yr80dj96dwx))

  How to Use the Detective Habit ... What happened?
  • What did I feel? Did I feel stressed, scared, out of control, angry etc.?
  • Was there anything in the environment that could have been a trigger? Was there a sensory stressor? ... Did the environment mean there was too much information to take in at once? Did the environment create challenges for any of my executive function skills? ... • At what point did I start to feel a stress response? Was it when someone started talking to me? Was it when someone tried to get eye contact? Was it when I walked into a shop? Was it when the environment changed? Was it at the point of transitioning from one task to another? ... Were my basic needs met before I encountered the trigger? By basic needs, I mean hunger, thirst, sleep, body temperature, and physical comfort. ... • What were my strengths in the situation, i.e. what did I manage well? Which of my strengths could I use in similar scenarios in future?
  • What would have helped me to feel more comfortable, or avoid becoming stressed and/or overwhelmed?
  • What coping strategies could I use if that situation happens again, or if I’m exposed to the same trigger or triggers?

  The DSM-5 (Diagnostic and Statistical Manual, 5th edition) is the American Psychiatric Association’s guide to mental illness and disorders, including diagnosing autistic people. It suggests that autistic people have rigid thinking, insist on sameness, are inflexible, and are overly ritualised. ... What the DSM-5 doesn’t explain properly, in my opinion, is that many of these diagnostic traits come out when we are stressed, but may improve when we are calm and happy.

  Every time I came up with a coping strategy, I asked myself what strength I was using to develop that strategy. [View Highlight](https://read.readwise.io/read/01j6tca09mxawkj3xcah30yy47))

  Interestingly, an autistic friend of mine lately told me about her strategy for getting the staff to turn down the music in restaurants. She taps her ear and says to the staff, ‘My hearing aid is buzzing from the music being so loud, could you please turn it down?’ It works every time. I expressed my discomfort with this as it’s a blatant lie (she has no hearing aid), and she said, ‘No, it’s not a lie, my ear is a hearing aid, in a way, and my ear hears the loud music as a horrible buzzing’. [View Highlight](https://read.readwise.io/read/01j6tcjsnfvnr1kz1906cpz5mz))

  Sometimes I’m not aware of my own triggers, or autistic differences, until someone else points them out to me. ... Validating the feelings of an autistic person is one of the best things someone else can do to support that autistic person, especially in times of stress. ... if you plan to ask others about your own triggers and traits, be prepared for some surprises, and be aware that you may find some observations upsetting.

  When I first began to identify my triggers, my first thought was ‘Now I know what to avoid’. But I soon realised that I would become agoraphobic if I tried to live a life avoiding all my triggers. I also wouldn’t be able to experience so many things that bring me joy. [View Highlight](https://read.readwise.io/read/01j6wyjkm7shc41zxzk5c6xzev))

  I therefore realised that I cannot shut all triggers out of my life; instead I need to learn to deal with them. Taking control of my triggers means taking care of myself while still living a full life. This involves planning and preparing myself to cope with triggers. [View Highlight](https://read.readwise.io/read/01j6wyprn8vttk71kp619rt10n))

  One of the ways I take control of my triggers is by rationing them out. This means being careful that I don’t plan too many triggering events or activities close together. By spreading triggers out, I give myself time to recover after each one, and time to prepare and plan for the next one. [View Highlight](https://read.readwise.io/read/01j6wyr4pg3m4n08ysqth3tgz7))

  The world is full of triggers, and dealing with them takes energy, mental planning, and work. I don’t have infinite energy to cope with triggers; I need time to rest and refuel my energy levels. I therefore pre-emptively plan time for myself to rest or decompress during and after social situations, or any situation that I know will require a lot of my coping strategies. [View Highlight](https://read.readwise.io/read/01j6wz0zc2hkz1z4417922tkks))

  KEY POINTS
  ◊ Triggers are things that set off a stress response in our brains, and make our body feel the need to fight, flight, or freeze.
  ◊ Autistic people can get overwhelmed or stressed from exposure to their triggers.
  ◊ Every autistic person has different triggers, so it’s important to get to know your own.
  ◊ The detective habit is a method of reflection that can help identify one’s triggers, and then create strength-based coping strategies.
  ◊ Other people can be helpful in identifying your triggers, but take caution that the person you ask is sensitive and uncritical.
  ◊ Autistic people can react differently to triggers at different times. If your basic needs are not met, or if you are stressed, you are more likely to react strongly to a trigger.
  ◊ Rationing out your triggers helps avoid triggers building up and becoming overwhelming.
  ◊ Planning time to rest after a build-up of triggers is really important, as is having a few techniques to calm yourself when out and about. [View Highlight](https://read.readwise.io/read/01j6wz69za3httx5ksj1zz0hnq))

  ---

  New highlights added at 2024-09-23 6:48 PM
  A Quick Calm Plan is a series of strategies or tools that you can use to calm down, refuel your energy, and to reduce the feeling of being overwhelmed. When I am overwhelmed and have either shut down (see [Chapter 11](private://read/01j68en5pg3ysg1jcbwjsjmy61/#chap_11) for more on shutdown) or am about to shut down, I cannot think flexibly, and therefore it’s very important to have a Quick Calm Plan made before I become overwhelmed. [View Highlight](https://read.readwise.io/read/01j8g84a4z0dxke72pje3wp9f4))

  • Realising I’m doing repetitive body movements such as rubbing my index finger against my thumb, or twitching my eye or head very slightly. [View Highlight](https://read.readwise.io/read/01j8g89vr2rf03z0v2jr6k5yta))

  • A strong desire not to talk to anyone. [View Highlight](https://read.readwise.io/read/01j8g8ak0vpa3chwn2q16nwsq7))

  • Exhaustion. [View Highlight](https://read.readwise.io/read/01j8g8cmw6qbcq8w1sxcz4q9t8))

  • Feeling like I will scream if one more demand is put on me. [View Highlight](https://read.readwise.io/read/01j8g8cpdn84p3nmvcyv50ybtr))

  • Feeling like I might burst into uncontrollable crying. [View Highlight](https://read.readwise.io/read/01j8g8cray1hcekkqjm5rtsj27))

  • Feeling like everything is just too much and I cannot cope. [View Highlight](https://read.readwise.io/read/01j8g8cwmqtmqeg0xydgywme9j))

  Remove yourself from the stressful situation, if possible. [View Highlight](https://read.readwise.io/read/01j8g8egz63debcmjcrhjktda3))

  Ask yourself are your basic needs met? [View Highlight](https://read.readwise.io/read/01j8g8etm4gkgpsys8k11nmq1a))

  When you feel stressed or anxious, you may feel an urge to breathe faster or deeper, as if you are hungry for more oxygen. But when you are hyperventilating, you actually need to breathe less, not more. This is because you need to bring up the amount of carbon dioxide in your body (i.e. stop blowing out so much air). You can do this by taking smaller breaths and holding your breath after you inhale for the count of four, and again holding your breath after you exhale for the count of four (NHS Borders 2005). [View Highlight](https://read.readwise.io/read/01j8g8kqt48za0cg0m9pc4pv9r))

  Take a drink. [View Highlight](https://read.readwise.io/read/01j8g8n8zh4rs2v31hsdfsxpp5))

  Find somewhere you can be alone. [View Highlight](https://read.readwise.io/read/01j8g8ngzvq0srdq7rw75a2rs4))

  Go home and go to bed for a while, [View Highlight](https://read.readwise.io/read/01j8g8pqabw067rt9jnbdr4er7))

  Hold a hot water bottle, heated pad, or warm mug just under your chest bone. [View Highlight](https://read.readwise.io/read/01j8g8q3nk4z3nmjkdk7xka7d1))

  Lie under a weighted blanket. [View Highlight](https://read.readwise.io/read/01j8g8qmdfsk0g4zgmsn0fvqjw))

  Put something heavy on your lap. [View Highlight](https://read.readwise.io/read/01j8g8rdcsrj07yj0bf0bgwnfb))

  Smell something lovely [View Highlight](https://read.readwise.io/read/01j8g8sv21bny6sxhqkr0p3sxs))

  Splash cold water on your face, the back of your neck, and on your palms and inner wrists. [View Highlight](https://read.readwise.io/read/01j8g8tgtasn1nbvbkezc3qr71))

  Get fresh air. [View Highlight](https://read.readwise.io/read/01j8g8tnmezvhkkazky6pfd47v))

  Avoid people putting demands on you if possible. [View Highlight](https://read.readwise.io/read/01j8g8v3a27x4e9n13fdpwvjn1))

  Listen to music or an audiobook. [View Highlight](https://read.readwise.io/read/01j8g8veva1a3kymtv71mt8p14))

  Darken the room. [View Highlight](https://read.readwise.io/read/01j8g8vqcrkejsy0s9jp1ary4k))

  Reduce visual stimulation. [View Highlight](https://read.readwise.io/read/01j8g8w54nzt72bn56w1qmt5rv))

  Take a shower or bath. [View Highlight](https://read.readwise.io/read/01j8g8wsnxw2njt5q037a5k9xs))

  Singing is a lovely way to control your breathing and expand your chest, [View Highlight](https://read.readwise.io/read/01j8g8xjm5pkzcn9g4r1nx1r2e))

  Go into nature, whether that’s a garden or a park, or maybe it’s just looking at nature on your phone. [View Highlight](https://read.readwise.io/read/01j8g8xx6fen4gz5x05ryjmfk8))

  Have a warm drink [View Highlight](https://read.readwise.io/read/01j8g8y1gt5frvjb7tfbqwkxdy))

  Turn off the internet on your phone, or turn off the phone so you can disconnect from people, if the overwhelm is caused by social stress. [View Highlight](https://read.readwise.io/read/01j8g8yks2t50qkn6s594re2ps))

  Say how you feel. I often find that even just saying how I feel out loud to someone helps ease the feelings. [View Highlight](https://read.readwise.io/read/01j8g8ys4ymwr3xnfmhm8c7wv8))

  Ask for help. [View Highlight](https://read.readwise.io/read/01j8g8zbp27ks99fn15zn0x6b6))

  Exercise. I used to go for a jog when I felt shaky with stress or anxiety, which is an activity that combines fresh air, time alone, and deep pressure into the joints, which is calming to the proprioceptive sensory system [View Highlight](https://read.readwise.io/read/01j8g8zy14e8xpxyaxtshp4d0f))

  Having a visual version of your Quick Calm Plan will help you to carry out the strategies and remember to use your calming tools, even when you are overwhelmed or stressed. [View Highlight](https://read.readwise.io/read/01j8g917881cdzmf5pj0znhqqk))

  Stimming, also known as self-stimulatory behaviour, is a repetitive, often rhythmic behaviour. ... There are many ways to stim, including using body movements, sounds, thought patterns, and more.

  If an autistic person is stimming, it may suggest they are feeling the need to release their overwhelm, distress, over-stimulation, anger, joy, excitement, or any intense emotion. This feeling of release is why stimming is a coping strategy. [View Highlight](https://read.readwise.io/read/01j8g9f8r6td0nfwc1n3w047t5))


path: Readwise/Making a Blog With Rust.md
sortable_path: ReadwiseMaking a Blog With Rust.md
title: Making a Blog With Rust
lead: ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article3.5c705a01b476.png)
checksum: 36e6123acfe607792575c05dadbea65a8c9e668b67daec950e307d6cb0efd24e
created: 2024-09-12 14:56:45.878767072+00:00
modified: 2024-09-04 23:31:38.959969442+00:00
metadata: {}
body:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article3.5c705a01b476.png)

  ## Metadata
  - Author: [[mckayla.blog]]
  - Full Title: Making a Blog With Rust
  - Category: #articles
  - URL: https://mckayla.blog/posts/making-a-blog-with-rust.html
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Making%20a%20Blog%20With%20Rust
  > [!tldr]
  > The author created a personal blog using Rust, aiming for an easy writing experience and control over the site’s generation. They chose Rust for its simplicity and productivity, despite its reputation for being complex. The blog's framework, called Pocky, allows publishing posts easily through Markdown and Git without extra fuss.

  ## Highlights
  I'm a hacker to my core. I love to poke at things, tear things apart, and shuffle around the parts as I put them back together. [View Highlight](https://read.readwise.io/read/01j6ax5r2tem9q9dx3ctw86mj1))

raw_content:
  # Making a Blog With Rust

  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article3.5c705a01b476.png)

  ## Metadata
  - Author: [[mckayla.blog]]
  - Full Title: Making a Blog With Rust
  - Category: #articles
  - URL: https://mckayla.blog/posts/making-a-blog-with-rust.html
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Making%20a%20Blog%20With%20Rust
  > [!tldr]
  > The author created a personal blog using Rust, aiming for an easy writing experience and control over the site’s generation. They chose Rust for its simplicity and productivity, despite its reputation for being complex. The blog's framework, called Pocky, allows publishing posts easily through Markdown and Git without extra fuss.

  ## Highlights
  I'm a hacker to my core. I love to poke at things, tear things apart, and shuffle around the parts as I put them back together. [View Highlight](https://read.readwise.io/read/01j6ax5r2tem9q9dx3ctw86mj1))


path: Readwise/On finishing things.md
sortable_path: ReadwiseOn finishing things.md
title: On finishing things
lead: ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)
checksum: 056e9890d2fe8f4af27b5bf9900acc78fa8c9f4280bb5d1a6297fd4739f7801d
created: 2024-09-12 14:56:45.885621159+00:00
modified: 2024-09-04 23:31:38.925969352+00:00
metadata: {}
body:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)

  ## Metadata
  - Author: [[alexreichert.com]]
  - Full Title: On finishing things
  - Category: #articles
  - URL: https://www.alexreichert.com/blog/finishing
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=On%20finishing%20things

  > [!note]
  > **Background:** The intent is to develop the ability to consistently complete projects in a timely manner while overcoming obstacles related to accountability, clarity of goals, and the fear of sharing work.
  > - [ ] 📝 **Create a project specification document for each new project to clarify goals and outline necessary tasks.**
  > - [ ] ⏳ **Set a deadline for project completion, ideally within 2 to 4 weeks, to establish a concrete finish line.**
  > - [ ] 🌐 Develop a public projects page to share specs, demos, and retrospectives, including unfinished projects, to foster a sense of accountability.
  > - [ ] 🎯 Regularly review and adjust project goals to ensure they are clear and measurable, reducing procrastination.
  > - [ ] 🔄 Share work with peers or a community for feedback to overcome the fear of sharing and validate project usefulness.
  > [!tldr]
  > Finishing projects can be really challenging, as it's often unclear when something is truly complete. Sharing work publicly can help overcome this difficulty and offer personal growth, accountability, and potential connections. To improve, setting clear goals and deadlines can make it easier to push through to the finish line.

  ## Highlights
  This begs the question: why is it important to share your work with the world?
  First, because there's practically no downside, and very, very high potential upside. [View Highlight](https://read.readwise.io/read/01j68aj6hyksvsfzm62xr7y5k7)) [[favorite]] 

  because it's weirdly therapeutic. In the same way that journaling can alleviate anxiety by externalizing it, writing publicly encourages you to process your thoughts more rigorously, and launching an app forces you to find out if your idea has legs or not. [View Highlight](https://read.readwise.io/read/01j68akfqnw95egtaczyadh2z8)) [[productivity]] 

  First of all, more often than not, the end goal is neither clear nor concrete. It's not obvious where the "finish line" even is. When this is the case, it's easy to procrastinate by nitpicking the design, adding little flourishes, or using "perfectionism" as an excuse. [View Highlight](https://read.readwise.io/read/01j68anqkv399fr50q8qhehvgm)) [[favorite]] [[productivity]] 

  I think there are two strategies that would help a lot: 1) writing a spec (i.e. a plan) upfront, and 2) timeboxing the project by giving myself a deadline. [View Highlight](https://read.readwise.io/read/01j68aq1fbhqx79hp9mnvn39n1)) [[productivity]] [[favorite]] 

  I've started setting up a [projects page](https://www.alexreichert.com/projects), where I plan to share the specs, demos, and retrospectives of my personal projects. Even for the "unfinished" ones, sharing them here gives me a small sense of closure. [View Highlight](https://read.readwise.io/read/01j68ath2r2az2v2hwzc6y7jxt))

raw_content:
  # On finishing things

  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)

  ## Metadata
  - Author: [[alexreichert.com]]
  - Full Title: On finishing things
  - Category: #articles
  - URL: https://www.alexreichert.com/blog/finishing
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=On%20finishing%20things

  > [!note]
  > **Background:** The intent is to develop the ability to consistently complete projects in a timely manner while overcoming obstacles related to accountability, clarity of goals, and the fear of sharing work.
  > - [ ] 📝 **Create a project specification document for each new project to clarify goals and outline necessary tasks.**
  > - [ ] ⏳ **Set a deadline for project completion, ideally within 2 to 4 weeks, to establish a concrete finish line.**
  > - [ ] 🌐 Develop a public projects page to share specs, demos, and retrospectives, including unfinished projects, to foster a sense of accountability.
  > - [ ] 🎯 Regularly review and adjust project goals to ensure they are clear and measurable, reducing procrastination.
  > - [ ] 🔄 Share work with peers or a community for feedback to overcome the fear of sharing and validate project usefulness.
  > [!tldr]
  > Finishing projects can be really challenging, as it's often unclear when something is truly complete. Sharing work publicly can help overcome this difficulty and offer personal growth, accountability, and potential connections. To improve, setting clear goals and deadlines can make it easier to push through to the finish line.

  ## Highlights
  This begs the question: why is it important to share your work with the world?
  First, because there's practically no downside, and very, very high potential upside. [View Highlight](https://read.readwise.io/read/01j68aj6hyksvsfzm62xr7y5k7)) [[favorite]] 

  because it's weirdly therapeutic. In the same way that journaling can alleviate anxiety by externalizing it, writing publicly encourages you to process your thoughts more rigorously, and launching an app forces you to find out if your idea has legs or not. [View Highlight](https://read.readwise.io/read/01j68akfqnw95egtaczyadh2z8)) [[productivity]] 

  First of all, more often than not, the end goal is neither clear nor concrete. It's not obvious where the "finish line" even is. When this is the case, it's easy to procrastinate by nitpicking the design, adding little flourishes, or using "perfectionism" as an excuse. [View Highlight](https://read.readwise.io/read/01j68anqkv399fr50q8qhehvgm)) [[favorite]] [[productivity]] 

  I think there are two strategies that would help a lot: 1) writing a spec (i.e. a plan) upfront, and 2) timeboxing the project by giving myself a deadline. [View Highlight](https://read.readwise.io/read/01j68aq1fbhqx79hp9mnvn39n1)) [[productivity]] [[favorite]] 

  I've started setting up a [projects page](https://www.alexreichert.com/projects), where I plan to share the specs, demos, and retrospectives of my personal projects. Even for the "unfinished" ones, sharing them here gives me a small sense of closure. [View Highlight](https://read.readwise.io/read/01j68ath2r2az2v2hwzc6y7jxt))


path: Readwise/Own Your Content on Social Media Using the IndieWeb.md
sortable_path: ReadwiseOwn Your Content on Social Media Using the IndieWeb.md
title: Own Your Content on Social Media Using the IndieWeb
lead: ![rw-book-cover](https://i.ytimg.com/vi/X3SrZuH00GQ/maxresdefault.jpg)
checksum: e2cc448dc0ea3e46e6ffc9f52dcae1d63a1c5e65a4b4580938d5d88cb7e89900
created: 2024-09-12 14:56:45.902871614+00:00
modified: 2024-09-04 23:31:38.609968514+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/X3SrZuH00GQ/maxresdefault.jpg)

  ## Metadata
  - Author: [[Jamstack TV]]
  - Full Title: Own Your Content on Social Media Using the IndieWeb
  - Category: #articles
  - Document Tags: [[dev]] [[indie-web]] [[selfhosted]] 
  - URL: https://www.youtube.com/watch?v=X3SrZuH00GQ
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Own%20Your%20Content%20on%20Social%20Media%20Using%20the%20IndieWeb
  > [!tldr]
  > The video discusses how to take control of your content on social media by using your own website. It emphasizes the importance of owning your data so you can manage it on your own terms, rather than relying solely on social media platforms. By creating personal sites, you can archive and share your content while maintaining ownership and creative control.

  ## Highlights
  here a couple of my favorite ones that include some indie web stuff max bulk Mattias OTT Jeremy Keith Charlie Owen Erin Pirozhki and Paul Paul Robert Lloyd I've really done a nice job with their sites [View Highlight](https://read.readwise.io/read/01j55sdfykg3xfaj3ehnwj2rf4)) [[design]]

raw_content:
  # Own Your Content on Social Media Using the IndieWeb

  ![rw-book-cover](https://i.ytimg.com/vi/X3SrZuH00GQ/maxresdefault.jpg)

  ## Metadata
  - Author: [[Jamstack TV]]
  - Full Title: Own Your Content on Social Media Using the IndieWeb
  - Category: #articles
  - Document Tags: [[dev]] [[indie-web]] [[selfhosted]] 
  - URL: https://www.youtube.com/watch?v=X3SrZuH00GQ
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Own%20Your%20Content%20on%20Social%20Media%20Using%20the%20IndieWeb
  > [!tldr]
  > The video discusses how to take control of your content on social media by using your own website. It emphasizes the importance of owning your data so you can manage it on your own terms, rather than relying solely on social media platforms. By creating personal sites, you can archive and share your content while maintaining ownership and creative control.

  ## Highlights
  here a couple of my favorite ones that include some indie web stuff max bulk Mattias OTT Jeremy Keith Charlie Owen Erin Pirozhki and Paul Paul Robert Lloyd I've really done a nice job with their sites [View Highlight](https://read.readwise.io/read/01j55sdfykg3xfaj3ehnwj2rf4)) [[design]] 


path: Readwise/PARA Method and Zettelkasten What’s The Difference.md
sortable_path: ReadwisePARA Method and Zettelkasten What’s The Difference.md
title: PARA Method and Zettelkasten: What’s The Difference?
checksum: b3d29a128bbede792fc200163c028626943837012eea89e45c727a3bc639340d
created: 2024-09-12 14:56:45.916065903+00:00
modified: 2024-09-04 23:31:39.051969686+00:00
metadata: {}
lead:
  ![rw-book-cover](https://rdl.ink/render/https%3A%2F%2Fmattgiaro.com%2Fpara-method-and-zettelkasten%2F)

body:
  ![rw-book-cover](https://rdl.ink/render/https%3A%2F%2Fmattgiaro.com%2Fpara-method-and-zettelkasten%2F)

  ## Metadata
  - Author: [[mattgiaro]]
  - Full Title: PARA Method and Zettelkasten: What’s The Difference?
  - Category: #articles
  - Document Tags: [[notetaking]] [[productivity]] 
  - URL: https://mattgiaro.com/para-method-and-zettelkasten/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=PARA%20Method%20and%20Zettelkasten%3A%20What%E2%80%99s%20The%20Difference%3F
  > [!tldr]
  > The PARA method organizes digital information into Projects, Areas, Resources, and Archive, focusing on actionability. In contrast, Zettelkasten is a note-taking method that emphasizes linking ideas without a strict structure to foster new insights. While both methods can be used together, they serve different purposes and should not be confused.

  ## Highlights
  PARA is an acronym for Projects, Areas, Resources, and Archive. 
  It’s a way of organizing all digital information. 
  Re-read this sentence again. [View Highlight](https://read.readwise.io/read/01j6mjrgpc2gnjjwzpzyr7ndgc))

  the Zettelkasten is a note-taking method. it focuses on links between notes and how to think in associations.
  When dissecting and studying the Zettelkasten method, you see that all notes are contained within ONE slip box, and are linked between them.
  There is absolutely no structure. [View Highlight](https://read.readwise.io/read/01j6mjs40nymdj2zsnjk4rwm42))

  **Zettelkasten is a note-taking method designed to spart new insights. PARA is not. It’s a way of organizing files and information for a specific project.** [View Highlight](https://read.readwise.io/read/01j6mjsp1f97yprmm81h7c6nn7))

  So people who look to implement the zettelkasten methodology using PARA didn’t get the point of both methodologies. [View Highlight](https://read.readwise.io/read/01j6mjxkq0a5z7m3w967zj3xxz))

raw_content:
  # PARA Method and Zettelkasten: What’s The Difference?

  ![rw-book-cover](https://rdl.ink/render/https%3A%2F%2Fmattgiaro.com%2Fpara-method-and-zettelkasten%2F)

  ## Metadata
  - Author: [[mattgiaro]]
  - Full Title: PARA Method and Zettelkasten: What’s The Difference?
  - Category: #articles
  - Document Tags: [[notetaking]] [[productivity]] 
  - URL: https://mattgiaro.com/para-method-and-zettelkasten/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=PARA%20Method%20and%20Zettelkasten%3A%20What%E2%80%99s%20The%20Difference%3F
  > [!tldr]
  > The PARA method organizes digital information into Projects, Areas, Resources, and Archive, focusing on actionability. In contrast, Zettelkasten is a note-taking method that emphasizes linking ideas without a strict structure to foster new insights. While both methods can be used together, they serve different purposes and should not be confused.

  ## Highlights
  PARA is an acronym for Projects, Areas, Resources, and Archive. 
  It’s a way of organizing all digital information. 
  Re-read this sentence again. [View Highlight](https://read.readwise.io/read/01j6mjrgpc2gnjjwzpzyr7ndgc))

  the Zettelkasten is a note-taking method. it focuses on links between notes and how to think in associations.
  When dissecting and studying the Zettelkasten method, you see that all notes are contained within ONE slip box, and are linked between them.
  There is absolutely no structure. [View Highlight](https://read.readwise.io/read/01j6mjs40nymdj2zsnjk4rwm42))

  **Zettelkasten is a note-taking method designed to spart new insights. PARA is not. It’s a way of organizing files and information for a specific project.** [View Highlight](https://read.readwise.io/read/01j6mjsp1f97yprmm81h7c6nn7))

  So people who look to implement the zettelkasten methodology using PARA didn’t get the point of both methodologies. [View Highlight](https://read.readwise.io/read/01j6mjxkq0a5z7m3w967zj3xxz))


path: Readwise/Project People vs. Area People Are You Running a Sprint Or a Marathon.md
sortable_path: ReadwiseProject People vs. Area People Are You Running a Sprint Or a Marathon.md
title: Project People vs. Area People: Are You Running a Sprint Or a Marathon?
checksum: ef4ca0385892d8f2058a37d15b9d120cbff159f13c3cd05e14fb4cc588351e81
created: 2024-09-12 14:56:45.926844723+00:00
modified: 2024-09-04 23:31:38.731968838+00:00
metadata: {}
lead:
  ![rw-book-cover](https://i0.wp.com/fortelabs.com/wp-content/uploads/2020/02/cropped-cropped-Icon_Red-1.png?fit=192%2C192&ssl=1)

body:
  ![rw-book-cover](https://i0.wp.com/fortelabs.com/wp-content/uploads/2020/02/cropped-cropped-Icon_Red-1.png?fit=192%2C192&ssl=1)

  ## Metadata
  - Author: [[Tiago Forte]]
  - Full Title: Project People vs. Area People: Are You Running a Sprint Or a Marathon?
  - Category: #articles
  - Document Tags: [[productivity]] 
  - URL: https://fortelabs.com/blog/project-people-vs-area-people-are-you-running-a-sprint-or-a-marathon/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Project%20People%20vs.%20Area%20People%3A%20Are%20You%20Running%20a%20Sprint%20Or%20a%20Marathon%3F

  > [!note]
  > Goal: The intent is to enhance productivity by effectively organizing tasks into projects and areas of responsibility, enabling better focus and balance in work and life.
  > - [ ] 🗓️ **Establish a daily routine** to create structure and consistency in work and personal life.
  > - [ ] 🎯 **Set specific deadlines** for tasks to promote urgency and focus on achieving desired outcomes.
  > - [ ] 🌳 Take regular breaks and engage in nature to recharge and maintain mental clarity.
  > - [ ] 📝 **Maintain a journal** to reflect on thoughts and anxieties, aiding in self-awareness and emotional balance.
  > - [ ] 🌟 **Evaluate the balance** between project-focused work and ongoing areas of responsibility to ensure sustainable productivity.
  > - [ ] 🚀 **Break larger projects into smaller tasks** with milestones to track progress and maintain motivation. 
  > - [ ] 🧘‍♂️ Integrate a mindful practice, such as meditation, to cultivate awareness and reduce stress.
  > [!tldr]
  > The author, Tiago Forte, suggests organizing work into two categories: projects, which are short-term tasks with specific outcomes, and areas of responsibility, which are ongoing aspects of life that require maintenance. He emphasizes the importance of balancing both, as projects provide excitement and achievement, while areas foster peace and fulfillment. By understanding and managing these categories effectively, individuals can improve their productivity and well-being.

  ## Highlights
  A **project** is any endeavor that has:
  1) A desired *outcome* that will enable you to mark it “complete”
  2) A *deadline* or timeframe by which you’d like it done. [View Highlight](https://read.readwise.io/read/01j5p8akz4t1csffcf6ps9rj56))

  An **area of responsibility** has 1) a *standard* to be maintained that 2) is continuous over time. [View Highlight](https://read.readwise.io/read/01j5p8aqhhnkykx9aw3f5jk4an))

  Areas are crucial to your wellbeing, security, fulfillment, and peace of mind. Whereas projects have outcomes, areas have *standards* *of performance* that you want to maintain. [View Highlight](https://read.readwise.io/read/01j5p8ex5f82m4zjkzte47n5f1))

  Once you view your life through the lens of discrete projects and continuous areas, it becomes clear that both of these structures are essential. Projects bring you excitement, achievement, and recognition, whereas areas bring you balance, peace, and meaning. [View Highlight](https://read.readwise.io/read/01j5p8h36864xvfwed8kx1wbv3))

  Every project requires a “heavy lift” to some degree, but those heavy lifts are far more powerful and effective (and brief) when you’ve already been collecting material in a “slow burn.” __It is only when heavy lifts become a chronic, default way of approaching everything that they lead to burnout and exhaustion__. [View Highlight](https://read.readwise.io/read/01j5p8mmxvbt84hm0zh4ecky0p))

  “Project people” are good at sprints. Give them a clear goal and a path to get there, and they will ferociously chase after it with everything they have. [View Highlight](https://read.readwise.io/read/01j5p8nq7mx2gcg1bkbebk7jb7))

  But the weakness of sprinters is that once they’ve reached their goal, they will often have trouble keeping it going. They will often change direction and run after the next goal, leaving their past achievements to wither. Sprinters are prone to starting many things and getting obsessed for a short time, before moving abruptly to something else. [View Highlight](https://read.readwise.io/read/01j5p8ph0pee8fazkr6jcn9e52))

  “Area people” excel at marathons. Send them on a long journey with some supplies and they will doggedly keep at it for as long as it takes. [View Highlight](https://read.readwise.io/read/01j5p8pnmq54457hb2a9fwkyby))

  The weakness of marathoners is that they often have trouble generating a lot of power on short notice. When an opportunity opens up that requires quick, decisive action, they’ll have difficulty changing direction and drawing down their reserves to chase it down [View Highlight](https://read.readwise.io/read/01j5p8q8wmf4j78vppmcst8fe4))

  Projects require you to be **laser-focused,** to ferociously drive toward an outcome, **to overcome or circumvent obstacles**, and to **ignore distractions along the way**. Areas, on the other hand, require **mindfulness, balance, and reflection**. This is the realm of **habits, rituals, and intentional communities**. Whereas projects tend to be more black and white, areas require more introspection and self-awareness because it takes more nuance to decide if you are meeting your standard in a given area. [View Highlight](https://read.readwise.io/read/01j5p8zgbrdb2x0dc8v9aba3pc))

  If you are a “Project person” and want to improve your ability to sustain your areas, here are some techniques you can try:
  • Adopt a morning or evening routine
  • Set limits to your working hours
  • Take regular breaks and walks in nature
  • Journal and write out your internal anxieties and thoughts
  • Create a meditation habit (or other mindful habit)
  • Set your intentions each day, week, month, or year
  • Evaluate your schedule for a balance of intense work and healthy, mindful activities [View Highlight](https://read.readwise.io/read/01j5p94wamdw1k24avskcd8vd2)) [[review/plan]] [[favorite]] 
  > [!note]
  > Implement

  We all know the importance of work-life balance and healthy boundaries, but once in a while we have to let all that go and focus every ounce of energy we have on a singular outcome. This is, by definition, unsustainable. But that is why it’s so important to move fast and break through barriers as quickly as possible: __the faster you reach your objective, the sooner you can stop to rest and recover__. [View Highlight](https://read.readwise.io/read/01j5p9bh2gd06bbgmgyp9tn7ef))

  Some seasons of our lives are all about the journey, but others are more like sprints.
  *Source: [The Universe Will Now Explode for Your Pleasure](https://us1.campaign-archive.com/?u=78cbbb7f2882629a5157fa593&id=c4f01c7ab5) by Venkatesh Rao* [View Highlight](https://read.readwise.io/read/01j5p9fyk6bjw8gg0v5n09q5yx))

raw_content:
  # Project People vs. Area People: Are You Running a Sprint Or a Marathon?

  ![rw-book-cover](https://i0.wp.com/fortelabs.com/wp-content/uploads/2020/02/cropped-cropped-Icon_Red-1.png?fit=192%2C192&ssl=1)

  ## Metadata
  - Author: [[Tiago Forte]]
  - Full Title: Project People vs. Area People: Are You Running a Sprint Or a Marathon?
  - Category: #articles
  - Document Tags: [[productivity]] 
  - URL: https://fortelabs.com/blog/project-people-vs-area-people-are-you-running-a-sprint-or-a-marathon/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Project%20People%20vs.%20Area%20People%3A%20Are%20You%20Running%20a%20Sprint%20Or%20a%20Marathon%3F

  > [!note]
  > Goal: The intent is to enhance productivity by effectively organizing tasks into projects and areas of responsibility, enabling better focus and balance in work and life.
  > - [ ] 🗓️ **Establish a daily routine** to create structure and consistency in work and personal life.
  > - [ ] 🎯 **Set specific deadlines** for tasks to promote urgency and focus on achieving desired outcomes.
  > - [ ] 🌳 Take regular breaks and engage in nature to recharge and maintain mental clarity.
  > - [ ] 📝 **Maintain a journal** to reflect on thoughts and anxieties, aiding in self-awareness and emotional balance.
  > - [ ] 🌟 **Evaluate the balance** between project-focused work and ongoing areas of responsibility to ensure sustainable productivity.
  > - [ ] 🚀 **Break larger projects into smaller tasks** with milestones to track progress and maintain motivation. 
  > - [ ] 🧘‍♂️ Integrate a mindful practice, such as meditation, to cultivate awareness and reduce stress.
  > [!tldr]
  > The author, Tiago Forte, suggests organizing work into two categories: projects, which are short-term tasks with specific outcomes, and areas of responsibility, which are ongoing aspects of life that require maintenance. He emphasizes the importance of balancing both, as projects provide excitement and achievement, while areas foster peace and fulfillment. By understanding and managing these categories effectively, individuals can improve their productivity and well-being.

  ## Highlights
  A **project** is any endeavor that has:
  1) A desired *outcome* that will enable you to mark it “complete”
  2) A *deadline* or timeframe by which you’d like it done. [View Highlight](https://read.readwise.io/read/01j5p8akz4t1csffcf6ps9rj56))

  An **area of responsibility** has 1) a *standard* to be maintained that 2) is continuous over time. [View Highlight](https://read.readwise.io/read/01j5p8aqhhnkykx9aw3f5jk4an))

  Areas are crucial to your wellbeing, security, fulfillment, and peace of mind. Whereas projects have outcomes, areas have *standards* *of performance* that you want to maintain. [View Highlight](https://read.readwise.io/read/01j5p8ex5f82m4zjkzte47n5f1))

  Once you view your life through the lens of discrete projects and continuous areas, it becomes clear that both of these structures are essential. Projects bring you excitement, achievement, and recognition, whereas areas bring you balance, peace, and meaning. [View Highlight](https://read.readwise.io/read/01j5p8h36864xvfwed8kx1wbv3))

  Every project requires a “heavy lift” to some degree, but those heavy lifts are far more powerful and effective (and brief) when you’ve already been collecting material in a “slow burn.” __It is only when heavy lifts become a chronic, default way of approaching everything that they lead to burnout and exhaustion__. [View Highlight](https://read.readwise.io/read/01j5p8mmxvbt84hm0zh4ecky0p))

  “Project people” are good at sprints. Give them a clear goal and a path to get there, and they will ferociously chase after it with everything they have. [View Highlight](https://read.readwise.io/read/01j5p8nq7mx2gcg1bkbebk7jb7))

  But the weakness of sprinters is that once they’ve reached their goal, they will often have trouble keeping it going. They will often change direction and run after the next goal, leaving their past achievements to wither. Sprinters are prone to starting many things and getting obsessed for a short time, before moving abruptly to something else. [View Highlight](https://read.readwise.io/read/01j5p8ph0pee8fazkr6jcn9e52))

  “Area people” excel at marathons. Send them on a long journey with some supplies and they will doggedly keep at it for as long as it takes. [View Highlight](https://read.readwise.io/read/01j5p8pnmq54457hb2a9fwkyby))

  The weakness of marathoners is that they often have trouble generating a lot of power on short notice. When an opportunity opens up that requires quick, decisive action, they’ll have difficulty changing direction and drawing down their reserves to chase it down [View Highlight](https://read.readwise.io/read/01j5p8q8wmf4j78vppmcst8fe4))

  Projects require you to be **laser-focused,** to ferociously drive toward an outcome, **to overcome or circumvent obstacles**, and to **ignore distractions along the way**. Areas, on the other hand, require **mindfulness, balance, and reflection**. This is the realm of **habits, rituals, and intentional communities**. Whereas projects tend to be more black and white, areas require more introspection and self-awareness because it takes more nuance to decide if you are meeting your standard in a given area. [View Highlight](https://read.readwise.io/read/01j5p8zgbrdb2x0dc8v9aba3pc))

  If you are a “Project person” and want to improve your ability to sustain your areas, here are some techniques you can try:
  • Adopt a morning or evening routine
  • Set limits to your working hours
  • Take regular breaks and walks in nature
  • Journal and write out your internal anxieties and thoughts
  • Create a meditation habit (or other mindful habit)
  • Set your intentions each day, week, month, or year
  • Evaluate your schedule for a balance of intense work and healthy, mindful activities [View Highlight](https://read.readwise.io/read/01j5p94wamdw1k24avskcd8vd2)) [[review/plan]] [[favorite]] 
  > [!note]
  > Implement

  We all know the importance of work-life balance and healthy boundaries, but once in a while we have to let all that go and focus every ounce of energy we have on a singular outcome. This is, by definition, unsustainable. But that is why it’s so important to move fast and break through barriers as quickly as possible: __the faster you reach your objective, the sooner you can stop to rest and recover__. [View Highlight](https://read.readwise.io/read/01j5p9bh2gd06bbgmgyp9tn7ef))

  Some seasons of our lives are all about the journey, but others are more like sprints.
  *Source: [The Universe Will Now Explode for Your Pleasure](https://us1.campaign-archive.com/?u=78cbbb7f2882629a5157fa593&id=c4f01c7ab5) by Venkatesh Rao* [View Highlight](https://read.readwise.io/read/01j5p9fyk6bjw8gg0v5n09q5yx))


path: Readwise/Reader Frequently Asked Questions.md
sortable_path: ReadwiseReader Frequently Asked Questions.md
title: Reader: Frequently Asked Questions
lead: ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2022/12/reader-logo.jpg)
checksum: 48890bd8f92508d21d43157234c6bf4dcea2b675ed622adbb342fa88b0ecd6d0
created: 2024-09-12 14:56:45.939782939+00:00
modified: 2024-09-04 23:31:38.49896822+00:00
metadata: {}
body:
  ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2022/12/reader-logo.jpg)

  ## Metadata
  - Author: [[Daniel Doyon]]
  - Full Title: Reader: Frequently Asked Questions
  - Category: #articles
  - URL: https://blog.readwise.io/p/f8c0f71c-fe5f-4025-af57-f9f65c53fed7/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Reader%3A%20Frequently%20Asked%20Questions
  > [!tldr]
  > You can save articles to Reader using the browser extension or the mobile app, and highlights sync with Readwise. Reader allows you to highlight text and images while reading on the web, and all highlights are accessible in the app and synced to your note-taking apps. To manage your articles, you can move them to your Library and create custom views based on your preferences.

  ## Highlights
  ![](https://readwise-community.ghost.io/content/images/2024/01/CleanShot-2024-01-27-at-16.50.32@2x.png) [View Highlight](https://read.readwise.io/read/01j53426gkd6xdb1bkxftyezfd))

raw_content:
  # Reader: Frequently Asked Questions

  ![rw-book-cover](https://s3.amazonaws.com/readwiseio/2022/12/reader-logo.jpg)

  ## Metadata
  - Author: [[Daniel Doyon]]
  - Full Title: Reader: Frequently Asked Questions
  - Category: #articles
  - URL: https://blog.readwise.io/p/f8c0f71c-fe5f-4025-af57-f9f65c53fed7/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Reader%3A%20Frequently%20Asked%20Questions
  > [!tldr]
  > You can save articles to Reader using the browser extension or the mobile app, and highlights sync with Readwise. Reader allows you to highlight text and images while reading on the web, and all highlights are accessible in the app and synced to your note-taking apps. To manage your articles, you can move them to your Library and create custom views based on your preferences.

  ## Highlights
  ![](https://readwise-community.ghost.io/content/images/2024/01/CleanShot-2024-01-27-at-16.50.32@2x.png) [View Highlight](https://read.readwise.io/read/01j53426gkd6xdb1bkxftyezfd))


path: Readwise/SIMPLIFY Your Python Code With the Facade Pattern.md
sortable_path: ReadwiseSIMPLIFY Your Python Code With the Facade Pattern.md
title: SIMPLIFY Your Python Code With the Facade Pattern
lead: ![rw-book-cover](https://i.ytimg.com/vi/tCzmda1VCUQ/maxresdefault.jpg)
checksum: fa3400cf95edb7b24bfe3f0267f753dd1a8d27d9c4e37e3418fbe02fa9929a57
created: 2024-09-12 14:56:45.946653187+00:00
modified: 2024-09-04 23:31:38.74796888+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/tCzmda1VCUQ/maxresdefault.jpg)

  ## Metadata
  - Author: [[Isaac Harris-Holt]]
  - Full Title: SIMPLIFY Your Python Code With the Facade Pattern
  - Category: #articles
  - Document Tags: [[dev]] [[dev/design-patterns]] 
  - URL: https://www.youtube.com/watch?v=tCzmda1VCUQ
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=SIMPLIFY%20Your%20Python%20Code%20With%20the%20Facade%20Pattern
  > [!tldr]
  > The facade pattern is a design approach that simplifies complex code by providing a user-friendly interface. It helps developers hide underlying complexities, making it easier to work with libraries and frameworks. By using this pattern, you can create cleaner and more efficient Python code.

  ## Highlights
  You could think of the facade pattern almost like a wrapper around one or many complex subsystems making them **easier to interact with**. [View Highlight](https://read.readwise.io/read/01j5qry2jq70c28ebz4zdeqe8z)) [[dev]]

raw_content:
  # SIMPLIFY Your Python Code With the Facade Pattern

  ![rw-book-cover](https://i.ytimg.com/vi/tCzmda1VCUQ/maxresdefault.jpg)

  ## Metadata
  - Author: [[Isaac Harris-Holt]]
  - Full Title: SIMPLIFY Your Python Code With the Facade Pattern
  - Category: #articles
  - Document Tags: [[dev]] [[dev/design-patterns]] 
  - URL: https://www.youtube.com/watch?v=tCzmda1VCUQ
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=SIMPLIFY%20Your%20Python%20Code%20With%20the%20Facade%20Pattern
  > [!tldr]
  > The facade pattern is a design approach that simplifies complex code by providing a user-friendly interface. It helps developers hide underlying complexities, making it easier to work with libraries and frameworks. By using this pattern, you can create cleaner and more efficient Python code.

  ## Highlights
  You could think of the facade pattern almost like a wrapper around one or many complex subsystems making them **easier to interact with**. [View Highlight](https://read.readwise.io/read/01j5qry2jq70c28ebz4zdeqe8z)) [[dev]] 


path: Readwise/SQLite is not a toy database.md
sortable_path: ReadwiseSQLite is not a toy database.md
title: SQLite is not a toy database
lead: ![rw-book-cover](https://antonz.org/assets/2021/sqlite-is-not-a-toy-database.png)
checksum: 7db0491f9d5641b159484a0348bec20fca7595e8b2ebb9fb5f1487cb28b96303
created: 2024-09-12 14:56:45.961257351+00:00
modified: 2024-09-04 23:31:39.014969588+00:00
metadata: {}
body:
  ![rw-book-cover](https://antonz.org/assets/2021/sqlite-is-not-a-toy-database.png)

  ## Metadata
  - Author: [[Anton Zhiyanov]]
  - Full Title: SQLite is not a toy database
  - Category: #articles
  - Document Tags: [[dev]] [[dev/sql]] 
  - URL: https://antonz.org/sqlite-is-not-a-toy-database/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=SQLite%20is%20not%20a%20toy%20database

  > [!note]
  > **Background:** Utilize SQLite for a wider array of applications beyond merely functioning as a basic data storage solution.
  > ### Key Takeaways:
  > 📊 **Leverage Advanced Indexing Capabilities:** 
  > SQLite supports partial indexes and indexes on expressions, enabling the creation of efficient indexes on generated columns. This functionality allows users to transform SQLite into a document database by storing raw JSON and indexing on extracted JSON fields.
  > 📝 **Utilize Built-in Statistical Functions:** 
  > SQLite makes it easy to perform descriptive statistics, such as calculating mean, median, and percentiles, with minimal setup. By loading the sqlite3-stats extension, users can execute complex statistical queries in a straightforward manner, enhancing data analysis capabilities.
  > 📁 **Seamless JSON Data Handling:** 
  > SQLite excels at analyzing and transforming JSON data, allowing users to directly query JSON files as if they were regular tables. This feature simplifies data manipulation, making it convenient for users to extract and analyze JSON information efficiently.
  > [!tldr]
  > SQLite is highlighted as a versatile tool suitable for developers, data analysts, and various professionals due to its widespread use, serverless nature, and ease of integration. The database console feature is particularly praised for its data analysis capabilities and simplicity, offering powerful functions like CSV import, SQL query support, and various export options. Additionally, SQLite's compatibility with data exploration tools and its efficiency in processing large datasets make it a robust choice for those working with JSON, Common Table Expressions, set operations, generated columns, and mathematical statistics. The document also touches on SQLite's performance capabilities, handling hundreds of millions of records efficiently, with insert speeds improving when connecting CSV files as virtual tables.

  ## Highlights
  The console is a killer SQLite feature for data analysis: more powerful than Excel and more simple than `pandas`. One can import CSV data with a single command, the table is created automatically:
  > .import --csv city.csv city
  > select count(*) from city;
  1117 [View Highlight](https://read.readwise.io/read/01j6hehc1ap6yxya4135j8z7d1))

  Data could be exported as SQL, CSV, JSON, even Markdown and HTML. Takes just a couple of commands:
  .mode json
  .output city.json
  select city, foundation_year, timezone from city limit 10;
  .shell cat city.json [View Highlight](https://read.readwise.io/read/01j6hekgzt1yg4dse4xt6kqec4))

  There is nothing more convenient than SQLite for analyzing and transforming JSON. You can select data directly from a file as if it were a regular table. Or import data into the table and select from there.
  select
  json_extract(value, '$.iso.code') as code,
  json_extract(value, '$.iso.number') as num,
  json_extract(value, '$.name') as name,
  json_extract(value, '$.units.major.name') as unit
  from
  json_each(readfile('currency.sample.json'))
  ; [View Highlight](https://read.readwise.io/read/01j6henb91d2vd1d43x4yj6e5w))

  Descriptive statistics? Easy: mean, median, percentiles, standard deviation, you name it. You’ll have to load an extension, but it’s also a single command (and a single file).
  .load sqlite3-stats
  select
  count(*) as book_count,
  cast(avg(num_pages) as integer) as mean,
  cast(median(num_pages) as integer) as median,
  mode(num_pages) as mode,
  percentile_90(num_pages) as p90,
  percentile_95(num_pages) as p95,
  percentile_99(num_pages) as p99
  from books; [View Highlight](https://read.readwise.io/read/01j6hev7qj7qyszxhwft53r1w9))

  There is a popular opinion among developers that SQLite is not suitable for the web, because it doesn’t support concurrent access. ... the write-ahead log mode ... there can be as many concurrent readers as you want. There can be only one concurrent writer, but often one is enough.

  SQLite supports partial indexes and indexes on expressions, as ‘big’ DBMSs do. You can build indexes on generated columns and even turn SQLite into a document database. Just store raw JSON and build indexes on `json_extract()`-ed columns [View Highlight](https://read.readwise.io/read/01j6hf4c5250yyf6871sphxenm))

raw_content:
  # SQLite is not a toy database

  ![rw-book-cover](https://antonz.org/assets/2021/sqlite-is-not-a-toy-database.png)

  ## Metadata
  - Author: [[Anton Zhiyanov]]
  - Full Title: SQLite is not a toy database
  - Category: #articles
  - Document Tags: [[dev]] [[dev/sql]] 
  - URL: https://antonz.org/sqlite-is-not-a-toy-database/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=SQLite%20is%20not%20a%20toy%20database

  > [!note]
  > **Background:** Utilize SQLite for a wider array of applications beyond merely functioning as a basic data storage solution.
  > ### Key Takeaways:
  > 📊 **Leverage Advanced Indexing Capabilities:** 
  > SQLite supports partial indexes and indexes on expressions, enabling the creation of efficient indexes on generated columns. This functionality allows users to transform SQLite into a document database by storing raw JSON and indexing on extracted JSON fields.
  > 📝 **Utilize Built-in Statistical Functions:** 
  > SQLite makes it easy to perform descriptive statistics, such as calculating mean, median, and percentiles, with minimal setup. By loading the sqlite3-stats extension, users can execute complex statistical queries in a straightforward manner, enhancing data analysis capabilities.
  > 📁 **Seamless JSON Data Handling:** 
  > SQLite excels at analyzing and transforming JSON data, allowing users to directly query JSON files as if they were regular tables. This feature simplifies data manipulation, making it convenient for users to extract and analyze JSON information efficiently.
  > [!tldr]
  > SQLite is highlighted as a versatile tool suitable for developers, data analysts, and various professionals due to its widespread use, serverless nature, and ease of integration. The database console feature is particularly praised for its data analysis capabilities and simplicity, offering powerful functions like CSV import, SQL query support, and various export options. Additionally, SQLite's compatibility with data exploration tools and its efficiency in processing large datasets make it a robust choice for those working with JSON, Common Table Expressions, set operations, generated columns, and mathematical statistics. The document also touches on SQLite's performance capabilities, handling hundreds of millions of records efficiently, with insert speeds improving when connecting CSV files as virtual tables.

  ## Highlights
  The console is a killer SQLite feature for data analysis: more powerful than Excel and more simple than `pandas`. One can import CSV data with a single command, the table is created automatically:
  > .import --csv city.csv city
  > select count(*) from city;
  1117 [View Highlight](https://read.readwise.io/read/01j6hehc1ap6yxya4135j8z7d1))

  Data could be exported as SQL, CSV, JSON, even Markdown and HTML. Takes just a couple of commands:
  .mode json
  .output city.json
  select city, foundation_year, timezone from city limit 10;
  .shell cat city.json [View Highlight](https://read.readwise.io/read/01j6hekgzt1yg4dse4xt6kqec4))

  There is nothing more convenient than SQLite for analyzing and transforming JSON. You can select data directly from a file as if it were a regular table. Or import data into the table and select from there.
  select
  json_extract(value, '$.iso.code') as code,
  json_extract(value, '$.iso.number') as num,
  json_extract(value, '$.name') as name,
  json_extract(value, '$.units.major.name') as unit
  from
  json_each(readfile('currency.sample.json'))
  ; [View Highlight](https://read.readwise.io/read/01j6henb91d2vd1d43x4yj6e5w))

  Descriptive statistics? Easy: mean, median, percentiles, standard deviation, you name it. You’ll have to load an extension, but it’s also a single command (and a single file).
  .load sqlite3-stats
  select
  count(*) as book_count,
  cast(avg(num_pages) as integer) as mean,
  cast(median(num_pages) as integer) as median,
  mode(num_pages) as mode,
  percentile_90(num_pages) as p90,
  percentile_95(num_pages) as p95,
  percentile_99(num_pages) as p99
  from books; [View Highlight](https://read.readwise.io/read/01j6hev7qj7qyszxhwft53r1w9))

  There is a popular opinion among developers that SQLite is not suitable for the web, because it doesn’t support concurrent access. ... the write-ahead log mode ... there can be as many concurrent readers as you want. There can be only one concurrent writer, but often one is enough.

  SQLite supports partial indexes and indexes on expressions, as ‘big’ DBMSs do. You can build indexes on generated columns and even turn SQLite into a document database. Just store raw JSON and build indexes on `json_extract()`-ed columns [View Highlight](https://read.readwise.io/read/01j6hf4c5250yyf6871sphxenm))


path: Readwise/Site Design Standards.md
sortable_path: ReadwiseSite Design Standards.md
title: Site Design Standards
lead: ![rw-book-cover](https://seirdy.one/favicon512.63ee1da7ff5f42b764febf0cf7a793b5.png)
checksum: b72147d03def5426d7bd81dc52016a0ba32c730b3a028e917081f02a30c945b8
created: 2024-09-12 14:56:45.974847487+00:00
modified: 2024-09-04 23:31:39.142969927+00:00
metadata: {}
body:
  ![rw-book-cover](https://seirdy.one/favicon512.63ee1da7ff5f42b764febf0cf7a793b5.png)

  ## Metadata
  - Author: [[Rohan Kumar]]
  - Full Title: Site Design Standards
  - Category: #articles
  - Document Tags: [[dev]] [[indie-web]] 
  - URL: https://seirdy.one/meta/site-design/#static-indieweb
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Site%20Design%20Standards
  > [!tldr]
  > The website seirdy.one focuses on high accessibility standards, adhering to most Web Content Accessibility Guidelines (WCAG) while continuously improving link purpose clarity. It is compatible with various browsers, including older ones, and uses semantic, well-structured markup to enhance content accessibility. The site also incorporates IndieWeb features, allowing interactions like Webmentions, while planning future enhancements.

  ## Highlights
  I only set custom colors in response to the `prefers-color-scheme: dark` media query. These custom colors have an Advanced Perceptual Contrast Algorithm (APCA) lightness contrast close to the ideal value of 90. I use autism- and overstimulation-friendly colors: the yellow links have low saturation to reduce harshness. [View Highlight](https://read.readwise.io/read/01j6q0y08pr5az55kbqx1za16z)) [[design]] 
  > [!note]
  > Be carefull with over stimulation design

  I run axe-core, the IBM Equal Access Accessibility Checker, the Nu HTML Checker (local build, latest commit), and webhint on every page in my sitemap. After filtering out false-positives (and reporting them upstream), I receive no errors. I repeat this run with every change to my Hugo templates and stylesheets. [View Highlight](https://read.readwise.io/read/01j6q1k4ha86p96pnhz2m9szcp)) [[dev/accesibility]] 

  This website conforms to Web standards. Each build runs `xmllint` to catch syntax errors. Every few commits, I run a local build of [the Nu HTML Checker](https://github.com/validator/validator) and [html proofer](https://github.com/gjtorikian/html-proofer), and see no errors. I do [filter out false Nu positives](https://git.sr.ht/~seirdy/seirdy.one/tree/master/item/linter-configs/vnu_filter.jq), and I [report and fix false-positives](https://github.com/w3c/css-validator/issues?q=author%3ASeirdy) when possible. [View Highlight](https://read.readwise.io/read/01j6q1vgnhs9b2rqh77xxw9y5v)) [[dev/web-dev]] 

  [The IndieMark page](https://indieweb.org/IndieMark) lists all the ways you can “IndieWeb-ify” your site. [View Highlight](https://read.readwise.io/read/01j6q2cs5dpg7dc3qb130600n8)) [[indie-web]] 

  IndieWeb features implemented
  I’ve implemented several features from IndieMark:
  • IndieAuth compatibility, using the external [IndieLogin.com service](https://indielogin.com/).
  • Microformats: representative `h-card`, in-text `h-card` and `h-cite` when referencing works, `h-feed`.
  • Sending and receiving Webmentions. I receive Webmentions with [webmentiond](https://github.com/zerok/webmentiond), and send them from my own computer using [Pushl](https://github.com/PlaidWeb/Pushl/).
  • Displaying Webmentions: I render backlinks, IndieWeb “likes” (not silo likes), and comments below posts. I model their appearance after Tumblr’s display of interactions.
  • Backfeeding content from silos: I’m only interested in backfilled content containing discussion, not “reactions” or “likes”. Powered by [Bridgy](https://brid.gy/). [View Highlight](https://read.readwise.io/read/01j6q2a4dcrmq9eegvrsgz1hja)) [[indie-web]] 

  IndieWeb sites need not implement *every* IndieWeb standard. Progressive enhancement and graceful degradation let me implement interesting features, and skip less interesting ones. Skipped features include: [View Highlight](https://read.readwise.io/read/01j6q2j1gyftbdbr59hsggy34t))

raw_content:
  # Site Design Standards

  ![rw-book-cover](https://seirdy.one/favicon512.63ee1da7ff5f42b764febf0cf7a793b5.png)

  ## Metadata
  - Author: [[Rohan Kumar]]
  - Full Title: Site Design Standards
  - Category: #articles
  - Document Tags: [[dev]] [[indie-web]] 
  - URL: https://seirdy.one/meta/site-design/#static-indieweb
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Site%20Design%20Standards
  > [!tldr]
  > The website seirdy.one focuses on high accessibility standards, adhering to most Web Content Accessibility Guidelines (WCAG) while continuously improving link purpose clarity. It is compatible with various browsers, including older ones, and uses semantic, well-structured markup to enhance content accessibility. The site also incorporates IndieWeb features, allowing interactions like Webmentions, while planning future enhancements.

  ## Highlights
  I only set custom colors in response to the `prefers-color-scheme: dark` media query. These custom colors have an Advanced Perceptual Contrast Algorithm (APCA) lightness contrast close to the ideal value of 90. I use autism- and overstimulation-friendly colors: the yellow links have low saturation to reduce harshness. [View Highlight](https://read.readwise.io/read/01j6q0y08pr5az55kbqx1za16z)) [[design]] 
  > [!note]
  > Be carefull with over stimulation design

  I run axe-core, the IBM Equal Access Accessibility Checker, the Nu HTML Checker (local build, latest commit), and webhint on every page in my sitemap. After filtering out false-positives (and reporting them upstream), I receive no errors. I repeat this run with every change to my Hugo templates and stylesheets. [View Highlight](https://read.readwise.io/read/01j6q1k4ha86p96pnhz2m9szcp)) [[dev/accesibility]] 

  This website conforms to Web standards. Each build runs `xmllint` to catch syntax errors. Every few commits, I run a local build of [the Nu HTML Checker](https://github.com/validator/validator) and [html proofer](https://github.com/gjtorikian/html-proofer), and see no errors. I do [filter out false Nu positives](https://git.sr.ht/~seirdy/seirdy.one/tree/master/item/linter-configs/vnu_filter.jq), and I [report and fix false-positives](https://github.com/w3c/css-validator/issues?q=author%3ASeirdy) when possible. [View Highlight](https://read.readwise.io/read/01j6q1vgnhs9b2rqh77xxw9y5v)) [[dev/web-dev]] 

  [The IndieMark page](https://indieweb.org/IndieMark) lists all the ways you can “IndieWeb-ify” your site. [View Highlight](https://read.readwise.io/read/01j6q2cs5dpg7dc3qb130600n8)) [[indie-web]] 

  IndieWeb features implemented
  I’ve implemented several features from IndieMark:
  • IndieAuth compatibility, using the external [IndieLogin.com service](https://indielogin.com/).
  • Microformats: representative `h-card`, in-text `h-card` and `h-cite` when referencing works, `h-feed`.
  • Sending and receiving Webmentions. I receive Webmentions with [webmentiond](https://github.com/zerok/webmentiond), and send them from my own computer using [Pushl](https://github.com/PlaidWeb/Pushl/).
  • Displaying Webmentions: I render backlinks, IndieWeb “likes” (not silo likes), and comments below posts. I model their appearance after Tumblr’s display of interactions.
  • Backfeeding content from silos: I’m only interested in backfilled content containing discussion, not “reactions” or “likes”. Powered by [Bridgy](https://brid.gy/). [View Highlight](https://read.readwise.io/read/01j6q2a4dcrmq9eegvrsgz1hja)) [[indie-web]] 

  IndieWeb sites need not implement *every* IndieWeb standard. Progressive enhancement and graceful degradation let me implement interesting features, and skip less interesting ones. Skipped features include: [View Highlight](https://read.readwise.io/read/01j6q2j1gyftbdbr59hsggy34t))


path: Readwise/Software Deployment Models – Explained for Beginners.md
sortable_path: ReadwiseSoftware Deployment Models – Explained for Beginners.md
title: Software Deployment Models – Explained for Beginners
checksum: 24d4831b81b9c4ed4c793bafce738871ec62ad407d63a780742ea9a28e94c75d
created: 2024-09-12 14:56:45.998040242+00:00
modified: 2024-09-04 23:31:38.66496866+00:00
metadata: {}
lead:
  ![rw-book-cover](https://www.freecodecamp.org/news/content/images/2024/01/pexels-joshua-135018--1-.jpg)

body:
  ![rw-book-cover](https://www.freecodecamp.org/news/content/images/2024/01/pexels-joshua-135018--1-.jpg)

  ## Metadata
  - Author: [[freeCodeCamp.org]]
  - Full Title: Software Deployment Models – Explained for Beginners
  - Category: #articles
  - Document Tags: [[dev]] 
  - URL: https://www.freecodecamp.org/news/software-deployment-models/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Software%20Deployment%20Models%20%E2%80%93%20Explained%20for%20Beginners
  > [!tldr]
  > Software deployment models refer to the different ways in which software code can be deployed. This article explores various deployment models, including client/server computing, thin and fat client architectures, microservices, and Application Programming Interfaces (APIs). Client/server computing involves splitting computing tasks between clients and servers, with clients making requests and servers providing services or resources. Thin client architectures place most of the processing on the server side, while fat client architectures handle both the presentation layer and application logic on the client machine. Microservices involve dividing applications into smaller, independent services that communicate over a network, while APIs enable communication and integration between different software applications. The article also briefly touches on web applications, single page applications (SPAs), and different types of APIs, such as open APIs and REST APIs.

  ## Highlights
  Client/server computing architectures are a type of distributed computing architecture in which computing tasks are split between two types of machines: clients and servers. [View Highlight](https://read.readwise.io/read/01j59dqe78wf56va1yz6gb3df0))

  The client/server architecture provides several advantages, including:
  • Scalability, meaning that servers can be added or removed from the network as demand changes. This allows the system to scale up or down as needed without having to make changes on the clients.
  • Centralization, which means that by centralizing resources on servers, it is easier to manage and control access to those resources, and to enforce security policies. [View Highlight](https://read.readwise.io/read/01j59dqwmj1saw3r59nt5qy2v8))

  In a *thin* client architecture, the client machine is responsible for only the presentation layer, while the application logic and data processing are handled on the server side. __Thin clients typically have limited processing power and memory, and rely heavily on network connectivity to function__. [View Highlight](https://read.readwise.io/read/01j59drt66pd1rvgzhqdk6jvae))

  On the other hand, in a *fat* client architecture, the client machine is responsible for both the presentation layer and the application logic. The client machine typically has more processing power and memory, and can execute code and process data locally. [View Highlight](https://read.readwise.io/read/01j59dtzv6kms42sp02x7p6rz6))

  Now, should you design your software as a microservices or monolith architecture? In a *monolith* architecture, the entire application is built as a single, self-contained unit. All functionality, from data access to user interface, is bundled together in one codebase and deployed as a single unit. [View Highlight](https://read.readwise.io/read/01j59dx0jgkzhxpcsrbvhmb8p5))

  Web applications are software applications that are accessed through a web browser over a network such as the Internet. The purpose of web applications is to provide users with a convenient and accessible way to perform various tasks and access services over the web. [View Highlight](https://read.readwise.io/read/01j59dzd3j41bgbampr7rqjsxd))

raw_content:
  # Software Deployment Models – Explained for Beginners

  ![rw-book-cover](https://www.freecodecamp.org/news/content/images/2024/01/pexels-joshua-135018--1-.jpg)

  ## Metadata
  - Author: [[freeCodeCamp.org]]
  - Full Title: Software Deployment Models – Explained for Beginners
  - Category: #articles
  - Document Tags: [[dev]] 
  - URL: https://www.freecodecamp.org/news/software-deployment-models/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Software%20Deployment%20Models%20%E2%80%93%20Explained%20for%20Beginners
  > [!tldr]
  > Software deployment models refer to the different ways in which software code can be deployed. This article explores various deployment models, including client/server computing, thin and fat client architectures, microservices, and Application Programming Interfaces (APIs). Client/server computing involves splitting computing tasks between clients and servers, with clients making requests and servers providing services or resources. Thin client architectures place most of the processing on the server side, while fat client architectures handle both the presentation layer and application logic on the client machine. Microservices involve dividing applications into smaller, independent services that communicate over a network, while APIs enable communication and integration between different software applications. The article also briefly touches on web applications, single page applications (SPAs), and different types of APIs, such as open APIs and REST APIs.

  ## Highlights
  Client/server computing architectures are a type of distributed computing architecture in which computing tasks are split between two types of machines: clients and servers. [View Highlight](https://read.readwise.io/read/01j59dqe78wf56va1yz6gb3df0))

  The client/server architecture provides several advantages, including:
  • Scalability, meaning that servers can be added or removed from the network as demand changes. This allows the system to scale up or down as needed without having to make changes on the clients.
  • Centralization, which means that by centralizing resources on servers, it is easier to manage and control access to those resources, and to enforce security policies. [View Highlight](https://read.readwise.io/read/01j59dqwmj1saw3r59nt5qy2v8))

  In a *thin* client architecture, the client machine is responsible for only the presentation layer, while the application logic and data processing are handled on the server side. __Thin clients typically have limited processing power and memory, and rely heavily on network connectivity to function__. [View Highlight](https://read.readwise.io/read/01j59drt66pd1rvgzhqdk6jvae))

  On the other hand, in a *fat* client architecture, the client machine is responsible for both the presentation layer and the application logic. The client machine typically has more processing power and memory, and can execute code and process data locally. [View Highlight](https://read.readwise.io/read/01j59dtzv6kms42sp02x7p6rz6))

  Now, should you design your software as a microservices or monolith architecture? In a *monolith* architecture, the entire application is built as a single, self-contained unit. All functionality, from data access to user interface, is bundled together in one codebase and deployed as a single unit. [View Highlight](https://read.readwise.io/read/01j59dx0jgkzhxpcsrbvhmb8p5))

  Web applications are software applications that are accessed through a web browser over a network such as the Internet. The purpose of web applications is to provide users with a convenient and accessible way to perform various tasks and access services over the web. [View Highlight](https://read.readwise.io/read/01j59dzd3j41bgbampr7rqjsxd))


path: Readwise/THE ZETTELKASTEN MANIFESTO What is a Zettelkasten.md
sortable_path: ReadwiseTHE ZETTELKASTEN MANIFESTO What is a Zettelkasten.md
title: THE ZETTELKASTEN MANIFESTO | What is a Zettelkasten?
lead: ![rw-book-cover](https://zettlr.com/storage/app/media/img/social_media_img.png)
checksum: f3f9b76befddfcb5bd236eaee3b0544ce494058c8b39d843073839279627e9b3
created: 2024-09-12 14:56:46.007976575+00:00
modified: 2024-09-04 23:31:38.889969257+00:00
metadata: {}
body:
  ![rw-book-cover](https://zettlr.com/storage/app/media/img/social_media_img.png)

  ## Metadata
  - Author: [[Zettlr]]
  - Full Title: THE ZETTELKASTEN MANIFESTO | What is a Zettelkasten?
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://www.zettlr.com/post/what-is-a-zettelkasten
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=THE%20ZETTELKASTEN%20MANIFESTO%20%7C%20What%20is%20a%20Zettelkasten%3F

  > [!note]
  > This is the definitive explanation of a Zettlelkasten
  > [!tldr]
  > Website traffic analytics show high interest in the Zettelkasten method, which is a knowledge management system. Users seek simple answers to complex problems of managing knowledge effectively. Structuring notes and self-reflection are key components of creating a personalized Zettelkasten system.

  ## Highlights
  We live in a society that likes a dead-simple approach to problems; one solution each. But a Zettelkasten evades this 21st-century mindset. A Zettelkasten is a multitude of different approaches to a common problem — the problem of knowledge management. [View Highlight](https://read.readwise.io/read/01j60nacy93812ptm2c0fh226q))

  there is not *the* Zettelkasten approach — but one for every human being living on this planet. [View Highlight](https://read.readwise.io/read/01j62awnqp75y0p29mgp8werra)) [[notetaking]] 

  It does not help to copy a workflow by a different person, because a Zettelkasten must at all costs reflect the working habits of the person using it. [View Highlight](https://read.readwise.io/read/01j62b22nehaew7g0y0g2cw3fg))

  The first thing you must respect when beginning to structure your knowledge is exactly that: a certain structure. This is what people like us can explain to you and help you with. But the second thing is where you are completely on your own: self reflection. __To manage your knowledge, you have to know how you work__. [View Highlight](https://read.readwise.io/read/01j62b418gmqzv0j2ng9wg4pw6)) [[favorite]] 

  The structure of a Zettelkasten is fairly easy described: It's a database. It is simply a place where you file your knowledge in a semi-structured way. [View Highlight](https://read.readwise.io/read/01j62hpbfbv82tkf6kq9b3ddef))

  The more important part of a Zettelkasten therefore is self reflection. You need to be constantly on the watch for how *you* work. [View Highlight](https://read.readwise.io/read/01j62hsdeyxwtxf429t43ve5rb))

  Do not listen too much to too specific advises on how to start a Zettelkasten. Just start and use the structure *you* need. And stop reading tutorials on Zettelkästen. [View Highlight](https://read.readwise.io/read/01j62hvprnrb55xhvd525v03ww))

raw_content:
  # THE ZETTELKASTEN MANIFESTO | What is a Zettelkasten?

  ![rw-book-cover](https://zettlr.com/storage/app/media/img/social_media_img.png)

  ## Metadata
  - Author: [[Zettlr]]
  - Full Title: THE ZETTELKASTEN MANIFESTO | What is a Zettelkasten?
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://www.zettlr.com/post/what-is-a-zettelkasten
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=THE%20ZETTELKASTEN%20MANIFESTO%20%7C%20What%20is%20a%20Zettelkasten%3F

  > [!note]
  > This is the definitive explanation of a Zettlelkasten
  > [!tldr]
  > Website traffic analytics show high interest in the Zettelkasten method, which is a knowledge management system. Users seek simple answers to complex problems of managing knowledge effectively. Structuring notes and self-reflection are key components of creating a personalized Zettelkasten system.

  ## Highlights
  We live in a society that likes a dead-simple approach to problems; one solution each. But a Zettelkasten evades this 21st-century mindset. A Zettelkasten is a multitude of different approaches to a common problem — the problem of knowledge management. [View Highlight](https://read.readwise.io/read/01j60nacy93812ptm2c0fh226q))

  there is not *the* Zettelkasten approach — but one for every human being living on this planet. [View Highlight](https://read.readwise.io/read/01j62awnqp75y0p29mgp8werra)) [[notetaking]] 

  It does not help to copy a workflow by a different person, because a Zettelkasten must at all costs reflect the working habits of the person using it. [View Highlight](https://read.readwise.io/read/01j62b22nehaew7g0y0g2cw3fg))

  The first thing you must respect when beginning to structure your knowledge is exactly that: a certain structure. This is what people like us can explain to you and help you with. But the second thing is where you are completely on your own: self reflection. __To manage your knowledge, you have to know how you work__. [View Highlight](https://read.readwise.io/read/01j62b418gmqzv0j2ng9wg4pw6)) [[favorite]] 

  The structure of a Zettelkasten is fairly easy described: It's a database. It is simply a place where you file your knowledge in a semi-structured way. [View Highlight](https://read.readwise.io/read/01j62hpbfbv82tkf6kq9b3ddef))

  The more important part of a Zettelkasten therefore is self reflection. You need to be constantly on the watch for how *you* work. [View Highlight](https://read.readwise.io/read/01j62hsdeyxwtxf429t43ve5rb))

  Do not listen too much to too specific advises on how to start a Zettelkasten. Just start and use the structure *you* need. And stop reading tutorials on Zettelkästen. [View Highlight](https://read.readwise.io/read/01j62hvprnrb55xhvd525v03ww))


path: Readwise/The Definitive Guide to Docker Swarm.md
sortable_path: ReadwiseThe Definitive Guide to Docker Swarm.md
title: The Definitive Guide to Docker Swarm
lead: ![rw-book-cover](https://gabrieltanner.org/blog/the-definitive-guide-to-docker-swarm.png)
checksum: 535a03ed666c4949cb5766a4b4a302df7dbb7d901280a2115844d49d5dac8e40
created: 2024-09-12 14:56:46.02425034+00:00
modified: 2024-09-04 23:31:38.715968795+00:00
metadata: {}
body:
  ![rw-book-cover](https://gabrieltanner.org/blog/the-definitive-guide-to-docker-swarm.png)

  ## Metadata
  - Author: [[Gabriel Tanner]]
  - Full Title: The Definitive Guide to Docker Swarm
  - Category: #articles
  - URL: https://gabrieltanner.org/blog/docker-swarm/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Definitive%20Guide%20to%20Docker%20Swarm
  > [!tldr]
  > This text is a guide to Docker Swarm, a tool to scale and manage Docker projects easily. Docker Swarm helps in load balancing, cluster management, and service deployment within a cluster of Docker hosts. It provides features like replicated and global services, scaling, and rolling updates for efficient container management.

  ## Highlights
  After the registry is running we can continue with pushing the local image to the registry using the **push** command.
  docker-compose push [View Highlight](https://read.readwise.io/read/01j5js3hxamp3s08ebhf5ka502))
  > [!note]
  > Se puede subir una imagen desde un compose.yml file

raw_content:
  # The Definitive Guide to Docker Swarm

  ![rw-book-cover](https://gabrieltanner.org/blog/the-definitive-guide-to-docker-swarm.png)

  ## Metadata
  - Author: [[Gabriel Tanner]]
  - Full Title: The Definitive Guide to Docker Swarm
  - Category: #articles
  - URL: https://gabrieltanner.org/blog/docker-swarm/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Definitive%20Guide%20to%20Docker%20Swarm
  > [!tldr]
  > This text is a guide to Docker Swarm, a tool to scale and manage Docker projects easily. Docker Swarm helps in load balancing, cluster management, and service deployment within a cluster of Docker hosts. It provides features like replicated and global services, scaling, and rolling updates for efficient container management.

  ## Highlights
  After the registry is running we can continue with pushing the local image to the registry using the **push** command.
  docker-compose push [View Highlight](https://read.readwise.io/read/01j5js3hxamp3s08ebhf5ka502))
  > [!note]
  > Se puede subir una imagen desde un compose.yml file


path: Readwise/The Strategy Pattern Will Make Your Python Code CLEANER.md
sortable_path: ReadwiseThe Strategy Pattern Will Make Your Python Code CLEANER.md
title: The Strategy Pattern Will Make Your Python Code CLEANER
lead: ![rw-book-cover](https://i.ytimg.com/vi/hVLb3-OE3pM/maxresdefault.jpg)
checksum: a70272b65855743057d8b250d4104e0955e7ad8a6e4bcd9ab6d0bbb6755ad180
created: 2024-09-12 14:56:46.03234999+00:00
modified: 2024-09-04 23:31:38.768968936+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/hVLb3-OE3pM/maxresdefault.jpg)

  ## Metadata
  - Author: [[Isaac Harris-Holt]]
  - Full Title: The Strategy Pattern Will Make Your Python Code CLEANER
  - Category: #articles
  - Document Tags: [[dev]] [[dev/design-patterns]] 
  - URL: https://www.youtube.com/watch?v=hVLb3-OE3pM
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Strategy%20Pattern%20Will%20Make%20Your%20Python%20Code%20CLEANER
  > [!tldr]
  > The strategy pattern is a design method that helps organize code by separating different algorithms into distinct classes. This makes code cleaner, more modular, and easier to maintain, allowing for easy changes at runtime without extensive conditional statements. By using this pattern, developers can enhance their code's flexibility while keeping it readable and manageable.

  ## Highlights
  the strategy pattern is a design pattern that allows you to cleanly separate different algorithms and behaviors into separate classes.
  __Each algorithm implements a common interface__ so you can easily switch between them at runtime without having to modify your core code. [View Highlight](https://read.readwise.io/read/01j5qs5ace2bghpggy8trfaz6r))
  > [!note]
  > Is this kinda the same as the factory class?

  we're going to use Python's protocol typeint protocol is like an interface in other languages it allows you to define the methods an object
  should have without knowing the implementation details up front [View Highlight](https://read.readwise.io/read/01j5qsbjkgnknchvq55mj1eec6))

  you may be wondering why you might pick Python's protocol over using an abstract base
  class or ABC unlike ABC's Protocols are duct typed meaning you don't have to explicitly inherit from them in order to implement them [View Highlight](https://read.readwise.io/read/01j5qsjaf9qdk5a5d46drkv43e))

  Protocols are duct typed [View Highlight](https://read.readwise.io/read/01j5qsr9779888tpa2mp6w0438))
  > [!note]
  > In "The Strategy Pattern Will Make Your Python Code CLEANER," Isaac Harris-Holt uses the term "Protocols are duct typed" to describe how Python's protocol mechanism allows objects to be used interchangeably based solely on their method signatures, rather than requiring explicit inheritance from a protocol. This flexibility enables developers to integrate external libraries or new classes into their code without needing to modify existing structures, as long as the new objects conform to the expected method definitions. Essentially, duct typing promotes a more modular and adaptable coding style, where compliance with an interface is determined by the presence of specified methods rather than formal inheritance.

  the power of the single method interface it allows you to write modular extensible and
  flexible code it's easily testable and very readable [View Highlight](https://read.readwise.io/read/01j5qsr0gh3pvf1w3j0jtqm0ez))

  you'll see this pattern used a lot particularly in languages like go where the standard library has single method interfaces like io.writer and io.reader the truly powerful thing here is that these interfaces are used by the standard Library so if you implement a read method on your struct you can use it in standard Library functions without having to do any manual type conversions [View Highlight](https://read.readwise.io/read/01j5qswey6zs8mdgxjnv71v4gy))
  > [!note]
  > Usages

raw_content:
  # The Strategy Pattern Will Make Your Python Code CLEANER

  ![rw-book-cover](https://i.ytimg.com/vi/hVLb3-OE3pM/maxresdefault.jpg)

  ## Metadata
  - Author: [[Isaac Harris-Holt]]
  - Full Title: The Strategy Pattern Will Make Your Python Code CLEANER
  - Category: #articles
  - Document Tags: [[dev]] [[dev/design-patterns]] 
  - URL: https://www.youtube.com/watch?v=hVLb3-OE3pM
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Strategy%20Pattern%20Will%20Make%20Your%20Python%20Code%20CLEANER
  > [!tldr]
  > The strategy pattern is a design method that helps organize code by separating different algorithms into distinct classes. This makes code cleaner, more modular, and easier to maintain, allowing for easy changes at runtime without extensive conditional statements. By using this pattern, developers can enhance their code's flexibility while keeping it readable and manageable.

  ## Highlights
  the strategy pattern is a design pattern that allows you to cleanly separate different algorithms and behaviors into separate classes.
  __Each algorithm implements a common interface__ so you can easily switch between them at runtime without having to modify your core code. [View Highlight](https://read.readwise.io/read/01j5qs5ace2bghpggy8trfaz6r))
  > [!note]
  > Is this kinda the same as the factory class?

  we're going to use Python's protocol typeint protocol is like an interface in other languages it allows you to define the methods an object
  should have without knowing the implementation details up front [View Highlight](https://read.readwise.io/read/01j5qsbjkgnknchvq55mj1eec6))

  you may be wondering why you might pick Python's protocol over using an abstract base
  class or ABC unlike ABC's Protocols are duct typed meaning you don't have to explicitly inherit from them in order to implement them [View Highlight](https://read.readwise.io/read/01j5qsjaf9qdk5a5d46drkv43e))

  Protocols are duct typed [View Highlight](https://read.readwise.io/read/01j5qsr9779888tpa2mp6w0438))
  > [!note]
  > In "The Strategy Pattern Will Make Your Python Code CLEANER," Isaac Harris-Holt uses the term "Protocols are duct typed" to describe how Python's protocol mechanism allows objects to be used interchangeably based solely on their method signatures, rather than requiring explicit inheritance from a protocol. This flexibility enables developers to integrate external libraries or new classes into their code without needing to modify existing structures, as long as the new objects conform to the expected method definitions. Essentially, duct typing promotes a more modular and adaptable coding style, where compliance with an interface is determined by the presence of specified methods rather than formal inheritance.

  the power of the single method interface it allows you to write modular extensible and
  flexible code it's easily testable and very readable [View Highlight](https://read.readwise.io/read/01j5qsr0gh3pvf1w3j0jtqm0ez))

  you'll see this pattern used a lot particularly in languages like go where the standard library has single method interfaces like io.writer and io.reader the truly powerful thing here is that these interfaces are used by the standard Library so if you implement a read method on your struct you can use it in standard Library functions without having to do any manual type conversions [View Highlight](https://read.readwise.io/read/01j5qswey6zs8mdgxjnv71v4gy))
  > [!note]
  > Usages


path: Readwise/The Waiting Time Paradox, or, Why Is My Bus Always Late.md
sortable_path: ReadwiseThe Waiting Time Paradox, or, Why Is My Bus Always Late.md
title: The Waiting Time Paradox, or, Why Is My Bus Always Late?
lead: ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png)
checksum: ebc6c5cdf18673447a212d8f5f3f92409035fcef76650b67fc8693d4f7e61a31
created: 2024-09-12 14:56:46.050363585+00:00
modified: 2024-09-04 23:31:38.820969074+00:00
metadata: {}
body:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png)

  ## Metadata
  - Author: [[jakevdp.github.io]]
  - Full Title: The Waiting Time Paradox, or, Why Is My Bus Always Late?
  - Category: #articles
  - URL: https://jakevdp.github.io/blog/2018/09/13/waiting-time-paradox/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Waiting%20Time%20Paradox%2C%20or%2C%20Why%20Is%20My%20Bus%20Always%20Late%3F
  > [!tldr]
  > The text discusses the waiting time paradox in the context of bus arrivals. It explains that while one might expect the average wait time for a bus that arrives every 10 minutes to be 5 minutes, under certain assumptions, the average waiting time can actually be 10 minutes. The text explores this paradox through simulations and probabilistic arguments, showing that the average waiting time aligns with the average interval between bus arrivals. It also discusses the use of Poisson processes to model bus arrival times and concludes that the waiting time paradox assumption may not hold true in real-world scenarios where bus arrival intervals are not exponentially distributed.

  ## Highlights
  Briefly, the inspection paradox arises whenever the probability of observing a quantity is related to the quantity being observed. Allen gives one example of surveying university students about the average size of their classes. Though the school may truthfully advertise an average of 30 students per class, the average class size *as experienced by students* can be (and generally will be) much larger. The reason is that there are (of course) more students in the larger classes, and so you oversample large classes when computing the average experience of students. [View Highlight](https://read.readwise.io/read/01j5vf1r4qjgrnqa3dq94f19e5))

raw_content:
  # The Waiting Time Paradox, or, Why Is My Bus Always Late?

  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png)

  ## Metadata
  - Author: [[jakevdp.github.io]]
  - Full Title: The Waiting Time Paradox, or, Why Is My Bus Always Late?
  - Category: #articles
  - URL: https://jakevdp.github.io/blog/2018/09/13/waiting-time-paradox/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Waiting%20Time%20Paradox%2C%20or%2C%20Why%20Is%20My%20Bus%20Always%20Late%3F
  > [!tldr]
  > The text discusses the waiting time paradox in the context of bus arrivals. It explains that while one might expect the average wait time for a bus that arrives every 10 minutes to be 5 minutes, under certain assumptions, the average waiting time can actually be 10 minutes. The text explores this paradox through simulations and probabilistic arguments, showing that the average waiting time aligns with the average interval between bus arrivals. It also discusses the use of Poisson processes to model bus arrival times and concludes that the waiting time paradox assumption may not hold true in real-world scenarios where bus arrival intervals are not exponentially distributed.

  ## Highlights
  Briefly, the inspection paradox arises whenever the probability of observing a quantity is related to the quantity being observed. Allen gives one example of surveying university students about the average size of their classes. Though the school may truthfully advertise an average of 30 students per class, the average class size *as experienced by students* can be (and generally will be) much larger. The reason is that there are (of course) more students in the larger classes, and so you oversample large classes when computing the average experience of students. [View Highlight](https://read.readwise.io/read/01j5vf1r4qjgrnqa3dq94f19e5))


path: Readwise/This Week in Self-Hosted.md
sortable_path: ReadwiseThis Week in Self-Hosted.md
title: This Week in Self-Hosted
lead: ![rw-book-cover](https://selfh.st/favicon.png)
checksum: 85f6772d185c506917e80ce2741342be55af33bdfd1c56ab01d4ba4863b39489
created: 2024-09-12 14:56:46.058877577+00:00
modified: 2024-09-04 23:31:39.205970094+00:00
metadata: {}
body:
  ![rw-book-cover](https://selfh.st/favicon.png)

  ## Metadata
  - Author: [[Ethan Sholly]]
  - Full Title: This Week in Self-Hosted
  - Category: #articles
  - URL: https://selfh.st/newsletter/2024-08-23/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=This%20Week%20in%20Self-Hosted
  > [!tldr]
  > Self-hosted news, updates, launches, and a spotlight on Pocket ID - a self-hosted OIDC authentication provider

  ## Highlights
  ![](https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg) [View Highlight](https://read.readwise.io/read/01j6vrq67ew0b2bq6vy9efws1q))

raw_content:
  # This Week in Self-Hosted

  ![rw-book-cover](https://selfh.st/favicon.png)

  ## Metadata
  - Author: [[Ethan Sholly]]
  - Full Title: This Week in Self-Hosted
  - Category: #articles
  - URL: https://selfh.st/newsletter/2024-08-23/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=This%20Week%20in%20Self-Hosted
  > [!tldr]
  > Self-hosted news, updates, launches, and a spotlight on Pocket ID - a self-hosted OIDC authentication provider

  ## Highlights
  ![](https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg) [View Highlight](https://read.readwise.io/read/01j6vrq67ew0b2bq6vy9efws1q))


path: Readwise/Writing Is Magic. It Can Change Your Life.md
sortable_path: ReadwiseWriting Is Magic. It Can Change Your Life.md
title: Writing Is Magic. It Can Change Your Life
lead: ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article0.00998d930354.png)
checksum: d613c3c369cf2242e971e57eaef29bea9a2c582d11210ed82b9eeaa27d0580a7
created: 2024-09-12 14:56:46.067835913+00:00
modified: 2024-09-04 23:31:38.533968313+00:00
metadata: {}
body:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article0.00998d930354.png)

  ## Metadata
  - Author: [[omerxx@gmail.com]]
  - Full Title: Writing Is Magic. It Can Change Your Life
  - Category: #articles
  - Document Tags: [[star]] 
  - URL: https://omnivore.app/aleidk/writing-is-magic-it-can-change-your-life-18dfa8bdd0b
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Writing%20Is%20Magic.%20It%20Can%20Change%20Your%20Life
  > [!tldr]
  > Today, I want to share a powerful skill with you. If you choose to embrace it—and there are countless ways to do so—you’ll see growth in every aspect of your life. Yes, it’s that impactful.

  ## Highlights
  “Begin with the end in mind”: Effective writing evokes emotion. Consider the feeling you want to create - excitement, amazement, or anger - and aim to engage your readers. 
  ​ [View Highlight](https://read.readwise.io/read/01j547jfjajaa9k41dtnpxsxge)) [[blog]] 

  Good stories have an **intention** and an **obstacle**. That’s it. You want something; there’s a problem; what do you do? (shock, frustration, deep thinking). Find a solution! Let’s fix the issue. 
  ​ [View Highlight](https://read.readwise.io/read/01j547jwm5swdx523nhy2n0w2z)) [[notetaking]] 

  Use “low-level” writing. Studies show that The New York Times uses 12th-grade level language. 
  Warren Buffett changed his writing style over 40 years. 
  He simplified it from a 16th-grade to a 10th-grade level. Now, he explains things more clearly. 
  If they can, you should too. Use simple language, AI tools like GPT, and apps like [Hemingway](https://click.convertkit-mail2.com/4zu4mx47q9ieh5lx3lguxh3drwv77/7qh7h8hoz8kxolfz/aHR0cHM6Ly9oZW1pbmd3YXlhcHAuY29tLw==) to help. 
  ​ [View Highlight](https://read.readwise.io/read/01j547kb2be2txj046yrh9a3pg))

  ​[Rhythm in writing](https://click.convertkit-mail2.com/4zu4mx47q9ieh5lx3lguxh3drwv77/owhkhqhronk0rduv/aHR0cHM6Ly93d3cuYmJjbWFlc3Ryby5jb20vYmxvZy9yaHl0aG0taW4td3JpdGluZw==). Words can be music. Sentences can have a flow. 
  Replace commas with periods. Control the tone. 
  Make the readers feel their heart beats, their emotion, their... soul. 
  Did it work? **Make them** ***listen*** **while they read**. 
  ​ [View Highlight](https://read.readwise.io/read/01j547m5raqmgazwydfrwfpef9)) [[blog]] [[favorite]] 

  Start by warming up. Yes, really. Take 10 minutes, pick a piece you like, and write it down, **word by word**. 
  Warm up your brain and body for writing! 
  ​ [View Highlight](https://read.readwise.io/read/01j547mrzvshcwd1jmdh92gg28))

  **Don’t perfect it**. Start with a ROUGH first draft. Then take a break. Then hard edit. 
  ​ [View Highlight](https://read.readwise.io/read/01j547n5d9btvs9q9xrzz1xvva))

  **Publish**! Whether it’s once a week or once a month, it doesn’t matter. 
  The more you practice, the better you become; the more you publish, the better you get at sharing ideas. 
  Practice storytelling. [View Highlight](https://read.readwise.io/read/01j547nethjk4bbf0prnncdsk4))

raw_content:
  # Writing Is Magic. It Can Change Your Life

  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article0.00998d930354.png)

  ## Metadata
  - Author: [[omerxx@gmail.com]]
  - Full Title: Writing Is Magic. It Can Change Your Life
  - Category: #articles
  - Document Tags: [[star]] 
  - URL: https://omnivore.app/aleidk/writing-is-magic-it-can-change-your-life-18dfa8bdd0b
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Writing%20Is%20Magic.%20It%20Can%20Change%20Your%20Life
  > [!tldr]
  > Today, I want to share a powerful skill with you. If you choose to embrace it—and there are countless ways to do so—you’ll see growth in every aspect of your life. Yes, it’s that impactful.

  ## Highlights
  “Begin with the end in mind”: Effective writing evokes emotion. Consider the feeling you want to create - excitement, amazement, or anger - and aim to engage your readers. 
  ​ [View Highlight](https://read.readwise.io/read/01j547jfjajaa9k41dtnpxsxge)) [[blog]] 

  Good stories have an **intention** and an **obstacle**. That’s it. You want something; there’s a problem; what do you do? (shock, frustration, deep thinking). Find a solution! Let’s fix the issue. 
  ​ [View Highlight](https://read.readwise.io/read/01j547jwm5swdx523nhy2n0w2z)) [[notetaking]] 

  Use “low-level” writing. Studies show that The New York Times uses 12th-grade level language. 
  Warren Buffett changed his writing style over 40 years. 
  He simplified it from a 16th-grade to a 10th-grade level. Now, he explains things more clearly. 
  If they can, you should too. Use simple language, AI tools like GPT, and apps like [Hemingway](https://click.convertkit-mail2.com/4zu4mx47q9ieh5lx3lguxh3drwv77/7qh7h8hoz8kxolfz/aHR0cHM6Ly9oZW1pbmd3YXlhcHAuY29tLw==) to help. 
  ​ [View Highlight](https://read.readwise.io/read/01j547kb2be2txj046yrh9a3pg))

  ​[Rhythm in writing](https://click.convertkit-mail2.com/4zu4mx47q9ieh5lx3lguxh3drwv77/owhkhqhronk0rduv/aHR0cHM6Ly93d3cuYmJjbWFlc3Ryby5jb20vYmxvZy9yaHl0aG0taW4td3JpdGluZw==). Words can be music. Sentences can have a flow. 
  Replace commas with periods. Control the tone. 
  Make the readers feel their heart beats, their emotion, their... soul. 
  Did it work? **Make them** ***listen*** **while they read**. 
  ​ [View Highlight](https://read.readwise.io/read/01j547m5raqmgazwydfrwfpef9)) [[blog]] [[favorite]] 

  Start by warming up. Yes, really. Take 10 minutes, pick a piece you like, and write it down, **word by word**. 
  Warm up your brain and body for writing! 
  ​ [View Highlight](https://read.readwise.io/read/01j547mrzvshcwd1jmdh92gg28))

  **Don’t perfect it**. Start with a ROUGH first draft. Then take a break. Then hard edit. 
  ​ [View Highlight](https://read.readwise.io/read/01j547n5d9btvs9q9xrzz1xvva))

  **Publish**! Whether it’s once a week or once a month, it doesn’t matter. 
  The more you practice, the better you become; the more you publish, the better you get at sharing ideas. 
  Practice storytelling. [View Highlight](https://read.readwise.io/read/01j547nethjk4bbf0prnncdsk4))


path: Readwise/Writing Over Infinite Scrolling Journal Like a Scientist.md
sortable_path: ReadwiseWriting Over Infinite Scrolling Journal Like a Scientist.md
title: Writing Over Infinite Scrolling | Journal Like a Scientist
lead: ![rw-book-cover](https://i.ytimg.com/vi/0LhmdYa5vvA/maxresdefault.jpg)
checksum: ff3161ffb5d5a68f8dc3eeaf13de9bcfa782eed796d7f132af455e13d0faf6ab
created: 2024-09-12 14:56:46.089560489+00:00
modified: 2024-09-04 23:31:39.188970049+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/0LhmdYa5vvA/maxresdefault.jpg)

  ## Metadata
  - Author: [[Charlotte Fraza]]
  - Full Title: Writing Over Infinite Scrolling | Journal Like a Scientist
  - Category: #articles
  - Document Tags: [[Education]] [[notetaking]] 
  - URL: https://www.youtube.com/watch?v=0LhmdYa5vvA
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Writing%20Over%20Infinite%20Scrolling%20%7C%20Journal%20Like%20a%20Scientist

  > [!note]
  > **Background:** I want to start journaling about my projects, focusing primarily on software development but also incorporating any other interests or activities I engage in.
  > ---
  > ### Key Takeaways and To-Dos:
  > 📝 **Experiment Logging:** For each project or experiment, document the hypothesis, methods, results, and conclusions. This structured approach will help in tracking progress and learning outcomes effectively.
  > 🔍 **Continuous Logging:** Maintain a habit of continuously logging thoughts and observations throughout the project. This ongoing documentation can capture insights as they arise and provide clarity during the development process.
  > 🤝 **Weekly Reflection:** Set aside time for weekly reflections to review all notes taken throughout the week. This will help consolidate ideas, identify valuable insights, and create a coherent framework for understanding your progress.
  > [!tldr]
  > Charlotte Fraza discusses the importance of note-taking and journaling in the scientific process. She emphasizes that logging experiments and reflecting on failures can enhance learning and problem-solving skills. By capturing ideas and documenting resources, individuals can improve their understanding and share knowledge with others.

  ## Highlights
  experiment logging So within science what you do is
  you record all your experiments successful or not and all the questions that you pose and the answers that you seek and then you note down what you learned from each of these experiments [View Highlight](https://read.readwise.io/read/01j536cg9k591ndzmjdyn3acx0))

  experiment logging the idea what you do is for each experiment that you make is you write down these sections so you write down the hypothesis methods results and conclusions [View Highlight](https://read.readwise.io/read/01j536ety7c80mnxr62zpjdxzp))

  he second part of experiment logging is the brain dump so this is also something that I really learned to do during my PhD and this is whenever you sit down for a full work day or at the end of a work day you kind of dump all the information that you have in your brain about the experiment [View Highlight](https://read.readwise.io/read/01j536hwghwa7h71cfjs4mhw3f))

  the idea of resource documentation or research logging is that throughout any learning process you __log or take a record of all the resources that you use__, and this is mainly because at the end of learning something you usually forget what you've used to get there. [View Highlight](https://read.readwise.io/read/01j536q30j8nqkpcd7dqgrh2ar)) [[favorite]] [[notetaking]] 

  the idea of continuous logging is that you keep writing down the thoughts you have about that experiment as you are conducting it. [View Highlight](https://read.readwise.io/read/01j536tb8h218sb5f4jzbh4c4e)) [[notetaking]] 

  having reflection moments or weekly reflection in my case and that's really to come back to all the notes you've taken throughout the week and to combine them into one coherent framework and also to pick out the ideas that you really like [View Highlight](https://read.readwise.io/read/01j5373tkcxah1j67yk861wjpp))

  don't cross out any of the previous ideas that you have that you currently don't like cuz I find often that as you change yourself throughout time if you go back to some really old notebooks it's actually really nice to see some of the thoughts you were having and sometimes these thoughts are actually more valuable at this moment than you estimated them to be at the previous moments [View Highlight](https://read.readwise.io/read/01j5377gqcfcwfzmwe0mtb9w32))

  sharing and reflecting together with another person is actually really nice [View Highlight](https://read.readwise.io/read/01j537948pfqmqcdrfpj1dth6v))

  you would write down your hypothesis to how you think this would go what you think you would learn what you think you would gain from this skill acis
  you would write down your methods how you think you're going to learn as much as possible about the brain in 30 days and you would write down your results but then in the end you would also write down your conclusions [View Highlight](https://read.readwise.io/read/01j6s8wm539b8fne7spch2qqnp))

  these are usually to-dos that I think I need to do doubts I have about the experiment that I'm going to do what I think throughout that day I will learn or kind of what I have to consider and also a lot of times I write down what I think can go wrong [View Highlight](https://read.readwise.io/read/01j6s90vvygxh31fm58cp5xj11))

raw_content:
  # Writing Over Infinite Scrolling | Journal Like a Scientist

  ![rw-book-cover](https://i.ytimg.com/vi/0LhmdYa5vvA/maxresdefault.jpg)

  ## Metadata
  - Author: [[Charlotte Fraza]]
  - Full Title: Writing Over Infinite Scrolling | Journal Like a Scientist
  - Category: #articles
  - Document Tags: [[Education]] [[notetaking]] 
  - URL: https://www.youtube.com/watch?v=0LhmdYa5vvA
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Writing%20Over%20Infinite%20Scrolling%20%7C%20Journal%20Like%20a%20Scientist

  > [!note]
  > **Background:** I want to start journaling about my projects, focusing primarily on software development but also incorporating any other interests or activities I engage in.
  > ---
  > ### Key Takeaways and To-Dos:
  > 📝 **Experiment Logging:** For each project or experiment, document the hypothesis, methods, results, and conclusions. This structured approach will help in tracking progress and learning outcomes effectively.
  > 🔍 **Continuous Logging:** Maintain a habit of continuously logging thoughts and observations throughout the project. This ongoing documentation can capture insights as they arise and provide clarity during the development process.
  > 🤝 **Weekly Reflection:** Set aside time for weekly reflections to review all notes taken throughout the week. This will help consolidate ideas, identify valuable insights, and create a coherent framework for understanding your progress.
  > [!tldr]
  > Charlotte Fraza discusses the importance of note-taking and journaling in the scientific process. She emphasizes that logging experiments and reflecting on failures can enhance learning and problem-solving skills. By capturing ideas and documenting resources, individuals can improve their understanding and share knowledge with others.

  ## Highlights
  experiment logging So within science what you do is
  you record all your experiments successful or not and all the questions that you pose and the answers that you seek and then you note down what you learned from each of these experiments [View Highlight](https://read.readwise.io/read/01j536cg9k591ndzmjdyn3acx0))

  experiment logging the idea what you do is for each experiment that you make is you write down these sections so you write down the hypothesis methods results and conclusions [View Highlight](https://read.readwise.io/read/01j536ety7c80mnxr62zpjdxzp))

  he second part of experiment logging is the brain dump so this is also something that I really learned to do during my PhD and this is whenever you sit down for a full work day or at the end of a work day you kind of dump all the information that you have in your brain about the experiment [View Highlight](https://read.readwise.io/read/01j536hwghwa7h71cfjs4mhw3f))

  the idea of resource documentation or research logging is that throughout any learning process you __log or take a record of all the resources that you use__, and this is mainly because at the end of learning something you usually forget what you've used to get there. [View Highlight](https://read.readwise.io/read/01j536q30j8nqkpcd7dqgrh2ar)) [[favorite]] [[notetaking]] 

  the idea of continuous logging is that you keep writing down the thoughts you have about that experiment as you are conducting it. [View Highlight](https://read.readwise.io/read/01j536tb8h218sb5f4jzbh4c4e)) [[notetaking]] 

  having reflection moments or weekly reflection in my case and that's really to come back to all the notes you've taken throughout the week and to combine them into one coherent framework and also to pick out the ideas that you really like [View Highlight](https://read.readwise.io/read/01j5373tkcxah1j67yk861wjpp))

  don't cross out any of the previous ideas that you have that you currently don't like cuz I find often that as you change yourself throughout time if you go back to some really old notebooks it's actually really nice to see some of the thoughts you were having and sometimes these thoughts are actually more valuable at this moment than you estimated them to be at the previous moments [View Highlight](https://read.readwise.io/read/01j5377gqcfcwfzmwe0mtb9w32))

  sharing and reflecting together with another person is actually really nice [View Highlight](https://read.readwise.io/read/01j537948pfqmqcdrfpj1dth6v))

  you would write down your hypothesis to how you think this would go what you think you would learn what you think you would gain from this skill acis
  you would write down your methods how you think you're going to learn as much as possible about the brain in 30 days and you would write down your results but then in the end you would also write down your conclusions [View Highlight](https://read.readwise.io/read/01j6s8wm539b8fne7spch2qqnp))

  these are usually to-dos that I think I need to do doubts I have about the experiment that I'm going to do what I think throughout that day I will learn or kind of what I have to consider and also a lot of times I write down what I think can go wrong [View Highlight](https://read.readwise.io/read/01j6s90vvygxh31fm58cp5xj11))


path: notes/iterators.md
sortable_path: notesiterators.md
title: iterators
checksum: e181d3acf5996718f4a1d1d4246d72a96f51dc21b04619af7fb7a501b9c078cc
created: 2024-09-13 17:03:45.390693131+00:00
modified: 2024-09-14 20:39:42.430976756+00:00
metadata: {}
lead:
  > The iterator pattern allows you to perform some task on a sequence of items
  > in turn. An iterator is responsible for the logic of iterating over each item
  > and determining when the sequence has finished.
  [Rust book](https://doc.rust-lang.org/book/ch13-02-iterators.html)

body:
  > The iterator pattern allows you to perform some task on a sequence of items
  > in turn. An iterator is responsible for the logic of iterating over each item
  > and determining when the sequence has finished.
  [Rust book](https://doc.rust-lang.org/book/ch13-02-iterators.html)

  An itetarator it's usually related to some sort of lists, vectors or collection
  of items, but the iterator can be anything that implements the interface. The
  interaface depends on the language, but usually only needs a `next(Self) -> Item`
  method that returns the next item to be acted upon.

  The adventage of iterators is that you can use them with anything that accept
  thems (kinda in the reusable side of programming), and modern standard
  libraries implements patterns to use them like: `forEach`, `map`, `sum`, etc

  Another common use case is to iterate on something indefinetly as long as it
  continue to provide new items. For example you can implement a
  `PollingIterator` that fetch data from a remote source until the source says
  there's no more data:

  ```python
  class EmailPoll:
      """Iterator class that pools emails from the EmailService indefinetly."""

      def __init__(self, service: EmailService, wait_time: int):
          super(EmailPoll, self).__init__()
          self.service = service
          self.wait_time = wait_time
          self.current_mails = self.service.fetch_emails()

      def __iter__(self):
          return self

      def __next__(self):
          while len(self.current_mails) == 0:
              self.current_mails = self.service.fetch_emails()

              if len(self.current_mails) == 0:
                  print(f"No new emails, waiting {self.wait_time}s")
                  sleep(self.wait_time)

          return self.current_mails.pop(0)


  email_service = EmailService()
  for mail in EmailPoll(email_service, 3):
      print(mail)

  ```

raw_content:
  # iterators

  > The iterator pattern allows you to perform some task on a sequence of items
  > in turn. An iterator is responsible for the logic of iterating over each item
  > and determining when the sequence has finished.
  [Rust book](https://doc.rust-lang.org/book/ch13-02-iterators.html)

  An itetarator it's usually related to some sort of lists, vectors or collection
  of items, but the iterator can be anything that implements the interface. The
  interaface depends on the language, but usually only needs a `next(Self) -> Item`
  method that returns the next item to be acted upon.

  The adventage of iterators is that you can use them with anything that accept
  thems (kinda in the reusable side of programming), and modern standard
  libraries implements patterns to use them like: `forEach`, `map`, `sum`, etc

  Another common use case is to iterate on something indefinetly as long as it
  continue to provide new items. For example you can implement a
  `PollingIterator` that fetch data from a remote source until the source says
  there's no more data:

  ```python
  class EmailPoll:
      """Iterator class that pools emails from the EmailService indefinetly."""

      def __init__(self, service: EmailService, wait_time: int):
          super(EmailPoll, self).__init__()
          self.service = service
          self.wait_time = wait_time
          self.current_mails = self.service.fetch_emails()

      def __iter__(self):
          return self

      def __next__(self):
          while len(self.current_mails) == 0:
              self.current_mails = self.service.fetch_emails()

              if len(self.current_mails) == 0:
                  print(f"No new emails, waiting {self.wait_time}s")
                  sleep(self.wait_time)

          return self.current_mails.pop(0)


  email_service = EmailService()
  for mail in EmailPoll(email_service, 3):
      print(mail)

  ```


path: Readwise/A guide to design tokens.md
sortable_path: ReadwiseA guide to design tokens.md
title: A guide to design tokens
checksum: b6abf62a745da112a0c1beab14ea80cc67b0970557f21e5f1714944bd80da3a2
created: 2024-09-14 21:24:28.500890326+00:00
modified: 2024-09-14 20:39:58.494944976+00:00
metadata: {}
lead:
  ![rw-book-cover](https://s3.amazonaws.com/www-inside-design/uploads/2021/06/design-tokens-7-1-810x810.png)

body:
  ![rw-book-cover](https://s3.amazonaws.com/www-inside-design/uploads/2021/06/design-tokens-7-1-810x810.png)

  ## Metadata
  - Author: [[invisionapp.com]]
  - Full Title: A guide to design tokens
  - Category: #articles
  - Document Tags: [[design]] [[dev]] 
  - URL: https://www.invisionapp.com/inside-design/design-tokens/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20guide%20to%20design%20tokens
  > [!tldr]
  > Design tokens help ensure consistency across different platforms by managing design properties from a single source. They are defined pairs of code and visual properties, like colors and spacing, that can be easily deployed. By using design tokens, teams can streamline updates and maintain a cohesive brand identity without confusion.

  ## Highlights
  if you established a new data layer on top of your existing design elements ... and managed them from a single place, you could use a system to consistently scale it to all platforms.

  Essentially, a design token is a design decision: a pairing of the same code and visual properties—design elements you use over and over again in your products—packaged in a format that’s deployable across all platforms. [View Highlight](https://read.readwise.io/read/01j7gb6cqqmf343z3g33y56jkb))

  Each token will be given **a name** that corresponds to a certain design decision/option and the defined **value.** [View Highlight](https://read.readwise.io/read/01j7gbesf4pcyz7va8f288kq2j))

  are an abstraction layer that makes them **platform-agnostic**. [View Highlight](https://read.readwise.io/read/01j7gbf531ycxc49212f6p6f1r))

  Before any coding is implemented in DSM or your SSoT, designers and developers must agree on:
  • What should be a token
  • How those tokens will be used
  • How those tokens will be named [View Highlight](https://read.readwise.io/read/01j7gbjas3kb8h0szhxkkj6rss))

  For ease of use, it’s recommended to use Category/Type/Item (CTI) naming conventions to define tokens in a hierarchical tree structure of options and decisions. [View Highlight](https://read.readwise.io/read/01j7gbmfh2rzgrx74f36r0f8s6))
  > [!note]
  > This seems like a good way to categorize pretty much anything

  Alias tokens create a hierarchy of options and decisions to control the scope, or intent, of changes. So let’s say you wanted to just change the background color on the buttons. You can create an alias token that reads as an inheritance from the global token as such:
  Using the earlier alias example – color.background.button.primary – the ‘category’ would be ‘color’. Moving down the tree the ‘type’ would be ‘background,’ followed by ‘button’ as the ‘item.’ [View Highlight](https://read.readwise.io/read/01j7gbshpy8mqhasnve88440mw))

raw_content:
  # A guide to design tokens

  ![rw-book-cover](https://s3.amazonaws.com/www-inside-design/uploads/2021/06/design-tokens-7-1-810x810.png)

  ## Metadata
  - Author: [[invisionapp.com]]
  - Full Title: A guide to design tokens
  - Category: #articles
  - Document Tags: [[design]] [[dev]] 
  - URL: https://www.invisionapp.com/inside-design/design-tokens/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20guide%20to%20design%20tokens
  > [!tldr]
  > Design tokens help ensure consistency across different platforms by managing design properties from a single source. They are defined pairs of code and visual properties, like colors and spacing, that can be easily deployed. By using design tokens, teams can streamline updates and maintain a cohesive brand identity without confusion.

  ## Highlights
  if you established a new data layer on top of your existing design elements ... and managed them from a single place, you could use a system to consistently scale it to all platforms.

  Essentially, a design token is a design decision: a pairing of the same code and visual properties—design elements you use over and over again in your products—packaged in a format that’s deployable across all platforms. [View Highlight](https://read.readwise.io/read/01j7gb6cqqmf343z3g33y56jkb))

  Each token will be given **a name** that corresponds to a certain design decision/option and the defined **value.** [View Highlight](https://read.readwise.io/read/01j7gbesf4pcyz7va8f288kq2j))

  are an abstraction layer that makes them **platform-agnostic**. [View Highlight](https://read.readwise.io/read/01j7gbf531ycxc49212f6p6f1r))

  Before any coding is implemented in DSM or your SSoT, designers and developers must agree on:
  • What should be a token
  • How those tokens will be used
  • How those tokens will be named [View Highlight](https://read.readwise.io/read/01j7gbjas3kb8h0szhxkkj6rss))

  For ease of use, it’s recommended to use Category/Type/Item (CTI) naming conventions to define tokens in a hierarchical tree structure of options and decisions. [View Highlight](https://read.readwise.io/read/01j7gbmfh2rzgrx74f36r0f8s6))
  > [!note]
  > This seems like a good way to categorize pretty much anything

  Alias tokens create a hierarchy of options and decisions to control the scope, or intent, of changes. So let’s say you wanted to just change the background color on the buttons. You can create an alias token that reads as an inheritance from the global token as such:
  Using the earlier alias example – color.background.button.primary – the ‘category’ would be ‘color’. Moving down the tree the ‘type’ would be ‘background,’ followed by ‘button’ as the ‘item.’ [View Highlight](https://read.readwise.io/read/01j7gbshpy8mqhasnve88440mw))


path: Readwise/Design Systems 101 What Is a Design System.md
sortable_path: ReadwiseDesign Systems 101 What Is a Design System.md
title: Design Systems 101: What Is a Design System?
checksum: aeaf35d2f00f606f5d118e733cc6f9b7a9902008ffbe5f352effc9f90086e71d
created: 2024-09-14 21:24:28.679501232+00:00
modified: 2024-09-14 20:39:58.570942113+00:00
metadata: {}
lead:
  ![rw-book-cover](https://cdn.sanity.io/images/599r6htc/localized/f88e32e02cb892585c56edd61a160822fd134a5e-1200x630.png?w=1200&q=70&fit=max&auto=format)

body:
  ![rw-book-cover](https://cdn.sanity.io/images/599r6htc/localized/f88e32e02cb892585c56edd61a160822fd134a5e-1200x630.png?w=1200&q=70&fit=max&auto=format)

  ## Metadata
  - Author: [[Figma]]
  - Full Title: Design Systems 101: What Is a Design System?
  - Category: #articles
  - Document Tags: [[design]] 
  - URL: https://www.figma.com/blog/design-systems-101-what-is-a-design-system/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Design%20Systems%20101%3A%20What%20Is%20a%20Design%20System%3F
  > [!tldr]
  > A design system is a collection of standards and components that ensures consistency and efficiency in digital products. It helps designers work faster by providing reusable elements, allowing them to focus on more complex challenges. Implementing a design system can improve collaboration and streamline workflows across teams, making the design process smoother.

  ## Highlights
  a design system is a set of building blocks and standards that help keep the look and feel of products and experiences consistent. [View Highlight](https://read.readwise.io/read/01j7gbyb49nhm0t495h8wwakph))

  While both are integral to design systems, component libraries focus on UI elements like buttons and input fields, whereas pattern libraries address broader design solutions like navigation flows or data display. [View Highlight](https://read.readwise.io/read/01j7gc0j368sfxwsseakv52kky))

  While often used interchangeably, design systems are more holistic, including coding standards and usability, while a style guide is a subset focusing primarily on visual elements like colors, typography, and imagery. [View Highlight](https://read.readwise.io/read/01j7gc2ge1rj1tzkkmz150837e))
  > [!note]
  > Holistic: An approach that considers the entirety of a system or concept rather than focusing on individual components in isolation. In various fields, including medicine, education, and design, holistic perspectives emphasize the interconnectedness and interdependence of elements, advocating for comprehensive solutions that address the whole rather than just parts. This methodology often leads to more effective and sustainable outcomes by recognizing how components influence one another within a larger context.
  > ---
  > Styles guides focus only on visuals meanwhile design systems care about usability as a whole

  Design systems support designers by solving for repeatable patterns and freeing them up to solve other challenges. [View Highlight](https://read.readwise.io/read/01j7gd50z8w8q8x5qc40hmx2yk))

  ![](https://cdn.sanity.io/images/599r6htc/regionalized/876225f41a3f420c161b8b2dc62aa018f88fb73a-1080x864.png?w=390&q=75&fit=max&auto=format&dpr=2) [View Highlight](https://read.readwise.io/read/01j7gdbmnzscxkqtkbjndqecaa))

  ![](https://cdn.sanity.io/images/599r6htc/regionalized/8843a69171ad6e0d84aa973d3505d6d5045e2b1c-2063x1419.png?w=804&q=75&fit=max&auto=format&dpr=2) [View Highlight](https://read.readwise.io/read/01j7gdbt1d0mvvc58jfhg57t03))

raw_content:
  # Design Systems 101: What Is a Design System?

  ![rw-book-cover](https://cdn.sanity.io/images/599r6htc/localized/f88e32e02cb892585c56edd61a160822fd134a5e-1200x630.png?w=1200&q=70&fit=max&auto=format)

  ## Metadata
  - Author: [[Figma]]
  - Full Title: Design Systems 101: What Is a Design System?
  - Category: #articles
  - Document Tags: [[design]] 
  - URL: https://www.figma.com/blog/design-systems-101-what-is-a-design-system/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Design%20Systems%20101%3A%20What%20Is%20a%20Design%20System%3F
  > [!tldr]
  > A design system is a collection of standards and components that ensures consistency and efficiency in digital products. It helps designers work faster by providing reusable elements, allowing them to focus on more complex challenges. Implementing a design system can improve collaboration and streamline workflows across teams, making the design process smoother.

  ## Highlights
  a design system is a set of building blocks and standards that help keep the look and feel of products and experiences consistent. [View Highlight](https://read.readwise.io/read/01j7gbyb49nhm0t495h8wwakph))

  While both are integral to design systems, component libraries focus on UI elements like buttons and input fields, whereas pattern libraries address broader design solutions like navigation flows or data display. [View Highlight](https://read.readwise.io/read/01j7gc0j368sfxwsseakv52kky))

  While often used interchangeably, design systems are more holistic, including coding standards and usability, while a style guide is a subset focusing primarily on visual elements like colors, typography, and imagery. [View Highlight](https://read.readwise.io/read/01j7gc2ge1rj1tzkkmz150837e))
  > [!note]
  > Holistic: An approach that considers the entirety of a system or concept rather than focusing on individual components in isolation. In various fields, including medicine, education, and design, holistic perspectives emphasize the interconnectedness and interdependence of elements, advocating for comprehensive solutions that address the whole rather than just parts. This methodology often leads to more effective and sustainable outcomes by recognizing how components influence one another within a larger context.
  > ---
  > Styles guides focus only on visuals meanwhile design systems care about usability as a whole

  Design systems support designers by solving for repeatable patterns and freeing them up to solve other challenges. [View Highlight](https://read.readwise.io/read/01j7gd50z8w8q8x5qc40hmx2yk))

  ![](https://cdn.sanity.io/images/599r6htc/regionalized/876225f41a3f420c161b8b2dc62aa018f88fb73a-1080x864.png?w=390&q=75&fit=max&auto=format&dpr=2) [View Highlight](https://read.readwise.io/read/01j7gdbmnzscxkqtkbjndqecaa))

  ![](https://cdn.sanity.io/images/599r6htc/regionalized/8843a69171ad6e0d84aa973d3505d6d5045e2b1c-2063x1419.png?w=804&q=75&fit=max&auto=format&dpr=2) [View Highlight](https://read.readwise.io/read/01j7gdbt1d0mvvc58jfhg57t03))


path: Readwise/Embedded Rust Setup Explained.md
sortable_path: ReadwiseEmbedded Rust Setup Explained.md
title: Embedded Rust Setup Explained
lead: ![rw-book-cover](https://i.ytimg.com/vi/TOAynddiu5M/maxresdefault.jpg)
checksum: 5616b44602e8ca53d00b28671d6503d9c10dca0e4b67fbb943aca7c1b3c4865d
created: 2024-09-14 21:24:28.72453414+00:00
modified: 2024-09-14 20:39:59.077923014+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/TOAynddiu5M/maxresdefault.jpg)

  ## Metadata
  - Author: [[The Rusty Bits]]
  - Full Title: Embedded Rust Setup Explained
  - Category: #articles
  - URL: https://www.youtube.com/watch?v=TOAynddiu5M
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Embedded%20Rust%20Setup%20Explained
  > [!tldr]
  > The video explains how to set up an environment for embedded software development using Rust. It covers installing the Rust toolchain, configuring VS Code, and compiling code for microcontrollers. The tutorial also discusses debugging techniques and tools needed for embedded Rust projects.

  ## Highlights
  to specify a different Target in Rust C is through a Target triple this is composed of a core and sub architecture an
  optional vendor and or operating system and an environment or AB [View Highlight](https://read.readwise.io/read/01j7qyvme91v6h3mqqva4s9nm6))

raw_content:
  # Embedded Rust Setup Explained

  ![rw-book-cover](https://i.ytimg.com/vi/TOAynddiu5M/maxresdefault.jpg)

  ## Metadata
  - Author: [[The Rusty Bits]]
  - Full Title: Embedded Rust Setup Explained
  - Category: #articles
  - URL: https://www.youtube.com/watch?v=TOAynddiu5M
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Embedded%20Rust%20Setup%20Explained
  > [!tldr]
  > The video explains how to set up an environment for embedded software development using Rust. It covers installing the Rust toolchain, configuring VS Code, and compiling code for microcontrollers. The tutorial also discusses debugging techniques and tools needed for embedded Rust projects.

  ## Highlights
  to specify a different Target in Rust C is through a Target triple this is composed of a core and sub architecture an
  optional vendor and or operating system and an environment or AB [View Highlight](https://read.readwise.io/read/01j7qyvme91v6h3mqqva4s9nm6))


path: Readwise/How Japanese Minimalism Changed My Life 5 Principles to Declutter Your Life.md
sortable_path: ReadwiseHow Japanese Minimalism Changed My Life 5 Principles to Declutter Your Life.md
title: How Japanese Minimalism Changed My Life: 5 Principles to Declutter Your Life
lead: ![rw-book-cover](https://i.ytimg.com/vi/Sa7cgPILItQ/maxresdefault.jpg)
checksum: fa45cbc138a716ef12e3d1ea5428dff9b3733fd535fd28e6a1da28133a2eb287
created: 2024-09-14 21:24:28.919504342+00:00
modified: 2024-09-14 20:39:58.338950853+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/Sa7cgPILItQ/maxresdefault.jpg)

  ## Metadata
  - Author: [[Zach Highley]]
  - Full Title: How Japanese Minimalism Changed My Life: 5 Principles to Declutter Your Life
  - Category: #articles
  - Document Tags: [[productivity]] 
  - URL: https://www.youtube.com/watch?v=Sa7cgPILItQ
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20Japanese%20Minimalism%20Changed%20My%20Life%3A%205%20Principles%20to%20Declutter%20Your%20Life

  > [!note]
  > **Background:** I will soon be moving out of my parents' house and into a small apartment to live independently. I want to use this transition as an opportunity to embrace a minimalist lifestyle.
  > ---
  > ### Top 3 Most Important Takeaways:
  > 🗑️ **Create Space by Decluttering** 
  > Start by evaluating your physical possessions and ask yourself if each item brings you joy. Embrace the concept of having ample physical space around you, and organize your belongings purposefully. Assign a designated place for every item to prevent clutter from accumulating again.
  > 🧘 **Eliminate Choices to Free Up Mental Space** 
  > Reduce decision fatigue by minimizing choices in your daily life, such as wearing the same outfit or eating the same meals. Simplifying these decisions will free up mental space and time, allowing you to focus on what truly matters.
  > 🌿 **Embrace Imperfection and Transience** 
  > Adopt the principle of Wabi-sabi, which encourages finding beauty in imperfection. Understand that nothing is perfect and that everything is transient. This mindset will help you appreciate the simplicity and clarity that comes with minimalism.
  > [!tldr]
  > When there is too much clutter, you can't think. When you can't think, you can't create. When you can't create, your world slows down. What if we only filled our lives with things that had real value and removed everything else.

  📜 Write Up - https://zhighley.com/japanese-minimalism-five-principles-to-declutter-your-life/
  📸 Instagram - https://www.instagram.com/zachhighley/​​ 
  🐧 Twitter - https://twitter.com/zachhighley 
  💌 Newsletter - https://zhighley.com/newsletter/ 

  ——————————————————————————————————————————————————
  Who am I:

  My name is Zach. I’m a Resident Physician in Boston. I make videos about medical school, studying, and growth. I love trying new things and often mess up. However, every time I screw up, I usually learn something. Whatever I learn, I post it either on YouTube or on my website 🌐  (https://zhighley.com/​​).

  I write a weekly newsletter 💌 (https://zhighley.com/newsletter/​​) linking the best things I read, watched, and listened to that week. Join the 4,000+ that read it every other Sunday...

  ## Highlights
  When there's too much stuff around us, our minds can't think straight. When your mind can't think straight, you can't create. When you can't create, when you can't contribute to the world, the world slows down a little bit. [View Highlight](https://read.readwise.io/read/01j7105sy62k477j7we49j3vng))

  tip number one is create space. [View Highlight](https://read.readwise.io/read/01j710802fzkm0xb0jfvpe6zj0))

  Marie Kondo says, "When people revert to clutter no matter how much they tidy, it is not their room or their belongings, but their way of thinking that is at fault." [View Highlight](https://read.readwise.io/read/01j71087j6npx5etywvmh93dq4))

  Tip number two is embrace space. Embrace this newfound clearness you have. [View Highlight](https://read.readwise.io/read/01j71097tmgwwthqw40kqjm70e))

  Seneca says, "It's not the man who has too little, but the man who craves more who is poor." [View Highlight](https://read.readwise.io/read/01j710ans5zjy9p4e10chdkk7b))

  Tip number three is to be purposeful with your space fillers. [View Highlight](https://read.readwise.io/read/01j710eehmhsxrv02rbrkfxzp3))

  "The reason every item must have a designated place is because the existence of an item without a home multiplies the chances that your space will become cluttered again. [View Highlight](https://read.readwise.io/read/01j710fafawb9z9265r7r036pv))

  Tip number four is to eliminate choices. [View Highlight](https://read.readwise.io/read/01j710k01a20dk494w8yf8vq3w))

  When you eliminate decisions, you create more time. Confucius said that, "Life is really simple. We insist on making it complicated." [View Highlight](https://read.readwise.io/read/01j710mjajf9x11sk2gy3h4tbm))

  Eliminate decision fatigue, eliminate choices, free up mental space, free up time to focus on things that have a real impact. [View Highlight](https://read.readwise.io/read/01j710nn39sxpz7md9mhd4cx3q))

  this comes to the important principle of Japanese minimalism of Wabi-sabi or kinda loving imperfection. [View Highlight](https://read.readwise.io/read/01j710xzs42s3dj7czt7py85qc))

  Tip number six is to think beyond stuff. [View Highlight](https://read.readwise.io/read/01j710zgdawxb9bzxj4w5g67p8))

  Create space by decluttering your physical possessions.
  Does this item give me joy? Embrace space by having as much physical space around you wherever you live. Organize all the things in your life purposely. What is this drawer for? What is this cabinet for? Eliminate choices. Maybe you wear the same outfit every day maybe you eat the same breakfast every day. Maybe you only drink water. Next, everything is transient. Nothing is perfect, and that's okay. And finally, can we apply the idea of simple living to not only our stuff, but our thoughts and our actions. [View Highlight](https://read.readwise.io/read/01j7117z1262k0pwpp24knqea4))

raw_content:
  # How Japanese Minimalism Changed My Life: 5 Principles to Declutter Your Life

  ![rw-book-cover](https://i.ytimg.com/vi/Sa7cgPILItQ/maxresdefault.jpg)

  ## Metadata
  - Author: [[Zach Highley]]
  - Full Title: How Japanese Minimalism Changed My Life: 5 Principles to Declutter Your Life
  - Category: #articles
  - Document Tags: [[productivity]] 
  - URL: https://www.youtube.com/watch?v=Sa7cgPILItQ
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20Japanese%20Minimalism%20Changed%20My%20Life%3A%205%20Principles%20to%20Declutter%20Your%20Life

  > [!note]
  > **Background:** I will soon be moving out of my parents' house and into a small apartment to live independently. I want to use this transition as an opportunity to embrace a minimalist lifestyle.
  > ---
  > ### Top 3 Most Important Takeaways:
  > 🗑️ **Create Space by Decluttering** 
  > Start by evaluating your physical possessions and ask yourself if each item brings you joy. Embrace the concept of having ample physical space around you, and organize your belongings purposefully. Assign a designated place for every item to prevent clutter from accumulating again.
  > 🧘 **Eliminate Choices to Free Up Mental Space** 
  > Reduce decision fatigue by minimizing choices in your daily life, such as wearing the same outfit or eating the same meals. Simplifying these decisions will free up mental space and time, allowing you to focus on what truly matters.
  > 🌿 **Embrace Imperfection and Transience** 
  > Adopt the principle of Wabi-sabi, which encourages finding beauty in imperfection. Understand that nothing is perfect and that everything is transient. This mindset will help you appreciate the simplicity and clarity that comes with minimalism.
  > [!tldr]
  > When there is too much clutter, you can't think. When you can't think, you can't create. When you can't create, your world slows down. What if we only filled our lives with things that had real value and removed everything else.

  📜 Write Up - https://zhighley.com/japanese-minimalism-five-principles-to-declutter-your-life/
  📸 Instagram - https://www.instagram.com/zachhighley/​​ 
  🐧 Twitter - https://twitter.com/zachhighley 
  💌 Newsletter - https://zhighley.com/newsletter/ 

  ——————————————————————————————————————————————————
  Who am I:

  My name is Zach. I’m a Resident Physician in Boston. I make videos about medical school, studying, and growth. I love trying new things and often mess up. However, every time I screw up, I usually learn something. Whatever I learn, I post it either on YouTube or on my website 🌐  (https://zhighley.com/​​).

  I write a weekly newsletter 💌 (https://zhighley.com/newsletter/​​) linking the best things I read, watched, and listened to that week. Join the 4,000+ that read it every other Sunday...

  ## Highlights
  When there's too much stuff around us, our minds can't think straight. When your mind can't think straight, you can't create. When you can't create, when you can't contribute to the world, the world slows down a little bit. [View Highlight](https://read.readwise.io/read/01j7105sy62k477j7we49j3vng))

  tip number one is create space. [View Highlight](https://read.readwise.io/read/01j710802fzkm0xb0jfvpe6zj0))

  Marie Kondo says, "When people revert to clutter no matter how much they tidy, it is not their room or their belongings, but their way of thinking that is at fault." [View Highlight](https://read.readwise.io/read/01j71087j6npx5etywvmh93dq4))

  Tip number two is embrace space. Embrace this newfound clearness you have. [View Highlight](https://read.readwise.io/read/01j71097tmgwwthqw40kqjm70e))

  Seneca says, "It's not the man who has too little, but the man who craves more who is poor." [View Highlight](https://read.readwise.io/read/01j710ans5zjy9p4e10chdkk7b))

  Tip number three is to be purposeful with your space fillers. [View Highlight](https://read.readwise.io/read/01j710eehmhsxrv02rbrkfxzp3))

  "The reason every item must have a designated place is because the existence of an item without a home multiplies the chances that your space will become cluttered again. [View Highlight](https://read.readwise.io/read/01j710fafawb9z9265r7r036pv))

  Tip number four is to eliminate choices. [View Highlight](https://read.readwise.io/read/01j710k01a20dk494w8yf8vq3w))

  When you eliminate decisions, you create more time. Confucius said that, "Life is really simple. We insist on making it complicated." [View Highlight](https://read.readwise.io/read/01j710mjajf9x11sk2gy3h4tbm))

  Eliminate decision fatigue, eliminate choices, free up mental space, free up time to focus on things that have a real impact. [View Highlight](https://read.readwise.io/read/01j710nn39sxpz7md9mhd4cx3q))

  this comes to the important principle of Japanese minimalism of Wabi-sabi or kinda loving imperfection. [View Highlight](https://read.readwise.io/read/01j710xzs42s3dj7czt7py85qc))

  Tip number six is to think beyond stuff. [View Highlight](https://read.readwise.io/read/01j710zgdawxb9bzxj4w5g67p8))

  Create space by decluttering your physical possessions.
  Does this item give me joy? Embrace space by having as much physical space around you wherever you live. Organize all the things in your life purposely. What is this drawer for? What is this cabinet for? Eliminate choices. Maybe you wear the same outfit every day maybe you eat the same breakfast every day. Maybe you only drink water. Next, everything is transient. Nothing is perfect, and that's okay. And finally, can we apply the idea of simple living to not only our stuff, but our thoughts and our actions. [View Highlight](https://read.readwise.io/read/01j7117z1262k0pwpp24knqea4))


path: Readwise/Practical Concurrency in Go - GoRoutines, Mutexes, Channels and More.md
sortable_path: ReadwisePractical Concurrency in Go - GoRoutines, Mutexes, Channels and More.md
title: Practical Concurrency in Go - GoRoutines, Mutexes, Channels and More
lead: ![rw-book-cover](https://i.ytimg.com/vi/X24qXb4uWms/maxresdefault.jpg)
checksum: 0ed1feb149869fd0fbb40c0915dd7f6627f2be6a9de236a06a58b8366ae2e5b0
created: 2024-09-14 21:24:29.270053288+00:00
modified: 2024-09-14 20:39:58.85693134+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/X24qXb4uWms/maxresdefault.jpg)

  ## Metadata
  - Author: [[eldr-io]]
  - Full Title: Practical Concurrency in Go - GoRoutines, Mutexes, Channels and More
  - Category: #articles
  - Document Tags: [[dev]] [[dev/go]] 
  - URL: https://youtube.com/watch?v=X24qXb4uWms&si=rsxeM5e_FgY5RCIg
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Practical%20Concurrency%20in%20Go%20-%20GoRoutines%2C%20Mutexes%2C%20Channels%20and%20More
  > [!tldr]
  > The video tutorial demonstrates how to create a concurrent currency exchange API using Go. It explains how to fetch currency rates simultaneously by utilizing goroutines and channels. The goal is to efficiently manage multiple API calls to retrieve currency data.

  ## Highlights
  We don't really want to spin up a  thousand threads just to do API calls. What we   want instead is we want a worker pool of threads  that can basically, whenever they're available,   pick up work, and then they can do the work and  then return a result, and then they can pick up   the next work until there's no more work to be  done. And this is a great pattern called a worker   pattern or worker pool pattern. [View Highlight](https://read.readwise.io/read/01j7ngcdm7y0mhae1x7a524k9q))

raw_content:
  # Practical Concurrency in Go - GoRoutines, Mutexes, Channels and More

  ![rw-book-cover](https://i.ytimg.com/vi/X24qXb4uWms/maxresdefault.jpg)

  ## Metadata
  - Author: [[eldr-io]]
  - Full Title: Practical Concurrency in Go - GoRoutines, Mutexes, Channels and More
  - Category: #articles
  - Document Tags: [[dev]] [[dev/go]] 
  - URL: https://youtube.com/watch?v=X24qXb4uWms&si=rsxeM5e_FgY5RCIg
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Practical%20Concurrency%20in%20Go%20-%20GoRoutines%2C%20Mutexes%2C%20Channels%20and%20More
  > [!tldr]
  > The video tutorial demonstrates how to create a concurrent currency exchange API using Go. It explains how to fetch currency rates simultaneously by utilizing goroutines and channels. The goal is to efficiently manage multiple API calls to retrieve currency data.

  ## Highlights
  We don't really want to spin up a  thousand threads just to do API calls. What we   want instead is we want a worker pool of threads  that can basically, whenever they're available,   pick up work, and then they can do the work and  then return a result, and then they can pick up   the next work until there's no more work to be  done. And this is a great pattern called a worker   pattern or worker pool pattern. [View Highlight](https://read.readwise.io/read/01j7ngcdm7y0mhae1x7a524k9q))


path: Readwise/Remember Everything With This Pocket Notebook System.md
sortable_path: ReadwiseRemember Everything With This Pocket Notebook System.md
title: Remember Everything With This Pocket Notebook System
lead: ![rw-book-cover](https://i.ytimg.com/vi/swC4MAryYRw/maxresdefault.jpg)
checksum: 68f0cbaba4185a1cf892aff7a6b7da7d2fdd57e14a5077e92c25f5ea4d11b996
created: 2024-09-14 21:24:29.319248552+00:00
modified: 2024-09-14 20:39:58.260953792+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/swC4MAryYRw/maxresdefault.jpg)

  ## Metadata
  - Author: [[Eric Pfohl]]
  - Full Title: Remember Everything With This Pocket Notebook System
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://www.youtube.com/watch?v=swC4MAryYRw
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Remember%20Everything%20With%20This%20Pocket%20Notebook%20System
  > [!tldr]
  > A Commonplace Notebook is a helpful tool for collecting and organizing ideas, quotes, and details from various sources like books and podcasts. It allows you to document wisdom in one place, making it easier to reference later. Using pen and paper for this process can enhance your memory and creativity.

  ## Highlights
  a Commonplace Notebook is a way to collect details around you that are relevant to you in some way rather than writing things down introspectively like a diary or Journal would be a Commonplace Notebook is a way to document things only from external sources [View Highlight](https://read.readwise.io/read/01j70zaykjztys0bef0xp5ef4e))

  they allow you to document and collect any ideas in a singular place that you can refer back to at any time [View Highlight](https://read.readwise.io/read/01j70zcrej9xvmp5905czk027r))

  if you're somebody like me who likes organization the thought of just a bunch of random ideas on the pages seems a little bit overwhelming and messy but honestly the organization of your Commonplace Notebook is nothing to worry about our thoughts ideas and minds are constantly going in a million different directions and realistically your Commonplace Notebook is going to be an extension of
  that [View Highlight](https://read.readwise.io/read/01j70zkh7h2rtdjrptg01f854g))

  one way to do this is to leave the first page or two of your notebook blank so that way when you fill the notebook you can put an index on those blank pages [View Highlight](https://read.readwise.io/read/01j70znccjr4srj337fdjqmw79))

  you can highlight certain categories in specific colors or you can even write in different colored inks depending on the topic [View Highlight](https://read.readwise.io/read/01j70zp3p890b8kdqx21w2gqm8))

  with a Commonplace Notebook I do think is a great idea to collect your observed details and expand upon them further through writing [View Highlight](https://read.readwise.io/read/01j70zrzc6s2g9x9768b2596qa))

raw_content:
  # Remember Everything With This Pocket Notebook System

  ![rw-book-cover](https://i.ytimg.com/vi/swC4MAryYRw/maxresdefault.jpg)

  ## Metadata
  - Author: [[Eric Pfohl]]
  - Full Title: Remember Everything With This Pocket Notebook System
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://www.youtube.com/watch?v=swC4MAryYRw
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Remember%20Everything%20With%20This%20Pocket%20Notebook%20System
  > [!tldr]
  > A Commonplace Notebook is a helpful tool for collecting and organizing ideas, quotes, and details from various sources like books and podcasts. It allows you to document wisdom in one place, making it easier to reference later. Using pen and paper for this process can enhance your memory and creativity.

  ## Highlights
  a Commonplace Notebook is a way to collect details around you that are relevant to you in some way rather than writing things down introspectively like a diary or Journal would be a Commonplace Notebook is a way to document things only from external sources [View Highlight](https://read.readwise.io/read/01j70zaykjztys0bef0xp5ef4e))

  they allow you to document and collect any ideas in a singular place that you can refer back to at any time [View Highlight](https://read.readwise.io/read/01j70zcrej9xvmp5905czk027r))

  if you're somebody like me who likes organization the thought of just a bunch of random ideas on the pages seems a little bit overwhelming and messy but honestly the organization of your Commonplace Notebook is nothing to worry about our thoughts ideas and minds are constantly going in a million different directions and realistically your Commonplace Notebook is going to be an extension of
  that [View Highlight](https://read.readwise.io/read/01j70zkh7h2rtdjrptg01f854g))

  one way to do this is to leave the first page or two of your notebook blank so that way when you fill the notebook you can put an index on those blank pages [View Highlight](https://read.readwise.io/read/01j70znccjr4srj337fdjqmw79))

  you can highlight certain categories in specific colors or you can even write in different colored inks depending on the topic [View Highlight](https://read.readwise.io/read/01j70zp3p890b8kdqx21w2gqm8))

  with a Commonplace Notebook I do think is a great idea to collect your observed details and expand upon them further through writing [View Highlight](https://read.readwise.io/read/01j70zrzc6s2g9x9768b2596qa))


path: Readwise/Sharing Code Between Projects Lessons Learned in the Trenches.md
sortable_path: ReadwiseSharing Code Between Projects Lessons Learned in the Trenches.md
title: Sharing Code Between Projects: Lessons Learned in the Trenches
checksum: c61f108502f50f3476f1de26f206009fcb9133e58126d495463e7d1fd9a0b9ba
created: 2024-09-14 21:24:29.397161784+00:00
modified: 2024-09-14 20:39:58.421947727+00:00
metadata: {}
lead:
  ![rw-book-cover](https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/adc3be2f-343a-4bee-8ee8-2cec63967354/01-sharing-code-between-projects-800w.png)

body:
  ![rw-book-cover](https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/adc3be2f-343a-4bee-8ee8-2cec63967354/01-sharing-code-between-projects-800w.png)

  ## Metadata
  - Author: [[Smashing Magazine]]
  - Full Title: Sharing Code Between Projects: Lessons Learned in the Trenches
  - Category: #articles
  - URL: https://www.smashingmagazine.com/2018/04/sharing-code-between-projects/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Sharing%20Code%20Between%20Projects%3A%20Lessons%20Learned%20in%20the%20Trenches
  > [!tldr]
  > Jonathan Saring discusses the challenges of sharing code between projects and the lessons learned by his team. They found that code duplication was widespread and sought a better way to share components without the complexities of multiple repositories or libraries. This led to the creation of Bit, a tool that simplifies code sharing and collaboration across projects.

  ## Highlights
  Trying to publish a few files from our project to NPM forced us to split our repository and create new ones just to share this code. When dealing with hundreds of components, **this meant having to maintain and make changes across hundreds of repositories**. [View Highlight](https://read.readwise.io/read/01j7c7r70prgze7nhnwf9mrvyb))

  Even then, we had now a simple way to organize these packages and make them easily [discoverable](https://medium.com/@Rich_Harris/small-modules-it-s-not-quite-that-simple-3ca532d65de4#.88d5anyhv) to our entire team. Another major problem was the coupling between the packages and the owners of their origin repositories, which made it nearly impossible for other people to quickly make updates to the packages while working on their own projects. [View Highlight](https://read.readwise.io/read/01j7c7snv6bz7w24x6v99zar37))

  Choosing this option meant we would still have to effectively keep multiple packages with multiple `package.json` files, multiple build and test environments and a complicated dependency tree to handle between them. Updating these packages must also go through the main repository, still making it hard to modify these package from other projects when working with a few separate monorepos. [View Highlight](https://read.readwise.io/read/01j7c7tyqzf8z4ns8sr35gstvb))

  This option was quickly dropped, too. In a lot of way, it resembles using a CD-ROMs instead of an iTunes playlist. First, it made no sense to force an entire library of React components and an entire utility library and so on on each of our projects.
  Secondly, every project using it would be tightly coupled to the development of this library, making it impossible to adjust its components for each project. This becomes most painful when sharing common Node.js code between our microservices, which would now be coupled to the library.
  Thirdly, discoverability within the library is bound to be poor and would involve a lot of work with its documentation and usage in different edge cases. [View Highlight](https://read.readwise.io/read/01j7c7x4br1vpa6peckn8f04x1))

  You there. You're thinking about using a Git submodule. DON'T. Just don't. It's not worth it, ever.
  — Jeremy Kahn (@jeremyckahn) [December 16, 2012](https://twitter.com/jeremyckahn/status/280406794583539712?ref_src=twsrc%5Etfw) [View Highlight](https://read.readwise.io/read/01j7c7zhs027w5jac3mg71v905))

raw_content:
  # Sharing Code Between Projects: Lessons Learned in the Trenches

  ![rw-book-cover](https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/adc3be2f-343a-4bee-8ee8-2cec63967354/01-sharing-code-between-projects-800w.png)

  ## Metadata
  - Author: [[Smashing Magazine]]
  - Full Title: Sharing Code Between Projects: Lessons Learned in the Trenches
  - Category: #articles
  - URL: https://www.smashingmagazine.com/2018/04/sharing-code-between-projects/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Sharing%20Code%20Between%20Projects%3A%20Lessons%20Learned%20in%20the%20Trenches
  > [!tldr]
  > Jonathan Saring discusses the challenges of sharing code between projects and the lessons learned by his team. They found that code duplication was widespread and sought a better way to share components without the complexities of multiple repositories or libraries. This led to the creation of Bit, a tool that simplifies code sharing and collaboration across projects.

  ## Highlights
  Trying to publish a few files from our project to NPM forced us to split our repository and create new ones just to share this code. When dealing with hundreds of components, **this meant having to maintain and make changes across hundreds of repositories**. [View Highlight](https://read.readwise.io/read/01j7c7r70prgze7nhnwf9mrvyb))

  Even then, we had now a simple way to organize these packages and make them easily [discoverable](https://medium.com/@Rich_Harris/small-modules-it-s-not-quite-that-simple-3ca532d65de4#.88d5anyhv) to our entire team. Another major problem was the coupling between the packages and the owners of their origin repositories, which made it nearly impossible for other people to quickly make updates to the packages while working on their own projects. [View Highlight](https://read.readwise.io/read/01j7c7snv6bz7w24x6v99zar37))

  Choosing this option meant we would still have to effectively keep multiple packages with multiple `package.json` files, multiple build and test environments and a complicated dependency tree to handle between them. Updating these packages must also go through the main repository, still making it hard to modify these package from other projects when working with a few separate monorepos. [View Highlight](https://read.readwise.io/read/01j7c7tyqzf8z4ns8sr35gstvb))

  This option was quickly dropped, too. In a lot of way, it resembles using a CD-ROMs instead of an iTunes playlist. First, it made no sense to force an entire library of React components and an entire utility library and so on on each of our projects.
  Secondly, every project using it would be tightly coupled to the development of this library, making it impossible to adjust its components for each project. This becomes most painful when sharing common Node.js code between our microservices, which would now be coupled to the library.
  Thirdly, discoverability within the library is bound to be poor and would involve a lot of work with its documentation and usage in different edge cases. [View Highlight](https://read.readwise.io/read/01j7c7x4br1vpa6peckn8f04x1))

  You there. You're thinking about using a Git submodule. DON'T. Just don't. It's not worth it, ever.
  — Jeremy Kahn (@jeremyckahn) [December 16, 2012](https://twitter.com/jeremyckahn/status/280406794583539712?ref_src=twsrc%5Etfw) [View Highlight](https://read.readwise.io/read/01j7c7zhs027w5jac3mg71v905))


path: Readwise/Stateful vs. Stateless Applications — Differences, Pros & Cons, Use Cases.md
sortable_path: ReadwiseStateful vs. Stateless Applications — Differences, Pros & Cons, Use Cases.md
title: Stateful vs. Stateless Applications — Differences, Pros & Cons, Use Cases
lead: ![rw-book-cover](https://miro.medium.com/v2/resize:fit:1060/1*4FjP5a8XoDB7LnIhJWlWQA.jpeg)
checksum: 2a7db03b71a7c9e88f6d070af4f5045c7c543ab37b9225fcc29c60d2de4b5358
created: 2024-09-14 21:24:29.508665106+00:00
modified: 2024-09-14 20:39:58.933928439+00:00
metadata: {}
body:
  ![rw-book-cover](https://miro.medium.com/v2/resize:fit:1060/1*4FjP5a8XoDB7LnIhJWlWQA.jpeg)

  ## Metadata
  - Author: [[Neal Davis]]
  - Full Title: Stateful vs. Stateless Applications — Differences, Pros & Cons, Use Cases
  - Category: #articles
  - URL: https://neal-davis.medium.com/stateful-vs-stateless-applications-differences-pros-cons-use-cases-ad4b434576b8
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Stateful%20vs.%20Stateless%20Applications%20%E2%80%94%20Differences%2C%20Pros%20%26%20Cons%2C%20Use%20Cases
  > [!tldr]
  > Stateful applications remember user interactions and store data between sessions, while stateless applications do not retain any user information. This choice affects how applications are designed, their scalability, and the resources they require. Developers must weigh the pros and cons of each type to meet their project needs effectively.

  ## Highlights
  Stateful applications save info about the user’s “state” by keeping track of what they do. [View Highlight](https://read.readwise.io/read/01j7pd95t5qyvwt98kv86bmcbf))

  Stateless software applications are those applications that do not save information about previous interactions, user sessions, or events. These applications do not preserve context or state between requests in a stateless design. [View Highlight](https://read.readwise.io/read/01j7pdbyyxz2g1ems20te5d6ez))

raw_content:
  # Stateful vs. Stateless Applications — Differences, Pros & Cons, Use Cases

  ![rw-book-cover](https://miro.medium.com/v2/resize:fit:1060/1*4FjP5a8XoDB7LnIhJWlWQA.jpeg)

  ## Metadata
  - Author: [[Neal Davis]]
  - Full Title: Stateful vs. Stateless Applications — Differences, Pros & Cons, Use Cases
  - Category: #articles
  - URL: https://neal-davis.medium.com/stateful-vs-stateless-applications-differences-pros-cons-use-cases-ad4b434576b8
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Stateful%20vs.%20Stateless%20Applications%20%E2%80%94%20Differences%2C%20Pros%20%26%20Cons%2C%20Use%20Cases
  > [!tldr]
  > Stateful applications remember user interactions and store data between sessions, while stateless applications do not retain any user information. This choice affects how applications are designed, their scalability, and the resources they require. Developers must weigh the pros and cons of each type to meet their project needs effectively.

  ## Highlights
  Stateful applications save info about the user’s “state” by keeping track of what they do. [View Highlight](https://read.readwise.io/read/01j7pd95t5qyvwt98kv86bmcbf))

  Stateless software applications are those applications that do not save information about previous interactions, user sessions, or events. These applications do not preserve context or state between requests in a stateless design. [View Highlight](https://read.readwise.io/read/01j7pdbyyxz2g1ems20te5d6ez))


path: Readwise/The Purest Coding Style, Where Bugs Are Near Impossible.md
sortable_path: ReadwiseThe Purest Coding Style, Where Bugs Are Near Impossible.md
title: The Purest Coding Style, Where Bugs Are Near Impossible
lead: ![rw-book-cover](https://i.ytimg.com/vi/HlgG395PQWw/maxresdefault.jpg)
checksum: 3ac9f27ef7f00a6d01f1c3a120e405459c58795a78f802c7815dcce3ca7993a3
created: 2024-09-14 21:24:29.586526304+00:00
modified: 2024-09-14 20:39:59.01592535+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/HlgG395PQWw/maxresdefault.jpg)

  ## Metadata
  - Author: [[Coderized]]
  - Full Title: The Purest Coding Style, Where Bugs Are Near Impossible
  - Category: #articles
  - Document Tags: [[dev]] [[dev/design-patterns]] 
  - URL: https://www.youtube.com/watch?v=HlgG395PQWw
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Purest%20Coding%20Style%2C%20Where%20Bugs%20Are%20Near%20Impossible
  > [!tldr]
  > Functional programming is a coding style that emphasizes using functions and avoiding side effects to create more reliable and maintainable code. It promotes concepts like immutability and closures, which help keep data and functions organized. While it can be complex, learning functional programming can enhance your coding skills, regardless of your background.

  ## Highlights
  we have imperative, or the paradigm of giving explicit instructions.
  Basically, the "how." And declarative, or the paradigm of describing our goals. Basically, the "what." [View Highlight](https://read.readwise.io/read/01j7qxkzfnjbsj5k63874xp5cm)) [[dev/design-patterns]] [[dev]] 

  At the core of the functional paradigm, we have functions, obviously. And these functions need to be usable in a fairly unrestricted way ... we can pass them to other functions and return them from other functions,
  as well as hold references to them for later use. ... We also need to be able to create closures, which are functions that can access and remember the scope around them.

  "A closure is a poor man's object... ...and an object is a poor man's closure." [View Highlight](https://read.readwise.io/read/01j7qxw02q306dmkqttpc9phze))

  higher-order functions, which are functions that work with other functions to perform an action. Think filter(), sort(), map(), and so on. These help us create reusable and isolated modules [View Highlight](https://read.readwise.io/read/01j7qxwvqq86xrr3rvagas3mb2))

  we have immutability, where we aim to avoid something called side effects. Side effects happen when we allow unpredictable state from outside the scope of a function to affect it in some way, or when we allow a function to make changes outside of its scope. By getting rid of potential side effects, our functions become pure, in that if the same data goes into a function, we can always guarantee the same result coming out, without affecting anything else. [View Highlight](https://read.readwise.io/read/01j7qxz3ra928rvfavgendb12z)) [[c1]] 

  Currying brings multiple arguments of a function into their own function calls that we then chain together.
  It achieves this using the memory scope ability of closures, where each argument stays in memory until the chain completes, and we get our result. In a similar way, we can use closures to create something resembling an object. The first function in the chain acts as a kind of object constructor, and is where we define most of our internal data. [View Highlight](https://read.readwise.io/read/01j7qy48epfjav6h7rtv8a3nxa))

  Currying brings multiple arguments of a function into their own function calls that we then chain together.
  It achieves this using the memory scope ability of closures, where each argument stays in memory until the chain completes, and we get our result. In a similar way, we can use closures to create something resembling an object. The first function in the chain acts as a kind of object constructor, and is where we define most of our internal data. [View Highlight](https://read.readwise.io/read/01j7qy688qvfwj8asj84mzz9t6))

  Currying brings multiple arguments of a function into their own function calls that we then chain together.
  It achieves this using the memory scope ability of closures, where each argument stays in memory until the chain completes, and we get our result. [View Highlight](https://read.readwise.io/read/01j7qy6nkgytf7x78h6mq3jqts))

  we can use closures to create something resembling an object. The first function in the chain acts as a kind of object constructor, and is where we define most of our internal data.
  This data is privately scoped to the constructor function and is therefore encapsulated by it. We can then return a closure to provide external access to this private data. ... we can go as far as returning multiple named closures to access and manipulate the internal data in more complex ways, further solidifying its object-like behaviors.

  In the purely functional paradigm, we work primarily with types and expressions, where the following rules apply: Code is generally evaluated rather than executed, which gives us some interesting new optimization capabilities, such as lazy evaluation and automatic parallelization. Immutability is enforced everywhere, meaning that when we want to make changes to our data,
  We do so by computing a new constant based on an existing constant. And to keep functions pure, the mere thought of a side effect is punishable by the most horrific torture imaginable. Having to learn... MONADS! [View Highlight](https://read.readwise.io/read/01j7qyccaq27vqjn4wqabpsdd5))

  The immutability of the functional paradigm forces us to think more strictly about how we pass data around, helping to ensure that changes don’t happen unexpectedly. [View Highlight](https://read.readwise.io/read/01j7qyec9pb8pmxcegkbrnj5d2))

  guides us in forming readable code that is highly modular and therefore maintainable. [View Highlight](https://read.readwise.io/read/01j7qyeqqgmbv2v8wk6m1a0fz1))

  It does come at the cost of potentially being a bit harder to optimize [View Highlight](https://read.readwise.io/read/01j7qyf3kdvtrsnvdfnm7hf6fq))

raw_content:
  # The Purest Coding Style, Where Bugs Are Near Impossible

  ![rw-book-cover](https://i.ytimg.com/vi/HlgG395PQWw/maxresdefault.jpg)

  ## Metadata
  - Author: [[Coderized]]
  - Full Title: The Purest Coding Style, Where Bugs Are Near Impossible
  - Category: #articles
  - Document Tags: [[dev]] [[dev/design-patterns]] 
  - URL: https://www.youtube.com/watch?v=HlgG395PQWw
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Purest%20Coding%20Style%2C%20Where%20Bugs%20Are%20Near%20Impossible
  > [!tldr]
  > Functional programming is a coding style that emphasizes using functions and avoiding side effects to create more reliable and maintainable code. It promotes concepts like immutability and closures, which help keep data and functions organized. While it can be complex, learning functional programming can enhance your coding skills, regardless of your background.

  ## Highlights
  we have imperative, or the paradigm of giving explicit instructions.
  Basically, the "how." And declarative, or the paradigm of describing our goals. Basically, the "what." [View Highlight](https://read.readwise.io/read/01j7qxkzfnjbsj5k63874xp5cm)) [[dev/design-patterns]] [[dev]] 

  At the core of the functional paradigm, we have functions, obviously. And these functions need to be usable in a fairly unrestricted way ... we can pass them to other functions and return them from other functions,
  as well as hold references to them for later use. ... We also need to be able to create closures, which are functions that can access and remember the scope around them.

  "A closure is a poor man's object... ...and an object is a poor man's closure." [View Highlight](https://read.readwise.io/read/01j7qxw02q306dmkqttpc9phze))

  higher-order functions, which are functions that work with other functions to perform an action. Think filter(), sort(), map(), and so on. These help us create reusable and isolated modules [View Highlight](https://read.readwise.io/read/01j7qxwvqq86xrr3rvagas3mb2))

  we have immutability, where we aim to avoid something called side effects. Side effects happen when we allow unpredictable state from outside the scope of a function to affect it in some way, or when we allow a function to make changes outside of its scope. By getting rid of potential side effects, our functions become pure, in that if the same data goes into a function, we can always guarantee the same result coming out, without affecting anything else. [View Highlight](https://read.readwise.io/read/01j7qxz3ra928rvfavgendb12z)) [[c1]] 

  Currying brings multiple arguments of a function into their own function calls that we then chain together.
  It achieves this using the memory scope ability of closures, where each argument stays in memory until the chain completes, and we get our result. In a similar way, we can use closures to create something resembling an object. The first function in the chain acts as a kind of object constructor, and is where we define most of our internal data. [View Highlight](https://read.readwise.io/read/01j7qy48epfjav6h7rtv8a3nxa))

  Currying brings multiple arguments of a function into their own function calls that we then chain together.
  It achieves this using the memory scope ability of closures, where each argument stays in memory until the chain completes, and we get our result. In a similar way, we can use closures to create something resembling an object. The first function in the chain acts as a kind of object constructor, and is where we define most of our internal data. [View Highlight](https://read.readwise.io/read/01j7qy688qvfwj8asj84mzz9t6))

  Currying brings multiple arguments of a function into their own function calls that we then chain together.
  It achieves this using the memory scope ability of closures, where each argument stays in memory until the chain completes, and we get our result. [View Highlight](https://read.readwise.io/read/01j7qy6nkgytf7x78h6mq3jqts))

  we can use closures to create something resembling an object. The first function in the chain acts as a kind of object constructor, and is where we define most of our internal data.
  This data is privately scoped to the constructor function and is therefore encapsulated by it. We can then return a closure to provide external access to this private data. ... we can go as far as returning multiple named closures to access and manipulate the internal data in more complex ways, further solidifying its object-like behaviors.

  In the purely functional paradigm, we work primarily with types and expressions, where the following rules apply: Code is generally evaluated rather than executed, which gives us some interesting new optimization capabilities, such as lazy evaluation and automatic parallelization. Immutability is enforced everywhere, meaning that when we want to make changes to our data,
  We do so by computing a new constant based on an existing constant. And to keep functions pure, the mere thought of a side effect is punishable by the most horrific torture imaginable. Having to learn... MONADS! [View Highlight](https://read.readwise.io/read/01j7qyccaq27vqjn4wqabpsdd5))

  The immutability of the functional paradigm forces us to think more strictly about how we pass data around, helping to ensure that changes don’t happen unexpectedly. [View Highlight](https://read.readwise.io/read/01j7qyec9pb8pmxcegkbrnj5d2))

  guides us in forming readable code that is highly modular and therefore maintainable. [View Highlight](https://read.readwise.io/read/01j7qyeqqgmbv2v8wk6m1a0fz1))

  It does come at the cost of potentially being a bit harder to optimize [View Highlight](https://read.readwise.io/read/01j7qyf3kdvtrsnvdfnm7hf6fq))


path: Readwise/TypeScript the Right Way.md
sortable_path: ReadwiseTypeScript the Right Way.md
title: TypeScript the Right Way
lead: ![rw-book-cover](https://i.ytimg.com/vi/UMEp6eFU16k/maxresdefault.jpg)
checksum: a4bdc488c74c703c019313122cd21928a9de12ad39bcbf107d6e06044f1998da
created: 2024-09-14 21:24:29.7215974+00:00
modified: 2024-09-14 20:39:59.193918644+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/UMEp6eFU16k/maxresdefault.jpg)

  ## Metadata
  - Author: [[Awesome]]
  - Full Title: TypeScript the Right Way
  - Category: #articles
  - Document Tags: [[dev]] [[dev/javascript]] 
  - URL: https://youtube.com/watch?v=UMEp6eFU16k&si=5FrI-L7etAUGFl1K
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=TypeScript%20the%20Right%20Way

  > [!note]
  > **Background:** I want to incorporate TypeScript in my projects to enhance code quality, readability, and maintainability while ensuring type safety.
  > ### Top 3 Important Takeaways or To-Dos:
  > 🛠️ **Keep Types Simple:** Avoid using nested types, complex unions, and intersections. Overcomplicated types can lead to confusion and higher maintenance costs, so aim to maintain simplicity in your type definitions. 
  > 🔍 **Utilize Type Guards:** Implement type guards to check for null or undefined values before using variables. This practice enhances code safety and reliability by ensuring that variables are properly validated. 
  > 🚫 **Avoid Using "Any":** Steer clear of the "any" type, as it defeats the purpose of type safety in TypeScript. Instead, use union types, type guards, or the unknown type to handle uncertain variable types effectively.
  > [!tldr]
  > TypeScript has become popular for modern web development because it improves upon JavaScript's weaknesses. It adds static type checking, helping developers catch errors before their code runs. Following best practices in TypeScript, such as avoiding overly complex types, ensures safer and more maintainable code.

  ## Highlights
  Let’s say you have a basic function that adds up  two numbers in a main.js file. In pure JavaScript   there isn’t anything stopping you from passing  strings or any other type of object as a parameter   to this function. To avoid this, we need that  extra layer of validation provided by TypeScript. [View Highlight](https://read.readwise.io/read/01j7r04ptybp6b904wk49qar0a))

  the first rule should be pretty obvious -  avoid using the “any” type at all costs. [View Highlight](https://read.readwise.io/read/01j7r07sqy58gkbmcg2n0kg1tv))

  there will be those corner case scenarios where  you don’t really know the shape of an object ... In such scenarios don’t hesitate to use union  types and type guards to make your code safer. If you are truly unsure of a variable's type,  you could use the unknown type instead of any or   leave out the type reference to allow TypeScript  to infer it.

  remember to avoid overly verbose type  annotations when they are unnecessary. [View Highlight](https://read.readwise.io/read/01j7r0c9r7ws816nrtcmbksehf))

  TypeScript offers a strict mode compiler  option that enforces more rigorous type   checking and constraints to enhance code  quality and to catch potential issues during   development. You can enable this by setting  the strict flag to true in the TS config file. [View Highlight](https://read.readwise.io/read/01j7r0dn8e90zkxvdj370t22tw))

  JavaScript’s strict mode was  introduced in ES 5 and you should always use   it as well. This will allow you to opt in to a  restricted variant of JavaScript where silent   errors are changed to throw errors, some mistakes  that make it difficult for the engine to perform   optimizations are fixed, and syntax likely to  be defined in future versions is prohibited. [View Highlight](https://read.readwise.io/read/01j7r0f8r2nskx1jagx6sn7hsf))

  A type alias creates a new name for a type.  This can be a primitive, union, intersection,   tuple or any other type. In other words  it can represent complex structures and   give you flexibility in defining types  that go beyond simple object shapes. On the other hand, interfaces are  primarily used to define the structure   or shape of an object or class. Interfaces  in TypeScript are more focused on describing   the properties and methods  that an object should have,  
  and they provide a powerful way to enforce  the structure of objects across your codebase. [View Highlight](https://read.readwise.io/read/01j7r0hfyz8nps371dqga3bmmh))

  you should use interfaces for object  shapes and class contracts, use types for complex   and flexible structures and use a combination  of both to create powerful type definitions. [View Highlight](https://read.readwise.io/read/01j7r0jedxp5gd3h5qpkr428v0))

  Non-Nullable assertions are Another big source of   potential problems since they can lead  to runtime errors if used incorrectly. ... you should use type guards  to ensure that variables are properly checked   for null or undefined values before use. This  approach leads to safer and more reliable code.

  keep things simple.
  Overcomplicated types are a common pitfall  in TypeScript projects, and although complex   types may occasionally be needed, making them  overly complicated can result in confusion,   reduced readability, and higher maintenance costs. [View Highlight](https://read.readwise.io/read/01j7r0pctvv439x5ev9w1ccz74))

  Avoid nested types since they are hard  to read and maintain, avoid complex union   and intersection types since they can lead to  convoluted and difficult-to-understand types,   and don’t overuse mapped and conditional types  since they can easily get over complicated. [View Highlight](https://read.readwise.io/read/01j7r0rw8djwydvfy9jdx0e8wj))

raw_content:
  # TypeScript the Right Way

  ![rw-book-cover](https://i.ytimg.com/vi/UMEp6eFU16k/maxresdefault.jpg)

  ## Metadata
  - Author: [[Awesome]]
  - Full Title: TypeScript the Right Way
  - Category: #articles
  - Document Tags: [[dev]] [[dev/javascript]] 
  - URL: https://youtube.com/watch?v=UMEp6eFU16k&si=5FrI-L7etAUGFl1K
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=TypeScript%20the%20Right%20Way

  > [!note]
  > **Background:** I want to incorporate TypeScript in my projects to enhance code quality, readability, and maintainability while ensuring type safety.
  > ### Top 3 Important Takeaways or To-Dos:
  > 🛠️ **Keep Types Simple:** Avoid using nested types, complex unions, and intersections. Overcomplicated types can lead to confusion and higher maintenance costs, so aim to maintain simplicity in your type definitions. 
  > 🔍 **Utilize Type Guards:** Implement type guards to check for null or undefined values before using variables. This practice enhances code safety and reliability by ensuring that variables are properly validated. 
  > 🚫 **Avoid Using "Any":** Steer clear of the "any" type, as it defeats the purpose of type safety in TypeScript. Instead, use union types, type guards, or the unknown type to handle uncertain variable types effectively.
  > [!tldr]
  > TypeScript has become popular for modern web development because it improves upon JavaScript's weaknesses. It adds static type checking, helping developers catch errors before their code runs. Following best practices in TypeScript, such as avoiding overly complex types, ensures safer and more maintainable code.

  ## Highlights
  Let’s say you have a basic function that adds up  two numbers in a main.js file. In pure JavaScript   there isn’t anything stopping you from passing  strings or any other type of object as a parameter   to this function. To avoid this, we need that  extra layer of validation provided by TypeScript. [View Highlight](https://read.readwise.io/read/01j7r04ptybp6b904wk49qar0a))

  the first rule should be pretty obvious -  avoid using the “any” type at all costs. [View Highlight](https://read.readwise.io/read/01j7r07sqy58gkbmcg2n0kg1tv))

  there will be those corner case scenarios where  you don’t really know the shape of an object ... In such scenarios don’t hesitate to use union  types and type guards to make your code safer. If you are truly unsure of a variable's type,  you could use the unknown type instead of any or   leave out the type reference to allow TypeScript  to infer it.

  remember to avoid overly verbose type  annotations when they are unnecessary. [View Highlight](https://read.readwise.io/read/01j7r0c9r7ws816nrtcmbksehf))

  TypeScript offers a strict mode compiler  option that enforces more rigorous type   checking and constraints to enhance code  quality and to catch potential issues during   development. You can enable this by setting  the strict flag to true in the TS config file. [View Highlight](https://read.readwise.io/read/01j7r0dn8e90zkxvdj370t22tw))

  JavaScript’s strict mode was  introduced in ES 5 and you should always use   it as well. This will allow you to opt in to a  restricted variant of JavaScript where silent   errors are changed to throw errors, some mistakes  that make it difficult for the engine to perform   optimizations are fixed, and syntax likely to  be defined in future versions is prohibited. [View Highlight](https://read.readwise.io/read/01j7r0f8r2nskx1jagx6sn7hsf))

  A type alias creates a new name for a type.  This can be a primitive, union, intersection,   tuple or any other type. In other words  it can represent complex structures and   give you flexibility in defining types  that go beyond simple object shapes. On the other hand, interfaces are  primarily used to define the structure   or shape of an object or class. Interfaces  in TypeScript are more focused on describing   the properties and methods  that an object should have,  
  and they provide a powerful way to enforce  the structure of objects across your codebase. [View Highlight](https://read.readwise.io/read/01j7r0hfyz8nps371dqga3bmmh))

  you should use interfaces for object  shapes and class contracts, use types for complex   and flexible structures and use a combination  of both to create powerful type definitions. [View Highlight](https://read.readwise.io/read/01j7r0jedxp5gd3h5qpkr428v0))

  Non-Nullable assertions are Another big source of   potential problems since they can lead  to runtime errors if used incorrectly. ... you should use type guards  to ensure that variables are properly checked   for null or undefined values before use. This  approach leads to safer and more reliable code.

  keep things simple.
  Overcomplicated types are a common pitfall  in TypeScript projects, and although complex   types may occasionally be needed, making them  overly complicated can result in confusion,   reduced readability, and higher maintenance costs. [View Highlight](https://read.readwise.io/read/01j7r0pctvv439x5ev9w1ccz74))

  Avoid nested types since they are hard  to read and maintain, avoid complex union   and intersection types since they can lead to  convoluted and difficult-to-understand types,   and don’t overuse mapped and conditional types  since they can easily get over complicated. [View Highlight](https://read.readwise.io/read/01j7r0rw8djwydvfy9jdx0e8wj))


path: Readwise/Understanding Composition in Software Development.md
sortable_path: ReadwiseUnderstanding Composition in Software Development.md
title: Understanding Composition in Software Development
lead: ![rw-book-cover](https://miro.medium.com/v2/da:true/resize:fit:1200/0*2px3-S5mOYJWlt1q)
checksum: ffa241570dface62d0c1abae612dffac63333aa2b68d71f55a13c45450b620cb
created: 2024-09-14 21:24:29.765173212+00:00
modified: 2024-09-14 20:39:58.697937329+00:00
metadata: {}
body:
  ![rw-book-cover](https://miro.medium.com/v2/da:true/resize:fit:1200/0*2px3-S5mOYJWlt1q)

  ## Metadata
  - Author: [[Hamida Meknassi]]
  - Full Title: Understanding Composition in Software Development
  - Category: #articles
  - Document Tags: [[dev]] [[dev/design-patterns]] 
  - URL: https://medium.com/@hamida.meknassi/understanding-composition-in-software-development-74f84ab984ce
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Understanding%20Composition%20in%20Software%20Development
  > [!tldr]
  > Composition is a software development principle that emphasizes building complex systems by combining smaller, independent components rather than using inheritance. This approach offers flexibility, reusability, and easier maintenance, making it a popular choice among developers. By favoring composition, developers can create more adaptable and manageable systems.

  ## Highlights
  At its core, composition is about constructing complex systems by piecing together smaller, distinct objects. In object-oriented programming lingo, we often describe it as a “has-a” relationship rather than the “is-a” relationship that comes with inheritance. [View Highlight](https://read.readwise.io/read/01j7jxtrsfs087rbx45dgh9skx))

  Flexibility : As requirements change, it’s easier to swap or upgrade individual components without disrupting the entire system.
  Reusability : Crafted correctly, components can be used across various parts of a project or even in entirely different projects.
  Maintainability : Focused and modular components are easier to understand, test, debug, and enhance.
  Reduced Side Effect : Unlike inheritance, where modifying the base can have widespread consequences, composition limits the ripple effect of changes. [View Highlight](https://read.readwise.io/read/01j7jxvsqhk5j1bzjarjrwymhr))

  When facing a complex problem, ask:
  - Which components make up this system?
  - How can I break this down into smaller, more manageable pieces?
  - Can I reuse existing components? [View Highlight](https://read.readwise.io/read/01j7jxxp9dp3sqncv2d9rewnqs))

raw_content:
  # Understanding Composition in Software Development

  ![rw-book-cover](https://miro.medium.com/v2/da:true/resize:fit:1200/0*2px3-S5mOYJWlt1q)

  ## Metadata
  - Author: [[Hamida Meknassi]]
  - Full Title: Understanding Composition in Software Development
  - Category: #articles
  - Document Tags: [[dev]] [[dev/design-patterns]] 
  - URL: https://medium.com/@hamida.meknassi/understanding-composition-in-software-development-74f84ab984ce
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Understanding%20Composition%20in%20Software%20Development
  > [!tldr]
  > Composition is a software development principle that emphasizes building complex systems by combining smaller, independent components rather than using inheritance. This approach offers flexibility, reusability, and easier maintenance, making it a popular choice among developers. By favoring composition, developers can create more adaptable and manageable systems.

  ## Highlights
  At its core, composition is about constructing complex systems by piecing together smaller, distinct objects. In object-oriented programming lingo, we often describe it as a “has-a” relationship rather than the “is-a” relationship that comes with inheritance. [View Highlight](https://read.readwise.io/read/01j7jxtrsfs087rbx45dgh9skx))

  Flexibility : As requirements change, it’s easier to swap or upgrade individual components without disrupting the entire system.
  Reusability : Crafted correctly, components can be used across various parts of a project or even in entirely different projects.
  Maintainability : Focused and modular components are easier to understand, test, debug, and enhance.
  Reduced Side Effect : Unlike inheritance, where modifying the base can have widespread consequences, composition limits the ripple effect of changes. [View Highlight](https://read.readwise.io/read/01j7jxvsqhk5j1bzjarjrwymhr))

  When facing a complex problem, ask:
  - Which components make up this system?
  - How can I break this down into smaller, more manageable pieces?
  - Can I reuse existing components? [View Highlight](https://read.readwise.io/read/01j7jxxp9dp3sqncv2d9rewnqs))


path: Readwise/Why Composition Is Often Better Than Inheritance.md
sortable_path: ReadwiseWhy Composition Is Often Better Than Inheritance.md
title: Why Composition Is Often Better Than Inheritance
checksum: a3ee2557c53d2c75bc3392d4457dbda24cdb67a9057ddbb928db31e18c1a3621
created: 2024-09-14 21:24:29.812806154+00:00
modified: 2024-09-14 20:39:58.789933863+00:00
metadata: {}
lead:
  ![rw-book-cover](https://lh6.googleusercontent.com/proxy/3FDJd1lWoiuZCxfz7C2GRuBjhEQ9Es3OPvuUzs7_qAmYsdPEAiRFKrH9QBOGubPOZOa1I7q6WfEnXHce89uFMceSXhAhs4QbuWmuzw6aeM2G32M3Li8Gr8jwjbSbyaafYID1uQd9hzojASmGiMAp8H1kMjii4g=w1200-h630-p-k-no-nu)

body:
  ![rw-book-cover](https://lh6.googleusercontent.com/proxy/3FDJd1lWoiuZCxfz7C2GRuBjhEQ9Es3OPvuUzs7_qAmYsdPEAiRFKrH9QBOGubPOZOa1I7q6WfEnXHce89uFMceSXhAhs4QbuWmuzw6aeM2G32M3Li8Gr8jwjbSbyaafYID1uQd9hzojASmGiMAp8H1kMjii4g=w1200-h630-p-k-no-nu)

  ## Metadata
  - Author: [[Joost van Dongen]]
  - Full Title: Why Composition Is Often Better Than Inheritance
  - Category: #articles
  - Document Tags: [[dev]] [[dev/design-patterns]] 
  - URL: https://joostdevblog.blogspot.com/2014/07/why-composition-is-often-better-than.html
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Why%20Composition%20Is%20Often%20Better%20Than%20Inheritance

  > [!note]
  > Por lo que entiendo de momento:
  > - Usar composition by default unless you have a reason to use inheritance
  > - Permite crear código más reutilizable y más _"loosly coupled"_, en donde es más dificil que cambios en una parte del código afecten a otra
  > - Composition puede estar relacionado con [[dependency injection]] pero no estoy del todo seguro
  > - Razones para usar herencia pueden ser:
  > - [[polymorphism]], para crear variantes con una interfaz común
  > - Ciertos patrones de diseño como [[factory]] y [[listener]]
  > [!tldr]
  > The article argues that using composition is often better than inheritance in code structure. While inheritance can seem more natural, composition offers greater flexibility, readability, and reduces the risk of bugs. The author suggests that developers should be cautious with inheritance and consider composition for many situations.

  ## Highlights
  the famous *diamond problem*. What happens when a class A inherits from two classes B and C that both inherit from a single parent D? A now has a D twice and chaos ensues. [View Highlight](https://read.readwise.io/read/01j7k02e4exj8srkx4242fpxkj))

  The problem is that when it does, it can often be very difficult to come up with a good solution for how to get rid of it without doing a lot of refactoring. [View Highlight](https://read.readwise.io/read/01j7k01q1m9fafymhnjn692hgk))

  Inheritance is very useful for a lot things, for example in polymorphism and in design patters like listeners and factories. [View Highlight](https://read.readwise.io/read/01j7k03r10m6ncdmpn301yc0ns))

  An important question in code structure is whether to make classes work together through composition or inheritance. The "has a" relationship versus the "is a" relationship. [View Highlight](https://read.readwise.io/read/01j7jy5adbxd6hqanwamxwyr34))

  In my experience intuition often favours inheritance, but it gives so many problems that in many cases composition is better. [View Highlight](https://read.readwise.io/read/01j7jy705wznt9rph7nxb66r4n))

  As you can see in this code, CharacterInheritance is shorter. It also feels more natural, since we don't have to write these extra accessor functions for *applyKnockback* and *getPosition*. However, after years of creating both of these kinds of structures I have learned that in a situation like this, using composition is actually more flexible, less sensitive to bugs and even more understandable than using inheritance. [View Highlight](https://read.readwise.io/read/01j7jyaz1nx8p671tzccsgqx29))

  Game designers constantly come up with game mechanics that are exceptions to what you already programmed. Saying no to these just because your code structure cannot handle them will seriously damage your game quality [View Highlight](https://read.readwise.io/read/01j7jzcahqza5zye0dxa3yxvdx))

  An important goal in game programming is flexibility: making your code in such a way that it is relatively easy to add whatever weird whim the game designers come up with today. In most cases composition is much more flexible than inheritance. [View Highlight](https://read.readwise.io/read/01j7jzdzcr2kv4qtdp378h2chd))

  "Readability" is always accomponied by "sensitivity to bugs", since if a programmer does not really understand how something works, then he will likely break it when working on it. [View Highlight](https://read.readwise.io/read/01j7jzem4sqbhqgzj1z7cqm7vx))

  *virtual* and *protected* functions. [View Highlight](https://read.readwise.io/read/01j7jzm6wg5dwhd71cmtv7ehzb))
  > [!note]
  > **Virtual and Protected Functions**: In object-oriented programming, *virtual functions* are member functions in a base class that can be overridden in derived classes. They enable polymorphism, allowing the correct function to be called based on the object's runtime type rather than the type of reference or pointer. This is crucial for implementing dynamic behavior in applications.
  > *Protected functions*, on the other hand, are member functions that can be accessed within their own class and by derived classes, but not by outside classes. This access control mechanism helps encapsulate the functionality of a class while still allowing derived classes to utilize or extend that functionality. Together, virtual and protected functions facilitate code reuse and maintainability in complex software systems.

  inherited classes work together to create complex behaviour and intertwine more and more over time. [View Highlight](https://read.readwise.io/read/01j7jzh52x8t0pgefbgzdktpay))

  this is just too much code to really grasp it all at once without starting to mix things up. The result is that readability decreases and the programmer becomes more likely to introduce bugs because she overlooked something. [View Highlight](https://read.readwise.io/read/01j7jzkaftyev2f34t5x6k5n43))

  This keeps the classes from intertwining over time and makes it easier to keep them truly separate. [View Highlight](https://read.readwise.io/read/01j7jzr2x12ncezqhzp3r1qr3h))

raw_content:
  # Why Composition Is Often Better Than Inheritance

  ![rw-book-cover](https://lh6.googleusercontent.com/proxy/3FDJd1lWoiuZCxfz7C2GRuBjhEQ9Es3OPvuUzs7_qAmYsdPEAiRFKrH9QBOGubPOZOa1I7q6WfEnXHce89uFMceSXhAhs4QbuWmuzw6aeM2G32M3Li8Gr8jwjbSbyaafYID1uQd9hzojASmGiMAp8H1kMjii4g=w1200-h630-p-k-no-nu)

  ## Metadata
  - Author: [[Joost van Dongen]]
  - Full Title: Why Composition Is Often Better Than Inheritance
  - Category: #articles
  - Document Tags: [[dev]] [[dev/design-patterns]] 
  - URL: https://joostdevblog.blogspot.com/2014/07/why-composition-is-often-better-than.html
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Why%20Composition%20Is%20Often%20Better%20Than%20Inheritance

  > [!note]
  > Por lo que entiendo de momento:
  > - Usar composition by default unless you have a reason to use inheritance
  > - Permite crear código más reutilizable y más _"loosly coupled"_, en donde es más dificil que cambios en una parte del código afecten a otra
  > - Composition puede estar relacionado con [[dependency injection]] pero no estoy del todo seguro
  > - Razones para usar herencia pueden ser:
  > - [[polymorphism]], para crear variantes con una interfaz común
  > - Ciertos patrones de diseño como [[factory]] y [[listener]]
  > [!tldr]
  > The article argues that using composition is often better than inheritance in code structure. While inheritance can seem more natural, composition offers greater flexibility, readability, and reduces the risk of bugs. The author suggests that developers should be cautious with inheritance and consider composition for many situations.

  ## Highlights
  the famous *diamond problem*. What happens when a class A inherits from two classes B and C that both inherit from a single parent D? A now has a D twice and chaos ensues. [View Highlight](https://read.readwise.io/read/01j7k02e4exj8srkx4242fpxkj))

  The problem is that when it does, it can often be very difficult to come up with a good solution for how to get rid of it without doing a lot of refactoring. [View Highlight](https://read.readwise.io/read/01j7k01q1m9fafymhnjn692hgk))

  Inheritance is very useful for a lot things, for example in polymorphism and in design patters like listeners and factories. [View Highlight](https://read.readwise.io/read/01j7k03r10m6ncdmpn301yc0ns))

  An important question in code structure is whether to make classes work together through composition or inheritance. The "has a" relationship versus the "is a" relationship. [View Highlight](https://read.readwise.io/read/01j7jy5adbxd6hqanwamxwyr34))

  In my experience intuition often favours inheritance, but it gives so many problems that in many cases composition is better. [View Highlight](https://read.readwise.io/read/01j7jy705wznt9rph7nxb66r4n))

  As you can see in this code, CharacterInheritance is shorter. It also feels more natural, since we don't have to write these extra accessor functions for *applyKnockback* and *getPosition*. However, after years of creating both of these kinds of structures I have learned that in a situation like this, using composition is actually more flexible, less sensitive to bugs and even more understandable than using inheritance. [View Highlight](https://read.readwise.io/read/01j7jyaz1nx8p671tzccsgqx29))

  Game designers constantly come up with game mechanics that are exceptions to what you already programmed. Saying no to these just because your code structure cannot handle them will seriously damage your game quality [View Highlight](https://read.readwise.io/read/01j7jzcahqza5zye0dxa3yxvdx))

  An important goal in game programming is flexibility: making your code in such a way that it is relatively easy to add whatever weird whim the game designers come up with today. In most cases composition is much more flexible than inheritance. [View Highlight](https://read.readwise.io/read/01j7jzdzcr2kv4qtdp378h2chd))

  "Readability" is always accomponied by "sensitivity to bugs", since if a programmer does not really understand how something works, then he will likely break it when working on it. [View Highlight](https://read.readwise.io/read/01j7jzem4sqbhqgzj1z7cqm7vx))

  *virtual* and *protected* functions. [View Highlight](https://read.readwise.io/read/01j7jzm6wg5dwhd71cmtv7ehzb))
  > [!note]
  > **Virtual and Protected Functions**: In object-oriented programming, *virtual functions* are member functions in a base class that can be overridden in derived classes. They enable polymorphism, allowing the correct function to be called based on the object's runtime type rather than the type of reference or pointer. This is crucial for implementing dynamic behavior in applications.
  > *Protected functions*, on the other hand, are member functions that can be accessed within their own class and by derived classes, but not by outside classes. This access control mechanism helps encapsulate the functionality of a class while still allowing derived classes to utilize or extend that functionality. Together, virtual and protected functions facilitate code reuse and maintainability in complex software systems.

  inherited classes work together to create complex behaviour and intertwine more and more over time. [View Highlight](https://read.readwise.io/read/01j7jzh52x8t0pgefbgzdktpay))

  this is just too much code to really grasp it all at once without starting to mix things up. The result is that readability decreases and the programmer becomes more likely to introduce bugs because she overlooked something. [View Highlight](https://read.readwise.io/read/01j7jzkaftyev2f34t5x6k5n43))

  This keeps the classes from intertwining over time and makes it easier to keep them truly separate. [View Highlight](https://read.readwise.io/read/01j7jzr2x12ncezqhzp3r1qr3h))


path: notes/multi-language-library.md
sortable_path: notesmulti-language-library.md
title: Multi Language Library
checksum: ecb0dc0630e5abafa943b1568a91a6952039fc78f2a367ecd86a8998d4c29ffc
created: 2024-09-14 21:25:26.701700904+00:00
modified: 2024-09-14 22:29:06.792490149+00:00
metadata: {"tags":"dev"}
lead:
  To create a library that can be used in multiple languages, the language that
  is going to implement the library needs to support [[notes/ffi|FFI]] with the language
  that the library is written in.

body:
  To create a library that can be used in multiple languages, the language that
  is going to implement the library needs to support [[notes/ffi|FFI]] with the language
  that the library is written in.

  With this in, we can use the following in our favor:

  - It's impossible that every language support every other language.
  - For compatibility reasons, Almost every language supports C's [[notes/abi|ABI]] for their [[notes/ffi|FFI]].
  - Some compiled language has the avility to compile a C's _"dynamic library"_ (`.so` file in unix and `.dll` in windows).
  - The [[notes/ffi|FFI]] use a _"dynamic library"_ to work.

  So, in conclusion: **we can use whatever language that supports compiling to C's ABI to build multi language libraries**

  ## List of language that compiles to C's ABI

  ### [[Go]]

  To produce a shared library, you need to compile it with compile with: `go build -buildmode=c-shared`.

  Note that the documentation says you need to specify with functions needs to be exported:

  > Build the listed main package, plus all packages it imports, into a C shared
  > library. The only callable symbols will be those functions exported using a
  > cgo //export comment. Requires exactly one main package to be listed.

  Example:

  src/go/main.go:

  ```go
  package main

  import "C"
  import "fmt"

  //export helloLib
  func helloLib(x C.int) {
      fmt.Printf("Hello from Go! x=%d\n", x)
  }

  func main() {}
  ```

  src/c/main.c:

  ```c
  void helloLib(int);

  int main() {
      helloLib(12345);
  }
  ```

  Building and running:

  ```bash
  go build -buildmode=c-shared -o libmy.so ./src/go/
  gcc -o test src/c/main.c libmy.so
  ./test
  Hello from Go! x=12345
  ```

  Sources:

  - <https://stackoverflow.com/questions/75035609/can-go-executable-be-used-as-a-dynamic-library>
  - <https://pkg.go.dev/cmd/go#hdr-Build_modes>

  ## List of languages that has support for FFI with C

raw_content:
  ---
  tags: dev
  ---

  # Multi Language Library

  To create a library that can be used in multiple languages, the language that
  is going to implement the library needs to support [[notes/ffi|FFI]] with the language
  that the library is written in.

  With this in, we can use the following in our favor:

  - It's impossible that every language support every other language.
  - For compatibility reasons, Almost every language supports C's [[notes/abi|ABI]] for their [[notes/ffi|FFI]].
  - Some compiled language has the avility to compile a C's _"dynamic library"_ (`.so` file in unix and `.dll` in windows).
  - The [[notes/ffi|FFI]] use a _"dynamic library"_ to work.

  So, in conclusion: **we can use whatever language that supports compiling to C's ABI to build multi language libraries**

  ## List of language that compiles to C's ABI

  ### [[Go]]

  To produce a shared library, you need to compile it with compile with: `go build -buildmode=c-shared`.

  Note that the documentation says you need to specify with functions needs to be exported:

  > Build the listed main package, plus all packages it imports, into a C shared
  > library. The only callable symbols will be those functions exported using a
  > cgo //export comment. Requires exactly one main package to be listed.

  Example:

  src/go/main.go:

  ```go
  package main

  import "C"
  import "fmt"

  //export helloLib
  func helloLib(x C.int) {
      fmt.Printf("Hello from Go! x=%d\n", x)
  }

  func main() {}
  ```

  src/c/main.c:

  ```c
  void helloLib(int);

  int main() {
      helloLib(12345);
  }
  ```

  Building and running:

  ```bash
  go build -buildmode=c-shared -o libmy.so ./src/go/
  gcc -o test src/c/main.c libmy.so
  ./test
  Hello from Go! x=12345
  ```

  Sources:

  - <https://stackoverflow.com/questions/75035609/can-go-executable-be-used-as-a-dynamic-library>
  - <https://pkg.go.dev/cmd/go#hdr-Build_modes>

  ## List of languages that has support for FFI with C


path: Omnivore/17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist.md
sortable_path: Omnivore17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist.md
title: 17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist
lead: ![rw-book-cover](https://news.ycombinator.com/favicon.ico)
checksum: cd2f8dbf8526e29412d2758d1467bda674239698d54160aec529e85fce32c917
created: 2024-09-15 00:40:56.507847915+00:00
modified: 2024-09-22 22:40:13.391511002+00:00
metadata: {}
body:
  ![rw-book-cover](https://news.ycombinator.com/favicon.ico)

  ## Metadata
  - Author: [[isaacfrond]]
  - Full Title: 17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist
  - Category: #articles
  - URL: https://torrentfreak.com/17-year-old-student-exposes-germanys-secret-pirate-site-blocklist-240822/
  > [!tldr]
  > A 17-year-old student in Germany has created a website to reveal the blocked pirate sites that major internet providers do not disclose. This initiative aims to increase transparency and address concerns about censorship related to copyright enforcement. The site, CUIIliste.de, lists 275 blocked domains, allowing users to see which sites are restricted.

  ## Highlights
  watchdog - ([View Highlight](https://read.readwise.io/read/01j64wj1fy8b0dyhcdsjgv4vta))
  > [!note]
  > Watchdog: A term used to describe an individual or organization that monitors and oversees the actions of others, often to ensure accountability, transparency, and adherence to laws or regulations. Watchdogs play a critical role in various fields, including journalism, government, and environmental protection, by investigating misconduct, exposing corruption, and advocating for the public interest. Their function is essential in promoting ethical standards and fostering public trust in institutions.
  > In the context of Isaac Frond's article, the term "watchdog" refers to individuals or organizations that monitor and ensure accountability regarding governmental or institutional actions, particularly in relation to transparency and rights. The lack of public knowledge about the blocked pirate sites in Germany has led to frustration among journalists and advocates, highlighting the need for oversight. The 17-year-old student, along with his friends, embodies this watchdog role by exposing the secretive blocklist, thereby promoting transparency and challenging potential overreach in copyright enforcement.

raw_content:
  # 17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist

  ![rw-book-cover](https://news.ycombinator.com/favicon.ico)

  ## Metadata
  - Author: [[isaacfrond]]
  - Full Title: 17-Year-Old Student Exposes Germany's 'Secret' Pirate Site Blocklist
  - Category: #articles
  - URL: https://torrentfreak.com/17-year-old-student-exposes-germanys-secret-pirate-site-blocklist-240822/
  > [!tldr]
  > A 17-year-old student in Germany has created a website to reveal the blocked pirate sites that major internet providers do not disclose. This initiative aims to increase transparency and address concerns about censorship related to copyright enforcement. The site, CUIIliste.de, lists 275 blocked domains, allowing users to see which sites are restricted.

  ## Highlights
  watchdog - ([View Highlight](https://read.readwise.io/read/01j64wj1fy8b0dyhcdsjgv4vta))
  > [!note]
  > Watchdog: A term used to describe an individual or organization that monitors and oversees the actions of others, often to ensure accountability, transparency, and adherence to laws or regulations. Watchdogs play a critical role in various fields, including journalism, government, and environmental protection, by investigating misconduct, exposing corruption, and advocating for the public interest. Their function is essential in promoting ethical standards and fostering public trust in institutions.
  > In the context of Isaac Frond's article, the term "watchdog" refers to individuals or organizations that monitor and ensure accountability regarding governmental or institutional actions, particularly in relation to transparency and rights. The lack of public knowledge about the blocked pirate sites in Germany has led to frustration among journalists and advocates, highlighting the need for oversight. The 17-year-old student, along with his friends, embodies this watchdog role by exposing the secretive blocklist, thereby promoting transparency and challenging potential overreach in copyright enforcement.


path: Omnivore/2023-10-12 - How to Learn Rust.md
sortable_path: Omnivore2023-10-12 - How to Learn Rust.md
title: How to Learn Rust
lead: # How to Learn Rust
checksum: 33700ad2596479185e75352e083c67e4ff316e595a3458fe7e284aab6076d353
created: 2024-09-15 00:40:56.531406115+00:00
modified: 2024-09-22 22:40:13.391511002+00:00
body:
  # How to Learn Rust

  ## Original

  <div class="page" id="readability-page-1">
        <iframe data-omnivore-anchor-idx="1" width="619.4690265486726" height="350" src="https://www.youtube.com/embed/2hXNd6x9sZs" title="How to Learn Rust" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
          <p data-omnivore-anchor-idx="2"><a data-omnivore-anchor-idx="3" href="https://www.youtube.com/watch?v=2hXNd6x9sZs" target="_blank">How to Learn Rust</a></p>
          <p data-omnivore-anchor-idx="4" itemscope itemprop="author" itemtype="http://schema.org/Person">By <a data-omnivore-anchor-idx="5" href="https://www.youtube.com/@NoBoilerplate" target="_blank">No Boilerplate</a></p>
        </div>

raw_content:
  ---
  id: 9f0419b3-2f89-4734-96b3-55aa984414ac
  title: |
    How to Learn Rust
  status: ARCHIVED
  tags:
    - read-later
    - Youtube
    - Youtube
  date_added: 2023-10-12 17:55:48
  url_omnivore: |
    https://omnivore.app/me/how-to-learn-rust-18b25ac93bb
  url_original: |
    https://www.youtube.com/watch?v=2hXNd6x9sZs
  ---

  # How to Learn Rust

  ## Original

  <div class="page" id="readability-page-1">
        <iframe data-omnivore-anchor-idx="1" width="619.4690265486726" height="350" src="https://www.youtube.com/embed/2hXNd6x9sZs" title="How to Learn Rust" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
          <p data-omnivore-anchor-idx="2"><a data-omnivore-anchor-idx="3" href="https://www.youtube.com/watch?v=2hXNd6x9sZs" target="_blank">How to Learn Rust</a></p>
          <p data-omnivore-anchor-idx="4" itemscope itemprop="author" itemtype="http://schema.org/Person">By <a data-omnivore-anchor-idx="5" href="https://www.youtube.com/@NoBoilerplate" target="_blank">No Boilerplate</a></p>
        </div>

metadata:
  {"date_added":"2023-10-12 17:55:48","id":"9f0419b3-2f89-4734-96b3-55aa984414ac","status":"ARCHIVED","tags":["read-later","Youtube","Youtube"],"title":"How to Learn Rust\n","url_omnivore":"https://omnivore.app/me/how-to-learn-rust-18b25ac93bb\n","url_original":"https://www.youtube.com/watch?v=2hXNd6x9sZs\n"}


path: Omnivore/2023-10-12 - The Secret Power of ‘Read It Later’ Apps.md
sortable_path: Omnivore2023-10-12 - The Secret Power of ‘Read It Later’ Apps.md
title: The Secret Power of ‘Read It Later’ Apps
lead: # The Secret Power of ‘Read It Later’ Apps
checksum: 989945a0e70d236182e182334884526099bafa5178aa6c8b2da26a8912f1fe46
created: 2024-09-15 00:40:56.560607517+00:00
modified: 2024-09-22 22:40:13.391511002+00:00
body:
  # The Secret Power of ‘Read It Later’ Apps

  ## Highlights

  > People who cling to paradigms (which means just about all of us) take one look at the spacious possibility that everything they think is guaranteed to be nonsense and pedal rapidly in the opposite direction. Surely there is no power, no control, no understanding, not even a reason for being, much less acting, in the notion or experience that there is no certainty in any worldview. But, in fact, everyone who has managed to entertain that idea, for a moment or for a lifetime, has found it to be the basis for radical empowerment. **If no paradigm is right, you can choose whatever one will help to achieve your purpose.** 

  > It is in this space of mastery over paradigms that people throw off addictions, live in constant joy, bring down empires, get locked up or burned at the stake or crucified or shot, and **have impacts that last for millennia**. 

  > In the end, it seems that mastery has less to do with pushing leverage points than it does with **strategically, profoundly, madly letting go.** 

  > [!note]
  > Read again and understand it better

  [source](https://omnivore.app/me/the-secret-power-of-read-it-later-apps-18b255ca194#42edb9e2-3799-430e-bbff-db1170ebbad1) 

  ---

  ## Original

  <DIV class="page" id="readability-page-1">
      <div>
          <div data-widget_type="theme-post-content.default" data-element_type="widget" data-id="5d9db16f">
              <figure>
                  <figure>
                      <img src="https://proxy-prod.omnivore-image-cache.app/900x380,sXXV7f9Au3y4tF2zoOnAQ1G8Xnf3Uh8IRqZcfVY3HoSY/https://i0.wp.com/cdn-images-1.medium.com/max/2000/1*rPXwIczUJRCE54v8FfAHGw.jpeg?resize=900%2C380&ssl=1" alt="" width="900" height="380" data-recalc-dims="1">
                      <figcaption> Image via Nuno Cruz </figcaption>
                  </figure>
                  <figcaption></figcaption>
              </figure>
              <p>
                  <em>By Tiago Forte of</em> <a href="http://fortelabs.co/" target="_blank" rel="noopener noreferrer"><em>Forte Labs</em></a>
              </p>
              <p> At the end of 2014 I received an email informing me that I had read over a million words in the ‘read it later’ app Pocket over the course of the year. </p>
              <p>
                  <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/358x377,ssfZXhGmomcxzcD-VkrtnzD-6vk-rI8GUuXk4JlRMX2s/https://i0.wp.com/cdn-images-1.medium.com/max/600/1*Hd7YIhMrS5lldl1gDU8iWQ.png?resize=358%2C377&ssl=1" width="358" height="377" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/600/1*Hd7YIhMrS5lldl1gDU8iWQ.png?resize=358%2C377&ssl=1" data-recalc-dims="1">
              </p>
              <p> This number by itself isn’t impressive, considering our daily intake of information is equivalent to <a href="http://bits.blogs.nytimes.com/2009/12/09/the-american-diet-34-gigabytes-a-day/" target="_blank" rel="noopener noreferrer">34 gigabytes</a>, 100,000 words, or <a href="http://www.nytimes.com/2014/08/10/opinion/sunday/hit-the-reset-button-in-your-brain.html?smprod=nytcore-iphone&smid=nytcore-iphone-share" target="_blank" rel="noopener noreferrer">174 newspapers</a>, depending on who you ask. </p>
              <p> What makes this number significant (in my view) is that it represents 22 books’-worth of long-form reading that would not have happened without a system in place. </p>
              <p> We’ve made a habit of filling those hundred random spaces in our day with glances at Twitter, Instagram, and Facebook. But those glances have slowly become stares, and those stares have grown to encompass a major portion of our waking hours. </p>
              <p> The end result is the same person who spends 127 hours per year on Instagram (the <a href="http://www.businessinsider.com/people-spend-21-minutes-per-day-on-instagram-2014-10" target="_blank" rel="noopener noreferrer">global average</a>) complains that she has “no time” for reading. </p>
              <p> The fact is, <strong>the ability to read is becoming a source of competitive advantage in the world</strong>. </p>
              <p> I’m not talking about basic literacy. What has become exceedingly scarce (and therefore, valuable) is the physical, emotional, attentional, and mental capability to sit quietly and direct focused attention for sustained periods of time. </p>
              <p> A <a href="https://hbr.org/2005/01/overloaded-circuits-why-smart-people-underperform" target="_blank" rel="noopener noreferrer">recent article</a> in the Harvard Business Review puts a name to this new neurological phenomenon: Attention Deficit Trait. Basically, the terms ADD and ADHD are falling out of use because effectively the entire population fits the diagnostic criteria. It’s not a condition anymore, it’s a <em>trait</em> — the inherent and unavoidable experience of modern life characterized by “distractibility, inner frenzy, and impatience.” </p>
              <form action="https://app.convertkit.com/forms/1022733/subscriptions" method="post" data-sv-form="1022733" data-uid="308d24305b" data-format="inline" data-version="5" min-width="400 500 600 700">
                  <div data-style="full">
                      <p><img src="https://proxy-prod.omnivore-image-cache.app/0x0,sCKKsi_KsyhXjSRvn7hvFRJEjLKQkBiJU0agepFckkI4/https://embed.filekitcdn.com/e/oP2q5jihy5hj474ZFtvPjw/3edWskTMDwFhuVEtauLv5X"></p>
                      <p> Start Building Your Second Brain </p>
                      <p> Subscribe below to learn more about the next cohort of the Building a Second Brain course </p>
                  </div>
              </form>
              <h3> Read It.&nbsp;Later. </h3>
              <p> Before I explain the massive, under-appreciated benefits these apps provide, and how to use them most effectively, a quick primer in case you’re unfamiliar. </p>
              <p> So-called “Read It Later” apps give you the ability to “save” content on the web for later consumption. They are essentially advanced bookmarking apps, pulling in the content from a page to be read or viewed in a cleaner, simpler visual layout. </p>
              <p> On top of that core function they add features like favoriting, tags, search, cross-platform syncing, recommended content, offline viewing, and archiving. The most popular options are: </p>
              <ul>
                  <li>
                      <a href="https://www.instapaper.com/" target="_blank" rel="noopener noreferrer">Instapaper</a>
                  </li>
                  <li>
                      <a href="https://getpocket.com/a/" target="_blank" rel="noopener noreferrer">Pocket</a>
                  </li>
                  <li>
                      <a href="https://chrome.google.com/webstore/detail/send-to-kindle-for-google/cgdjpilhipecahhcilnafpblkieebhea?hl=en" target="_blank" rel="noopener noreferrer">Send to Kindle</a> (for sending articles to your Kindle)
                  </li>
                  <li>
                      <a href="https://feedly.com/i/welcome" target="_blank" rel="noopener noreferrer">Feedly</a> (for those RSS fans)
                  </li>
                  <li>and <a href="https://support.apple.com/en-us/HT200294" target="_blank" rel="noopener noreferrer">Safari’s built-in “Add to Reading List” feature</a>. </li>
              </ul>
              <p> The app I use, Pocket, adds a button to the Chrome toolbar that looks like this: </p>
              <figure>
                  <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/130x58,syYiQlMJ3hP3JyGS_AYz8D5Oq9FZ1QxR2ef29Fia7Ht0/https://i0.wp.com/cdn-images-1.medium.com/max/800/1*Lk-DPDFjLslM4h2GAv8KIA.png?resize=130%2C58&ssl=1" alt="" width="130" height="58" data-image-id="1*Lk-DPDFjLslM4h2GAv8KIA.png" data-width="130" data-height="58" data-recalc-dims="1">
                  <figcaption> Chrome toolbar </figcaption>
              </figure>
              <p>
                  <em>Note: at time of writing, I was using Pocket, but have recently switched to Instapaper because of Pocket’s “Share to Evernote” bug mentioned below.</em>
              </p>
              <p> Clicking the button while viewing a webpage turns the button pink, and saves the page to your “list.” Navigating to getpocket.com, or opening the Pocket app on your computer or mobile device shows you a list of everything you’ve saved: </p>
              <figure>
                  <figure>
                      <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/800x507,smjUUrOduWv7T0bCSx9oh_Ag0Yasq_HyFfgAoDXryOcM/https://i0.wp.com/cdn-images-1.medium.com/max/800/1*wkKD4oP3-kWJERxmBBI2cA.png?resize=800%2C507&ssl=1" alt="" width="800" height="507" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/800/1*wkKD4oP3-kWJERxmBBI2cA.png?resize=800%2C507&ssl=1" data-recalc-dims="1">
                      <figcaption> Mac desktop client </figcaption>
                  </figure>
                  <p> You can also view your list in a “tile” layout on the web, making it into essentially a personalized magazine. Personalized, in this case, not by a cold, unfeeling algorithm, but by your past self: </p>
              </figure>
              <figure>
                  <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/800x478,sFjAZnzFiVzsVRlXF9QyD5dq_jzT69dsyyp3Bb-k5ZGU/https://i0.wp.com/cdn-images-1.medium.com/max/800/1*ug06oorCHGFpEzMyl9kfhg.png?resize=800%2C478&ssl=1" alt="" width="800" height="478" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/800/1*ug06oorCHGFpEzMyl9kfhg.png?resize=800%2C478&ssl=1" data-recalc-dims="1">
                  <figcaption> Web browser “tile” view </figcaption>
              </figure>
              <p> Marking an item as read in one version of the app will quickly sync across all platforms. It will also save your current progress on one device, so you can continue where you left off on a different device (for those longer pieces). </p>
              <h3> The highest leverage point in a system is in the intake — the initial assumptions and paradigms that inform its development </h3>
              <p> I’ve <a href="https://medium.com/forte-labs/how-to-use-evernote-for-your-creative-workflow-f048f0aa3ed1" target="_blank" rel="noopener noreferrer">written previously</a> about how to use Evernote as a general reference filing system, not only to stay organized but to inspire creativity. </p>
              <p> But I didn’t address a key question when creating any workflow: how and from where does information enter the system? The quality of a workflow’s outputs is fundamentally limited by the quality of its inputs. Garbage in, garbage out. </p>
              <p> There are A LOT of ways we could talk about to improve the quality of the information you consume. But I want to focus now on the two that Read It Later apps can help with: </p>
              <ol>
                  <li>Increasing consumption of long-form content (which is presumably more substantive) </li>
                  <li>Better filtering </li>
              </ol>
              <h3> #1 | Increasing Consumption of Long-Form Content </h3>
              <p> In order to consume good ideas, first you have to consume many ideas. </p>
              <p> This is the fundamental flaw in the “information diet” advice from Tim Ferriss and others: strong filters work best on a larger initial flow. Using your friends as your primary filter for new ideas ensures you remain the dumbest person in the room, and contribute nothing to the conversation. </p>
              <p> The problem is that our entire digital world is geared toward snackable chunks of low-grade information — photos, tweets, statuses, snaps, feeds, cards, etc. To fight the tide you have to redesign your environment — you have to create affordances. </p>
              <blockquote>
                  <p> Affordance (n.): a relation between an object and an organism that, through a collection of stimuli, <strong>affords the opportunity for that organism to perform an action.</strong>
                  </p>
              </blockquote>
              <p> Let’s look at the 4 main barriers to consuming long-form content, and the affordances that Read It Later apps use to overcome them: </p>
              <h4> 1. App performance </h4>
              <p> We know that the most infinitesimal delays in the loading time of a webpage will dramatically impact how many people stay on the page. <a href="https://blog.kissmetrics.com/speed-is-a-killer/" target="_blank" rel="noopener noreferrer">Google found</a> that increasing the number of results per page from 10 to 30 took only half a second longer, but <strong>caused 20% of people to drop off</strong>. </p>
              <p> If you think your behavior is not affected by such trivialities, think again. Even on a subconscious level, you will resist even opening apps that don’t reward you with snappy response times. Which is a problem because the apps most people turn to for reading are either ebook apps like iBooks and Kindle, or web browsers like Chrome and Safari. I’m not sure which category is slower, but they’re both abysmal. </p>
              <p> Meanwhile, your snaps and instas refresh at precog-like speeds. </p>
              <p> Read It Later apps, by slurping in content (articles, videos, slideshows) into a clean interface, eliminate the culprits — ads, site analytics, popups — all the stuff you don’t care about. </p>
              <p> A <a href="http://www.nytimes.com/2015/10/01/technology/personaltech/ad-blockers-mobile-iphone-browsers.html" target="_blank" rel="noopener noreferrer">recent analysis</a> by The New York Times of 3 leading ad-blockers (which have the same effect) measured a <strong>21% increase in battery life</strong>, and in the most egregious case of Boston.com, a drop in loading time <strong>from 33 seconds to 7 seconds</strong>. Many other leading sites were not that far off. </p>
              <figure>
                  <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/563x365,sFABKoLfIzSHIwYCEllG7t2i-uxewZOlI9ALe6-KJLSs/https://i0.wp.com/cdn-images-1.medium.com/max/800/1*vfmR5LKEjfx-0Lx-kWb4bw.png?resize=563%2C365&ssl=1" alt="" width="563" height="365" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/800/1*vfmR5LKEjfx-0Lx-kWb4bw.png?resize=563%2C365&ssl=1" data-recalc-dims="1">
                  <figcaption> Effect of ad-blocker on loading times of Boston.com, via <a href="http://www.nytimes.com/2015/10/01/technology/personaltech/ad-blockers-mobile-iphone-browsers.html" target="_blank" rel="noopener noreferrer">NYT</a>
                  </figcaption>
              </figure>
              <p> Yeah that’s pretty much an eternity in mobile behavior land. </p>
              <h4> 2. Matching content with your&nbsp;context </h4>
              <figure>
                  <figure>
                      <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/507x676,sxG7LpsFKxnoEDDIOpwI06zJ3e8CoE30WZseOtRT8u6s/https://i0.wp.com/cdn-images-1.medium.com/max/600/1*N15BlTDGq8kTc7HdGUmShA.png?resize=507%2C676&ssl=1" alt="" width="507" height="676" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/600/1*N15BlTDGq8kTc7HdGUmShA.png?resize=507%2C676&ssl=1" data-recalc-dims="1">
                      <figcaption> My Pocket list on iPad </figcaption>
                  </figure>
              </figure>
              <p> Much of the time when we pull out our phone, we’re looking for something to match our mood (or energy, or time available, or other context). We use our constellation of shiny apps as mood regulators and self-soothers, as time-fillers and boredom-suppressors, for better or worse. </p>
              <p> So you need a little entertainment, and you open…an ebook? Yeah right. Monochrome pages don’t attract you. They don’t draw you in. </p>
              <p> Pocket gives reading some of this stimulatory pleasure by laying out your list in a pleasing, magazine-style layout (at left). Not only is it generally attractive, but it gives you that same magazine-flipping pleasure of engaging with something that interests you <em>right in that moment</em>. </p>
              <p> David Allen puts it this way: </p>
              <blockquote>
                  <p> “It’s practical to have organized reading material at hand when you’re on your way to a meeting that may be starting late, a seminar that may have a window of time when nothing is going on, a dentist appointment that may keep you waiting, or, of course, if you’re going to have some time on a train or plane. Those are all great opportunities to browse and work through that kind of reading. People who don’t have their Read/Review material organized can waste a lot of time, since <strong>life is full of weird little windows when it could be used.</strong>” </p>
              </blockquote>
              <p> You’re not fighting your impulses forcing yourself to read a dense tome after a long work day. Willpower preserved ✓ </p>
              <h4> 3. Asynchronous reading </h4>
              <p> This is one of the least understood barriers to reading in our fragmented timescape. </p>
              <p> There is something deeply, deeply unsatisfying about repeatedly starting something and not finishing it. This is what we experience all day at work, being continuously interrupted by a stream of “emergencies.” The last thing we want after a stressful day starved of wins is to fail even at reading an article. </p>
              <p> The <a href="https://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity-ebook/dp/B00KWG9M2E/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=fortelabs07-20&linkId=fe6db72d8e5bbb38b1ea43241924f7e9&language=en_US" target="_blank" rel="noopener noreferrer">2015 revised edition (affiliate link)</a> of <em>Getting Things Done</em> <a href="http://users.wfu.edu/masicaej/MasicampoBaumeister2011JPSP.pdf" target="_blank" rel="noopener noreferrer">cites the work</a> of Dr. Roy Baumeister, who has shown that “uncompleted tasks take up room in the mind, which then limits clarity and focus.” The risk of cognitive dissonance at not being able to finish a long article (much less a book) keep us from even beginning it. </p>
              <p> Read It Later apps address this by simply saving your progress in a given article, allowing you to pick back up at a different time, or on a different device, and clearly marking items as “read” once you’re finished. </p>
              <h4> 4. Focus </h4>
              <p> A common response when I recommend people adopt <em>yet another</em> category of apps is “Why don’t I just use Evernote?” Or whatever app they’re using for general reference or task management. Evernote even makes a Chrome extension called <a href="https://evernote.com/clearly/" target="_blank" rel="noopener noreferrer">Clearly</a> for reading online content and <a href="https://evernote.com/webclipper/?downloaded" target="_blank" rel="noopener noreferrer">Web Clipper</a> for saving it. </p>
              <p> It is a question of focus. Why don’t you use your task manager to keep track of content (i.e. “Read this article”)? Because the last thing you want to see when you cuddle up with your hot cocoa for some light reading is the hundreds of tasks you’re not doing. </p>
              <p> Likewise, the last thing you want to see when you (finally!) have time to read is the thousands of notes you’ve collected from every corner of the universe, only some of which you haven’t read, only some of which you <em>want</em> to read, only some of which are <em>meant</em> to be read. </p>
              <blockquote>
                  <p> Actionable info ≠ Reference info ≠ To Read&nbsp;pile </p>
              </blockquote>
              <p> Ergo, </p>
              <blockquote>
                  <p> Task manager ≠ Evernote ≠&nbsp;Pocket </p>
              </blockquote>
              <h3> #2 | Better filtering </h3>
              <p> Now you’ve got the funnel filled. It’s time to narrow it. </p>
              <p> Most advice on this topic focuses on being more selective about your sources. Cutting out the email digests that just throw you off track, unfollowing people posting crap, or even <a href="https://chrome.google.com/webstore/detail/ad-replacer-turn-spammy-a/eckeeomlpacfhejaameopnmgipghaoam" target="_blank" rel="noopener noreferrer">directly replacing ads with quality sources</a>. </p>
              <p> The problem is that this assumes you are always at your best, always at 100% self-discipline, totally aligned with your life values, priorities ship shape. </p>
              <p> Yeah. </p>
              <p> In the moment, with your blood sugar at a negative value and every fiber of your being screaming for a dopamine hit, <em>of course</em> that Buzzfeed article seems like the best conceivable use of your time. If you think you can permanently seal off your life from the celebrity news, content marketing, and spammy friends that dominate the web, the NSA has a job for you. </p>
              <p> Procrastination is the most powerful force in the universe. <em>It will find a way.</em>
              </p>
              <p> I have a different approach: <strong>waiting periods</strong>. Every time I come across something I may want to read/watch, I’m totally allowed to. No limits! The only requirement is I have to save it to Pocket, and then choose to consume it at a later time. </p>
              <p> I’ve found that even just clicking a link to open the URL, in order to save it to Pocket, is too much of a temptation. The first glimpse of a cute GIF and I’m off to Reddit, completely forgetting my morning email session. </p>
              <p> So instead I just <strong>command-click</strong> every link I’m interested in (or <strong>right-click &gt; Open link in new tab</strong>), which opens each link in a separate tab <em>without taking me to that tab</em>. </p>
              <p> Here’s what a typical Monday morning link-fest looks like, just from email: </p>
              <p>
                  <img src="https://proxy-prod.omnivore-image-cache.app/0x0,s6KkWg-OdGcQNuvOShcztrmaslDz3Cm5o9rD1eDOxxRc/https://i0.wp.com/cdn-images-1.medium.com/max/2000/1*cLy09F0SPJJmi0WfazXi3Q.png?w=900&ssl=1" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/2000/1*cLy09F0SPJJmi0WfazXi3Q.png?w=900&ssl=1" data-recalc-dims="1">
              </p>
              <p> Then, because I’m still in <strong>collection mode</strong>, not in read mode, I cycle through each tab one at a time (<strong>shift-command-}</strong> or <strong>control-tab</strong>), saving each one to Pocket using the shortcut I set up: <strong>command-p</strong> (chosen for irony and to avoid inadvertent printing). </p>
              <p> There’s only one rule: <strong>NO READING OR WATCHING!</strong>
              </p>
              <p> Bringing this back to filtering, not only am I saving time and preserving focus by batch processing both the collection and the consumption of new content, I’m <strong>time-shifting the curation process</strong> to a time better suited for reading, and (most critically) removed from the temptations, stresses, and biopsychosocial hooks that first lured me in. </p>
              <p> I am always amazed by what happens: no matter how stringent I was in the original collecting, no matter how certain I was that this thing was worthwhile, I <strong>regularly eliminate 1/3 of my list before reading</strong>. The post that looked SO INTERESTING when compared to that one task I’d been procrastinating on, in retrospect isn’t even something I care about. </p>
              <p> What I’m essentially doing is creating a buffer. Instead of pushing a new piece of info through from intake to processing to consumption without any scrutiny, I’m creating a pool of options drawn from a longer time period, which allows me to make decisions from a higher perspective, where those decisions are much better aligned with what truly matters to me. </p>
              <blockquote>
                  <p> Remove any feature, process, or effort that does not directly contribute to the learning you seek. — Eric Ries, The Leader’s Guide </p>
              </blockquote>
              <p> Here’s a visual of how this works, from my Pocket analytics: </p>
              <p>
                  <img src="https://proxy-prod.omnivore-image-cache.app/0x0,stGbUueP6GB86OSUIreA-v1CvD10SF4A-ecLznSBpGQc/https://i0.wp.com/cdn-images-1.medium.com/max/800/1*YRExWXbhPma8-AcWP_KSrw.png?w=900&ssl=1" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/800/1*YRExWXbhPma8-AcWP_KSrw.png?w=900&ssl=1" data-recalc-dims="1">
              </p>
              <p> You can see that I save more things toward the beginning of the week and the weekend, and then draw down the buffer more towards the end of the week. </p>
              <p>
                  <strong><em>/sidebar</em></strong>
              </p>
              <p> Imagine for a second if we could do this with everything. On Saturday morning, well-rested and wise, you retroactively decide everything you <em>want to have done</em> during the previous week. Anything you decide was not worthwhile, you <em>get that time back</em>. </p>
              <p> I experienced this recently with email — after returning from a 10-day meditation course during which I was completely off the grid, I was surprised to notice it took only 1.9 hours to process almost 2 weeks’ worth of email (I track these things). I normally spend on average 2.19 hours on email <strong>per week</strong> —<em> what happened to those extra 2.48 hours?!</em> Besides the gains from batch processing such a large quantity of emails at once, I believe the main factor was that I evaluated my emails from a longer time horizon and higher perspective, more correctly judging whether something was worth responding to or acting on. </p>
              <p> If only this method would scale. </p>
              <p>
                  <strong>/end_sidebar</strong>
              </p>
              <h3> Mo’ apps, mo’&nbsp;problems </h3>
              <p> There are drawbacks, which I’ve glossed over until now. The two main ones: </p>
              <h4> 1. Formatting issues </h4>
              <p> Many sites, including popular ones, aren’t presented correctly within the Pocket app (and I imagine others). There’s always the option of opening the link in a web browser, but this eliminates all the positive affordances and then some. If there wasn’t so much value provided otherwise, this would be a deal breaker. </p>
              <p> The worst part is that, sometimes, the article is cut off or links don’t appear <em>without any indication that something is amiss</em>. On Tim Ferriss’ blog, for example, links (of which there are many) are simply removed. </p>
              <p> One solution is to tag problematic items with “desktop” so you know that these need to be read/viewed on your computer. </p>
              <h4> 2. Dependence </h4>
              <p> Every productivity tool eventually becomes a victim of its own success. In this case, I’ve become so dependent on Pocket that bugs really affect me. </p>
              <p> For example, the Share to Evernote feature, which I use to highlight and save key passages, has been broken for at least a month. My hysterical tweets to Pocket Support have been answered but not resolved. </p>
              <p> You wouldn’t think such a minor feature within one app could be so disruptive, but it has been massively so. This simple workflow: </p>
              <p>
                  <em>Highlight &gt; Share &gt; Share to Evernote &gt; Save</em>
              </p>
              <p> …has been replaced with this: </p>
              <p>
                  <em>Highlight &gt; Copy &gt; Switch to Evernote &gt; New note &gt; Paste &gt; Switch back to Pocket &gt; Share &gt; More &gt; Copy URL &gt; Switch back to Evernote &gt; Paste URL &gt; Switch back to Pocket</em>
              </p>
              <p> Worse, I often forget to go back and grab the URL, so I have to hunt it down at some later date. </p>
              <p>
                  <strong>/rant_over</strong>
              </p>
              <h3> Progress Traps and Paradigms </h3>
              <p> The amount of information in the world is a <a href="https://en.wikipedia.org/wiki/Progress_trap" target="_blank" rel="noopener noreferrer">progress trap</a>. Too much stuff to read is just as limiting as too little. </p>
              <p> As the inimitable Venkatesh Rao <a href="http://breakingsmart.com/season-1/" target="_blank" rel="noopener noreferrer">has written</a>, we’re moving from a world of <strong>containers</strong> (companies, departments, semesters, packages, silos) to a world of <strong>streams</strong> (social networks, info feeds, main streets of thriving cities, Twitter). Problems and opportunities alike resist having neat little boxes drawn around them. There’s way too much to absorb. Way too much to even guess what you don’t know. </p>
              <p> As the pace of change in the world accelerates, we double down on all the methods that created the problems in the first place — more planning, more forecasting, more control and risk management. We’re left with massive institutions that nobody trusts, that are simultaneously brittle and too-big-to-fail, creating precarity at every level of the socioeconomic pyramid. </p>
              <p> What would it look like instead to solve problems (and explore opportunities) in a way that gets better the faster we go? </p>
              <p> I can’t do justice to Rao’s blog series linked above (it’s in 20 parts — may want to save it for later&nbsp;;), but the first step he proposes is “exposing yourself to as many different diverse streams as possible.” </p>
              <p> When you’re immersed in a stream, the faster it goes, the more novel perspectives and ideas you’re exposed to. You develop an <a href="http://rogerlmartin.com/lets-read/the-opposable-mind" target="_blank" rel="noopener noreferrer">opposable mind</a> — the ability to juggle and play around with different perspectives on any issue, instead of seeing it through one lens. </p>
              <p> Increasingly, the only metric that will matter in your journey of personal growth will be <strong>ROL: Rate-of-Learning</strong>. We’ve heard a lot in recent years about the importance of hands-on learning and practical experimentation. We get it. Burying your head in a book by itself gets you nowhere. </p>
              <p> But the pendulum is swinging too far in that direction. Yes, you can be <em>too</em> action-oriented. Ideas, while cheap when compared to effective execution, are still more valuable than many of the other things we spend time on. </p>
              <p> There’s another way to learn faster: assimilate and build on the ideas of others. Sure, you won’t understand every tacit lesson their experience gave them, but you can incorporate many of them, and in a fraction of the time it would take you to make every mistake yourself. </p>
              <p> Ideas are high leverage agents. They become more so when arranged in highly cross-referenced networks. The only tool we have available that is capable of both creating and accessing these networks on demand is the human brain. </p>
              <p> I lied before. There is one form of leverage even more powerful than the initial assumptions and paradigms that inform a system’s development: the <strong>ability to transcend paradigms</strong>. </p>
              <p> I can’t put it any better than Donella Meadows, in her <a href="http://www.donellameadows.org/archives/leverage-points-places-to-intervene-in-a-system/" target="_blank" rel="noopener noreferrer">seminal piece</a> on complex systems: </p>
              <blockquote>
                  <p> People who cling to paradigms (which means just about all of us) take one look at the spacious possibility that everything they think is guaranteed to be nonsense and pedal rapidly in the opposite direction. Surely there is no power, no control, no understanding, not even a reason for being, much less acting, in the notion or experience that there is no certainty in any worldview. But, in fact, everyone who has managed to entertain that idea, for a moment or for a lifetime, has found it to be the basis for radical empowerment. <strong>If no paradigm is right, you can choose whatever one will help to achieve your purpose.</strong>
                  </p>
              </blockquote>
              <blockquote>
                  <p> It is in this space of mastery over paradigms that people throw off addictions, live in constant joy, bring down empires, get locked up or burned at the stake or crucified or shot, and <strong>have impacts that last for millennia</strong>. </p>
              </blockquote>
              <blockquote>
                  <p> In the end, it seems that mastery has less to do with pushing leverage points than it does with <strong>strategically, profoundly, madly letting go.</strong>
                  </p>
              </blockquote>
              <p> Reading is the closest thing we have to thinking another’s thoughts. It’s long and sometimes ponderous, but that work is required to wrap yourself in another person’s paradigm. Which is the first step in madly letting go of your own. </p>
              <p> The amazing thing about ideas is that it takes zero time for one to change your paradigm. It happens in time, but takes no time, like an inter-dimensional wormhole, one entangled particle in your brain mirroring its twin across a chasm even more vast than the universe — the chasm between two minds. </p>
              <p> And that is the secret power of Read It Later apps. </p>
              <p>
                  <strong>P.S.</strong> <em>My latest setup has 2 parts: 1) using</em> <a href="https://ifttt.com/recipes/182352-instpaper-to-evernote" target="_blank" rel="noopener noreferrer"><em>this IFTTT recipe</em></a> <em>to automatically send “liked” articles in Instapaper to an Evernotebook called “Instapaper favorites” (for things I want to save in general but don’t have any particular notes on), and 2)</em> <a href="https://ifttt.com/recipes/368728-send-instapaper-highlights-to-evernote-default-notebook" target="_blank" rel="noopener noreferrer"><em>this recipe</em></a> <em>that saves anything I highlight in Instapaper to a new note, and sends it to the Evernote default notebook where I can decide where it belongs later (for when I have specific passages I want to extract)</em>
              </p>
              <hr>
              <p><em><strong>Subscribe below to receive free weekly emails with our best new content, or follow us on <a href="https://twitter.com/fortelabs/">Twitter</a>, <a href="https://www.facebook.com/fortelabs/">Facebook</a>, <a href="https://www.instagram.com/fortelabsco/">Instagram</a>, <a href="https://www.linkedin.com/in/tiagoforte/">LinkedIn</a>, or <a href="https://www.youtube.com/user/simulacrumsquared/">YouTube</a>. Or become a <a href="https://fortelabs.co/about-praxis/">Praxis member</a> to receive instant access to our full collection of members-only posts.</strong></em></p>
              <form action="https://app.convertkit.com/forms/1022693/subscriptions" method="post" data-sv-form="1022693" data-uid="c4407a2f08" data-format="inline" data-version="5" min-width="400 500 600 700">
                  <div data-style="full">
                      <p><img src="https://proxy-prod.omnivore-image-cache.app/0x0,sqWznQTJOu8MLbN_KvWQgeSkhwNPdvLRWTom32MHspAE/https://embed.filekitcdn.com/e/oP2q5jihy5hj474ZFtvPjw/pkwszL6w2hsV41vY6MLfdR"></p>
                      <p> Join the Forte Labs Newsletter </p>
                      <p> Join 50,000+ people receiving my best ideas on learning, productivity &amp; knowledge management every Tuesday. I'll send you my Top 10 All-Time Articles right away as a thank you. </p>
                  </div>
              </form>
          </div>
          <div data-widget_type="post-info.default" data-element_type="section" data-id="60a66d24">
              <ul>
                  <li itemprop="about">
                      <span><span>POSTED IN:</span> <span><a href="https://fortelabs.co/blog/category/topics/building-a-second-brain/">Building a Second Brain</a>, <a href="https://fortelabs.co/blog/category/topics/curation/">Curation</a>, <a href="https://fortelabs.co/blog/category/types/free/">Free</a>, <a href="https://fortelabs.co/blog/category/topics/note-taking/">Note-taking</a>, <a href="https://fortelabs.co/blog/category/topics/technology/">Technology</a>, <a href="https://fortelabs.co/blog/category/topics/workflow/">Workflow</a></span></span>
                  </li>
              </ul>
          </div>
      </div>
  </DIV>

raw_content:
  ---
  id: 85f31880-6935-11ee-86f4-f7cb87ce263e
  title: |
    The Secret Power of ‘Read It Later’ Apps
  status: ARCHIVED
  tags:
    - read-later
  date_added: 2023-10-12 16:28:29
  url_omnivore: |
    https://omnivore.app/me/the-secret-power-of-read-it-later-apps-18b255ca194
  url_original: |
    https://fortelabs.co/blog/the-secret-power-of-read-it-later-apps
  ---

  # The Secret Power of ‘Read It Later’ Apps

  ## Highlights

  > People who cling to paradigms (which means just about all of us) take one look at the spacious possibility that everything they think is guaranteed to be nonsense and pedal rapidly in the opposite direction. Surely there is no power, no control, no understanding, not even a reason for being, much less acting, in the notion or experience that there is no certainty in any worldview. But, in fact, everyone who has managed to entertain that idea, for a moment or for a lifetime, has found it to be the basis for radical empowerment. **If no paradigm is right, you can choose whatever one will help to achieve your purpose.** 

  > It is in this space of mastery over paradigms that people throw off addictions, live in constant joy, bring down empires, get locked up or burned at the stake or crucified or shot, and **have impacts that last for millennia**. 

  > In the end, it seems that mastery has less to do with pushing leverage points than it does with **strategically, profoundly, madly letting go.** 

  > [!note]
  > Read again and understand it better

  [source](https://omnivore.app/me/the-secret-power-of-read-it-later-apps-18b255ca194#42edb9e2-3799-430e-bbff-db1170ebbad1) 

  ---

  ## Original

  <DIV class="page" id="readability-page-1">
      <div>
          <div data-widget_type="theme-post-content.default" data-element_type="widget" data-id="5d9db16f">
              <figure>
                  <figure>
                      <img src="https://proxy-prod.omnivore-image-cache.app/900x380,sXXV7f9Au3y4tF2zoOnAQ1G8Xnf3Uh8IRqZcfVY3HoSY/https://i0.wp.com/cdn-images-1.medium.com/max/2000/1*rPXwIczUJRCE54v8FfAHGw.jpeg?resize=900%2C380&ssl=1" alt="" width="900" height="380" data-recalc-dims="1">
                      <figcaption> Image via Nuno Cruz </figcaption>
                  </figure>
                  <figcaption></figcaption>
              </figure>
              <p>
                  <em>By Tiago Forte of</em> <a href="http://fortelabs.co/" target="_blank" rel="noopener noreferrer"><em>Forte Labs</em></a>
              </p>
              <p> At the end of 2014 I received an email informing me that I had read over a million words in the ‘read it later’ app Pocket over the course of the year. </p>
              <p>
                  <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/358x377,ssfZXhGmomcxzcD-VkrtnzD-6vk-rI8GUuXk4JlRMX2s/https://i0.wp.com/cdn-images-1.medium.com/max/600/1*Hd7YIhMrS5lldl1gDU8iWQ.png?resize=358%2C377&ssl=1" width="358" height="377" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/600/1*Hd7YIhMrS5lldl1gDU8iWQ.png?resize=358%2C377&ssl=1" data-recalc-dims="1">
              </p>
              <p> This number by itself isn’t impressive, considering our daily intake of information is equivalent to <a href="http://bits.blogs.nytimes.com/2009/12/09/the-american-diet-34-gigabytes-a-day/" target="_blank" rel="noopener noreferrer">34 gigabytes</a>, 100,000 words, or <a href="http://www.nytimes.com/2014/08/10/opinion/sunday/hit-the-reset-button-in-your-brain.html?smprod=nytcore-iphone&smid=nytcore-iphone-share" target="_blank" rel="noopener noreferrer">174 newspapers</a>, depending on who you ask. </p>
              <p> What makes this number significant (in my view) is that it represents 22 books’-worth of long-form reading that would not have happened without a system in place. </p>
              <p> We’ve made a habit of filling those hundred random spaces in our day with glances at Twitter, Instagram, and Facebook. But those glances have slowly become stares, and those stares have grown to encompass a major portion of our waking hours. </p>
              <p> The end result is the same person who spends 127 hours per year on Instagram (the <a href="http://www.businessinsider.com/people-spend-21-minutes-per-day-on-instagram-2014-10" target="_blank" rel="noopener noreferrer">global average</a>) complains that she has “no time” for reading. </p>
              <p> The fact is, <strong>the ability to read is becoming a source of competitive advantage in the world</strong>. </p>
              <p> I’m not talking about basic literacy. What has become exceedingly scarce (and therefore, valuable) is the physical, emotional, attentional, and mental capability to sit quietly and direct focused attention for sustained periods of time. </p>
              <p> A <a href="https://hbr.org/2005/01/overloaded-circuits-why-smart-people-underperform" target="_blank" rel="noopener noreferrer">recent article</a> in the Harvard Business Review puts a name to this new neurological phenomenon: Attention Deficit Trait. Basically, the terms ADD and ADHD are falling out of use because effectively the entire population fits the diagnostic criteria. It’s not a condition anymore, it’s a <em>trait</em> — the inherent and unavoidable experience of modern life characterized by “distractibility, inner frenzy, and impatience.” </p>
              <form action="https://app.convertkit.com/forms/1022733/subscriptions" method="post" data-sv-form="1022733" data-uid="308d24305b" data-format="inline" data-version="5" min-width="400 500 600 700">
                  <div data-style="full">
                      <p><img src="https://proxy-prod.omnivore-image-cache.app/0x0,sCKKsi_KsyhXjSRvn7hvFRJEjLKQkBiJU0agepFckkI4/https://embed.filekitcdn.com/e/oP2q5jihy5hj474ZFtvPjw/3edWskTMDwFhuVEtauLv5X"></p>
                      <p> Start Building Your Second Brain </p>
                      <p> Subscribe below to learn more about the next cohort of the Building a Second Brain course </p>
                  </div>
              </form>
              <h3> Read It.&nbsp;Later. </h3>
              <p> Before I explain the massive, under-appreciated benefits these apps provide, and how to use them most effectively, a quick primer in case you’re unfamiliar. </p>
              <p> So-called “Read It Later” apps give you the ability to “save” content on the web for later consumption. They are essentially advanced bookmarking apps, pulling in the content from a page to be read or viewed in a cleaner, simpler visual layout. </p>
              <p> On top of that core function they add features like favoriting, tags, search, cross-platform syncing, recommended content, offline viewing, and archiving. The most popular options are: </p>
              <ul>
                  <li>
                      <a href="https://www.instapaper.com/" target="_blank" rel="noopener noreferrer">Instapaper</a>
                  </li>
                  <li>
                      <a href="https://getpocket.com/a/" target="_blank" rel="noopener noreferrer">Pocket</a>
                  </li>
                  <li>
                      <a href="https://chrome.google.com/webstore/detail/send-to-kindle-for-google/cgdjpilhipecahhcilnafpblkieebhea?hl=en" target="_blank" rel="noopener noreferrer">Send to Kindle</a> (for sending articles to your Kindle)
                  </li>
                  <li>
                      <a href="https://feedly.com/i/welcome" target="_blank" rel="noopener noreferrer">Feedly</a> (for those RSS fans)
                  </li>
                  <li>and <a href="https://support.apple.com/en-us/HT200294" target="_blank" rel="noopener noreferrer">Safari’s built-in “Add to Reading List” feature</a>. </li>
              </ul>
              <p> The app I use, Pocket, adds a button to the Chrome toolbar that looks like this: </p>
              <figure>
                  <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/130x58,syYiQlMJ3hP3JyGS_AYz8D5Oq9FZ1QxR2ef29Fia7Ht0/https://i0.wp.com/cdn-images-1.medium.com/max/800/1*Lk-DPDFjLslM4h2GAv8KIA.png?resize=130%2C58&ssl=1" alt="" width="130" height="58" data-image-id="1*Lk-DPDFjLslM4h2GAv8KIA.png" data-width="130" data-height="58" data-recalc-dims="1">
                  <figcaption> Chrome toolbar </figcaption>
              </figure>
              <p>
                  <em>Note: at time of writing, I was using Pocket, but have recently switched to Instapaper because of Pocket’s “Share to Evernote” bug mentioned below.</em>
              </p>
              <p> Clicking the button while viewing a webpage turns the button pink, and saves the page to your “list.” Navigating to getpocket.com, or opening the Pocket app on your computer or mobile device shows you a list of everything you’ve saved: </p>
              <figure>
                  <figure>
                      <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/800x507,smjUUrOduWv7T0bCSx9oh_Ag0Yasq_HyFfgAoDXryOcM/https://i0.wp.com/cdn-images-1.medium.com/max/800/1*wkKD4oP3-kWJERxmBBI2cA.png?resize=800%2C507&ssl=1" alt="" width="800" height="507" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/800/1*wkKD4oP3-kWJERxmBBI2cA.png?resize=800%2C507&ssl=1" data-recalc-dims="1">
                      <figcaption> Mac desktop client </figcaption>
                  </figure>
                  <p> You can also view your list in a “tile” layout on the web, making it into essentially a personalized magazine. Personalized, in this case, not by a cold, unfeeling algorithm, but by your past self: </p>
              </figure>
              <figure>
                  <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/800x478,sFjAZnzFiVzsVRlXF9QyD5dq_jzT69dsyyp3Bb-k5ZGU/https://i0.wp.com/cdn-images-1.medium.com/max/800/1*ug06oorCHGFpEzMyl9kfhg.png?resize=800%2C478&ssl=1" alt="" width="800" height="478" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/800/1*ug06oorCHGFpEzMyl9kfhg.png?resize=800%2C478&ssl=1" data-recalc-dims="1">
                  <figcaption> Web browser “tile” view </figcaption>
              </figure>
              <p> Marking an item as read in one version of the app will quickly sync across all platforms. It will also save your current progress on one device, so you can continue where you left off on a different device (for those longer pieces). </p>
              <h3> The highest leverage point in a system is in the intake — the initial assumptions and paradigms that inform its development </h3>
              <p> I’ve <a href="https://medium.com/forte-labs/how-to-use-evernote-for-your-creative-workflow-f048f0aa3ed1" target="_blank" rel="noopener noreferrer">written previously</a> about how to use Evernote as a general reference filing system, not only to stay organized but to inspire creativity. </p>
              <p> But I didn’t address a key question when creating any workflow: how and from where does information enter the system? The quality of a workflow’s outputs is fundamentally limited by the quality of its inputs. Garbage in, garbage out. </p>
              <p> There are A LOT of ways we could talk about to improve the quality of the information you consume. But I want to focus now on the two that Read It Later apps can help with: </p>
              <ol>
                  <li>Increasing consumption of long-form content (which is presumably more substantive) </li>
                  <li>Better filtering </li>
              </ol>
              <h3> #1 | Increasing Consumption of Long-Form Content </h3>
              <p> In order to consume good ideas, first you have to consume many ideas. </p>
              <p> This is the fundamental flaw in the “information diet” advice from Tim Ferriss and others: strong filters work best on a larger initial flow. Using your friends as your primary filter for new ideas ensures you remain the dumbest person in the room, and contribute nothing to the conversation. </p>
              <p> The problem is that our entire digital world is geared toward snackable chunks of low-grade information — photos, tweets, statuses, snaps, feeds, cards, etc. To fight the tide you have to redesign your environment — you have to create affordances. </p>
              <blockquote>
                  <p> Affordance (n.): a relation between an object and an organism that, through a collection of stimuli, <strong>affords the opportunity for that organism to perform an action.</strong>
                  </p>
              </blockquote>
              <p> Let’s look at the 4 main barriers to consuming long-form content, and the affordances that Read It Later apps use to overcome them: </p>
              <h4> 1. App performance </h4>
              <p> We know that the most infinitesimal delays in the loading time of a webpage will dramatically impact how many people stay on the page. <a href="https://blog.kissmetrics.com/speed-is-a-killer/" target="_blank" rel="noopener noreferrer">Google found</a> that increasing the number of results per page from 10 to 30 took only half a second longer, but <strong>caused 20% of people to drop off</strong>. </p>
              <p> If you think your behavior is not affected by such trivialities, think again. Even on a subconscious level, you will resist even opening apps that don’t reward you with snappy response times. Which is a problem because the apps most people turn to for reading are either ebook apps like iBooks and Kindle, or web browsers like Chrome and Safari. I’m not sure which category is slower, but they’re both abysmal. </p>
              <p> Meanwhile, your snaps and instas refresh at precog-like speeds. </p>
              <p> Read It Later apps, by slurping in content (articles, videos, slideshows) into a clean interface, eliminate the culprits — ads, site analytics, popups — all the stuff you don’t care about. </p>
              <p> A <a href="http://www.nytimes.com/2015/10/01/technology/personaltech/ad-blockers-mobile-iphone-browsers.html" target="_blank" rel="noopener noreferrer">recent analysis</a> by The New York Times of 3 leading ad-blockers (which have the same effect) measured a <strong>21% increase in battery life</strong>, and in the most egregious case of Boston.com, a drop in loading time <strong>from 33 seconds to 7 seconds</strong>. Many other leading sites were not that far off. </p>
              <figure>
                  <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/563x365,sFABKoLfIzSHIwYCEllG7t2i-uxewZOlI9ALe6-KJLSs/https://i0.wp.com/cdn-images-1.medium.com/max/800/1*vfmR5LKEjfx-0Lx-kWb4bw.png?resize=563%2C365&ssl=1" alt="" width="563" height="365" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/800/1*vfmR5LKEjfx-0Lx-kWb4bw.png?resize=563%2C365&ssl=1" data-recalc-dims="1">
                  <figcaption> Effect of ad-blocker on loading times of Boston.com, via <a href="http://www.nytimes.com/2015/10/01/technology/personaltech/ad-blockers-mobile-iphone-browsers.html" target="_blank" rel="noopener noreferrer">NYT</a>
                  </figcaption>
              </figure>
              <p> Yeah that’s pretty much an eternity in mobile behavior land. </p>
              <h4> 2. Matching content with your&nbsp;context </h4>
              <figure>
                  <figure>
                      <img loading="lazy" src="https://proxy-prod.omnivore-image-cache.app/507x676,sxG7LpsFKxnoEDDIOpwI06zJ3e8CoE30WZseOtRT8u6s/https://i0.wp.com/cdn-images-1.medium.com/max/600/1*N15BlTDGq8kTc7HdGUmShA.png?resize=507%2C676&ssl=1" alt="" width="507" height="676" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/600/1*N15BlTDGq8kTc7HdGUmShA.png?resize=507%2C676&ssl=1" data-recalc-dims="1">
                      <figcaption> My Pocket list on iPad </figcaption>
                  </figure>
              </figure>
              <p> Much of the time when we pull out our phone, we’re looking for something to match our mood (or energy, or time available, or other context). We use our constellation of shiny apps as mood regulators and self-soothers, as time-fillers and boredom-suppressors, for better or worse. </p>
              <p> So you need a little entertainment, and you open…an ebook? Yeah right. Monochrome pages don’t attract you. They don’t draw you in. </p>
              <p> Pocket gives reading some of this stimulatory pleasure by laying out your list in a pleasing, magazine-style layout (at left). Not only is it generally attractive, but it gives you that same magazine-flipping pleasure of engaging with something that interests you <em>right in that moment</em>. </p>
              <p> David Allen puts it this way: </p>
              <blockquote>
                  <p> “It’s practical to have organized reading material at hand when you’re on your way to a meeting that may be starting late, a seminar that may have a window of time when nothing is going on, a dentist appointment that may keep you waiting, or, of course, if you’re going to have some time on a train or plane. Those are all great opportunities to browse and work through that kind of reading. People who don’t have their Read/Review material organized can waste a lot of time, since <strong>life is full of weird little windows when it could be used.</strong>” </p>
              </blockquote>
              <p> You’re not fighting your impulses forcing yourself to read a dense tome after a long work day. Willpower preserved ✓ </p>
              <h4> 3. Asynchronous reading </h4>
              <p> This is one of the least understood barriers to reading in our fragmented timescape. </p>
              <p> There is something deeply, deeply unsatisfying about repeatedly starting something and not finishing it. This is what we experience all day at work, being continuously interrupted by a stream of “emergencies.” The last thing we want after a stressful day starved of wins is to fail even at reading an article. </p>
              <p> The <a href="https://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity-ebook/dp/B00KWG9M2E/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=fortelabs07-20&linkId=fe6db72d8e5bbb38b1ea43241924f7e9&language=en_US" target="_blank" rel="noopener noreferrer">2015 revised edition (affiliate link)</a> of <em>Getting Things Done</em> <a href="http://users.wfu.edu/masicaej/MasicampoBaumeister2011JPSP.pdf" target="_blank" rel="noopener noreferrer">cites the work</a> of Dr. Roy Baumeister, who has shown that “uncompleted tasks take up room in the mind, which then limits clarity and focus.” The risk of cognitive dissonance at not being able to finish a long article (much less a book) keep us from even beginning it. </p>
              <p> Read It Later apps address this by simply saving your progress in a given article, allowing you to pick back up at a different time, or on a different device, and clearly marking items as “read” once you’re finished. </p>
              <h4> 4. Focus </h4>
              <p> A common response when I recommend people adopt <em>yet another</em> category of apps is “Why don’t I just use Evernote?” Or whatever app they’re using for general reference or task management. Evernote even makes a Chrome extension called <a href="https://evernote.com/clearly/" target="_blank" rel="noopener noreferrer">Clearly</a> for reading online content and <a href="https://evernote.com/webclipper/?downloaded" target="_blank" rel="noopener noreferrer">Web Clipper</a> for saving it. </p>
              <p> It is a question of focus. Why don’t you use your task manager to keep track of content (i.e. “Read this article”)? Because the last thing you want to see when you cuddle up with your hot cocoa for some light reading is the hundreds of tasks you’re not doing. </p>
              <p> Likewise, the last thing you want to see when you (finally!) have time to read is the thousands of notes you’ve collected from every corner of the universe, only some of which you haven’t read, only some of which you <em>want</em> to read, only some of which are <em>meant</em> to be read. </p>
              <blockquote>
                  <p> Actionable info ≠ Reference info ≠ To Read&nbsp;pile </p>
              </blockquote>
              <p> Ergo, </p>
              <blockquote>
                  <p> Task manager ≠ Evernote ≠&nbsp;Pocket </p>
              </blockquote>
              <h3> #2 | Better filtering </h3>
              <p> Now you’ve got the funnel filled. It’s time to narrow it. </p>
              <p> Most advice on this topic focuses on being more selective about your sources. Cutting out the email digests that just throw you off track, unfollowing people posting crap, or even <a href="https://chrome.google.com/webstore/detail/ad-replacer-turn-spammy-a/eckeeomlpacfhejaameopnmgipghaoam" target="_blank" rel="noopener noreferrer">directly replacing ads with quality sources</a>. </p>
              <p> The problem is that this assumes you are always at your best, always at 100% self-discipline, totally aligned with your life values, priorities ship shape. </p>
              <p> Yeah. </p>
              <p> In the moment, with your blood sugar at a negative value and every fiber of your being screaming for a dopamine hit, <em>of course</em> that Buzzfeed article seems like the best conceivable use of your time. If you think you can permanently seal off your life from the celebrity news, content marketing, and spammy friends that dominate the web, the NSA has a job for you. </p>
              <p> Procrastination is the most powerful force in the universe. <em>It will find a way.</em>
              </p>
              <p> I have a different approach: <strong>waiting periods</strong>. Every time I come across something I may want to read/watch, I’m totally allowed to. No limits! The only requirement is I have to save it to Pocket, and then choose to consume it at a later time. </p>
              <p> I’ve found that even just clicking a link to open the URL, in order to save it to Pocket, is too much of a temptation. The first glimpse of a cute GIF and I’m off to Reddit, completely forgetting my morning email session. </p>
              <p> So instead I just <strong>command-click</strong> every link I’m interested in (or <strong>right-click &gt; Open link in new tab</strong>), which opens each link in a separate tab <em>without taking me to that tab</em>. </p>
              <p> Here’s what a typical Monday morning link-fest looks like, just from email: </p>
              <p>
                  <img src="https://proxy-prod.omnivore-image-cache.app/0x0,s6KkWg-OdGcQNuvOShcztrmaslDz3Cm5o9rD1eDOxxRc/https://i0.wp.com/cdn-images-1.medium.com/max/2000/1*cLy09F0SPJJmi0WfazXi3Q.png?w=900&ssl=1" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/2000/1*cLy09F0SPJJmi0WfazXi3Q.png?w=900&ssl=1" data-recalc-dims="1">
              </p>
              <p> Then, because I’m still in <strong>collection mode</strong>, not in read mode, I cycle through each tab one at a time (<strong>shift-command-}</strong> or <strong>control-tab</strong>), saving each one to Pocket using the shortcut I set up: <strong>command-p</strong> (chosen for irony and to avoid inadvertent printing). </p>
              <p> There’s only one rule: <strong>NO READING OR WATCHING!</strong>
              </p>
              <p> Bringing this back to filtering, not only am I saving time and preserving focus by batch processing both the collection and the consumption of new content, I’m <strong>time-shifting the curation process</strong> to a time better suited for reading, and (most critically) removed from the temptations, stresses, and biopsychosocial hooks that first lured me in. </p>
              <p> I am always amazed by what happens: no matter how stringent I was in the original collecting, no matter how certain I was that this thing was worthwhile, I <strong>regularly eliminate 1/3 of my list before reading</strong>. The post that looked SO INTERESTING when compared to that one task I’d been procrastinating on, in retrospect isn’t even something I care about. </p>
              <p> What I’m essentially doing is creating a buffer. Instead of pushing a new piece of info through from intake to processing to consumption without any scrutiny, I’m creating a pool of options drawn from a longer time period, which allows me to make decisions from a higher perspective, where those decisions are much better aligned with what truly matters to me. </p>
              <blockquote>
                  <p> Remove any feature, process, or effort that does not directly contribute to the learning you seek. — Eric Ries, The Leader’s Guide </p>
              </blockquote>
              <p> Here’s a visual of how this works, from my Pocket analytics: </p>
              <p>
                  <img src="https://proxy-prod.omnivore-image-cache.app/0x0,stGbUueP6GB86OSUIreA-v1CvD10SF4A-ecLznSBpGQc/https://i0.wp.com/cdn-images-1.medium.com/max/800/1*YRExWXbhPma8-AcWP_KSrw.png?w=900&ssl=1" data-src="https://i0.wp.com/cdn-images-1.medium.com/max/800/1*YRExWXbhPma8-AcWP_KSrw.png?w=900&ssl=1" data-recalc-dims="1">
              </p>
              <p> You can see that I save more things toward the beginning of the week and the weekend, and then draw down the buffer more towards the end of the week. </p>
              <p>
                  <strong><em>/sidebar</em></strong>
              </p>
              <p> Imagine for a second if we could do this with everything. On Saturday morning, well-rested and wise, you retroactively decide everything you <em>want to have done</em> during the previous week. Anything you decide was not worthwhile, you <em>get that time back</em>. </p>
              <p> I experienced this recently with email — after returning from a 10-day meditation course during which I was completely off the grid, I was surprised to notice it took only 1.9 hours to process almost 2 weeks’ worth of email (I track these things). I normally spend on average 2.19 hours on email <strong>per week</strong> —<em> what happened to those extra 2.48 hours?!</em> Besides the gains from batch processing such a large quantity of emails at once, I believe the main factor was that I evaluated my emails from a longer time horizon and higher perspective, more correctly judging whether something was worth responding to or acting on. </p>
              <p> If only this method would scale. </p>
              <p>
                  <strong>/end_sidebar</strong>
              </p>
              <h3> Mo’ apps, mo’&nbsp;problems </h3>
              <p> There are drawbacks, which I’ve glossed over until now. The two main ones: </p>
              <h4> 1. Formatting issues </h4>
              <p> Many sites, including popular ones, aren’t presented correctly within the Pocket app (and I imagine others). There’s always the option of opening the link in a web browser, but this eliminates all the positive affordances and then some. If there wasn’t so much value provided otherwise, this would be a deal breaker. </p>
              <p> The worst part is that, sometimes, the article is cut off or links don’t appear <em>without any indication that something is amiss</em>. On Tim Ferriss’ blog, for example, links (of which there are many) are simply removed. </p>
              <p> One solution is to tag problematic items with “desktop” so you know that these need to be read/viewed on your computer. </p>
              <h4> 2. Dependence </h4>
              <p> Every productivity tool eventually becomes a victim of its own success. In this case, I’ve become so dependent on Pocket that bugs really affect me. </p>
              <p> For example, the Share to Evernote feature, which I use to highlight and save key passages, has been broken for at least a month. My hysterical tweets to Pocket Support have been answered but not resolved. </p>
              <p> You wouldn’t think such a minor feature within one app could be so disruptive, but it has been massively so. This simple workflow: </p>
              <p>
                  <em>Highlight &gt; Share &gt; Share to Evernote &gt; Save</em>
              </p>
              <p> …has been replaced with this: </p>
              <p>
                  <em>Highlight &gt; Copy &gt; Switch to Evernote &gt; New note &gt; Paste &gt; Switch back to Pocket &gt; Share &gt; More &gt; Copy URL &gt; Switch back to Evernote &gt; Paste URL &gt; Switch back to Pocket</em>
              </p>
              <p> Worse, I often forget to go back and grab the URL, so I have to hunt it down at some later date. </p>
              <p>
                  <strong>/rant_over</strong>
              </p>
              <h3> Progress Traps and Paradigms </h3>
              <p> The amount of information in the world is a <a href="https://en.wikipedia.org/wiki/Progress_trap" target="_blank" rel="noopener noreferrer">progress trap</a>. Too much stuff to read is just as limiting as too little. </p>
              <p> As the inimitable Venkatesh Rao <a href="http://breakingsmart.com/season-1/" target="_blank" rel="noopener noreferrer">has written</a>, we’re moving from a world of <strong>containers</strong> (companies, departments, semesters, packages, silos) to a world of <strong>streams</strong> (social networks, info feeds, main streets of thriving cities, Twitter). Problems and opportunities alike resist having neat little boxes drawn around them. There’s way too much to absorb. Way too much to even guess what you don’t know. </p>
              <p> As the pace of change in the world accelerates, we double down on all the methods that created the problems in the first place — more planning, more forecasting, more control and risk management. We’re left with massive institutions that nobody trusts, that are simultaneously brittle and too-big-to-fail, creating precarity at every level of the socioeconomic pyramid. </p>
              <p> What would it look like instead to solve problems (and explore opportunities) in a way that gets better the faster we go? </p>
              <p> I can’t do justice to Rao’s blog series linked above (it’s in 20 parts — may want to save it for later&nbsp;;), but the first step he proposes is “exposing yourself to as many different diverse streams as possible.” </p>
              <p> When you’re immersed in a stream, the faster it goes, the more novel perspectives and ideas you’re exposed to. You develop an <a href="http://rogerlmartin.com/lets-read/the-opposable-mind" target="_blank" rel="noopener noreferrer">opposable mind</a> — the ability to juggle and play around with different perspectives on any issue, instead of seeing it through one lens. </p>
              <p> Increasingly, the only metric that will matter in your journey of personal growth will be <strong>ROL: Rate-of-Learning</strong>. We’ve heard a lot in recent years about the importance of hands-on learning and practical experimentation. We get it. Burying your head in a book by itself gets you nowhere. </p>
              <p> But the pendulum is swinging too far in that direction. Yes, you can be <em>too</em> action-oriented. Ideas, while cheap when compared to effective execution, are still more valuable than many of the other things we spend time on. </p>
              <p> There’s another way to learn faster: assimilate and build on the ideas of others. Sure, you won’t understand every tacit lesson their experience gave them, but you can incorporate many of them, and in a fraction of the time it would take you to make every mistake yourself. </p>
              <p> Ideas are high leverage agents. They become more so when arranged in highly cross-referenced networks. The only tool we have available that is capable of both creating and accessing these networks on demand is the human brain. </p>
              <p> I lied before. There is one form of leverage even more powerful than the initial assumptions and paradigms that inform a system’s development: the <strong>ability to transcend paradigms</strong>. </p>
              <p> I can’t put it any better than Donella Meadows, in her <a href="http://www.donellameadows.org/archives/leverage-points-places-to-intervene-in-a-system/" target="_blank" rel="noopener noreferrer">seminal piece</a> on complex systems: </p>
              <blockquote>
                  <p> People who cling to paradigms (which means just about all of us) take one look at the spacious possibility that everything they think is guaranteed to be nonsense and pedal rapidly in the opposite direction. Surely there is no power, no control, no understanding, not even a reason for being, much less acting, in the notion or experience that there is no certainty in any worldview. But, in fact, everyone who has managed to entertain that idea, for a moment or for a lifetime, has found it to be the basis for radical empowerment. <strong>If no paradigm is right, you can choose whatever one will help to achieve your purpose.</strong>
                  </p>
              </blockquote>
              <blockquote>
                  <p> It is in this space of mastery over paradigms that people throw off addictions, live in constant joy, bring down empires, get locked up or burned at the stake or crucified or shot, and <strong>have impacts that last for millennia</strong>. </p>
              </blockquote>
              <blockquote>
                  <p> In the end, it seems that mastery has less to do with pushing leverage points than it does with <strong>strategically, profoundly, madly letting go.</strong>
                  </p>
              </blockquote>
              <p> Reading is the closest thing we have to thinking another’s thoughts. It’s long and sometimes ponderous, but that work is required to wrap yourself in another person’s paradigm. Which is the first step in madly letting go of your own. </p>
              <p> The amazing thing about ideas is that it takes zero time for one to change your paradigm. It happens in time, but takes no time, like an inter-dimensional wormhole, one entangled particle in your brain mirroring its twin across a chasm even more vast than the universe — the chasm between two minds. </p>
              <p> And that is the secret power of Read It Later apps. </p>
              <p>
                  <strong>P.S.</strong> <em>My latest setup has 2 parts: 1) using</em> <a href="https://ifttt.com/recipes/182352-instpaper-to-evernote" target="_blank" rel="noopener noreferrer"><em>this IFTTT recipe</em></a> <em>to automatically send “liked” articles in Instapaper to an Evernotebook called “Instapaper favorites” (for things I want to save in general but don’t have any particular notes on), and 2)</em> <a href="https://ifttt.com/recipes/368728-send-instapaper-highlights-to-evernote-default-notebook" target="_blank" rel="noopener noreferrer"><em>this recipe</em></a> <em>that saves anything I highlight in Instapaper to a new note, and sends it to the Evernote default notebook where I can decide where it belongs later (for when I have specific passages I want to extract)</em>
              </p>
              <hr>
              <p><em><strong>Subscribe below to receive free weekly emails with our best new content, or follow us on <a href="https://twitter.com/fortelabs/">Twitter</a>, <a href="https://www.facebook.com/fortelabs/">Facebook</a>, <a href="https://www.instagram.com/fortelabsco/">Instagram</a>, <a href="https://www.linkedin.com/in/tiagoforte/">LinkedIn</a>, or <a href="https://www.youtube.com/user/simulacrumsquared/">YouTube</a>. Or become a <a href="https://fortelabs.co/about-praxis/">Praxis member</a> to receive instant access to our full collection of members-only posts.</strong></em></p>
              <form action="https://app.convertkit.com/forms/1022693/subscriptions" method="post" data-sv-form="1022693" data-uid="c4407a2f08" data-format="inline" data-version="5" min-width="400 500 600 700">
                  <div data-style="full">
                      <p><img src="https://proxy-prod.omnivore-image-cache.app/0x0,sqWznQTJOu8MLbN_KvWQgeSkhwNPdvLRWTom32MHspAE/https://embed.filekitcdn.com/e/oP2q5jihy5hj474ZFtvPjw/pkwszL6w2hsV41vY6MLfdR"></p>
                      <p> Join the Forte Labs Newsletter </p>
                      <p> Join 50,000+ people receiving my best ideas on learning, productivity &amp; knowledge management every Tuesday. I'll send you my Top 10 All-Time Articles right away as a thank you. </p>
                  </div>
              </form>
          </div>
          <div data-widget_type="post-info.default" data-element_type="section" data-id="60a66d24">
              <ul>
                  <li itemprop="about">
                      <span><span>POSTED IN:</span> <span><a href="https://fortelabs.co/blog/category/topics/building-a-second-brain/">Building a Second Brain</a>, <a href="https://fortelabs.co/blog/category/topics/curation/">Curation</a>, <a href="https://fortelabs.co/blog/category/types/free/">Free</a>, <a href="https://fortelabs.co/blog/category/topics/note-taking/">Note-taking</a>, <a href="https://fortelabs.co/blog/category/topics/technology/">Technology</a>, <a href="https://fortelabs.co/blog/category/topics/workflow/">Workflow</a></span></span>
                  </li>
              </ul>
          </div>
      </div>
  </DIV>

metadata:
  {"date_added":"2023-10-12 16:28:29","id":"85f31880-6935-11ee-86f4-f7cb87ce263e","status":"ARCHIVED","tags":["read-later"],"title":"The Secret Power of ‘Read It Later’ Apps\n","url_omnivore":"https://omnivore.app/me/the-secret-power-of-read-it-later-apps-18b255ca194\n","url_original":"https://fortelabs.co/blog/the-secret-power-of-read-it-later-apps\n"}


