# notes

path: Readwise/Dependency Injection, the Best Pattern.md
sortable_path: ReadwiseDependency Injection, the Best Pattern.md
title: Dependency Injection, the Best Pattern
lead: ![rw-book-cover](https://i.ytimg.com/vi/J1f5b4vcxCQ/maxresdefault.jpg)
checksum: db3e71cb72c62cbf9bbac5d321e3a3ed72148fc91466a9edac182389ef50f34e
created: 2024-09-23 00:21:29.876486092+00:00
modified: 2024-09-23 00:20:45.477655578+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/J1f5b4vcxCQ/maxresdefault.jpg)

  ## Metadata
  - Author: [[CodeAesthetic]]
  - Full Title: Dependency Injection, the Best Pattern
  - Category: #articles
  - URL: https://www.youtube.com/watch?v=J1f5b4vcxCQ
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Dependency%20Injection%2C%20the%20Best%20Pattern
  > [!tldr]
  > The text explains how to use dependency injection to build an attachment service that uploads files. By creating an interface for storage and injecting it into the request handler, the code becomes simpler and less error-prone. This approach also allows for easy testing with mock implementations.

  ## Highlights
  have a piece of code which uses another piece of code, and instead of using that code directly, it's passed in instead. [View Highlight](https://read.readwise.io/read/01j8b4fbn7xc4day63pshpds1t))

  Injection basically just lets us pick and choose from our compatible puzzle pieces and then slot them in when we need them. [View Highlight](https://read.readwise.io/read/01j8b51ysp8pj6g1sk4cc94qzp))

  We can use injection to inject fake or mock implementations instead, which basically means we can slice and dice up our architecture to isolate sections of code during testing. [View Highlight](https://read.readwise.io/read/01j8b54d9xcz7p57m37apc92xm))

  A natural side effect of having nice code is that it's easy to test without needing to hack around the code structure. If you find yourself asking, how can I test a private method? Or I need to set some internal variable in order to test. That's a signal that you maybe need to pull some stuff out, that you need to isolate some part of it by separating it and injecting it instead. [View Highlight](https://read.readwise.io/read/01j8b57129cky28vhfsq2fd38y))

raw_content:
  # Dependency Injection, the Best Pattern

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

  ## Metadata
  - Author: [[CodeAesthetic]]
  - Full Title: Dependency Injection, the Best Pattern
  - Category: #articles
  - URL: https://www.youtube.com/watch?v=J1f5b4vcxCQ
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Dependency%20Injection%2C%20the%20Best%20Pattern
  > [!tldr]
  > The text explains how to use dependency injection to build an attachment service that uploads files. By creating an interface for storage and injecting it into the request handler, the code becomes simpler and less error-prone. This approach also allows for easy testing with mock implementations.

  ## Highlights
  have a piece of code which uses another piece of code, and instead of using that code directly, it's passed in instead. [View Highlight](https://read.readwise.io/read/01j8b4fbn7xc4day63pshpds1t))

  Injection basically just lets us pick and choose from our compatible puzzle pieces and then slot them in when we need them. [View Highlight](https://read.readwise.io/read/01j8b51ysp8pj6g1sk4cc94qzp))

  We can use injection to inject fake or mock implementations instead, which basically means we can slice and dice up our architecture to isolate sections of code during testing. [View Highlight](https://read.readwise.io/read/01j8b54d9xcz7p57m37apc92xm))

  A natural side effect of having nice code is that it's easy to test without needing to hack around the code structure. If you find yourself asking, how can I test a private method? Or I need to set some internal variable in order to test. That's a signal that you maybe need to pull some stuff out, that you need to isolate some part of it by separating it and injecting it instead. [View Highlight](https://read.readwise.io/read/01j8b57129cky28vhfsq2fd38y))


path: Readwise/How the Index Card Method Improves Your Knowledge Gathering.md
sortable_path: ReadwiseHow the Index Card Method Improves Your Knowledge Gathering.md
title: How the Index Card Method Improves Your Knowledge Gathering
checksum: 2ddcd559858bb15707b1eecf5d5fe724aadacd7284fb340193315769f4559644
created: 2024-09-23 00:21:29.896958052+00:00
modified: 2024-09-23 00:20:44.905653262+00:00
metadata: {}
lead:
  ![rw-book-cover](http://cdn.shopify.com/s/files/1/0064/3665/1072/articles/how-the-index-card-method-improves-your-knowledge-gathering-963916_600x.jpg?v=1675232920)

body:
  ![rw-book-cover](http://cdn.shopify.com/s/files/1/0064/3665/1072/articles/how-the-index-card-method-improves-your-knowledge-gathering-963916_600x.jpg?v=1675232920)

  ## Metadata
  - Author: [[THINKERS Notebook]]
  - Full Title: How the Index Card Method Improves Your Knowledge Gathering
  - Category: #articles
  - Document Tags: [[notetaking]] [[productivity]] 
  - URL: https://thinkersnotebook.com/blogs/news/how-the-index-card-method-improves-your-knowledge-gathering
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20the%20Index%20Card%20Method%20Improves%20Your%20Knowledge%20Gathering
  > [!tldr]
  > The index card method is a simple and effective way to organize and connect information for writing, research, and projects. It allows you to summarize ideas on cards, linking them to main themes for easy reference. You can even adapt this method to digital formats for better organization and searchability.

  ## Highlights
  The key components of an effective index card method are:
  • The information on the card is summarized or simplified.
  • Each card is linked back to a main thread or theme of information via a number, a tag, or a title (or a mix of all three). [View Highlight](https://read.readwise.io/read/01j80drzv3a1w0wppg4syztwc3))

  There are other ways you can use this method in a notebook, to help order and structure your projects and ideas:
  • Organize your thoughts and findings around a particular topic you’re researching.
  • Scope your long-form article, thesis or book, summarizing each section or chapter.
  • Store important research data for key business metrics.
  • Create reference cards for your business presentation.
  • Track specific habits and goals for a week or month.
  • Keep note of specific birthdays and recurring events by month.
  • The key to using an index card method effectively lies in how you connect the separate ideas and information that you’re listing. [View Highlight](https://read.readwise.io/read/01j80e0c34a7kbvxsy3cbbkf25))

raw_content:
  # How the Index Card Method Improves Your Knowledge Gathering

  ![rw-book-cover](http://cdn.shopify.com/s/files/1/0064/3665/1072/articles/how-the-index-card-method-improves-your-knowledge-gathering-963916_600x.jpg?v=1675232920)

  ## Metadata
  - Author: [[THINKERS Notebook]]
  - Full Title: How the Index Card Method Improves Your Knowledge Gathering
  - Category: #articles
  - Document Tags: [[notetaking]] [[productivity]] 
  - URL: https://thinkersnotebook.com/blogs/news/how-the-index-card-method-improves-your-knowledge-gathering
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20the%20Index%20Card%20Method%20Improves%20Your%20Knowledge%20Gathering
  > [!tldr]
  > The index card method is a simple and effective way to organize and connect information for writing, research, and projects. It allows you to summarize ideas on cards, linking them to main themes for easy reference. You can even adapt this method to digital formats for better organization and searchability.

  ## Highlights
  The key components of an effective index card method are:
  • The information on the card is summarized or simplified.
  • Each card is linked back to a main thread or theme of information via a number, a tag, or a title (or a mix of all three). [View Highlight](https://read.readwise.io/read/01j80drzv3a1w0wppg4syztwc3))

  There are other ways you can use this method in a notebook, to help order and structure your projects and ideas:
  • Organize your thoughts and findings around a particular topic you’re researching.
  • Scope your long-form article, thesis or book, summarizing each section or chapter.
  • Store important research data for key business metrics.
  • Create reference cards for your business presentation.
  • Track specific habits and goals for a week or month.
  • Keep note of specific birthdays and recurring events by month.
  • The key to using an index card method effectively lies in how you connect the separate ideas and information that you’re listing. [View Highlight](https://read.readwise.io/read/01j80e0c34a7kbvxsy3cbbkf25))


path: Readwise/How to Organize a Notebook for Work.md
sortable_path: ReadwiseHow to Organize a Notebook for Work.md
title: How to Organize a Notebook for Work
lead: ![rw-book-cover](https://rebelsguidetopm.com/wp-content/uploads/2021/12/GPM-Featured-Image-11.jpg)
checksum: f9cc8716170173f28966c82f494cbd18ab45f7745fc2ddb7c8dd4ba75bd973ad
created: 2024-09-23 00:21:29.935142547+00:00
modified: 2024-09-23 00:20:44.86065308+00:00
metadata: {}
body:
  ![rw-book-cover](https://rebelsguidetopm.com/wp-content/uploads/2021/12/GPM-Featured-Image-11.jpg)

  ## Metadata
  - Author: [[Elizabeth Harrin]]
  - Full Title: How to Organize a Notebook for Work
  - Category: #articles
  - Document Tags: [[notetaking]] [[productivity]] 
  - URL: https://rebelsguidetopm.com/how-to-organize-a-notebook-for-work/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Organize%20a%20Notebook%20for%20Work
  > [!tldr]
  > This text provides tips on organizing a notebook for work, emphasizing the importance of personalizing the system to suit individual needs. It suggests practical strategies like cutting corners to locate pages easily and using sections to categorize notes effectively. The author shares insights on maximizing a notebook's potential as a productivity tool within a larger task management system.

  ## Highlights
  2. Put the To Do list at the back [View Highlight](https://read.readwise.io/read/01j80bnsjvv4jdnga09mjrajqx))

  3. Put important information on the inside front cover ... • Cost codes, timesheet codes or project codes
  • Important telephone numbers
  • Instructions on how to change your voicemail (can you tell that’s a real example from inside my book?!)

  You’ll get through a lot of work notebooks in time, so put the start date on the front cover or one of the first inside pages so you know what time period this book covers. [View Highlight](https://read.readwise.io/read/01j80bpqqt6fhjntgx30tkvnmn))

  5. Organize the inside ... I don’t use page numbers in my books because they are free-flow for my notes and tend to be a chronological representation of what I was working on at the time. ... • Leave a page at the front for the table of contents or keep a page at the back for the index
  • Add page numbers to each page
  • Mark where things are in the notebook as you go.

  I don’t section my work because as a project manager, I find much of my work overlaps. [View Highlight](https://read.readwise.io/read/01j80bs5d5q3vp2ccdpq97j1fp))

  If you don’t want to number and structure, an alternative option is to have a different notebook for each project or to use sections. [View Highlight](https://read.readwise.io/read/01j80bsg6hnpaqwjvyjnszmsxy))

  6. Use sections ... • Weekly goals and objectives (or monthly/annual goals)
  • Trackers for habits e.g. drinking water, gratitude
  • Lists e.g. team birthdays. ... Use sticky notes or sticky tabs to section off the book and make it easier to find the right page when you need it.

  in circles to help them stand out in the notes:
  A: Action – for specific tasks to be done
  D: Decision – normally to be transferred to a decision log or confirmed on email so no one can forget that we made it.
  R: Risk – to be transferred to the project risk log and something done about it.
  I: Issue – to be transferred to the issue log and flagged with whomever is going to be able to do something about it.
  Star – something important. Normally something that has to be done today. [View Highlight](https://read.readwise.io/read/01j80am80gt459xt3n5hkv1mr5))

  I make time to rewrite the important lists in my book (the actions) on a regular basis. It isn’t strictly necessary, but it helps me clear my mind and focus on what is still to do. [View Highlight](https://read.readwise.io/read/01j80aq18td7pq8hk3ty7fh0pg))

  However you use your notebook, I would recommend allocating some time on a regular basis to go through it and tidy it up. Mark tasks as complete, transfer notes to other tools, re-write lists. Just refresh yourself on what is in there and check it is still working for you. [View Highlight](https://read.readwise.io/read/01j80ar15h0jat05dtvevj5362))

  Your notebook should be part of a whole productivity and task management system. It should fit alongside your online tools. [View Highlight](https://read.readwise.io/read/01j80ayzgm5px6mvxbvbnpxr8m))

  Your system should work in the round. No one in your team should be waiting to be told what to do because you wrote it down in the wrong place. [View Highlight](https://read.readwise.io/read/01j80b1xq3h5rpdrrwmnbvkgqg))

  Notebook organization should be simple. If you create a system that is too difficult to stick to, then you won’t stick to it. [View Highlight](https://read.readwise.io/read/01j80b2b9t15za4kfvtmv0ytpr))

  Remember, the way you organize your work notebook can evolve over time. Switch up how you use your notebook as your needs change. [View Highlight](https://read.readwise.io/read/01j80bbpykp4yqskxt4g5m1aaz))

raw_content:
  # How to Organize a Notebook for Work

  ![rw-book-cover](https://rebelsguidetopm.com/wp-content/uploads/2021/12/GPM-Featured-Image-11.jpg)

  ## Metadata
  - Author: [[Elizabeth Harrin]]
  - Full Title: How to Organize a Notebook for Work
  - Category: #articles
  - Document Tags: [[notetaking]] [[productivity]] 
  - URL: https://rebelsguidetopm.com/how-to-organize-a-notebook-for-work/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Organize%20a%20Notebook%20for%20Work
  > [!tldr]
  > This text provides tips on organizing a notebook for work, emphasizing the importance of personalizing the system to suit individual needs. It suggests practical strategies like cutting corners to locate pages easily and using sections to categorize notes effectively. The author shares insights on maximizing a notebook's potential as a productivity tool within a larger task management system.

  ## Highlights
  2. Put the To Do list at the back [View Highlight](https://read.readwise.io/read/01j80bnsjvv4jdnga09mjrajqx))

  3. Put important information on the inside front cover ... • Cost codes, timesheet codes or project codes
  • Important telephone numbers
  • Instructions on how to change your voicemail (can you tell that’s a real example from inside my book?!)

  You’ll get through a lot of work notebooks in time, so put the start date on the front cover or one of the first inside pages so you know what time period this book covers. [View Highlight](https://read.readwise.io/read/01j80bpqqt6fhjntgx30tkvnmn))

  5. Organize the inside ... I don’t use page numbers in my books because they are free-flow for my notes and tend to be a chronological representation of what I was working on at the time. ... • Leave a page at the front for the table of contents or keep a page at the back for the index
  • Add page numbers to each page
  • Mark where things are in the notebook as you go.

  I don’t section my work because as a project manager, I find much of my work overlaps. [View Highlight](https://read.readwise.io/read/01j80bs5d5q3vp2ccdpq97j1fp))

  If you don’t want to number and structure, an alternative option is to have a different notebook for each project or to use sections. [View Highlight](https://read.readwise.io/read/01j80bsg6hnpaqwjvyjnszmsxy))

  6. Use sections ... • Weekly goals and objectives (or monthly/annual goals)
  • Trackers for habits e.g. drinking water, gratitude
  • Lists e.g. team birthdays. ... Use sticky notes or sticky tabs to section off the book and make it easier to find the right page when you need it.

  in circles to help them stand out in the notes:
  A: Action – for specific tasks to be done
  D: Decision – normally to be transferred to a decision log or confirmed on email so no one can forget that we made it.
  R: Risk – to be transferred to the project risk log and something done about it.
  I: Issue – to be transferred to the issue log and flagged with whomever is going to be able to do something about it.
  Star – something important. Normally something that has to be done today. [View Highlight](https://read.readwise.io/read/01j80am80gt459xt3n5hkv1mr5))

  I make time to rewrite the important lists in my book (the actions) on a regular basis. It isn’t strictly necessary, but it helps me clear my mind and focus on what is still to do. [View Highlight](https://read.readwise.io/read/01j80aq18td7pq8hk3ty7fh0pg))

  However you use your notebook, I would recommend allocating some time on a regular basis to go through it and tidy it up. Mark tasks as complete, transfer notes to other tools, re-write lists. Just refresh yourself on what is in there and check it is still working for you. [View Highlight](https://read.readwise.io/read/01j80ar15h0jat05dtvevj5362))

  Your notebook should be part of a whole productivity and task management system. It should fit alongside your online tools. [View Highlight](https://read.readwise.io/read/01j80ayzgm5px6mvxbvbnpxr8m))

  Your system should work in the round. No one in your team should be waiting to be told what to do because you wrote it down in the wrong place. [View Highlight](https://read.readwise.io/read/01j80b1xq3h5rpdrrwmnbvkgqg))

  Notebook organization should be simple. If you create a system that is too difficult to stick to, then you won’t stick to it. [View Highlight](https://read.readwise.io/read/01j80b2b9t15za4kfvtmv0ytpr))

  Remember, the way you organize your work notebook can evolve over time. Switch up how you use your notebook as your needs change. [View Highlight](https://read.readwise.io/read/01j80bbpykp4yqskxt4g5m1aaz))


path: Readwise/How to Rebuild Your Routines When Everything Changes Rewind.md
sortable_path: ReadwiseHow to Rebuild Your Routines When Everything Changes Rewind.md
title: How to Rebuild Your Routines When Everything Changes | Rewind
lead: ![rw-book-cover](https://i.ytimg.com/vi/-c1HY-vrmIQ/maxresdefault.jpg)
checksum: 67b63c6dbac6cf9aac731dca07a998f31701339d51f316fcf5420bd2ed961f40
created: 2024-09-23 00:21:29.974895492+00:00
modified: 2024-09-23 00:20:45.513655723+00:00
metadata: {}
body:
  ![rw-book-cover](https://i.ytimg.com/vi/-c1HY-vrmIQ/maxresdefault.jpg)

  ## Metadata
  - Author: [[How to ADHD]]
  - Full Title: How to Rebuild Your Routines When Everything Changes | Rewind
  - Category: #articles
  - URL: https://youtube.com/watch?v=-c1HY-vrmIQ&si=7ximCdZha4zJg-LR
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Rebuild%20Your%20Routines%20When%20Everything%20Changes%20%7C%20Rewind
  > [!tldr]
  > The video discusses how to rebuild routines after significant changes, especially for those with ADHD. It offers eight practical tips, such as keeping what works, allowing time for transitions, and managing stress. The key message is to be patient with yourself and acknowledge your achievements while adjusting to new routines.

  ## Highlights
  keep what you know works it can be tempting to start with a blank slate but the less you change the quicker you'll adjust to those changes so anything you liked from your old
  routine that would still work with the new one consider keeping [View Highlight](https://read.readwise.io/read/01j8b6stmxqkv0rx1yq54y0fpb))

  design the rest with you in mind hang on current you not future you [View Highlight](https://read.readwise.io/read/01j8b6x2we07a50fpdy60tx1xf))

  give yourself plenty of white space in your schedule remember transitions will probably take longer at first because you're not used to your new routines [View Highlight](https://read.readwise.io/read/01j8b6z2dx0wnx94kde9a96xre))

  can speed up the process of setting those new routines and reduce the transition time between them by mentally walking through your new routines a few times before you need to start using them [View Highlight](https://read.readwise.io/read/01j8b71t112qtedbcbxbyfd2q8))

  write the new routines down ... put it in your schedule create a habit tracker sticker chart use an app

  there's a surprising amount that will suddenly not be automatic when you go through Big Life Changes again speaking from experience once you're used to your routines your brain will usually remind you what's next until then you'll probably need some help so you need to
  have a way of keeping yourself on track [View Highlight](https://read.readwise.io/read/01j8b776eyyvx1aq905tatr726))

  if at all humanly possible wait until you're used to your new routine before adding in stuff that you've never done before [View Highlight](https://read.readwise.io/read/01j8b7be7rkvdf5z68nva3fkx5))

  manage your stress levels change even good change is stressful expect small unexpected changes to affect you more than usual right now because they're not
  really small changes they're Peaks on a mountain of giant changes [View Highlight](https://read.readwise.io/read/01j8b7efp3k1eb92dakzhy2m6z))

  acknowledge your achievements it can be really easy when you're adjusting to a new routine to only see the stuff you didn't get to check out all the stuff you did even little things like getting to work on time that you might otherwise take for granted are a huge
  Victory when you did it with a new routine [View Highlight](https://read.readwise.io/read/01j8b7jk8wq2xtpscy1fdbhesg))

  tweak as necessary if anyone gets all of their routines right on their first try I'm going to very annoyed impressed but
  annoyed it's totally normal for it to take some trial and error to figure out what works for you so expect that things will go wrong and you will need to make adjustments doesn't mean you're doing something wrong it's part of the process [View Highlight](https://read.readwise.io/read/01j8b7ntbt4jbsb7ma3axe4z3b))

raw_content:
  # How to Rebuild Your Routines When Everything Changes | Rewind

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

  ## Metadata
  - Author: [[How to ADHD]]
  - Full Title: How to Rebuild Your Routines When Everything Changes | Rewind
  - Category: #articles
  - URL: https://youtube.com/watch?v=-c1HY-vrmIQ&si=7ximCdZha4zJg-LR
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Rebuild%20Your%20Routines%20When%20Everything%20Changes%20%7C%20Rewind
  > [!tldr]
  > The video discusses how to rebuild routines after significant changes, especially for those with ADHD. It offers eight practical tips, such as keeping what works, allowing time for transitions, and managing stress. The key message is to be patient with yourself and acknowledge your achievements while adjusting to new routines.

  ## Highlights
  keep what you know works it can be tempting to start with a blank slate but the less you change the quicker you'll adjust to those changes so anything you liked from your old
  routine that would still work with the new one consider keeping [View Highlight](https://read.readwise.io/read/01j8b6stmxqkv0rx1yq54y0fpb))

  design the rest with you in mind hang on current you not future you [View Highlight](https://read.readwise.io/read/01j8b6x2we07a50fpdy60tx1xf))

  give yourself plenty of white space in your schedule remember transitions will probably take longer at first because you're not used to your new routines [View Highlight](https://read.readwise.io/read/01j8b6z2dx0wnx94kde9a96xre))

  can speed up the process of setting those new routines and reduce the transition time between them by mentally walking through your new routines a few times before you need to start using them [View Highlight](https://read.readwise.io/read/01j8b71t112qtedbcbxbyfd2q8))

  write the new routines down ... put it in your schedule create a habit tracker sticker chart use an app

  there's a surprising amount that will suddenly not be automatic when you go through Big Life Changes again speaking from experience once you're used to your routines your brain will usually remind you what's next until then you'll probably need some help so you need to
  have a way of keeping yourself on track [View Highlight](https://read.readwise.io/read/01j8b776eyyvx1aq905tatr726))

  if at all humanly possible wait until you're used to your new routine before adding in stuff that you've never done before [View Highlight](https://read.readwise.io/read/01j8b7be7rkvdf5z68nva3fkx5))

  manage your stress levels change even good change is stressful expect small unexpected changes to affect you more than usual right now because they're not
  really small changes they're Peaks on a mountain of giant changes [View Highlight](https://read.readwise.io/read/01j8b7efp3k1eb92dakzhy2m6z))

  acknowledge your achievements it can be really easy when you're adjusting to a new routine to only see the stuff you didn't get to check out all the stuff you did even little things like getting to work on time that you might otherwise take for granted are a huge
  Victory when you did it with a new routine [View Highlight](https://read.readwise.io/read/01j8b7jk8wq2xtpscy1fdbhesg))

  tweak as necessary if anyone gets all of their routines right on their first try I'm going to very annoyed impressed but
  annoyed it's totally normal for it to take some trial and error to figure out what works for you so expect that things will go wrong and you will need to make adjustments doesn't mean you're doing something wrong it's part of the process [View Highlight](https://read.readwise.io/read/01j8b7ntbt4jbsb7ma3axe4z3b))


path: Readwise/How to Start Journaling.md
sortable_path: ReadwiseHow to Start Journaling.md
title: How to Start Journaling
checksum: 0d9af4476d1ae51e9ed4c58a0176f78e26b5f0645c1c9ec0d3c915bba1fa5c08
created: 2024-09-23 00:21:30.010839806+00:00
modified: 2024-09-23 00:20:45.187654404+00:00
metadata: {}
lead:
  ![rw-book-cover](https://www.simplyfiercely.com/wp-content/uploads/2021/08/How-to-Start-Journaling-Feature-Image.jpg)

body:
  ![rw-book-cover](https://www.simplyfiercely.com/wp-content/uploads/2021/08/How-to-Start-Journaling-Feature-Image.jpg)

  ## Metadata
  - Author: [[Jennifer]]
  - Full Title: How to Start Journaling
  - Category: #articles
  - URL: https://www.simplyfiercely.com/start-journaling/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Start%20Journaling
  > [!tldr]
  > Journaling is a powerful habit that promotes self-awareness and helps you make intentional choices in life. To start, just relax and begin writing about your thoughts and feelings, using prompts if needed. Sticking with journaling daily can lead to greater clarity and personal growth.

  ## Highlights
  Journaling helps combat this short-sightedness by encouraging us to step back and consider the big picture. [View Highlight](https://read.readwise.io/read/01j83ye06dw8vkysgntnavndb8))

  First and foremost, relax and let go of any ideas about doing it the “right” way— because when it comes to journaling, there’s no such thing! Your journal is a personal space for you to use however you see fit. [View Highlight](https://read.readwise.io/read/01j83yn2d1qgem2pycxrsth3gj))

  After that, the best way to start journaling is to just begin. [View Highlight](https://read.readwise.io/read/01j83yp4c2axwtzy3k87e98ajt))

  If you don’t know what to write about, a great place to begin is by **[asking questions](https://www.simplyfiercely.com/7-questions-to-inspire-intentional-living/).** My favourites include:
  • *How do you feel right now?*
  • *Why do you feel that way?*
  • *How do you want to feel?*
  • *What can you do to feel that way?* [View Highlight](https://read.readwise.io/read/01j83yqf5g8j5h964d735bfexe)) [[journaling/prompt]] 

  If you don’t feel comfortable writing long, in-depth entries in your journal then find something that works for you. Again, there are no right or wrong ways to journal as long as you’re exploring your thoughts and feelings. [View Highlight](https://read.readwise.io/read/01j84amwhygt3bsycq85eptcs4))

  **Make journaling a special ritual.** Try and do it at the same time every day and treat it as a special event, not a chore! Light a candle, make a hot drink, burn incense—whatever makes the experience special for you. [View Highlight](https://read.readwise.io/read/01j84anevvcn0ydv0287v7yjff))

raw_content:
  # How to Start Journaling

  ![rw-book-cover](https://www.simplyfiercely.com/wp-content/uploads/2021/08/How-to-Start-Journaling-Feature-Image.jpg)

  ## Metadata
  - Author: [[Jennifer]]
  - Full Title: How to Start Journaling
  - Category: #articles
  - URL: https://www.simplyfiercely.com/start-journaling/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Start%20Journaling
  > [!tldr]
  > Journaling is a powerful habit that promotes self-awareness and helps you make intentional choices in life. To start, just relax and begin writing about your thoughts and feelings, using prompts if needed. Sticking with journaling daily can lead to greater clarity and personal growth.

  ## Highlights
  Journaling helps combat this short-sightedness by encouraging us to step back and consider the big picture. [View Highlight](https://read.readwise.io/read/01j83ye06dw8vkysgntnavndb8))

  First and foremost, relax and let go of any ideas about doing it the “right” way— because when it comes to journaling, there’s no such thing! Your journal is a personal space for you to use however you see fit. [View Highlight](https://read.readwise.io/read/01j83yn2d1qgem2pycxrsth3gj))

  After that, the best way to start journaling is to just begin. [View Highlight](https://read.readwise.io/read/01j83yp4c2axwtzy3k87e98ajt))

  If you don’t know what to write about, a great place to begin is by **[asking questions](https://www.simplyfiercely.com/7-questions-to-inspire-intentional-living/).** My favourites include:
  • *How do you feel right now?*
  • *Why do you feel that way?*
  • *How do you want to feel?*
  • *What can you do to feel that way?* [View Highlight](https://read.readwise.io/read/01j83yqf5g8j5h964d735bfexe)) [[journaling/prompt]] 

  If you don’t feel comfortable writing long, in-depth entries in your journal then find something that works for you. Again, there are no right or wrong ways to journal as long as you’re exploring your thoughts and feelings. [View Highlight](https://read.readwise.io/read/01j84amwhygt3bsycq85eptcs4))

  **Make journaling a special ritual.** Try and do it at the same time every day and treat it as a special event, not a chore! Light a candle, make a hot drink, burn incense—whatever makes the experience special for you. [View Highlight](https://read.readwise.io/read/01j84anevvcn0ydv0287v7yjff))


path: Readwise/How to Think in Writing.md
sortable_path: ReadwiseHow to Think in Writing.md
title: How to Think in Writing
checksum: 891728f392d2c15a2008e34eeffea43437f925c259fa019595a06485e0918590
created: 2024-09-23 00:21:30.063633799+00:00
modified: 2024-09-23 00:20:45.548655865+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%2Fd8bec767-3242-4428-a281-0cdc3182ff75_750x587.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%2Fd8bec767-3242-4428-a281-0cdc3182ff75_750x587.png)

  ## Metadata
  - Author: [[Henrik Karlsson]]
  - Full Title: How to Think in Writing
  - Category: #articles
  - Document Tags: [[star]] 
  - URL: https://substack.com/home/post/p-143987982
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Think%20in%20Writing

  > [!note]
  > Este articulo habla sobre cómo utilizar la escritura como un medio para realizar un análisis crítico de nuestros propios pensamientos e ideas y obtener su completo potencial.
  > ---
  > Utiliza un metodo kinda like Phoenix Wright cross examination:
  > - hacer nuestros pensamientos solidos y especificos al escribirlos
  > - Decantarlos hasta poder obtener una conclusión, una conjetura o una hipótesis
  > - Desafiar esta conclusion intentando probarla verdadera o falsa, buscando sus fallas y grietas. Con _"pressionar"_ (follow up questions)
  > - Esto nos proveerá más información, más pensamientos y más ideas que pueden re-definir nuestra conclusión 
  > [!tldr]
  > Writing helps refine thinking by making ideas more precise and complete. Without writing, one may not fully form or realize the limitations of their ideas. By unfolding and probing claims through writing, one can discover flaws, refine understanding, and reach deeper insights.

  ## Highlights
  Ideas can feel complete. It's only when you try to put them into words that you discover they're not. So if you never subject your ideas to that test, you'll not only never have fully formed ideas, but also never realize it. [View Highlight](https://read.readwise.io/read/01j8b867hqxmxzdkn3q3pjqbm4))

  Good thinking is about pushing past your current understanding and reaching the thought behind the thought. [View Highlight](https://read.readwise.io/read/01j8b8cww40tqsnbaw3k42mgvn))

  When I write, I get to observe the transition from this fluid mode of thinking to the rigid. As I type, I’m often in a fluid mode—writing at the speed of thought. I feel confident about what I’m saying. But as soon as I stop, the thoughts solidify, rigid on the page, and, as I read what I’ve written, I see cracks spreading through my ideas. What seemed right in my head fell to pieces on the page. [View Highlight](https://read.readwise.io/read/01j8b8ezy6ywq99f4dkz8r3ymd))

  a conjecture,” a qualified guess based on limited information. A hypothesis. [View Highlight](https://read.readwise.io/read/01j8b8hry74ry71zk4ffareecj))

  Forcing the diffuse ideas and impressions in your head into a definite statement is an art form. You have to grab hold of what is floating and make it rigid and sharp. It can feel almost embarrassing–revealing your ignorance with as much vulnerability as possible. [View Highlight](https://read.readwise.io/read/01j8b8ksn5s7t4bn3wwefxeqwr))

  By unfolding I mean “interrogating the conclusion to come up with an explanation of why it *could* be true.” What premises and reasoning chains leads to this conclusion? The explanation isn’t meant to prove that your conclusion was right. It is just a way of unpacking it. [View Highlight](https://read.readwise.io/read/01j8b8nc9p2ywzsmztc4d6zjyk))

  Since the goal is to find flaws in our guesses (so that we can change our minds, refine our mental models and our language, and be more right) unfolding a claim through an explanation is progress. Even if the explanation is wrong. [View Highlight](https://read.readwise.io/read/01j8b8q53msmbr9kbr9dzhew55))

  Once I unfold my understanding in writing, I often see holes right away. I start correcting myself and discarding ideas already while typing. I cut ideas that are obviously flawed. I rewrite what feels ambiguous to make it sharper–more precise, concrete, unhedged, and true to my understanding. [View Highlight](https://read.readwise.io/read/01j8b8v6s8028792yvcwgy19n0))

  I tend to go through my list of premises and assumptions and ask follow-up questions to myself, to further unfold my conclusion. [View Highlight](https://read.readwise.io/read/01j8b8y1z5wbjfjkjpjcwkwj4b))

  Now that I have spelled out my position and fixed the obvious flaws, I start probing myself more seriously to see if I can get the argument to break down. [View Highlight](https://read.readwise.io/read/01j8b9fcg5r389f7pzvsfad82m))

  If one of the premises I have unfolded is a factual claim, I’ll spend a few minutes skimming research in the area to see how well my position holds up. [View Highlight](https://read.readwise.io/read/01j8b9g5d16dwc6dqe3b6x7hag))

  But often the type of problem I like to think about is too personal and messy and qualitative to be resolved cleanly through a statistically significant study. What I do in these situations instead is to consider *counterexamples*. ... I like to visualize concrete situations when I make an argument ... When I have a concrete situation in mind, I can ask myself, “What is a situation where the opposite happened? Why was that?” I can list the characteristics of the situation that inform my conclusion and then systematically look for cases that have other characteristics.

  Counterexamples are useful in two ways. Either you find a counterexample that a) proves one of the premises wrong but b) does not change your mind about the conclusion. Lakatos calls this a local (and non-global) counterexample. This means there is something wrong with your unfolding. ... Local counterexamples help you improve your explanation and get a better understanding.

  Other times, the counterexample you find undermines the whole idea—a *global counterexample*. You unfold your conclusion and discover that one of the premises does not hold up, and there is no way to patch it. The fracture spreads right up to the conclusion. Now—this is what we have been longing for—there is a big hole of confusion where before there was a mental model. It is time to replace it with something more subtle and deep that incorporates the critique. [View Highlight](https://read.readwise.io/read/01j8b9vyrraya2jxw8ygqhb7nz))

raw_content:
  # How to Think in Writing

  ![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%2Fd8bec767-3242-4428-a281-0cdc3182ff75_750x587.png)

  ## Metadata
  - Author: [[Henrik Karlsson]]
  - Full Title: How to Think in Writing
  - Category: #articles
  - Document Tags: [[star]] 
  - URL: https://substack.com/home/post/p-143987982
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Think%20in%20Writing

  > [!note]
  > Este articulo habla sobre cómo utilizar la escritura como un medio para realizar un análisis crítico de nuestros propios pensamientos e ideas y obtener su completo potencial.
  > ---
  > Utiliza un metodo kinda like Phoenix Wright cross examination:
  > - hacer nuestros pensamientos solidos y especificos al escribirlos
  > - Decantarlos hasta poder obtener una conclusión, una conjetura o una hipótesis
  > - Desafiar esta conclusion intentando probarla verdadera o falsa, buscando sus fallas y grietas. Con _"pressionar"_ (follow up questions)
  > - Esto nos proveerá más información, más pensamientos y más ideas que pueden re-definir nuestra conclusión 
  > [!tldr]
  > Writing helps refine thinking by making ideas more precise and complete. Without writing, one may not fully form or realize the limitations of their ideas. By unfolding and probing claims through writing, one can discover flaws, refine understanding, and reach deeper insights.

  ## Highlights
  Ideas can feel complete. It's only when you try to put them into words that you discover they're not. So if you never subject your ideas to that test, you'll not only never have fully formed ideas, but also never realize it. [View Highlight](https://read.readwise.io/read/01j8b867hqxmxzdkn3q3pjqbm4))

  Good thinking is about pushing past your current understanding and reaching the thought behind the thought. [View Highlight](https://read.readwise.io/read/01j8b8cww40tqsnbaw3k42mgvn))

  When I write, I get to observe the transition from this fluid mode of thinking to the rigid. As I type, I’m often in a fluid mode—writing at the speed of thought. I feel confident about what I’m saying. But as soon as I stop, the thoughts solidify, rigid on the page, and, as I read what I’ve written, I see cracks spreading through my ideas. What seemed right in my head fell to pieces on the page. [View Highlight](https://read.readwise.io/read/01j8b8ezy6ywq99f4dkz8r3ymd))

  a conjecture,” a qualified guess based on limited information. A hypothesis. [View Highlight](https://read.readwise.io/read/01j8b8hry74ry71zk4ffareecj))

  Forcing the diffuse ideas and impressions in your head into a definite statement is an art form. You have to grab hold of what is floating and make it rigid and sharp. It can feel almost embarrassing–revealing your ignorance with as much vulnerability as possible. [View Highlight](https://read.readwise.io/read/01j8b8ksn5s7t4bn3wwefxeqwr))

  By unfolding I mean “interrogating the conclusion to come up with an explanation of why it *could* be true.” What premises and reasoning chains leads to this conclusion? The explanation isn’t meant to prove that your conclusion was right. It is just a way of unpacking it. [View Highlight](https://read.readwise.io/read/01j8b8nc9p2ywzsmztc4d6zjyk))

  Since the goal is to find flaws in our guesses (so that we can change our minds, refine our mental models and our language, and be more right) unfolding a claim through an explanation is progress. Even if the explanation is wrong. [View Highlight](https://read.readwise.io/read/01j8b8q53msmbr9kbr9dzhew55))

  Once I unfold my understanding in writing, I often see holes right away. I start correcting myself and discarding ideas already while typing. I cut ideas that are obviously flawed. I rewrite what feels ambiguous to make it sharper–more precise, concrete, unhedged, and true to my understanding. [View Highlight](https://read.readwise.io/read/01j8b8v6s8028792yvcwgy19n0))

  I tend to go through my list of premises and assumptions and ask follow-up questions to myself, to further unfold my conclusion. [View Highlight](https://read.readwise.io/read/01j8b8y1z5wbjfjkjpjcwkwj4b))

  Now that I have spelled out my position and fixed the obvious flaws, I start probing myself more seriously to see if I can get the argument to break down. [View Highlight](https://read.readwise.io/read/01j8b9fcg5r389f7pzvsfad82m))

  If one of the premises I have unfolded is a factual claim, I’ll spend a few minutes skimming research in the area to see how well my position holds up. [View Highlight](https://read.readwise.io/read/01j8b9g5d16dwc6dqe3b6x7hag))

  But often the type of problem I like to think about is too personal and messy and qualitative to be resolved cleanly through a statistically significant study. What I do in these situations instead is to consider *counterexamples*. ... I like to visualize concrete situations when I make an argument ... When I have a concrete situation in mind, I can ask myself, “What is a situation where the opposite happened? Why was that?” I can list the characteristics of the situation that inform my conclusion and then systematically look for cases that have other characteristics.

  Counterexamples are useful in two ways. Either you find a counterexample that a) proves one of the premises wrong but b) does not change your mind about the conclusion. Lakatos calls this a local (and non-global) counterexample. This means there is something wrong with your unfolding. ... Local counterexamples help you improve your explanation and get a better understanding.

  Other times, the counterexample you find undermines the whole idea—a *global counterexample*. You unfold your conclusion and discover that one of the premises does not hold up, and there is no way to patch it. The fracture spreads right up to the conclusion. Now—this is what we have been longing for—there is a big hole of confusion where before there was a mental model. It is time to replace it with something more subtle and deep that incorporates the critique. [View Highlight](https://read.readwise.io/read/01j8b9vyrraya2jxw8ygqhb7nz))


path: Readwise/Journaling for Personal Development Stress Management.md
sortable_path: ReadwiseJournaling for Personal Development Stress Management.md
title: Journaling for Personal Development: Stress Management
lead: ![rw-book-cover](https://priscillapalmer.com/wp-content/uploads/2023/09/journaling.jpg)
checksum: 788818735295e87774c0a2b30b7e5eadab35fb734bb125b2faa3311e2c4b8207
created: 2024-09-23 00:21:30.11748338+00:00
modified: 2024-09-23 00:20:45.081653975+00:00
metadata: {}
body:
  ![rw-book-cover](https://priscillapalmer.com/wp-content/uploads/2023/09/journaling.jpg)

  ## Metadata
  - Author: [[Barbara H. Pugh]]
  - Full Title: Journaling for Personal Development: Stress Management
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://priscillapalmer.com/journaling/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Journaling%20for%20Personal%20Development%3A%20Stress%20Management
  > [!tldr]
  > Journaling is a helpful tool for managing stress and promoting personal growth by allowing individuals to reflect on their thoughts and emotions. It can lead to increased self-awareness, emotional release, and clarity about stressors. By regularly writing in a journal, people can develop strategies to cope with challenges and improve their overall well-being.

  ## Highlights
  Research suggests that engaging in regular journaling can have numerous benefits when it comes to stress reduction and personal development. Firstly, by writing down one’s thoughts and feelings related to stressful events or situations, individuals are able to gain clarity and perspective on their internal state. This process enables them to identify patterns or triggers that contribute to their stress levels, thereby empowering them with the knowledge needed to make positive changes in their lives. Additionally, journaling provides a safe outlet for expressing emotions that may be difficult to articulate verbally. Through this cathartic release of pent-up feelings, individuals can experience relief from emotional distress while gaining a sense of emotional release and catharsis. [View Highlight](https://read.readwise.io/read/01j82r0yf8r0wfj54mg92wx0rv))

  Moreover, journaling can also serve as a means of problem-solving and decision-making. When faced with stressors or challenges, writing about them allows individuals to explore different perspectives and potential solutions. This process of self-reflection and brainstorming can lead to increased insight and clarity, helping individuals develop effective strategies for managing their stressors. [View Highlight](https://read.readwise.io/read/01j82r1qjbd8pykyn658ae279f))

  Furthermore, the act of journaling itself can be a calming and grounding practice. Taking the time to sit down, focus on one’s thoughts, and put them into words can create a sense of mindfulness and present-moment awareness. This mindfulness aspect of journaling has been shown to promote relaxation, reduce anxiety levels, and improve overall mental well-being. [View Highlight](https://read.readwise.io/read/01j82r23yyw2bs77zw57sdm8mk))

  There are no strict rules for journaling; Sarah can write freely without worrying about grammar or structure – the goal is simply to allow her thoughts and emotions to flow onto the pages. [View Highlight](https://read.readwise.io/read/01j82r51a1ef5bnr6mhk69e8q6))

  Here are some key benefits of journaling for stress reduction:
  • **Emotional release:** Writing down our thoughts and feelings allows us to acknowledge and process them more effectively. It provides a safe space to express raw emotions without judgment or consequences.
  • **Perspective gain:** Through journaling, we gain perspective on our problems and challenges. This shift in viewpoint enables us to approach difficulties with greater clarity and objectivity.
  • **Problem-solving:** Journaling facilitates problem-solving by allowing us to explore different solutions and evaluate their pros and cons. It helps break down complex issues into manageable parts.
  • **Gratitude cultivation:** Writing about the things we are grateful for fosters positivity and shifts our focus away from stressors. This practice encourages mindfulness and promotes a sense of contentment. [View Highlight](https://read.readwise.io/read/01j82rdzjqkbhtddtevdwsb6ct))

  Set aside dedicated time: Find a quiet space where you can focus solely on your writing without distractions. Allocating even just 10-15 minutes each day can make a significant difference in managing stress. [View Highlight](https://read.readwise.io/read/01j83g3ykzypexdx6yg264s24a))

  Choose a format that suits you: Whether it’s pen and paper or digital platforms, select a medium that feels comfortable for you. Experiment with different styles such as free-writing or structured prompts until you find what resonates best. [View Highlight](https://read.readwise.io/read/01j83g47r6y96fpxd11gq003hg))

  Be non-judgmental: Remember that your journal is a safe space for self-expression; there are no right or wrong answers. Allow yourself to freely explore your thoughts and feelings without censoring or criticizing them. [View Highlight](https://read.readwise.io/read/01j83g4f15c6h136m28f6ccymb))

  Incorporate gratitude practices: Cultivating gratitude has been shown to reduce stress levels significantly. Consider including a regular gratitude reflection in your journal entries by listing things you’re grateful for each day. [View Highlight](https://read.readwise.io/read/01j83g4t6htbb3g9av0q4czz0x))

  Emotional release: The act of putting pen to paper allows individuals to express suppressed emotions effectively, leading to emotional catharsis. [View Highlight](https://read.readwise.io/read/01j83g8at9az6qxc9mbvvkrzma))

  Stress reduction: Journaling offers an outlet for processing stressful experiences and reducing psychological distress. [View Highlight](https://read.readwise.io/read/01j83g8qgcdemre6wj8jz8hp27))

  Problem-solving: By writing down challenges and brainstorming potential solutions, individuals can develop a clearer perspective on problems they face. [View Highlight](https://read.readwise.io/read/01j83g94f5gj99fz91kke20f1x))

  Self-discovery: Regular journaling promotes self-awareness and facilitates personal growth by uncovering deeper layers of oneself. [View Highlight](https://read.readwise.io/read/01j83g98fa6s5kwmepwea2jh0x))

  Reflect on Daily Experiences: Allocate dedicated time each day to record significant events or encounters that affected your mood positively or negatively. [View Highlight](https://read.readwise.io/read/01j83gcn96tpdded0ydrqb6052))

  Identify Emotional Responses: Pay attention to how you feel throughout the day by checking in with yourself regularly. Describe these emotions accurately using specific terms such as frustration, excitement, sadness, or contentment. [View Highlight](https://read.readwise.io/read/01j83gcy7trhxp8ccs2kecxz2s))

  Explore Underlying Causes: Dig deeper into your reactions by questioning why certain situations evoke particular emotional responses within you. [View Highlight](https://read.readwise.io/read/01j83gdgv4dd5z122knj7yyb8v))

  Monitor Physical Sensations: Observe any physical sensations associated with different emotions—such as increased heart rate during moments of anger or tension—to develop an awareness of your body’s response. [View Highlight](https://read.readwise.io/read/01j83ge9xk9phtja3tpg8mcw1c))

  **Identify coping mechanisms**: Reflect on past entries where you successfully managed stressful situations. Note down those techniques and activities that helped alleviate your stress levels. [View Highlight](https://read.readwise.io/read/01j83ghndtsnn7x0d678pgmtbz))

  **Set realistic goals**: Break down larger tasks into smaller, achievable goals. This will provide a sense of progress and accomplishment while reducing overwhelm. [View Highlight](https://read.readwise.io/read/01j83ghwt10bc8h4d5wmteebb2))

  **Practice self-care**: Prioritize activities that promote relaxation and well-being, such as exercise, meditation, or spending time in nature. [View Highlight](https://read.readwise.io/read/01j83gj5e39ctg3sj16zs2wpyw))

  **Seek support**: Reach out to trusted friends or family members who can offer guidance and encouragement during challenging times. [View Highlight](https://read.readwise.io/read/01j83gj9v2zbm0ggre2zrgk54a))

  Enhanced self-reflection: Practicing mindfulness allows individuals like Sarah to observe their thoughts and emotions without judgment, fostering greater understanding of their inner experiences. [View Highlight](https://read.readwise.io/read/01j83gmxxazma1tt6rb144p8xs))

  Improved emotional regulation: By cultivating awareness of their emotions through mindful journaling, individuals can develop strategies for managing challenging feelings effectively. [View Highlight](https://read.readwise.io/read/01j83gneyj2gmpr6zp51vybmjp))

  Increased clarity and perspective: Engaging in mindful reflection while journaling enables individuals to gain fresh insights and new perspectives on stressful situations. [View Highlight](https://read.readwise.io/read/01j83gnhg39rqb94yept0sk884))

  Strengthened resilience: Regularly practicing mindfulness in conjunction with journaling equips individuals with tools to navigate adversity more skillfully. [View Highlight](https://read.readwise.io/read/01j83gp7c9ekx44ypp3sgrc4hz))

raw_content:
  # Journaling for Personal Development: Stress Management

  ![rw-book-cover](https://priscillapalmer.com/wp-content/uploads/2023/09/journaling.jpg)

  ## Metadata
  - Author: [[Barbara H. Pugh]]
  - Full Title: Journaling for Personal Development: Stress Management
  - Category: #articles
  - Document Tags: [[notetaking]] 
  - URL: https://priscillapalmer.com/journaling/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Journaling%20for%20Personal%20Development%3A%20Stress%20Management
  > [!tldr]
  > Journaling is a helpful tool for managing stress and promoting personal growth by allowing individuals to reflect on their thoughts and emotions. It can lead to increased self-awareness, emotional release, and clarity about stressors. By regularly writing in a journal, people can develop strategies to cope with challenges and improve their overall well-being.

  ## Highlights
  Research suggests that engaging in regular journaling can have numerous benefits when it comes to stress reduction and personal development. Firstly, by writing down one’s thoughts and feelings related to stressful events or situations, individuals are able to gain clarity and perspective on their internal state. This process enables them to identify patterns or triggers that contribute to their stress levels, thereby empowering them with the knowledge needed to make positive changes in their lives. Additionally, journaling provides a safe outlet for expressing emotions that may be difficult to articulate verbally. Through this cathartic release of pent-up feelings, individuals can experience relief from emotional distress while gaining a sense of emotional release and catharsis. [View Highlight](https://read.readwise.io/read/01j82r0yf8r0wfj54mg92wx0rv))

  Moreover, journaling can also serve as a means of problem-solving and decision-making. When faced with stressors or challenges, writing about them allows individuals to explore different perspectives and potential solutions. This process of self-reflection and brainstorming can lead to increased insight and clarity, helping individuals develop effective strategies for managing their stressors. [View Highlight](https://read.readwise.io/read/01j82r1qjbd8pykyn658ae279f))

  Furthermore, the act of journaling itself can be a calming and grounding practice. Taking the time to sit down, focus on one’s thoughts, and put them into words can create a sense of mindfulness and present-moment awareness. This mindfulness aspect of journaling has been shown to promote relaxation, reduce anxiety levels, and improve overall mental well-being. [View Highlight](https://read.readwise.io/read/01j82r23yyw2bs77zw57sdm8mk))

  There are no strict rules for journaling; Sarah can write freely without worrying about grammar or structure – the goal is simply to allow her thoughts and emotions to flow onto the pages. [View Highlight](https://read.readwise.io/read/01j82r51a1ef5bnr6mhk69e8q6))

  Here are some key benefits of journaling for stress reduction:
  • **Emotional release:** Writing down our thoughts and feelings allows us to acknowledge and process them more effectively. It provides a safe space to express raw emotions without judgment or consequences.
  • **Perspective gain:** Through journaling, we gain perspective on our problems and challenges. This shift in viewpoint enables us to approach difficulties with greater clarity and objectivity.
  • **Problem-solving:** Journaling facilitates problem-solving by allowing us to explore different solutions and evaluate their pros and cons. It helps break down complex issues into manageable parts.
  • **Gratitude cultivation:** Writing about the things we are grateful for fosters positivity and shifts our focus away from stressors. This practice encourages mindfulness and promotes a sense of contentment. [View Highlight](https://read.readwise.io/read/01j82rdzjqkbhtddtevdwsb6ct))

  Set aside dedicated time: Find a quiet space where you can focus solely on your writing without distractions. Allocating even just 10-15 minutes each day can make a significant difference in managing stress. [View Highlight](https://read.readwise.io/read/01j83g3ykzypexdx6yg264s24a))

  Choose a format that suits you: Whether it’s pen and paper or digital platforms, select a medium that feels comfortable for you. Experiment with different styles such as free-writing or structured prompts until you find what resonates best. [View Highlight](https://read.readwise.io/read/01j83g47r6y96fpxd11gq003hg))

  Be non-judgmental: Remember that your journal is a safe space for self-expression; there are no right or wrong answers. Allow yourself to freely explore your thoughts and feelings without censoring or criticizing them. [View Highlight](https://read.readwise.io/read/01j83g4f15c6h136m28f6ccymb))

  Incorporate gratitude practices: Cultivating gratitude has been shown to reduce stress levels significantly. Consider including a regular gratitude reflection in your journal entries by listing things you’re grateful for each day. [View Highlight](https://read.readwise.io/read/01j83g4t6htbb3g9av0q4czz0x))

  Emotional release: The act of putting pen to paper allows individuals to express suppressed emotions effectively, leading to emotional catharsis. [View Highlight](https://read.readwise.io/read/01j83g8at9az6qxc9mbvvkrzma))

  Stress reduction: Journaling offers an outlet for processing stressful experiences and reducing psychological distress. [View Highlight](https://read.readwise.io/read/01j83g8qgcdemre6wj8jz8hp27))

  Problem-solving: By writing down challenges and brainstorming potential solutions, individuals can develop a clearer perspective on problems they face. [View Highlight](https://read.readwise.io/read/01j83g94f5gj99fz91kke20f1x))

  Self-discovery: Regular journaling promotes self-awareness and facilitates personal growth by uncovering deeper layers of oneself. [View Highlight](https://read.readwise.io/read/01j83g98fa6s5kwmepwea2jh0x))

  Reflect on Daily Experiences: Allocate dedicated time each day to record significant events or encounters that affected your mood positively or negatively. [View Highlight](https://read.readwise.io/read/01j83gcn96tpdded0ydrqb6052))

  Identify Emotional Responses: Pay attention to how you feel throughout the day by checking in with yourself regularly. Describe these emotions accurately using specific terms such as frustration, excitement, sadness, or contentment. [View Highlight](https://read.readwise.io/read/01j83gcy7trhxp8ccs2kecxz2s))

  Explore Underlying Causes: Dig deeper into your reactions by questioning why certain situations evoke particular emotional responses within you. [View Highlight](https://read.readwise.io/read/01j83gdgv4dd5z122knj7yyb8v))

  Monitor Physical Sensations: Observe any physical sensations associated with different emotions—such as increased heart rate during moments of anger or tension—to develop an awareness of your body’s response. [View Highlight](https://read.readwise.io/read/01j83ge9xk9phtja3tpg8mcw1c))

  **Identify coping mechanisms**: Reflect on past entries where you successfully managed stressful situations. Note down those techniques and activities that helped alleviate your stress levels. [View Highlight](https://read.readwise.io/read/01j83ghndtsnn7x0d678pgmtbz))

  **Set realistic goals**: Break down larger tasks into smaller, achievable goals. This will provide a sense of progress and accomplishment while reducing overwhelm. [View Highlight](https://read.readwise.io/read/01j83ghwt10bc8h4d5wmteebb2))

  **Practice self-care**: Prioritize activities that promote relaxation and well-being, such as exercise, meditation, or spending time in nature. [View Highlight](https://read.readwise.io/read/01j83gj5e39ctg3sj16zs2wpyw))

  **Seek support**: Reach out to trusted friends or family members who can offer guidance and encouragement during challenging times. [View Highlight](https://read.readwise.io/read/01j83gj9v2zbm0ggre2zrgk54a))

  Enhanced self-reflection: Practicing mindfulness allows individuals like Sarah to observe their thoughts and emotions without judgment, fostering greater understanding of their inner experiences. [View Highlight](https://read.readwise.io/read/01j83gmxxazma1tt6rb144p8xs))

  Improved emotional regulation: By cultivating awareness of their emotions through mindful journaling, individuals can develop strategies for managing challenging feelings effectively. [View Highlight](https://read.readwise.io/read/01j83gneyj2gmpr6zp51vybmjp))

  Increased clarity and perspective: Engaging in mindful reflection while journaling enables individuals to gain fresh insights and new perspectives on stressful situations. [View Highlight](https://read.readwise.io/read/01j83gnhg39rqb94yept0sk884))

  Strengthened resilience: Regularly practicing mindfulness in conjunction with journaling equips individuals with tools to navigate adversity more skillfully. [View Highlight](https://read.readwise.io/read/01j83gp7c9ekx44ypp3sgrc4hz))


path: Readwise/NeurodiversityWhitePaperFINAL.md
sortable_path: ReadwiseNeurodiversityWhitePaperFINAL.md
title: NeurodiversityWhitePaperFINAL
checksum: 9c8efdce960fdf2d3b35a721119c581007f2e5762e7d44375c34ef5f091fee6f
created: 2024-09-23 00:21:30.177722211+00:00
modified: 2024-09-23 00:20:45.044653825+00:00
metadata: {}
lead:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/media/reader/parsed_document_assets/217097737/R5UR4y6xDYgXS7GQrVIXqqEfxTK7onAwuxIThk45JEw-cove_tLj7cMv.png)

body:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/media/reader/parsed_document_assets/217097737/R5UR4y6xDYgXS7GQrVIXqqEfxTK7onAwuxIThk45JEw-cove_tLj7cMv.png)

  ## Metadata
  - Author: [[cdsreg.com]]
  - Full Title: NeurodiversityWhitePaperFINAL
  - Category: #articles
  - Document Tags: [[design]] [[dev/accesibility]] 
  - URL: https://www.cdsreg.com/assets/NeurodiversityWhitePaperFINAL.pdf
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=NeurodiversityWhitePaperFINAL

  ## Highlights
  A structured and predictable layout helps all attendees find what they need. Keep headings, colors, and spacing consistent throughout your event web page and forms to create a familiar visual pattern for neurodiverse users. [View Highlight](https://read.readwise.io/read/01j80z4vtd50rd6mx389xj245v))

  Choose legible fonts and appropriate font sizes to enhance readability. [View Highlight](https://read.readwise.io/read/01j80z5jjrtnjhrzz45151hedj))

  neurodiverse audiences have a preference toward muted, pastel hues and neutral tones. Consider using a matte black background with two or three pastel hues to depict data, or a neutral tan, gray, or white background to prevent colors from overwhelming the reader. [View Highlight](https://read.readwise.io/read/01j80zay83cd3zs5mr5cv8f5bj))

  r [View Highlight](https://read.readwise.io/read/01j80zbt6qxbf3qnkdw3z8qee1))

  Simplify your event web page and forms by reducing unnecessary animations and busy backgrounds. A clean design minimizes sensory overload, allowing neurodiverse users to focus on essential content. [View Highlight](https://read.readwise.io/read/01j80zeq2075rv1rej44a7k0mk))

  o [View Highlight](https://read.readwise.io/read/01j80zezsd7tf9tmtrw0nbqgp3))

  Use clear headings, subheadings, and visual cues to establish a hierarchy of information. Neurodiverse users benefit from a structured content layout that helps them quickly grasp the importance and organization of information. [View Highlight](https://read.readwise.io/read/01j80zgp155t1g2japh3sm2jm3))

  Craft straightforward language and concise sentences to facilitate comprehension. Clear content helps neurodiverse individuals process information more easily and reduces the risk of misinterpretation. [View Highlight](https://read.readwise.io/read/01j80zhpdq1k0knybfacq7d8xz))

  Include descriptive image alternative text (also known as alt text or alt tags) for images and diagrams. This ensures that neurodiverse attendees who rely on screen readers or have difficulty interpreting visuals can access and understand the content. [View Highlight](https://read.readwise.io/read/01j80zn0r0zsw75xejf3gpam0t))

  Incorporate sufficient spacing between elements and paragraphs. White space enhances content digestion, prevents crowding, and enables neurodiverse users to focus on individual pieces of information. [View Highlight](https://read.readwise.io/read/01j80znjnftwn94d83yj7ejzkk))

  Provide the ability to adjust font sizes, color themes, and reading modes. Customizable options empower neurodiverse attendees to tailor the online experience to their preferences, enhancing their engagement. [View Highlight](https://read.readwise.io/read/01j80zq3newv6vp3g8qbhf9bda))

  Offer a straightforward navigation menu with clear labels. Neurodiverse individuals may rely on structured browsing paths such as breadcrumb navigation, and intuitive navigation ensures everyone can easily find and explore relevant content. [View Highlight](https://read.readwise.io/read/01j80zr6nsdb9nwndf5ydhqsmv))

  Incorporate text-to-speech features to accommodate auditory learners and those with reading challenges. Enabling this functionality allows neurodiverse users to absorb content through their preferred sensory channel. [View Highlight](https://read.readwise.io/read/01j80zscatb4sypv22d48c09y3))

  When using videos or audio, provide transcripts and captions. This supports attendees who may struggle with auditory or visual processing, ensuring they can access and comprehend information effectively. [View Highlight](https://read.readwise.io/read/01j80zszx3pkx6xhb3xrz1v49m))

  Ensure forms follow a logical flow and offer clear instructions, and that there are visual cues like highlighted inputs to help readers know where they are in the form. A step-by-step approach minimizes confusion and frustration for neurodiverse users during data input. [View Highlight](https://read.readwise.io/read/01j80ztdpbr8m2kbjc7pyss1ac))

raw_content:
  # NeurodiversityWhitePaperFINAL

  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/media/reader/parsed_document_assets/217097737/R5UR4y6xDYgXS7GQrVIXqqEfxTK7onAwuxIThk45JEw-cove_tLj7cMv.png)

  ## Metadata
  - Author: [[cdsreg.com]]
  - Full Title: NeurodiversityWhitePaperFINAL
  - Category: #articles
  - Document Tags: [[design]] [[dev/accesibility]] 
  - URL: https://www.cdsreg.com/assets/NeurodiversityWhitePaperFINAL.pdf
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=NeurodiversityWhitePaperFINAL

  ## Highlights
  A structured and predictable layout helps all attendees find what they need. Keep headings, colors, and spacing consistent throughout your event web page and forms to create a familiar visual pattern for neurodiverse users. [View Highlight](https://read.readwise.io/read/01j80z4vtd50rd6mx389xj245v))

  Choose legible fonts and appropriate font sizes to enhance readability. [View Highlight](https://read.readwise.io/read/01j80z5jjrtnjhrzz45151hedj))

  neurodiverse audiences have a preference toward muted, pastel hues and neutral tones. Consider using a matte black background with two or three pastel hues to depict data, or a neutral tan, gray, or white background to prevent colors from overwhelming the reader. [View Highlight](https://read.readwise.io/read/01j80zay83cd3zs5mr5cv8f5bj))

  r [View Highlight](https://read.readwise.io/read/01j80zbt6qxbf3qnkdw3z8qee1))

  Simplify your event web page and forms by reducing unnecessary animations and busy backgrounds. A clean design minimizes sensory overload, allowing neurodiverse users to focus on essential content. [View Highlight](https://read.readwise.io/read/01j80zeq2075rv1rej44a7k0mk))

  o [View Highlight](https://read.readwise.io/read/01j80zezsd7tf9tmtrw0nbqgp3))

  Use clear headings, subheadings, and visual cues to establish a hierarchy of information. Neurodiverse users benefit from a structured content layout that helps them quickly grasp the importance and organization of information. [View Highlight](https://read.readwise.io/read/01j80zgp155t1g2japh3sm2jm3))

  Craft straightforward language and concise sentences to facilitate comprehension. Clear content helps neurodiverse individuals process information more easily and reduces the risk of misinterpretation. [View Highlight](https://read.readwise.io/read/01j80zhpdq1k0knybfacq7d8xz))

  Include descriptive image alternative text (also known as alt text or alt tags) for images and diagrams. This ensures that neurodiverse attendees who rely on screen readers or have difficulty interpreting visuals can access and understand the content. [View Highlight](https://read.readwise.io/read/01j80zn0r0zsw75xejf3gpam0t))

  Incorporate sufficient spacing between elements and paragraphs. White space enhances content digestion, prevents crowding, and enables neurodiverse users to focus on individual pieces of information. [View Highlight](https://read.readwise.io/read/01j80znjnftwn94d83yj7ejzkk))

  Provide the ability to adjust font sizes, color themes, and reading modes. Customizable options empower neurodiverse attendees to tailor the online experience to their preferences, enhancing their engagement. [View Highlight](https://read.readwise.io/read/01j80zq3newv6vp3g8qbhf9bda))

  Offer a straightforward navigation menu with clear labels. Neurodiverse individuals may rely on structured browsing paths such as breadcrumb navigation, and intuitive navigation ensures everyone can easily find and explore relevant content. [View Highlight](https://read.readwise.io/read/01j80zr6nsdb9nwndf5ydhqsmv))

  Incorporate text-to-speech features to accommodate auditory learners and those with reading challenges. Enabling this functionality allows neurodiverse users to absorb content through their preferred sensory channel. [View Highlight](https://read.readwise.io/read/01j80zscatb4sypv22d48c09y3))

  When using videos or audio, provide transcripts and captions. This supports attendees who may struggle with auditory or visual processing, ensuring they can access and comprehend information effectively. [View Highlight](https://read.readwise.io/read/01j80zszx3pkx6xhb3xrz1v49m))

  Ensure forms follow a logical flow and offer clear instructions, and that there are visual cues like highlighted inputs to help readers know where they are in the form. A step-by-step approach minimizes confusion and frustration for neurodiverse users during data input. [View Highlight](https://read.readwise.io/read/01j80ztdpbr8m2kbjc7pyss1ac))


path: Readwise/The Composition Over Inheritance Principle¶.md
sortable_path: ReadwiseThe Composition Over Inheritance Principle¶.md
title: The Composition Over Inheritance Principle¶
lead: ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)
checksum: e3f1df0fa72ecaaced6d4575008c32cb2ce10fd3c3abd6fbb786946db687dbf9
created: 2024-09-23 00:21:30.312229629+00:00
modified: 2024-09-23 00:20:45.583656007+00:00
metadata: {}
body:
  ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png)

  ## Metadata
  - Author: [[python-patterns.guide]]
  - Full Title: The Composition Over Inheritance Principle¶
  - Category: #articles
  - URL: https://python-patterns.guide/gang-of-four/composition-over-inheritance/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Composition%20Over%20Inheritance%20Principle%C2%B6
  > [!tldr]
  > The Composition Over Inheritance principle emphasizes that using composition (combining classes) is often more effective than inheritance (subclassing) for managing complexity in code. By employing design patterns like Adapter, Bridge, and Decorator, developers can create flexible logging systems that separate filtering from logging behavior. This approach allows for easier maintenance and the ability to mix and match different filters and handlers at runtime without creating a large number of subclasses.

  ## Highlights
  Favor object composition over class inheritance. [View Highlight](https://read.readwise.io/read/01j8bahv00beg9tchtr4b8hkem))

  A crucial weakness of inheritance as a design strategy is that a class often needs to be specialized along several different design axes at once, leading to what the Gang of Four call “a proliferation of classes” in their Bridge chapter and “an explosion of subclasses to support every combination” in their Decorator chapter. [View Highlight](https://read.readwise.io/read/01j8bakccctxe895jka6vmvdyw))

  The total number of classes will increase geometrically if *m* and *n* both continue to grow. This is the “proliferation of classes” and “explosion of subclasses” that the Gang of Four want to avoid. [View Highlight](https://read.readwise.io/read/01j8baqph5c3v99rgn0p32tj70))

  The solution is to recognize that a class responsible for both filtering messages and logging messages is too complicated. In modern Object Oriented practice, it would be accused of violating the “Single Responsibility Principle.” [View Highlight](https://read.readwise.io/read/01j8bar8r89tdkkqwg09cy61bk))

  One solution is the Adapter Pattern: to decide that the original logger class doesn’t need to be improved, because any mechanism for outputting messages can be wrapped up to look like the file object that the logger is expecting. [View Highlight](https://read.readwise.io/read/01j8bat4m4e3sttcc3x9x8nbtw))

  Python encourages duck typing [View Highlight](https://read.readwise.io/read/01j8bav8whbf9z87ssg40m23kz))
  > [!note]
  > Duck typing: A programming concept primarily associated with the Python language, duck typing emphasizes an object's behavior (methods and properties) over its explicit type. The term is derived from the saying, "If it looks like a duck and quacks like a duck, it must be a duck," indicating that the suitability of an object is determined by the presence of certain methods and attributes rather than its inheritance or class. This approach allows for greater flexibility and adaptability in coding, as it encourages developers to focus on what an object can do rather than what it is, facilitating the creation of lightweight adapters and promoting code reuse.

  And so the subclass explosion is avoided! Logger objects and adapter objects can be freely mixed and matched at runtime without the need to create any further classes: [View Highlight](https://read.readwise.io/read/01j8baynydfgxctvwbdw0rca62))

  The Bridge Pattern splits a class’s behavior between an outer “abstraction” object that the caller sees and an “implementation” object that’s wrapped inside. We can apply the Bridge Pattern to our logging example if we make the (perhaps slightly arbitrary) decision that filtering belongs out in the “abstraction” class while output belongs in the “implementation” class. [View Highlight](https://read.readwise.io/read/01j8bb0dxxf1dewfg0jyv6w8tn))

raw_content:
  # The Composition Over Inheritance Principle¶

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

  ## Metadata
  - Author: [[python-patterns.guide]]
  - Full Title: The Composition Over Inheritance Principle¶
  - Category: #articles
  - URL: https://python-patterns.guide/gang-of-four/composition-over-inheritance/
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Composition%20Over%20Inheritance%20Principle%C2%B6
  > [!tldr]
  > The Composition Over Inheritance principle emphasizes that using composition (combining classes) is often more effective than inheritance (subclassing) for managing complexity in code. By employing design patterns like Adapter, Bridge, and Decorator, developers can create flexible logging systems that separate filtering from logging behavior. This approach allows for easier maintenance and the ability to mix and match different filters and handlers at runtime without creating a large number of subclasses.

  ## Highlights
  Favor object composition over class inheritance. [View Highlight](https://read.readwise.io/read/01j8bahv00beg9tchtr4b8hkem))

  A crucial weakness of inheritance as a design strategy is that a class often needs to be specialized along several different design axes at once, leading to what the Gang of Four call “a proliferation of classes” in their Bridge chapter and “an explosion of subclasses to support every combination” in their Decorator chapter. [View Highlight](https://read.readwise.io/read/01j8bakccctxe895jka6vmvdyw))

  The total number of classes will increase geometrically if *m* and *n* both continue to grow. This is the “proliferation of classes” and “explosion of subclasses” that the Gang of Four want to avoid. [View Highlight](https://read.readwise.io/read/01j8baqph5c3v99rgn0p32tj70))

  The solution is to recognize that a class responsible for both filtering messages and logging messages is too complicated. In modern Object Oriented practice, it would be accused of violating the “Single Responsibility Principle.” [View Highlight](https://read.readwise.io/read/01j8bar8r89tdkkqwg09cy61bk))

  One solution is the Adapter Pattern: to decide that the original logger class doesn’t need to be improved, because any mechanism for outputting messages can be wrapped up to look like the file object that the logger is expecting. [View Highlight](https://read.readwise.io/read/01j8bat4m4e3sttcc3x9x8nbtw))

  Python encourages duck typing [View Highlight](https://read.readwise.io/read/01j8bav8whbf9z87ssg40m23kz))
  > [!note]
  > Duck typing: A programming concept primarily associated with the Python language, duck typing emphasizes an object's behavior (methods and properties) over its explicit type. The term is derived from the saying, "If it looks like a duck and quacks like a duck, it must be a duck," indicating that the suitability of an object is determined by the presence of certain methods and attributes rather than its inheritance or class. This approach allows for greater flexibility and adaptability in coding, as it encourages developers to focus on what an object can do rather than what it is, facilitating the creation of lightweight adapters and promoting code reuse.

  And so the subclass explosion is avoided! Logger objects and adapter objects can be freely mixed and matched at runtime without the need to create any further classes: [View Highlight](https://read.readwise.io/read/01j8baynydfgxctvwbdw0rca62))

  The Bridge Pattern splits a class’s behavior between an outer “abstraction” object that the caller sees and an “implementation” object that’s wrapped inside. We can apply the Bridge Pattern to our logging example if we make the (perhaps slightly arbitrary) decision that filtering belongs out in the “abstraction” class while output belongs in the “implementation” class. [View Highlight](https://read.readwise.io/read/01j8bb0dxxf1dewfg0jyv6w8tn))


path: Readwise/The Easy Intro to the APCA Contrast Method.md
sortable_path: ReadwiseThe Easy Intro to the APCA Contrast Method.md
title: The Easy Intro to the APCA Contrast Method
lead: ![rw-book-cover](https://git.myndex.com/images/APCAresourcesTheWorldIsReading.png)
checksum: bc9f63041b92e7d02bbb6e834c72ceea7a968914771e2f768d8ca3db53a635d7
created: 2024-09-23 00:21:30.38212191+00:00
modified: 2024-09-23 00:20:44.955653464+00:00
metadata: {}
body:
  ![rw-book-cover](https://git.myndex.com/images/APCAresourcesTheWorldIsReading.png)

  ## Metadata
  - Author: [[APCA]]
  - Full Title: The Easy Intro to the APCA Contrast Method
  - Category: #articles
  - Document Tags: [[design]] [[dev]] 
  - URL: https://git.apcacontrast.com/documentation/APCAeasyIntro.html
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Easy%20Intro%20to%20the%20APCA%20Contrast%20Method
  > [!tldr]
  > The APCA Contrast Method is a new way to measure readability contrast, improving upon outdated WCAG 2.x guidelines. It focuses on lightness contrast, ensuring consistent visual perception across various colors and contexts. This method helps designers create more accessible web content, especially for users with different visual impairments.

  ## Highlights
  **Visual Acuity (VA)**. VA refers to the ability to focus the eyes on a small item, to a sharp clear image. An acuity impairment limits how small an item we can focus on. An eye doctor can prescribe glasses or contacts, or perform surgery, to improve acuity. One way we can help accommodate acuity problems is to make things bigger. [View Highlight](https://read.readwise.io/read/01j80q19atq7kcj9e3xhjv3m6j))

  **Contrast Sensitivity (CS)**. CS is our ability to detect edges, lines, & letters against a background. CS is separate from acuity, and we can have good acuity with poor contrast sensitivity. We can improve our contrast perception by increasing the light on the subject. On a computer screen, we can increase the difference between a darker and a lighter color. [View Highlight](https://read.readwise.io/read/01j80q35df9x2a0t34ts8r7vyj))

  **Color Vision Deficiency (CVD)**. CVD is a reduced ability to distinguish different hues of color. (Sometimes called “colorblind”). Those with CVD have as good or better vision and contrast sensitivity, as standard vision. Thus, CVD does not impact readability per se. But CVD affects visual tasks such as reading a map or charts (dataviz), due to the need to discriminate colors (hue). [View Highlight](https://read.readwise.io/read/01j80q4ftg8t1nw6etbpna3xhf))

  contrast between two colors is sensitive to context. This means the other items around it affects how you see it. The “spatial characteristics” of line thickness or text weight & size, govern our contrast sensitivity. [View Highlight](https://read.readwise.io/read/01j80q6p2903s73a752yvtaj83))

  For readability, we need ample lightness-contrast, disregarding color as in hue. Color contrast, meaning hue/saturation, does not play a major role in readability. But ample lightness/darkness contrast enables fluent readability at best speed and comprehension. This is especially true for small body text, such as in columns or blocks. [View Highlight](https://read.readwise.io/read/01j80q83bh27pagnrreeqfeze8))

  • **The contrast sensitivity threshold** **(CS)** is the point of “just noticeable differences” (JND). That is, the point between visible and invisible.
  • Fluent readability refers to critical contrast. This is the smallest amount needed for best reading speed and comprehension. Peer-reviewed science tells us¹ contrast should be at least ten times the JND. The preferred contrast reserve is twenty times threshold for best fluent reading.
  • Spot readability means readable without significant effort. Spot reading is the lowest readable level, where the contrast needs to be three times the JND. This low level is useful for disabled controls, copyright bugs, and other non-content. [View Highlight](https://read.readwise.io/read/01j80qcm3haxxzbq87k5070v11))

  T [View Highlight](https://read.readwise.io/read/01j80qg1xsekbn8qen3c2b12ew))

  he following chart demonstrates the spatial nature of human contrast sensitivity. The text samples connect the abstract science of the CS curve to practical reality.
  ![This is a chart of the human contrast sensitivity curve. A blue line curves down to the right where the Y axis is contrast sensitivity, and the X access is spatial frequency, increasing toward the right. An increase in spatial frequency means elements are smaller and thinner. On the right of this info graphic are samples of text from very large and bold to very thin and small, with red lead lines indicating approximately where those samples fall on the contrast sensitivity curve. All of the text samples are at the exact same CSS color of #c7c7c7, the top very large and bold headline is legible but as the fonts become thinner and smaller they literally fade out as if becoming lighter gray, even though they are all at the exact same color.](https://git.apcacontrast.com/images/contrastSensitivityGraph5sameColor.png) [View Highlight](https://read.readwise.io/read/01j80qftmhwxycjeeb699tq6cr))

  Lightness contrast (Lc) [View Highlight](https://read.readwise.io/read/01j80qn4r2akhdg9bqz128fehm))

  APCA generates a lightness contrast value for a minimum font weight, size, and color pair. This value is uniform to lightness/darkness perception. Regardless of how light or dark the two colors are, a given contrast value is visually consistent. Thus, ***Lc 60*** represents the same perceived contrast, for the range of available colors. [View Highlight](https://read.readwise.io/read/01j80qmyq1185m5xfy298yj5vt))

  The APCA Readability Criteria has a basic set of levels, related to use cases. For instance, ***Lc 90*** is preferred and ***Lc 75*** is the minimum for body text. This makes it easy to use APCA, very much like WCAG guideline 1.4.3 for ease of use. [View Highlight](https://read.readwise.io/read/01j80qqdpsrb9rk2ejpzwkfy49))

  The values below based on the reference font Helvetica or Arial.
  • **Lc 90** - Preferred level for fluent text and columns of body text with a font no smaller than 14px/weight 400 (normal).
  • **Lc 75** - The minimum level for columns of body text with a font no smaller than 18px/400. Consider Lc 75 as a minimum for text where readability is important.
  • **Lc 60** - The minimum level recommended for content text that is not body, column, or block text. In other words, text you want people to read. The minimums: 24px normal weight (400) or 16px/700 (bold).
  • **Lc 45** - The minimum for larger, heavier text (36px normal weight or 24px bold) such as headlines. This is also the minimum for pictograms with fine details.
  • **Lc 30** - The absolute minimum for any text not listed above. This includes placeholder text and disabled element text. This is also the minimum for large/solid semantic & understandable non-text elements.
  • **Lc 15** - The absolute minimum for any non-text that needs to be discernible and differentiable, and is no less than 5px in its smallest dimension. This may include disabled large buttons. Designers should treat anything below this level as invisible. Less than Lc15 will not be visible for many users. Avoid less than Lc30 for anything important for the use, understanding, or interaction of the site. [View Highlight](https://read.readwise.io/read/01j80qwns8z71advxzqxtd91x8))

  The demonstrator tool provides real-time updates of minimum font size & weight vs ***Lc*** lightness-contrast. [**apcacontrast.com**](https://apcacontrast.com/) The tool has several ways to enter a color. Click on the color patches to bring up a color-picker, enter a hex value or an RGB value, or use the sliders. The text color supports alpha. A negative ***Lc*** value, such as ***Lc -60*** means the text is lighter than the background. A positive value ***Lc 60*** means the text is darker than the background (light mode). [View Highlight](https://read.readwise.io/read/01j80r1cmq4sx7cfxpy38ntfek))

  • **Spatial or spatially:** relating to size, weight, or thickness.
  • **Hue:** the uniqueness of a given color vs other colors, i.e. blue vs red.
  • **Chroma/saturation:** the intensity or purity of a color vs no color.
  • **Luminance:** a physical measure of light, disregarding hue.
  • **Lightness:** the human perception of a given luminance. Also darkness and brightness. [View Highlight](https://read.readwise.io/read/01j80r1p31g0yk305pv0zjq7zz))

raw_content:
  # The Easy Intro to the APCA Contrast Method

  ![rw-book-cover](https://git.myndex.com/images/APCAresourcesTheWorldIsReading.png)

  ## Metadata
  - Author: [[APCA]]
  - Full Title: The Easy Intro to the APCA Contrast Method
  - Category: #articles
  - Document Tags: [[design]] [[dev]] 
  - URL: https://git.apcacontrast.com/documentation/APCAeasyIntro.html
  - Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Easy%20Intro%20to%20the%20APCA%20Contrast%20Method
  > [!tldr]
  > The APCA Contrast Method is a new way to measure readability contrast, improving upon outdated WCAG 2.x guidelines. It focuses on lightness contrast, ensuring consistent visual perception across various colors and contexts. This method helps designers create more accessible web content, especially for users with different visual impairments.

  ## Highlights
  **Visual Acuity (VA)**. VA refers to the ability to focus the eyes on a small item, to a sharp clear image. An acuity impairment limits how small an item we can focus on. An eye doctor can prescribe glasses or contacts, or perform surgery, to improve acuity. One way we can help accommodate acuity problems is to make things bigger. [View Highlight](https://read.readwise.io/read/01j80q19atq7kcj9e3xhjv3m6j))

  **Contrast Sensitivity (CS)**. CS is our ability to detect edges, lines, & letters against a background. CS is separate from acuity, and we can have good acuity with poor contrast sensitivity. We can improve our contrast perception by increasing the light on the subject. On a computer screen, we can increase the difference between a darker and a lighter color. [View Highlight](https://read.readwise.io/read/01j80q35df9x2a0t34ts8r7vyj))

  **Color Vision Deficiency (CVD)**. CVD is a reduced ability to distinguish different hues of color. (Sometimes called “colorblind”). Those with CVD have as good or better vision and contrast sensitivity, as standard vision. Thus, CVD does not impact readability per se. But CVD affects visual tasks such as reading a map or charts (dataviz), due to the need to discriminate colors (hue). [View Highlight](https://read.readwise.io/read/01j80q4ftg8t1nw6etbpna3xhf))

  contrast between two colors is sensitive to context. This means the other items around it affects how you see it. The “spatial characteristics” of line thickness or text weight & size, govern our contrast sensitivity. [View Highlight](https://read.readwise.io/read/01j80q6p2903s73a752yvtaj83))

  For readability, we need ample lightness-contrast, disregarding color as in hue. Color contrast, meaning hue/saturation, does not play a major role in readability. But ample lightness/darkness contrast enables fluent readability at best speed and comprehension. This is especially true for small body text, such as in columns or blocks. [View Highlight](https://read.readwise.io/read/01j80q83bh27pagnrreeqfeze8))

  • **The contrast sensitivity threshold** **(CS)** is the point of “just noticeable differences” (JND). That is, the point between visible and invisible.
  • Fluent readability refers to critical contrast. This is the smallest amount needed for best reading speed and comprehension. Peer-reviewed science tells us¹ contrast should be at least ten times the JND. The preferred contrast reserve is twenty times threshold for best fluent reading.
  • Spot readability means readable without significant effort. Spot reading is the lowest readable level, where the contrast needs to be three times the JND. This low level is useful for disabled controls, copyright bugs, and other non-content. [View Highlight](https://read.readwise.io/read/01j80qcm3haxxzbq87k5070v11))

  T [View Highlight](https://read.readwise.io/read/01j80qg1xsekbn8qen3c2b12ew))

  he following chart demonstrates the spatial nature of human contrast sensitivity. The text samples connect the abstract science of the CS curve to practical reality.
  ![This is a chart of the human contrast sensitivity curve. A blue line curves down to the right where the Y axis is contrast sensitivity, and the X access is spatial frequency, increasing toward the right. An increase in spatial frequency means elements are smaller and thinner. On the right of this info graphic are samples of text from very large and bold to very thin and small, with red lead lines indicating approximately where those samples fall on the contrast sensitivity curve. All of the text samples are at the exact same CSS color of #c7c7c7, the top very large and bold headline is legible but as the fonts become thinner and smaller they literally fade out as if becoming lighter gray, even though they are all at the exact same color.](https://git.apcacontrast.com/images/contrastSensitivityGraph5sameColor.png) [View Highlight](https://read.readwise.io/read/01j80qftmhwxycjeeb699tq6cr))

  Lightness contrast (Lc) [View Highlight](https://read.readwise.io/read/01j80qn4r2akhdg9bqz128fehm))

  APCA generates a lightness contrast value for a minimum font weight, size, and color pair. This value is uniform to lightness/darkness perception. Regardless of how light or dark the two colors are, a given contrast value is visually consistent. Thus, ***Lc 60*** represents the same perceived contrast, for the range of available colors. [View Highlight](https://read.readwise.io/read/01j80qmyq1185m5xfy298yj5vt))

  The APCA Readability Criteria has a basic set of levels, related to use cases. For instance, ***Lc 90*** is preferred and ***Lc 75*** is the minimum for body text. This makes it easy to use APCA, very much like WCAG guideline 1.4.3 for ease of use. [View Highlight](https://read.readwise.io/read/01j80qqdpsrb9rk2ejpzwkfy49))

  The values below based on the reference font Helvetica or Arial.
  • **Lc 90** - Preferred level for fluent text and columns of body text with a font no smaller than 14px/weight 400 (normal).
  • **Lc 75** - The minimum level for columns of body text with a font no smaller than 18px/400. Consider Lc 75 as a minimum for text where readability is important.
  • **Lc 60** - The minimum level recommended for content text that is not body, column, or block text. In other words, text you want people to read. The minimums: 24px normal weight (400) or 16px/700 (bold).
  • **Lc 45** - The minimum for larger, heavier text (36px normal weight or 24px bold) such as headlines. This is also the minimum for pictograms with fine details.
  • **Lc 30** - The absolute minimum for any text not listed above. This includes placeholder text and disabled element text. This is also the minimum for large/solid semantic & understandable non-text elements.
  • **Lc 15** - The absolute minimum for any non-text that needs to be discernible and differentiable, and is no less than 5px in its smallest dimension. This may include disabled large buttons. Designers should treat anything below this level as invisible. Less than Lc15 will not be visible for many users. Avoid less than Lc30 for anything important for the use, understanding, or interaction of the site. [View Highlight](https://read.readwise.io/read/01j80qwns8z71advxzqxtd91x8))

  The demonstrator tool provides real-time updates of minimum font size & weight vs ***Lc*** lightness-contrast. [**apcacontrast.com**](https://apcacontrast.com/) The tool has several ways to enter a color. Click on the color patches to bring up a color-picker, enter a hex value or an RGB value, or use the sliders. The text color supports alpha. A negative ***Lc*** value, such as ***Lc -60*** means the text is lighter than the background. A positive value ***Lc 60*** means the text is darker than the background (light mode). [View Highlight](https://read.readwise.io/read/01j80r1cmq4sx7cfxpy38ntfek))

  • **Spatial or spatially:** relating to size, weight, or thickness.
  • **Hue:** the uniqueness of a given color vs other colors, i.e. blue vs red.
  • **Chroma/saturation:** the intensity or purity of a color vs no color.
  • **Luminance:** a physical measure of light, disregarding hue.
  • **Lightness:** the human perception of a given luminance. Also darkness and brightness. [View Highlight](https://read.readwise.io/read/01j80r1p31g0yk305pv0zjq7zz))


# links

title: https://torrentfreak.com/17-year-old-student-exposes-germanys-secret-pirate-site-blocklist-240822/
href: https://torrentfreak.com/17-year-old-student-exposes-germanys-secret-pirate-site-blocklist-240822/
type: implicit
snippet:
  URL: https://torrentfreak.com/17-year-old-student-exposes-germanys-secret-pirate-site-blocklist-240822/


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=17-Year-Old%20Student%20Exposes%20Germany%27s%20%27Secret%27%20Pirate%20Site%20Blocklist

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=17-Year-Old%20Student%20Exposes%20Germany%27s%20%27Secret%27%20Pirate%20Site%20Blocklist

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=17-Year-Old%20Student%20Exposes%20Germany%27s%20%27Secret%27%20Pirate%20Site%20Blocklist


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=3%20Simple%20Hacks%20to%20Stay%20Up-to-Date%20as%20a%20Developer

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=3%20Simple%20Hacks%20to%20Stay%20Up-to-Date%20as%20a%20Developer

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=3%20Simple%20Hacks%20to%20Stay%20Up-to-Date%20as%20a%20Developer


title: View Highlight
href: https://read.readwise.io/read/01j6ye17qj6mqt3hvcv776vd0t
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6ye8bktbvyjv1763jf4333z
type: markdown
snippet:
  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))


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


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


title: View Highlight
href: https://read.readwise.io/read/01j6yees1azkpzgsabf3r546av
type: markdown
snippet:
  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))


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


title: View Highlight
href: https://read.readwise.io/read/01j6yeg5yy6m8g2tpgd4xj5gv6
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=8%20Principles%20for%20a%20Secure%20Cloud%20Environment

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=8%20Principles%20for%20a%20Secure%20Cloud%20Environment

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=8%20Principles%20for%20a%20Secure%20Cloud%20Environment


title: View Highlight
href: https://read.readwise.io/read/01j58ch8xmresvx0x8mty8h37s
type: markdown
snippet:
  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))


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


title: View Highlight
href: https://read.readwise.io/read/01j58cm13bxanfd7bxg5th88j4
type: markdown
snippet:
  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))


title: gitleaks
type: markdown
href:
  https://click.convertkit-mail2.com/xmuvr2v7d6h6hr6eg6pc5h03owzllbn/dpheh0h0dwroe6hm/aHR0cHM6Ly9naXRodWIuY29tL2dpdGxlYWtzL2dpdGxlYWtz

snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j58cq5q1j7w0xcm19cynt6j7
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j58dr7eagpfs41b1g7cp42fr
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j58drvb7t9633re0pfwc567x
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j58dsmfdt50cgke4skb9d4vf
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20Cyberspace%20Inquisition%20%232%3A%20Impressions

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20Cyberspace%20Inquisition%20%232%3A%20Impressions

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20Cyberspace%20Inquisition%20%232%3A%20Impressions


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


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20Successful%20Git%20Branching%20Model

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20Successful%20Git%20Branching%20Model

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20Successful%20Git%20Branching%20Model


title: GitHub flow
href: https://guides.github.com/introduction/flow/
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j548s6wn5tww0q86agt4mc3b
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j548sbx0chxzjqhbdxbfkd34
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j548v29py8ken2hnj4kqn7d4
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j548xe9jrd2c98pd2kch582r
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j548z6jfdzegbyxqcbw9qzg8
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j54919d0891s3web647x0zkt
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5498mt0tq7m5y0gk06rst3t
type: markdown
snippet:
  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))


title: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20guide%20to%20design%20tokens
href: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20guide%20to%20design%20tokens
type: implicit
snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=A%20guide%20to%20design%20tokens


title: View Highlight
href: https://read.readwise.io/read/01j7gb6cqqmf343z3g33y56jkb
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7gbesf4pcyz7va8f288kq2j
type: markdown
snippet:
  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))


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


title: View Highlight
href: https://read.readwise.io/read/01j7gbjas3kb8h0szhxkkj6rss
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7gbmfh2rzgrx74f36r0f8s6
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7gbshpy8mqhasnve88440mw
type: markdown
snippet:
  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))


type: implicit
title:
  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

href:
  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

snippet:
  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


title: View Highlight
href: https://read.readwise.io/read/01j549yzv6a3s4x73cc7qj06rg
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j54a1g3dka9smm3v4ct09v4d
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j54a6t2df5kjvy8q4tyhkwas
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j54a7baf7scbgptfwf5a5hgf
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j54aa01whthekb1jegqsx42w
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=All%20You%20Need%20Is%20Data%20and%20Functions

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=All%20You%20Need%20Is%20Data%20and%20Functions

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=All%20You%20Need%20Is%20Data%20and%20Functions


title: View Highlight
href: https://read.readwise.io/read/01j6axgxbj76x7jbz4zsc45tdv
type: markdown
snippet:
  **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))


title: View Highlight
href: https://read.readwise.io/read/01j6ccvpskph772e8r479esbq4
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6ccz00s0t2aydshas3xw962
type: markdown
snippet:
  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))


title: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Best%20Practices%20for%20Maintainers
href: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Best%20Practices%20for%20Maintainers
type: implicit
snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Best%20Practices%20for%20Maintainers


title: View Highlight
href: https://read.readwise.io/read/01j59endsw1rpkb9tf8m8qawvj
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59eq13dn3wga93d01tnfqmy
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59eskv2qw7f8cfrkz5g3rvt
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59ezaxynf5z61amr95w7x7m
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59ftzzkh4m5fkbbgse1qs8y
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59fw4nd6sjdfxwtxgbn89zy
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59fyszkgtfzj58msft420j5
type: markdown
snippet:
  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))


title: variety of tools available
href: https://github.com/showcases/tools-for-open-source
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59g44y47gfp6bexny1cf077
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59g63w7h9j6krg5wpjh40ap
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Building%20a%20Second%20Brain%20-%20Tags

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Building%20a%20Second%20Brain%20-%20Tags

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Building%20a%20Second%20Brain%20-%20Tags


title: View Highlight
href: https://read.readwise.io/read/01j6hh4c8747s1xrb59f93826q
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6hhjytn42dbdcgskyjrr74q
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6hhp4pghcnk2r4z4r95n287
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6hhwgwga3a4t0bm9p3t12y6
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6hj21kk7kmc7c4f40hg3004
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6hj2t79v8mg6rey564bm350
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6hj859j9vyq735n7t634791
type: markdown
snippet:
  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))


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


title: View Highlight
href: https://read.readwise.io/read/01j6hjb00pwcgt92e9ek7ad2p7
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Caching%20vs%20Content%20Delivery%20Networks%20%E2%80%93%20What%27s%20the%20Difference%3F

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Caching%20vs%20Content%20Delivery%20Networks%20%E2%80%93%20What%27s%20the%20Difference%3F

snippet:
  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


title: View Highlight
href: https://read.readwise.io/read/01j5rvjkrkd34kjh984axnab87
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5rvj1mdcbaqnj0e9n2vnw3v
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5rvrwx5kh2fpqwfpnvxeqd9
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5rvvgawfs37758cbyyz9g69
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5rvxqm29rk1kwr36j6m9nmp
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5rw4q49kh725b3er30axw9q
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j5rw5x54n9bs6qg1mygc0vd9
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Design%20Systems%20101%3A%20What%20Is%20a%20Design%20System%3F

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Design%20Systems%20101%3A%20What%20Is%20a%20Design%20System%3F

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Design%20Systems%20101%3A%20What%20Is%20a%20Design%20System%3F


title: View Highlight
href: https://read.readwise.io/read/01j7gbyb49nhm0t495h8wwakph
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7gc0j368sfxwsseakv52kky
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7gc2ge1rj1tzkkmz150837e
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7gd50z8w8q8x5qc40hmx2yk
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7gdbmnzscxkqtkbjndqecaa
type: markdown
snippet:
  ![](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))


title: View Highlight
href: https://read.readwise.io/read/01j7gdbt1d0mvvc58jfhg57t03
type: markdown
snippet:
  ![](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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Developer%20With%20ADHD%3F%20You%E2%80%99re%20Not%20Alone

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Developer%20With%20ADHD%3F%20You%E2%80%99re%20Not%20Alone

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Developer%20With%20ADHD%3F%20You%E2%80%99re%20Not%20Alone.


title: explains
href: https://dev.to/abbeyperini/coding-and-adhd-adhd-brains-im1
type: markdown
snippet:
  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))


title: hyperfocus
href: https://health.clevelandclinic.org/hyperfocus-and-adhd/
type: markdown
snippet:
  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))


title: Neil Peterson
type: markdown
href:
  https://adapthd.com/topics/coping-strategies/programming-with-adhd-the-good-the-bad-and-the-hyperfocus/

snippet:
  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))


title: some variation
href: https://www.reddit.com/r/learnprogramming/comments/kftc4g/any_programmers_with_adhd/
type: markdown
snippet:
  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))


title: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Embedded%20Rust%20Setup%20Explained
href: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Embedded%20Rust%20Setup%20Explained
type: implicit
snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Embedded%20Rust%20Setup%20Explained


title: View Highlight
href: https://read.readwise.io/read/01j7qyvme91v6h3mqqva4s9nm6
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Five%20Terminal%20Applications%20I%20Can%27t%20Live%20Without

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Five%20Terminal%20Applications%20I%20Can%27t%20Live%20Without

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Five%20Terminal%20Applications%20I%20Can%27t%20Live%20Without


title: age
type: markdown
href:
  https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/qvh8h7hrpoermrbl/aHR0cHM6Ly9naXRodWIuY29tL0ZpbG9Tb3R0aWxlL2FnZQ==

snippet:
  [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]]


title: sshs
type: markdown
href:
  https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/g3hnh5h3w6g38mhr/aHR0cHM6Ly9naXRodWIuY29tL3F1YW50dW1zaGVlcC9zc2hz

snippet:
  [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]]


title: atac
type: markdown
href:
  https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/9qhzhnhprz4pvzc9/aHR0cHM6Ly9naXRodWIuY29tL0p1bGllbi1jcHNuL0FUQUM=

snippet:
  [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]]


title: portal
type: markdown
href:
  https://click.convertkit-mail2.com/5qulodl26mb7hv6oe4vf6h94xo444tn/48hvhehr86wrdwtx/aHR0cHM6Ly9naXRodWIuY29tL1NwYXRpdW1Qb3J0YWUvcG9ydGFs

snippet:
  [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]]


title: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=HTMX%3A%203%20IRL%20Use%20Cases
href: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=HTMX%3A%203%20IRL%20Use%20Cases
type: implicit
snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=HTMX%3A%203%20IRL%20Use%20Cases


title: View Highlight
href: https://read.readwise.io/read/01j5tc1j7ke8vs2vmcs34c07kn
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20Do%20You%20Program%20for%208h%20in%20a%20Row%3F

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20Do%20You%20Program%20for%208h%20in%20a%20Row%3F

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20Do%20You%20Program%20for%208h%20in%20a%20Row%3F


title: View Highlight
href: https://read.readwise.io/read/01j5ve0w5gwghcgzxsyvvhmwqt
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5ve777bthcmj83k6k7cec5f
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5veddky3z4g488sy5bcd4a2
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j5vee0j5h4jqxfyarnvpxnkt
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20I%20Remember%20Everything%20I%20Read%20With%20Readwise

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20I%20Remember%20Everything%20I%20Read%20With%20Readwise

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20I%20Remember%20Everything%20I%20Read%20With%20Readwise


title: View Highlight
href: https://read.readwise.io/read/01j69ty4jsa8qyqrm76cb82e1c
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j69v3539zhtvg4z09r0mhj0c
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j69v79j1jfc2ptn55y886ee5
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20Japanese%20Minimalism%20Changed%20My%20Life%3A%205%20Principles%20to%20Declutter%20Your%20Life

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20Japanese%20Minimalism%20Changed%20My%20Life%3A%205%20Principles%20to%20Declutter%20Your%20Life

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20Japanese%20Minimalism%20Changed%20My%20Life%3A%205%20Principles%20to%20Declutter%20Your%20Life


title: https://zhighley.com/japanese-minimalism-five-principles-to-declutter-your-life/
href: https://zhighley.com/japanese-minimalism-five-principles-to-declutter-your-life/
type: implicit
snippet:
  📜 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/


title: https://zhighley.com/
href: https://zhighley.com/
type: implicit
snippet:
  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/​​).


title: https://zhighley.com/newsletter/
href: https://zhighley.com/newsletter/
type: implicit
snippet:
  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...


title: View Highlight
href: https://read.readwise.io/read/01j7105sy62k477j7we49j3vng
type: markdown
snippet:
  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))


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


title: View Highlight
href: https://read.readwise.io/read/01j71087j6npx5etywvmh93dq4
type: markdown
snippet:
  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))


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


title: View Highlight
href: https://read.readwise.io/read/01j710ans5zjy9p4e10chdkk7b
type: markdown
snippet:
  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))


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


title: View Highlight
href: https://read.readwise.io/read/01j710fafawb9z9265r7r036pv
type: markdown
snippet:
  "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))


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


title: View Highlight
href: https://read.readwise.io/read/01j710mjajf9x11sk2gy3h4tbm
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j710nn39sxpz7md9mhd4cx3q
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j710xzs42s3dj7czt7py85qc
type: markdown
snippet:
  this comes to the important principle of Japanese minimalism of Wabi-sabi or kinda loving imperfection. [View Highlight](https://read.readwise.io/read/01j710xzs42s3dj7czt7py85qc))


title: View Highlight
href: https://read.readwise.io/read/01j710zgdawxb9bzxj4w5g67p8
type: markdown
snippet:
  Tip number six is to think beyond stuff. [View Highlight](https://read.readwise.io/read/01j710zgdawxb9bzxj4w5g67p8))


title: View Highlight
href: https://read.readwise.io/read/01j7117z1262k0pwpp24knqea4
type: markdown
snippet:
  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))


title: https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/
href: https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/
type: implicit
snippet:
  URL: https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/


type: implicit
title:
  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

href:
  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

snippet:
  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


title: View Highlight
href: https://read.readwise.io/read/01j5xzksta891sj1jfpexpb9vs
type: markdown
snippet:
  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))


title: 2
type: markdown
href:
  https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/#fn-2

snippet:
  "[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))


title: 3
type: markdown
href:
  https://writing.bobdoto.computer/how-a-collaborative-zettelkasten-might-work-a-modest-proposal/#fn-3

snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise%3A%20Part%202

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise%3A%20Part%202

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise%3A%20Part%202


title: View Highlight
href: https://read.readwise.io/read/01j6mqyk29xd598f62nayabzfj
type: markdown
snippet:
  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))


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


title: View Highlight
href: https://read.readwise.io/read/01j6mrf2e1tg6jz2209brj24yk
type: markdown
snippet:
  "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))


title: View Highlight
href: https://read.readwise.io/read/01j6mtvq8kd9c0cxcjmwp5bfpq
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6mtym0q2qhrbap1r1tby8cn
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise%3A%20Part%203

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise%3A%20Part%203

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise%3A%20Part%203


title: View Highlight
href: https://read.readwise.io/read/01j6mxk0qxsc1ge4ebcrabg7n8
type: markdown
snippet:
  "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))


title: View Highlight
href: https://read.readwise.io/read/01j6mxkgms2x7rkwt6qqaaq144
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6my11vve93ecp1hwdrd5n9n
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6my5fjqcss9a8zb68vqerw4
type: markdown
snippet:
  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))


title: spaced repetition
href: https://en.wikipedia.org/wiki/Spaced_repetition
type: markdown
snippet:
  [spaced repetition](https://en.wikipedia.org/wiki/Spaced_repetition), [View Highlight](https://read.readwise.io/read/01j6my96k3avt6s37knqkehh9s))


title: active recall
href: https://en.wikipedia.org/wiki/Active_recall
type: markdown
snippet:
  [active recall](https://en.wikipedia.org/wiki/Active_recall), [View Highlight](https://read.readwise.io/read/01j6my8p2zekrx849jj5c4yj06))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Actually%20Use%20What%20You%20Read%20With%20Readwise


href: https://blog.readwise.io/reading-workflow-part-1#fn1
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j58f1740ca5k7akyjp7enmkx
type: markdown
snippet:
  *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))


title: View Highlight
href: https://read.readwise.io/read/01j58f3zcas4ewpxjf861kzfy6
type: markdown
snippet:
  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]]


title: spaced repetition
href: https://en.wikipedia.org/wiki/Spaced_repetition
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j58f679pcp1vtd3ne64cxke9
type: markdown
snippet:
  Integrate might also mean **enhanced creativity** resulting from the serendipitous juxtaposition of seemingly unrelated ideas. [View Highlight](https://read.readwise.io/read/01j58f679pcp1vtd3ne64cxke9))


title: View Highlight
href: https://read.readwise.io/read/01j58f8fa57a88b7647bwyaxp4
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Not%20Write%20Like%20an%20Asshole

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Not%20Write%20Like%20an%20Asshole

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Not%20Write%20Like%20an%20Asshole


title: View Highlight
href: https://read.readwise.io/read/01j6py7hp221k6fzx7mza6b3k1
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6py9pbrq5epw3sxgy5a9wv2
type: markdown
snippet:
  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))


title: Studies have shown
href: https://lifehacker.com/5738093/why-you-learn-more-effectively-by-writing-than-typing
type: markdown
snippet:
  **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))


title: View Highlight
href: https://read.readwise.io/read/01j6pzs8wpx24wawjxq7fypj7f
type: markdown
snippet:
  **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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=I%27ve%20built%20my%20first%20successful%20side%20project%2C%20and%20I%20hate%20it

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=I%27ve%20built%20my%20first%20successful%20side%20project%2C%20and%20I%20hate%20it

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=I%27ve%20built%20my%20first%20successful%20side%20project%2C%20and%20I%20hate%20it


title: View Highlight
href: https://read.readwise.io/read/01j5y28d3ftfhss7wegbnkdwea
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j5y2yn2enf1aqz6y9akfmpxa
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5y2gg4qd0p65b97g6xjgxy1
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5y323gv3dwa4y15qzwpycg3
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5y32rm97xwbjg1tv9hr65g6
type: markdown
snippet:
  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))


title: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=In%20Search%20of%20Code%20Purity
href: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=In%20Search%20of%20Code%20Purity
type: implicit
snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=In%20Search%20of%20Code%20Purity


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


title: https://github.com/0atman/noboilerplate
href: https://github.com/0atman/noboilerplate
type: implicit
snippet:
  📄 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.


title: View Highlight
href: https://read.readwise.io/read/01j6ez3db15q2wagxxh4fxpagw
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6ezg1548mj8f5ntkwrhxh86
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6ezh53e7hcszmxxd91aze3r
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6ezpb7jgqybcmhz38r5sdxk
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6f15drv4ypknhpcqz8jh9dc
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6f1arc85y5twtf781mgy5tz
type: markdown
snippet:
  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))


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


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


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Learn%20vLANs%2C%20Subnets%2C%20and%20NAT%20to%20Improve%20Your%20Network%20Security

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Learn%20vLANs%2C%20Subnets%2C%20and%20NAT%20to%20Improve%20Your%20Network%20Security

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Learn%20vLANs%2C%20Subnets%2C%20and%20NAT%20to%20Improve%20Your%20Network%20Security


title: View Highlight
href: https://read.readwise.io/read/01j54cajqj3xyfj1eemhcmsvqw
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j54hz2c5z7kpt964rxs33095
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6ta5tywrynbek3nwrk4ztpf
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tb32z54r5n39rmednd9p0d
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tbdfg6e1wfrs92988vk3mb
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tb2h8a03x46nqxsatrwcs2
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tbg0wvc6rrxs57pnpbqpqn
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tb3tpnc9cs5f76gkkm8b8b
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tb4xc2qpbh3z0gvpt8958g
type: markdown
snippet:
  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))


title: Chapter 11
href: private://read/01j68en5pg3ysg1jcbwjsjmy61/#chap_11
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tb9cyhtard039hqes709t7
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tbn89zmyj8vdd2tvcqq327
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tbar3qva0233pbzz8xpgv2
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tbp0fjq1fvf5hxd3z6p5g1
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tbq246p82d1yr80dj96dwx
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tca09mxawkj3xcah30yy47
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6tcjsnfvnr1kz1906cpz5mz
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6wyjkm7shc41zxzk5c6xzev
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6wyprn8vttk71kp619rt10n
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6wyr4pg3m4n08ysqth3tgz7
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6wz0zc2hkz1z4417922tkks
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6wz69za3httx5ksj1zz0hnq
type: markdown
snippet:
  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))


title: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Making%20a%20Blog%20With%20Rust
href: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Making%20a%20Blog%20With%20Rust
type: implicit
snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Making%20a%20Blog%20With%20Rust


title: View Highlight
href: https://read.readwise.io/read/01j6ax5r2tem9q9dx3ctw86mj1
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j68aj6hyksvsfzm62xr7y5k7
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j68akfqnw95egtaczyadh2z8
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j68anqkv399fr50q8qhehvgm
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j68aq1fbhqx79hp9mnvn39n1
type: markdown
snippet:
  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]]


title: projects page
href: https://www.alexreichert.com/projects
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Own%20Your%20Content%20on%20Social%20Media%20Using%20the%20IndieWeb

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Own%20Your%20Content%20on%20Social%20Media%20Using%20the%20IndieWeb

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Own%20Your%20Content%20on%20Social%20Media%20Using%20the%20IndieWeb


title: View Highlight
href: https://read.readwise.io/read/01j55sdfykg3xfaj3ehnwj2rf4
type: markdown
snippet:
  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]]


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=PARA%20Method%20and%20Zettelkasten%3A%20What%E2%80%99s%20The%20Difference%3F

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=PARA%20Method%20and%20Zettelkasten%3A%20What%E2%80%99s%20The%20Difference%3F

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=PARA%20Method%20and%20Zettelkasten%3A%20What%E2%80%99s%20The%20Difference%3F


title: View Highlight
href: https://read.readwise.io/read/01j6mjrgpc2gnjjwzpzyr7ndgc
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6mjs40nymdj2zsnjk4rwm42
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6mjsp1f97yprmm81h7c6nn7
type: markdown
snippet:
  **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))


title: View Highlight
href: https://read.readwise.io/read/01j6mjxkq0a5z7m3w967zj3xxz
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Practical%20Concurrency%20in%20Go%20-%20GoRoutines%2C%20Mutexes%2C%20Channels%20and%20More

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Practical%20Concurrency%20in%20Go%20-%20GoRoutines%2C%20Mutexes%2C%20Channels%20and%20More

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Practical%20Concurrency%20in%20Go%20-%20GoRoutines%2C%20Mutexes%2C%20Channels%20and%20More


title: View Highlight
href: https://read.readwise.io/read/01j7ngcdm7y0mhae1x7a524k9q
type: markdown
snippet:
  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))


title: https://fortelabs.com/blog/project-people-vs-area-people-are-you-running-a-sprint-or-a-marathon/
href: https://fortelabs.com/blog/project-people-vs-area-people-are-you-running-a-sprint-or-a-marathon/
type: implicit
snippet:
  URL: https://fortelabs.com/blog/project-people-vs-area-people-are-you-running-a-sprint-or-a-marathon/


type: implicit
title:
  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

href:
  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

snippet:
  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


title: View Highlight
href: https://read.readwise.io/read/01j5p8akz4t1csffcf6ps9rj56
type: markdown
snippet:
  A *deadline* or timeframe by which you’d like it done. [View Highlight](https://read.readwise.io/read/01j5p8akz4t1csffcf6ps9rj56))


title: View Highlight
href: https://read.readwise.io/read/01j5p8aqhhnkykx9aw3f5jk4an
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5p8ex5f82m4zjkzte47n5f1
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5p8h36864xvfwed8kx1wbv3
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5p8mmxvbt84hm0zh4ecky0p
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5p8nq7mx2gcg1bkbebk7jb7
type: markdown
snippet:
  “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))


title: View Highlight
href: https://read.readwise.io/read/01j5p8ph0pee8fazkr6jcn9e52
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5p8pnmq54457hb2a9fwkyby
type: markdown
snippet:
  “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))


title: View Highlight
href: https://read.readwise.io/read/01j5p8q8wmf4j78vppmcst8fe4
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5p8zgbrdb2x0dc8v9aba3pc
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5p94wamdw1k24avskcd8vd2
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j5p9bh2gd06bbgmgyp9tn7ef
type: markdown
snippet:
  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))


title: The Universe Will Now Explode for Your Pleasure
href: https://us1.campaign-archive.com/?u=78cbbb7f2882629a5157fa593&id=c4f01c7ab5
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Reader%3A%20Frequently%20Asked%20Questions

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Reader%3A%20Frequently%20Asked%20Questions

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Reader%3A%20Frequently%20Asked%20Questions


title: View Highlight
href: https://read.readwise.io/read/01j53426gkd6xdb1bkxftyezfd
type: markdown
snippet:
  ![](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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Remember%20Everything%20With%20This%20Pocket%20Notebook%20System

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Remember%20Everything%20With%20This%20Pocket%20Notebook%20System

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Remember%20Everything%20With%20This%20Pocket%20Notebook%20System


title: View Highlight
href: https://read.readwise.io/read/01j70zaykjztys0bef0xp5ef4e
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j70zcrej9xvmp5905czk027r
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j70zkh7h2rtdjrptg01f854g
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j70znccjr4srj337fdjqmw79
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j70zp3p890b8kdqx21w2gqm8
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j70zrzc6s2g9x9768b2596qa
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=SIMPLIFY%20Your%20Python%20Code%20With%20the%20Facade%20Pattern

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=SIMPLIFY%20Your%20Python%20Code%20With%20the%20Facade%20Pattern

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=SIMPLIFY%20Your%20Python%20Code%20With%20the%20Facade%20Pattern


title: View Highlight
href: https://read.readwise.io/read/01j5qry2jq70c28ebz4zdeqe8z
type: markdown
snippet:
  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]]


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=SQLite%20is%20not%20a%20toy%20database

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=SQLite%20is%20not%20a%20toy%20database

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=SQLite%20is%20not%20a%20toy%20database


title: View Highlight
href: https://read.readwise.io/read/01j6hehc1ap6yxya4135j8z7d1
type: markdown
snippet:
  .import --csv city.csv city
  > select count(*) from city;
  1117 [View Highlight](https://read.readwise.io/read/01j6hehc1ap6yxya4135j8z7d1))


title: View Highlight
href: https://read.readwise.io/read/01j6hekgzt1yg4dse4xt6kqec4
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6henb91d2vd1d43x4yj6e5w
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6hev7qj7qyszxhwft53r1w9
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6hf4c5250yyf6871sphxenm
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Sharing%20Code%20Between%20Projects%3A%20Lessons%20Learned%20in%20the%20Trenches

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Sharing%20Code%20Between%20Projects%3A%20Lessons%20Learned%20in%20the%20Trenches

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Sharing%20Code%20Between%20Projects%3A%20Lessons%20Learned%20in%20the%20Trenches


title: View Highlight
href: https://read.readwise.io/read/01j7c7r70prgze7nhnwf9mrvyb
type: markdown
snippet:
  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))


title: discoverable
href: https://medium.com/@Rich_Harris/small-modules-it-s-not-quite-that-simple-3ca532d65de4#.88d5anyhv
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7c7tyqzf8z4ns8sr35gstvb
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7c7x4br1vpa6peckn8f04x1
type: markdown
snippet:
  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))


title: December 16, 2012
href: https://twitter.com/jeremyckahn/status/280406794583539712?ref_src=twsrc^tfw
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6q0y08pr5az55kbqx1za16z
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j6q1k4ha86p96pnhz2m9szcp
type: markdown
snippet:
  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]]


title: the Nu HTML Checker
href: https://github.com/validator/validator
type: markdown
snippet:
  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]]


title: The IndieMark page
href: https://indieweb.org/IndieMark
type: markdown
snippet:
  [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]]


title: IndieLogin.com service
href: https://indielogin.com/
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j6q2j1gyftbdbr59hsggy34t
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Software%20Deployment%20Models%20%E2%80%93%20Explained%20for%20Beginners

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Software%20Deployment%20Models%20%E2%80%93%20Explained%20for%20Beginners

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Software%20Deployment%20Models%20%E2%80%93%20Explained%20for%20Beginners


title: View Highlight
href: https://read.readwise.io/read/01j59dqe78wf56va1yz6gb3df0
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59dqwmj1saw3r59nt5qy2v8
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59drt66pd1rvgzhqdk6jvae
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59dtzv6kms42sp02x7p6rz6
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59dx0jgkzhxpcsrbvhmb8p5
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j59dzd3j41bgbampr7rqjsxd
type: markdown
snippet:
  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))


type: implicit
title:
  https://neal-davis.medium.com/stateful-vs-stateless-applications-differences-pros-cons-use-cases-ad4b434576b8

href:
  https://neal-davis.medium.com/stateful-vs-stateless-applications-differences-pros-cons-use-cases-ad4b434576b8

snippet:
  URL: https://neal-davis.medium.com/stateful-vs-stateless-applications-differences-pros-cons-use-cases-ad4b434576b8


type: implicit
title:
  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

href:
  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

snippet:
  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


title: View Highlight
href: https://read.readwise.io/read/01j7pd95t5qyvwt98kv86bmcbf
type: markdown
snippet:
  Stateful applications save info about the user’s “state” by keeping track of what they do. [View Highlight](https://read.readwise.io/read/01j7pd95t5qyvwt98kv86bmcbf))


title: View Highlight
href: https://read.readwise.io/read/01j7pdbyyxz2g1ems20te5d6ez
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=THE%20ZETTELKASTEN%20MANIFESTO%20%7C%20What%20is%20a%20Zettelkasten%3F

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=THE%20ZETTELKASTEN%20MANIFESTO%20%7C%20What%20is%20a%20Zettelkasten%3F

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=THE%20ZETTELKASTEN%20MANIFESTO%20%7C%20What%20is%20a%20Zettelkasten%3F


title: View Highlight
href: https://read.readwise.io/read/01j60nacy93812ptm2c0fh226q
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j62awnqp75y0p29mgp8werra
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j62b22nehaew7g0y0g2cw3fg
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j62b418gmqzv0j2ng9wg4pw6
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j62hpbfbv82tkf6kq9b3ddef
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j62hsdeyxwtxf429t43ve5rb
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j62hvprnrb55xhvd525v03ww
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Definitive%20Guide%20to%20Docker%20Swarm

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Definitive%20Guide%20to%20Docker%20Swarm

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Definitive%20Guide%20to%20Docker%20Swarm


title: View Highlight
href: https://read.readwise.io/read/01j5js3hxamp3s08ebhf5ka502
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Purest%20Coding%20Style%2C%20Where%20Bugs%20Are%20Near%20Impossible

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Purest%20Coding%20Style%2C%20Where%20Bugs%20Are%20Near%20Impossible

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Purest%20Coding%20Style%2C%20Where%20Bugs%20Are%20Near%20Impossible


title: View Highlight
href: https://read.readwise.io/read/01j7qxkzfnjbsj5k63874xp5cm
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j7qxw02q306dmkqttpc9phze
type: markdown
snippet:
  "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))


title: View Highlight
href: https://read.readwise.io/read/01j7qxwvqq86xrr3rvagas3mb2
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7qxz3ra928rvfavgendb12z
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j7qy48epfjav6h7rtv8a3nxa
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7qy688qvfwj8asj84mzz9t6
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7qy6nkgytf7x78h6mq3jqts
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7qyccaq27vqjn4wqabpsdd5
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7qyec9pb8pmxcegkbrnj5d2
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7qyeqqgmbv2v8wk6m1a0fz1
type: markdown
snippet:
  guides us in forming readable code that is highly modular and therefore maintainable. [View Highlight](https://read.readwise.io/read/01j7qyeqqgmbv2v8wk6m1a0fz1))


title: View Highlight
href: https://read.readwise.io/read/01j7qyf3kdvtrsnvdfnm7hf6fq
type: markdown
snippet:
  It does come at the cost of potentially being a bit harder to optimize [View Highlight](https://read.readwise.io/read/01j7qyf3kdvtrsnvdfnm7hf6fq))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Strategy%20Pattern%20Will%20Make%20Your%20Python%20Code%20CLEANER

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Strategy%20Pattern%20Will%20Make%20Your%20Python%20Code%20CLEANER

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Strategy%20Pattern%20Will%20Make%20Your%20Python%20Code%20CLEANER


title: View Highlight
href: https://read.readwise.io/read/01j5qs5ace2bghpggy8trfaz6r
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5qsbjkgnknchvq55mj1eec6
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5qsjaf9qdk5a5d46drkv43e
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5qsr9779888tpa2mp6w0438
type: markdown
snippet:
  Protocols are duct typed [View Highlight](https://read.readwise.io/read/01j5qsr9779888tpa2mp6w0438))


title: View Highlight
href: https://read.readwise.io/read/01j5qsr0gh3pvf1w3j0jtqm0ez
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5qswey6zs8mdgxjnv71v4gy
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Waiting%20Time%20Paradox%2C%20or%2C%20Why%20Is%20My%20Bus%20Always%20Late%3F

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Waiting%20Time%20Paradox%2C%20or%2C%20Why%20Is%20My%20Bus%20Always%20Late%3F

snippet:
  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


title: View Highlight
href: https://read.readwise.io/read/01j5vf1r4qjgrnqa3dq94f19e5
type: markdown
snippet:
  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))


title: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=This%20Week%20in%20Self-Hosted
href: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=This%20Week%20in%20Self-Hosted
type: implicit
snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=This%20Week%20in%20Self-Hosted


title: View Highlight
href: https://read.readwise.io/read/01j6vrq67ew0b2bq6vy9efws1q
type: markdown
snippet:
  ![](https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg) [View Highlight](https://read.readwise.io/read/01j6vrq67ew0b2bq6vy9efws1q))


title: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=TypeScript%20the%20Right%20Way
href: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=TypeScript%20the%20Right%20Way
type: implicit
snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=TypeScript%20the%20Right%20Way


title: View Highlight
href: https://read.readwise.io/read/01j7r04ptybp6b904wk49qar0a
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7r07sqy58gkbmcg2n0kg1tv
type: markdown
snippet:
  the first rule should be pretty obvious -  avoid using the “any” type at all costs. [View Highlight](https://read.readwise.io/read/01j7r07sqy58gkbmcg2n0kg1tv))


title: View Highlight
href: https://read.readwise.io/read/01j7r0c9r7ws816nrtcmbksehf
type: markdown
snippet:
  remember to avoid overly verbose type  annotations when they are unnecessary. [View Highlight](https://read.readwise.io/read/01j7r0c9r7ws816nrtcmbksehf))


title: View Highlight
href: https://read.readwise.io/read/01j7r0dn8e90zkxvdj370t22tw
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7r0f8r2nskx1jagx6sn7hsf
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7r0hfyz8nps371dqga3bmmh
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7r0jedxp5gd3h5qpkr428v0
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7r0pctvv439x5ev9w1ccz74
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7r0rw8djwydvfy9jdx0e8wj
type: markdown
snippet:
  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))


title: https://medium.com/@hamida.meknassi/understanding-composition-in-software-development-74f84ab984ce
href: https://medium.com/@hamida.meknassi/understanding-composition-in-software-development-74f84ab984ce
type: implicit
snippet:
  URL: https://medium.com/@hamida.meknassi/understanding-composition-in-software-development-74f84ab984ce


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Understanding%20Composition%20in%20Software%20Development

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Understanding%20Composition%20in%20Software%20Development

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Understanding%20Composition%20in%20Software%20Development


title: View Highlight
href: https://read.readwise.io/read/01j7jxtrsfs087rbx45dgh9skx
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7jxvsqhk5j1bzjarjrwymhr
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7jxxp9dp3sqncv2d9rewnqs
type: markdown
snippet:
  Can I reuse existing components? [View Highlight](https://read.readwise.io/read/01j7jxxp9dp3sqncv2d9rewnqs))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Why%20Composition%20Is%20Often%20Better%20Than%20Inheritance

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Why%20Composition%20Is%20Often%20Better%20Than%20Inheritance

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Why%20Composition%20Is%20Often%20Better%20Than%20Inheritance


title: factory
href: factory
type: wiki-link
snippet:
  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.


title: View Highlight
href: https://read.readwise.io/read/01j7k02e4exj8srkx4242fpxkj
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7k01q1m9fafymhnjn692hgk
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7k03r10m6ncdmpn301yc0ns
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7jy5adbxd6hqanwamxwyr34
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7jy705wznt9rph7nxb66r4n
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7jyaz1nx8p671tzccsgqx29
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7jzcahqza5zye0dxa3yxvdx
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7jzdzcr2kv4qtdp378h2chd
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7jzem4sqbhqgzj1z7cqm7vx
type: markdown
snippet:
  "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))


title: View Highlight
href: https://read.readwise.io/read/01j7jzm6wg5dwhd71cmtv7ehzb
type: markdown
snippet:
  *virtual* and *protected* functions. [View Highlight](https://read.readwise.io/read/01j7jzm6wg5dwhd71cmtv7ehzb))


title: View Highlight
href: https://read.readwise.io/read/01j7jzh52x8t0pgefbgzdktpay
type: markdown
snippet:
  inherited classes work together to create complex behaviour and intertwine more and more over time. [View Highlight](https://read.readwise.io/read/01j7jzh52x8t0pgefbgzdktpay))


title: View Highlight
href: https://read.readwise.io/read/01j7jzkaftyev2f34t5x6k5n43
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j7jzr2x12ncezqhzp3r1qr3h
type: markdown
snippet:
  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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Writing%20Is%20Magic.%20It%20Can%20Change%20Your%20Life

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Writing%20Is%20Magic.%20It%20Can%20Change%20Your%20Life

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Writing%20Is%20Magic.%20It%20Can%20Change%20Your%20Life


title: View Highlight
href: https://read.readwise.io/read/01j547jfjajaa9k41dtnpxsxge
type: markdown
snippet:
  “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]]


title: View Highlight
href: https://read.readwise.io/read/01j547jwm5swdx523nhy2n0w2z
type: markdown
snippet:
  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]]


title: Hemingway
type: markdown
href:
  https://click.convertkit-mail2.com/4zu4mx47q9ieh5lx3lguxh3drwv77/7qh7h8hoz8kxolfz/aHR0cHM6Ly9oZW1pbmd3YXlhcHAuY29tLw==

snippet:
  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))


title: Rhythm in writing
type: markdown
href:
  https://click.convertkit-mail2.com/4zu4mx47q9ieh5lx3lguxh3drwv77/owhkhqhronk0rduv/aHR0cHM6Ly93d3cuYmJjbWFlc3Ryby5jb20vYmxvZy9yaHl0aG0taW4td3JpdGluZw==

snippet:
  ​[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]]


title: View Highlight
href: https://read.readwise.io/read/01j547mrzvshcwd1jmdh92gg28
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j547n5d9btvs9q9xrzz1xvva
type: markdown
snippet:
  **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))


title: View Highlight
href: https://read.readwise.io/read/01j547nethjk4bbf0prnncdsk4
type: markdown
snippet:
  **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))


type: implicit
title:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Writing%20Over%20Infinite%20Scrolling%20%7C%20Journal%20Like%20a%20Scientist

href:
  https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Writing%20Over%20Infinite%20Scrolling%20%7C%20Journal%20Like%20a%20Scientist

snippet:
  Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Writing%20Over%20Infinite%20Scrolling%20%7C%20Journal%20Like%20a%20Scientist


title: View Highlight
href: https://read.readwise.io/read/01j536cg9k591ndzmjdyn3acx0
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j536ety7c80mnxr62zpjdxzp
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j536hwghwa7h71cfjs4mhw3f
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j536q30j8nqkpcd7dqgrh2ar
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j536tb8h218sb5f4jzbh4c4e
type: markdown
snippet:
  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]]


title: View Highlight
href: https://read.readwise.io/read/01j5373tkcxah1j67yk861wjpp
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j5377gqcfcwfzmwe0mtb9w32
type: markdown
snippet:
  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))


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


title: View Highlight
href: https://read.readwise.io/read/01j6s8wm539b8fne7spch2qqnp
type: markdown
snippet:
  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))


title: View Highlight
href: https://read.readwise.io/read/01j6s90vvygxh31fm58cp5xj11
type: markdown
snippet:
  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))


title: Rust book
href: https://doc.rust-lang.org/book/ch13-02-iterators.html
type: markdown
snippet:
  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)


title: ABI
href: notes/abi
type: wiki-link
snippet:
  For compatibility reasons, Almost every language supports C's [[notes/abi|ABI]] for their [[notes/ffi|FFI]].


title: source
type: markdown
href:
  https://omnivore.app/me/the-secret-power-of-read-it-later-apps-18b255ca194#42edb9e2-3799-430e-bbff-db1170ebbad1

snippet:
  [source](https://omnivore.app/me/the-secret-power-of-read-it-later-apps-18b255ca194#42edb9e2-3799-430e-bbff-db1170ebbad1)


href: https://m.youtube.com/@KevinPowell
type: markdown
snippet:
  [![](https://proxy-prod.omnivore-image-cache.app/40x0,sUOpLNtzeeUoCYwskk1a5QzW3BGsoVGnMK_ykZEtZE5c/https://yt3.ggpht.com/ytc/APkrFKa6XiLa13mMVPzkmmTBcgNPjjqCGPrY86KfJFmf5w=s48-c-k-c0x00ffffff-no-rj)](https://m.youtube.com/@KevinPowell)


title: https://icodethis.com/?ref=kevin
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVZsbWpVZ3M1NUdacFdJSVZha3BFQ0ZIaTNoZ3xBQ3Jtc0ttWG5nU0ltOTdzSE9YSDQ3aWlsUVFGcEVoMlRFaVhLb0hrczRKRVgta3N0bXBIeC1Sc1ZtTWJHY2MycUpfdVN6OE5pWDlfTG9WQlhTMlRzcW1YX2p1MTY4bjVybTd1ZG02RV9zM1l0QkFWeTNybjBtcw&q=https://icodethis.com/?ref=kevin&v=_2LwjfYc1x8

snippet:
  If you're interested in checking out ICodeThis, you can find it here: [https://icodethis.com/?ref=kevin](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbVZsbWpVZ3M1NUdacFdJSVZha3BFQ0ZIaTNoZ3xBQ3Jtc0ttWG5nU0ltOTdzSE9YSDQ3aWlsUVFGcEVoMlRFaVhLb0hrczRKRVgta3N0bXBIeC1Sc1ZtTWJHY2MycUpfdVN6OE5pWDlfTG9WQlhTMlRzcW1YX2p1MTY4bjVybTd1ZG02RV9zM1l0QkFWeTNybjBtcw&q=https%3A%2F%2Ficodethis.com%2F%3Fref%3Dkevin&v=%5F2LwjfYc1x8) and if you want to sign up for one of their premium plans, use KEVIN at checkout for an extra 10% off. Custom properties are amazing, but a lot of people don’t take advantage of how awesome they are. They set them up in the :root and that’s it, but they can be so much more useful than that! So, in this …


title: https://mnscpd.com/daryl
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa1AxdEdWTE4xQ1ljVllOczNhaEtQR0JXbkk1d3xBQ3Jtc0ttOE9WYWZHVkZWV1VUMHhOZnFtZUZYT0dmRlFMTjZXaGNmQlBodHdEaDZQTDNRSkw5NkhoVmIwVW9TQlIyb2xkQmQ4d0ozS1RlNnJuYTlyclFYUlJaODlRRVRDNUFsMVBScEN0dkkwZW1GdGZ1eU16QQ&q=https://mnscpd.com/daryl&v=-O3oe8sSRhQ

snippet:
  Get 20% OFF + Free Shipping with code “DARYL” at [https://mnscpd.com/daryl](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqa1AxdEdWTE4xQ1ljVllOczNhaEtQR0JXbkk1d3xBQ3Jtc0ttOE9WYWZHVkZWV1VUMHhOZnFtZUZYT0dmRlFMTjZXaGNmQlBodHdEaDZQTDNRSkw5NkhoVmIwVW9TQlIyb2xkQmQ4d0ozS1RlNnJuYTlyclFYUlJaODlRRVRDNUFsMVBScEN0dkkwZW1GdGZ1eU16QQ&q=https%3A%2F%2Fmnscpd.com%2Fdaryl&v=-O3oe8sSRhQ) [#ad](https://m.youtube.com/hashtag/ad)Are you a fan of being told “No”? Do you like it when a person keeps you from doing what you want to do, do you enjoy when a game limits your options? Probably not. In fact if anything, being told no likely makes you want that thing even more. Today on Psych of Play, were going to take a look at Psychological Reactance and how it affects our time with a game. And more specifically, we’ll take a look at how it influences your time with open world games. Buckle up, this is gonna be a good one. Amazing thumbnail art by Kloir! - [https://twitter.com/kloirr/status/139...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbmRPeTdhUGdMT1dkNHl3RU9VWU92N1BPQTlXQXxBQ3Jtc0tsSkpTc1RuZ0NzMFM0Q1NBQVpya1JGSHNZbGVBR051Nzd6enI1ck1YU3lKQm5ETHJjUFJlZzRRQ0xicHhhcXpwUm1HZlFuMzl4T3lycmx1M0paeUtUaktTc0NkNGtDQ3ptbTF5M21jbkVLMmt1MWlIaw&q=https%3A%2F%2Ftwitter.com%2Fkloirr%2Fstatus%2F1394322065528745984%3Fs%3D20%26t%3DbIFXtmU3NBNY8MRrDynG5w&v=-O3oe8sSRhQ)Support Daryl Talks Games on Patreon! ▶▶ [https://www.patreon.com/daryltalksgames](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbFlTM1JTTHlXcEN6VzFZLUJwVHVxR3VlMGlMZ3xBQ3Jtc0trOG5EZEQ2eWg5bzJveUZ0Z3VYdlk3SUlISWJvWlhWN2t1aUxjclhYdjZ1SGR0bFhQeDZFay10akFqb3czbmxwelg2VnNPc1UzX1ltYU02TEZSU1dsT3hFUF9KZ3hBMGJlMWhMTXVpVTZwYTNTY0cxVQ&q=https%3A%2F%2Fwww.patreon.com%2Fdaryltalksgames&v=-O3oe8sSRhQ)Bonus content, early access, YOUR name at the end of videos, and more all for $1/month! Twitter ▶[https://twitter.com/DarylTalksGames](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbW9pZ0lCN2FzLWVNY0FjMGZfVGNhalNuX0RWZ3xBQ3Jtc0trRUFSam4xY21sUWFidmlYS3VhOE9kN3AySktZQ1htb0JOODlycWZ3M2ZyS1YtYXBNV2NUd1VmRUxMUGNyOEhsc1JWZm5VXzJxN29FVnhaSEttZmRIaE9KYkVZaE1tWE5VSlpJUllHU1cwTmVqVER5dw&q=https%3A%2F%2Ftwitter.com%2FDarylTalksGames&v=-O3oe8sSRhQ)Twitch ▶[https://www.twitch.tv/daryltalksgames](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbE5WYTVGQ1U5SGc3R1BiSGJZZ1FteGRpVGp1Z3xBQ3Jtc0ttQmtzRUloblVKeC1TQ2lfVDRrcjhXM09xc1VadEdyeVZsdnVNVmxGQ3NUbzdHakFDemRfSEV0VlE5YVVMeUh2cFRRUVNNY3dtU1dVMzhhOVFOOW93N0VELWJNdGk0VE94TTk5bnNKYkJrSUlyWGlKOA&q=https%3A%2F%2Fwww.twitch.tv%2Fdaryltalksgames&v=-O3oe8sSRhQ)Manscaped: Do it for the boys ([0:00](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=0s)​) A Trip Down Memory Lane ([1:21](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=81s)) What is Reactance? ([3:25](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=205s)) The Mistaken Allure of Open Worlds ([7:15](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=435s)) Internal vs External Reactance ([9:38](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=578s)) How Games Can Avoid Both ([12:15](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=735s)) When Reactance is Good! ([15:16](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=916s)) Whale ([17:21](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=1041s)) Credits and Next Time ;) ([18:25](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=1105s)) ▶Games Shown Elden Ring (2022) -FromSoftware The Legend of Zelda: Breath of the Wild (2017) - Nintendo Ghost of Tsushima (2020) - Sucker Punch Productions Metroid Dread (2021) - Mercury Steam Persona 5: Royal (2019) - Atlus, P Studio The Legend of Zelda: Wind Waker (2002) - Nintendo The Legend of Zelda: Twilight Princess (2006) - Nintendo Hades (2020) - Supergiant Games No Man’s Sky (2016) - Hello Games Pokemon Legends: Arceus (2022) - Game Freak Red Dead Redemption 2 (2018) - Rockstar Games Horizon Zero Dawn (2017) - Guerilla Games Horizon Forbidden West (2021) - Guerrilla Games Far Cry 5 (2018) - Ubisoft Fallout 4 (2015) - Bethesda Skyrim (2011) - Bethesda BioShock (2007) - 2K Games Genshin Impact (2020) - miHoYo Pokemon Crystal (2000) - Game Freak Pokémon X and Y (2013) - Game Freak OMORI (2020) - OMOCAT, LLC Zelda: Wind Waker (2002) - Nintendo Super Mario Sunshine (2002) - Nintendo Neon White (2022) - Ben Esposito Final Fantasy VII Remake (2020) - Square Enix Ghostwire: Tokyo (2022) - Tango Gameworks Metro Exodus (2019) - 4A Games Phantasy Star Online 2 (2012) - Sega Sunset Overdrive (2014) - Insomniac Games Batman: Arkham Knight (2015) - Rocksteady Studios Sonic Frontiers (2022) - Sonic Team Forspoken (2023) - Luminous Productions Far Cry 6 (2021) - Ubisoft Pokemon Sword & Shield (2019) - Game Freak Danganronpa: Trigger Happy Havoc (2010) - Spike Chunsoft Cyberpunk 2077 (2020) - CD Projekt RED The Witcher 3: Wild Hunt (2015) - CD Projekt RED Grand Theft Auto V (2013) - Rockstar Games The Walking Dead (2012) - Telltale Games 10 Minutes Till Dawn (2022) - Flanne The Quarry (2022) - Supermassive Games Sable (2021) - Shedworks Starfield (2023) - Bethesda Fallout: New Vegas (2010) - Obsidian Entertainment Unpacking (2021) - Witch Beam ▶Media/Clips/Considerations:[  • Reactance PoP ](https://m.youtube.com/playlist?list=PLwABHajSLTc%5FbPASy3YrBC7uYYzYKLEv7) [  • Playlist ](https://m.youtube.com/playlist?list=PLwABHajSLTc9XTktQrlXVia0kRqOpH8wD)Icons from flaticon:[https://www.flaticon.com/free-icons/p...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbTktcFJ4ZWxPVTl4bW9neXplVVpVSTZPU2Zhd3xBQ3Jtc0trUG5HclhQMFRPLVlPcjZ5S3lIRnFQc01YTFdITVpSdmZsY1kyZXJrRXBxczU2MnlmeExnb3NZem42NHRhbzlBMVlsSE5sR1NfOXlnNVByNnowN1FUSk5iSGJhMnV3cG54LXcxYndRNEtvOFJISU5Eaw&q=https%3A%2F%2Fwww.flaticon.com%2Ffree-icons%2Fperfume-bottle&v=-O3oe8sSRhQ) [https://www.flaticon.com/free-icons/c...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbGV1azYzM2JWaE9vYmFKLU5IM0xHRU1reG8wZ3xBQ3Jtc0ttTHJSU2xpODdTV19vaTd1OGN1WWViR3VuWHhkMnNxMjFtVG1IZHEteTVxNW8xWGlSOWw4Nng3aUZHeW9KbUFJTWNUV3lTLVo1RHhGLXc2eDlFZFRSX21qd2VyU3ZXdXRaNTlfNmVkRmxXSktYSVRCVQ&q=https%3A%2F%2Fwww.flaticon.com%2Ffree-icons%2Fclock&v=-O3oe8sSRhQ) [https://www.flaticon.com/free-icons/m...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbDZjOHZqaWd4SUdrY2RxUnl2TWJaWmw3c2lYUXxBQ3Jtc0tseUFrNnNKb005dl9xR2ppWklCZV8zX3otZi1BaWsyY1ZqTGsyb3FzeHBScFRYXzZydUh0X19nS2p6TjlwUWRHNmgwWUh4UUZIckF1bGpiWHBuS0FzOW9PVElrUnpyRk5KeDVJVGUzcUdHeHhLSHl5Zw&q=https%3A%2F%2Fwww.flaticon.com%2Ffree-icons%2Fmoney&v=-O3oe8sSRhQ)▶Music Sources (in Order): Saints Row IV OST - Hail to the Chief Remix de Blob OST - Blissful Skyrim OST - Far Horizons Pokemon Colosseum OST - Semi Final Battle Gran Turismo 5 OST - feels so good (KEMMEI ADACHI) Breath of the Wild OST - Riding at night Breath of the Wild OST - Field Battle Breath of the Wild OST - Guardian Metroid Prime OST - Phendrana Drifts (Depths) stiig - Gently Pass ([https://stiig.bandcamp.com/track/gent...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbVZZOU8wUEk3NWtvT0JUdmpOZDJLbFZ0UXc5QXxBQ3Jtc0trSkVKSDA5Nzg4d0JFeG9EVWZsMHE4ODEtSi1iY1NoUWFGRXFLOVJ0WW94a2FyVnRIdTJYLVctbzdldWhwS2NDajYyV0RxX21CMjFnN3lkWWJESS1OOTJOMDdaM1NhenBvWVdpOXZCUlBWdnBMVHhSWQ&q=https%3A%2F%2Fstiig.bandcamp.com%2Ftrack%2Fgently-pass&v=-O3oe8sSRhQ)) Machinarium OST - The Bottom - DLJ - Flowers - Provided by Lofi Records - Watch: [  • DLJ - Flowers ](https://m.youtube.com/watch?v=M03fDyewvJc&t=0s)\- Download/Stream: [https://fanlink.to/AfterLifeAlbum](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbnV6S3gzb2hpSERjaXRzU2tSc215UlF3ZnFKd3xBQ3Jtc0tsTWVyaHA5NTR6TGlRd0g5dE9yTkxrT2dCLUxmbXpuZmN3QkpzejJSZU1wUU5yUXVUX1dfemMzMjVmYW1GVlhjQk84UURFU2JsbnRORWxCUVlKdi1HLXd3d2xHWV94cjlkX1dDSFJrNFM0ZmpHS2g0dw&q=https%3A%2F%2Ffanlink.to%2FAfterLifeAlbum&v=-O3oe8sSRhQ)▶Research Articles Cited [https://docs.google.com/document/d/1C...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbWg4TGtnS1lHSC1vYWRveVFkUGxaZ3ptbmhKd3xBQ3Jtc0tsUHVFMFZUWmlMRWlZS0xMVG1JVFlyRUtfRmJncW8zdjBTbnZYclQ1Z0FKd0lMMFdxb2RGV3dpR1hrWlhIZEVlQXNWQXhEMWVMM29MN3B6ZWZqVFkxUUt0WE54TDN6ZlcwRTFMeHpWeDdnSmxEZnV4aw&q=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1Cdv5oLFP0iq7OOf7vSyU%5FsNWt9W2z5LYlJ1-zYjPxG4%2Fedit%3Fusp%3Dsharing&v=-O3oe8sSRhQ) [#PsychofPlay](https://m.youtube.com/hashtag/psychofplay)


title: https://twitter.com/kloirr/status/139...
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbmRPeTdhUGdMT1dkNHl3RU9VWU92N1BPQTlXQXxBQ3Jtc0tsSkpTc1RuZ0NzMFM0Q1NBQVpya1JGSHNZbGVBR051Nzd6enI1ck1YU3lKQm5ETHJjUFJlZzRRQ0xicHhhcXpwUm1HZlFuMzl4T3lycmx1M0paeUtUaktTc0NkNGtDQ3ptbTF5M21jbkVLMmt1MWlIaw&q=https://twitter.com/kloirr/status/1394322065528745984?s=20&t=bIFXtmU3NBNY8MRrDynG5w&v=-O3oe8sSRhQ

snippet:
  Get 20% OFF + Free Shipping with code “DARYL” at [https://mnscpd.com/daryl](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqa1AxdEdWTE4xQ1ljVllOczNhaEtQR0JXbkk1d3xBQ3Jtc0ttOE9WYWZHVkZWV1VUMHhOZnFtZUZYT0dmRlFMTjZXaGNmQlBodHdEaDZQTDNRSkw5NkhoVmIwVW9TQlIyb2xkQmQ4d0ozS1RlNnJuYTlyclFYUlJaODlRRVRDNUFsMVBScEN0dkkwZW1GdGZ1eU16QQ&q=https%3A%2F%2Fmnscpd.com%2Fdaryl&v=-O3oe8sSRhQ) [#ad](https://m.youtube.com/hashtag/ad)Are you a fan of being told “No”? Do you like it when a person keeps you from doing what you want to do, do you enjoy when a game limits your options? Probably not. In fact if anything, being told no likely makes you want that thing even more. Today on Psych of Play, were going to take a look at Psychological Reactance and how it affects our time with a game. And more specifically, we’ll take a look at how it influences your time with open world games. Buckle up, this is gonna be a good one. Amazing thumbnail art by Kloir! - [https://twitter.com/kloirr/status/139...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbmRPeTdhUGdMT1dkNHl3RU9VWU92N1BPQTlXQXxBQ3Jtc0tsSkpTc1RuZ0NzMFM0Q1NBQVpya1JGSHNZbGVBR051Nzd6enI1ck1YU3lKQm5ETHJjUFJlZzRRQ0xicHhhcXpwUm1HZlFuMzl4T3lycmx1M0paeUtUaktTc0NkNGtDQ3ptbTF5M21jbkVLMmt1MWlIaw&q=https%3A%2F%2Ftwitter.com%2Fkloirr%2Fstatus%2F1394322065528745984%3Fs%3D20%26t%3DbIFXtmU3NBNY8MRrDynG5w&v=-O3oe8sSRhQ)Support Daryl Talks Games on Patreon! ▶▶ [https://www.patreon.com/daryltalksgames](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbFlTM1JTTHlXcEN6VzFZLUJwVHVxR3VlMGlMZ3xBQ3Jtc0trOG5EZEQ2eWg5bzJveUZ0Z3VYdlk3SUlISWJvWlhWN2t1aUxjclhYdjZ1SGR0bFhQeDZFay10akFqb3czbmxwelg2VnNPc1UzX1ltYU02TEZSU1dsT3hFUF9KZ3hBMGJlMWhMTXVpVTZwYTNTY0cxVQ&q=https%3A%2F%2Fwww.patreon.com%2Fdaryltalksgames&v=-O3oe8sSRhQ)Bonus content, early access, YOUR name at the end of videos, and more all for $1/month! Twitter ▶[https://twitter.com/DarylTalksGames](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbW9pZ0lCN2FzLWVNY0FjMGZfVGNhalNuX0RWZ3xBQ3Jtc0trRUFSam4xY21sUWFidmlYS3VhOE9kN3AySktZQ1htb0JOODlycWZ3M2ZyS1YtYXBNV2NUd1VmRUxMUGNyOEhsc1JWZm5VXzJxN29FVnhaSEttZmRIaE9KYkVZaE1tWE5VSlpJUllHU1cwTmVqVER5dw&q=https%3A%2F%2Ftwitter.com%2FDarylTalksGames&v=-O3oe8sSRhQ)Twitch ▶[https://www.twitch.tv/daryltalksgames](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbE5WYTVGQ1U5SGc3R1BiSGJZZ1FteGRpVGp1Z3xBQ3Jtc0ttQmtzRUloblVKeC1TQ2lfVDRrcjhXM09xc1VadEdyeVZsdnVNVmxGQ3NUbzdHakFDemRfSEV0VlE5YVVMeUh2cFRRUVNNY3dtU1dVMzhhOVFOOW93N0VELWJNdGk0VE94TTk5bnNKYkJrSUlyWGlKOA&q=https%3A%2F%2Fwww.twitch.tv%2Fdaryltalksgames&v=-O3oe8sSRhQ)Manscaped: Do it for the boys ([0:00](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=0s)​) A Trip Down Memory Lane ([1:21](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=81s)) What is Reactance? ([3:25](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=205s)) The Mistaken Allure of Open Worlds ([7:15](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=435s)) Internal vs External Reactance ([9:38](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=578s)) How Games Can Avoid Both ([12:15](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=735s)) When Reactance is Good! ([15:16](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=916s)) Whale ([17:21](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=1041s)) Credits and Next Time ;) ([18:25](https://m.youtube.com/watch?v=-O3oe8sSRhQ&t=1105s)) ▶Games Shown Elden Ring (2022) -FromSoftware The Legend of Zelda: Breath of the Wild (2017) - Nintendo Ghost of Tsushima (2020) - Sucker Punch Productions Metroid Dread (2021) - Mercury Steam Persona 5: Royal (2019) - Atlus, P Studio The Legend of Zelda: Wind Waker (2002) - Nintendo The Legend of Zelda: Twilight Princess (2006) - Nintendo Hades (2020) - Supergiant Games No Man’s Sky (2016) - Hello Games Pokemon Legends: Arceus (2022) - Game Freak Red Dead Redemption 2 (2018) - Rockstar Games Horizon Zero Dawn (2017) - Guerilla Games Horizon Forbidden West (2021) - Guerrilla Games Far Cry 5 (2018) - Ubisoft Fallout 4 (2015) - Bethesda Skyrim (2011) - Bethesda BioShock (2007) - 2K Games Genshin Impact (2020) - miHoYo Pokemon Crystal (2000) - Game Freak Pokémon X and Y (2013) - Game Freak OMORI (2020) - OMOCAT, LLC Zelda: Wind Waker (2002) - Nintendo Super Mario Sunshine (2002) - Nintendo Neon White (2022) - Ben Esposito Final Fantasy VII Remake (2020) - Square Enix Ghostwire: Tokyo (2022) - Tango Gameworks Metro Exodus (2019) - 4A Games Phantasy Star Online 2 (2012) - Sega Sunset Overdrive (2014) - Insomniac Games Batman: Arkham Knight (2015) - Rocksteady Studios Sonic Frontiers (2022) - Sonic Team Forspoken (2023) - Luminous Productions Far Cry 6 (2021) - Ubisoft Pokemon Sword & Shield (2019) - Game Freak Danganronpa: Trigger Happy Havoc (2010) - Spike Chunsoft Cyberpunk 2077 (2020) - CD Projekt RED The Witcher 3: Wild Hunt (2015) - CD Projekt RED Grand Theft Auto V (2013) - Rockstar Games The Walking Dead (2012) - Telltale Games 10 Minutes Till Dawn (2022) - Flanne The Quarry (2022) - Supermassive Games Sable (2021) - Shedworks Starfield (2023) - Bethesda Fallout: New Vegas (2010) - Obsidian Entertainment Unpacking (2021) - Witch Beam ▶Media/Clips/Considerations:[  • Reactance PoP ](https://m.youtube.com/playlist?list=PLwABHajSLTc%5FbPASy3YrBC7uYYzYKLEv7) [  • Playlist ](https://m.youtube.com/playlist?list=PLwABHajSLTc9XTktQrlXVia0kRqOpH8wD)Icons from flaticon:[https://www.flaticon.com/free-icons/p...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbTktcFJ4ZWxPVTl4bW9neXplVVpVSTZPU2Zhd3xBQ3Jtc0trUG5HclhQMFRPLVlPcjZ5S3lIRnFQc01YTFdITVpSdmZsY1kyZXJrRXBxczU2MnlmeExnb3NZem42NHRhbzlBMVlsSE5sR1NfOXlnNVByNnowN1FUSk5iSGJhMnV3cG54LXcxYndRNEtvOFJISU5Eaw&q=https%3A%2F%2Fwww.flaticon.com%2Ffree-icons%2Fperfume-bottle&v=-O3oe8sSRhQ) [https://www.flaticon.com/free-icons/c...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbGV1azYzM2JWaE9vYmFKLU5IM0xHRU1reG8wZ3xBQ3Jtc0ttTHJSU2xpODdTV19vaTd1OGN1WWViR3VuWHhkMnNxMjFtVG1IZHEteTVxNW8xWGlSOWw4Nng3aUZHeW9KbUFJTWNUV3lTLVo1RHhGLXc2eDlFZFRSX21qd2VyU3ZXdXRaNTlfNmVkRmxXSktYSVRCVQ&q=https%3A%2F%2Fwww.flaticon.com%2Ffree-icons%2Fclock&v=-O3oe8sSRhQ) [https://www.flaticon.com/free-icons/m...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbDZjOHZqaWd4SUdrY2RxUnl2TWJaWmw3c2lYUXxBQ3Jtc0tseUFrNnNKb005dl9xR2ppWklCZV8zX3otZi1BaWsyY1ZqTGsyb3FzeHBScFRYXzZydUh0X19nS2p6TjlwUWRHNmgwWUh4UUZIckF1bGpiWHBuS0FzOW9PVElrUnpyRk5KeDVJVGUzcUdHeHhLSHl5Zw&q=https%3A%2F%2Fwww.flaticon.com%2Ffree-icons%2Fmoney&v=-O3oe8sSRhQ)▶Music Sources (in Order): Saints Row IV OST - Hail to the Chief Remix de Blob OST - Blissful Skyrim OST - Far Horizons Pokemon Colosseum OST - Semi Final Battle Gran Turismo 5 OST - feels so good (KEMMEI ADACHI) Breath of the Wild OST - Riding at night Breath of the Wild OST - Field Battle Breath of the Wild OST - Guardian Metroid Prime OST - Phendrana Drifts (Depths) stiig - Gently Pass ([https://stiig.bandcamp.com/track/gent...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbVZZOU8wUEk3NWtvT0JUdmpOZDJLbFZ0UXc5QXxBQ3Jtc0trSkVKSDA5Nzg4d0JFeG9EVWZsMHE4ODEtSi1iY1NoUWFGRXFLOVJ0WW94a2FyVnRIdTJYLVctbzdldWhwS2NDajYyV0RxX21CMjFnN3lkWWJESS1OOTJOMDdaM1NhenBvWVdpOXZCUlBWdnBMVHhSWQ&q=https%3A%2F%2Fstiig.bandcamp.com%2Ftrack%2Fgently-pass&v=-O3oe8sSRhQ)) Machinarium OST - The Bottom - DLJ - Flowers - Provided by Lofi Records - Watch: [  • DLJ - Flowers ](https://m.youtube.com/watch?v=M03fDyewvJc&t=0s)\- Download/Stream: [https://fanlink.to/AfterLifeAlbum](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbnV6S3gzb2hpSERjaXRzU2tSc215UlF3ZnFKd3xBQ3Jtc0tsTWVyaHA5NTR6TGlRd0g5dE9yTkxrT2dCLUxmbXpuZmN3QkpzejJSZU1wUU5yUXVUX1dfemMzMjVmYW1GVlhjQk84UURFU2JsbnRORWxCUVlKdi1HLXd3d2xHWV94cjlkX1dDSFJrNFM0ZmpHS2g0dw&q=https%3A%2F%2Ffanlink.to%2FAfterLifeAlbum&v=-O3oe8sSRhQ)▶Research Articles Cited [https://docs.google.com/document/d/1C...](https://www.youtube.com/redirect?event=video%5Fdescription&redir%5Ftoken=QUFFLUhqbWg4TGtnS1lHSC1vYWRveVFkUGxaZ3ptbmhKd3xBQ3Jtc0tsUHVFMFZUWmlMRWlZS0xMVG1JVFlyRUtfRmJncW8zdjBTbnZYclQ1Z0FKd0lMMFdxb2RGV3dpR1hrWlhIZEVlQXNWQXhEMWVMM29MN3B6ZWZqVFkxUUt0WE54TDN6ZlcwRTFMeHpWeDdnSmxEZnV4aw&q=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1Cdv5oLFP0iq7OOf7vSyU%5FsNWt9W2z5LYlJ1-zYjPxG4%2Fedit%3Fusp%3Dsharing&v=-O3oe8sSRhQ) [#PsychofPlay](https://m.youtube.com/hashtag/psychofplay)


title: https://www.patreon.com/daryltalksgames
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbFlTM1JTTHlXcEN6VzFZLUJwVHVxR3VlMGlMZ3xBQ3Jtc0trOG5EZEQ2eWg5bzJveUZ0Z3VYdlk3SUlISWJvWlhWN2t1aUxjclhYdjZ1SGR0bFhQeDZFay10akFqb3czbmxwelg2VnNPc1UzX1ltYU02TEZSU1dsT3hFUF9KZ3hBMGJlMWhMTXVpVTZwYTNTY0cxVQ&q=https://www.patreon.com/daryltalksgames&v=-O3oe8sSRhQ

snippet:
[cell repeats an earlier one in this file: 8515 characters]


title: https://twitter.com/DarylTalksGames
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbW9pZ0lCN2FzLWVNY0FjMGZfVGNhalNuX0RWZ3xBQ3Jtc0trRUFSam4xY21sUWFidmlYS3VhOE9kN3AySktZQ1htb0JOODlycWZ3M2ZyS1YtYXBNV2NUd1VmRUxMUGNyOEhsc1JWZm5VXzJxN29FVnhaSEttZmRIaE9KYkVZaE1tWE5VSlpJUllHU1cwTmVqVER5dw&q=https://twitter.com/DarylTalksGames&v=-O3oe8sSRhQ

snippet:
[cell repeats an earlier one in this file: 8515 characters]


title: https://www.twitch.tv/daryltalksgames
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbE5WYTVGQ1U5SGc3R1BiSGJZZ1FteGRpVGp1Z3xBQ3Jtc0ttQmtzRUloblVKeC1TQ2lfVDRrcjhXM09xc1VadEdyeVZsdnVNVmxGQ3NUbzdHakFDemRfSEV0VlE5YVVMeUh2cFRRUVNNY3dtU1dVMzhhOVFOOW93N0VELWJNdGk0VE94TTk5bnNKYkJrSUlyWGlKOA&q=https://www.twitch.tv/daryltalksgames&v=-O3oe8sSRhQ

snippet:
[cell repeats an earlier one in this file: 8515 characters]


title: https://www.flaticon.com/free-icons/p...
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbTktcFJ4ZWxPVTl4bW9neXplVVpVSTZPU2Zhd3xBQ3Jtc0trUG5HclhQMFRPLVlPcjZ5S3lIRnFQc01YTFdITVpSdmZsY1kyZXJrRXBxczU2MnlmeExnb3NZem42NHRhbzlBMVlsSE5sR1NfOXlnNVByNnowN1FUSk5iSGJhMnV3cG54LXcxYndRNEtvOFJISU5Eaw&q=https://www.flaticon.com/free-icons/perfume-bottle&v=-O3oe8sSRhQ

snippet:
[cell repeats an earlier one in this file: 8515 characters]


title: https://www.flaticon.com/free-icons/c...
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbGV1azYzM2JWaE9vYmFKLU5IM0xHRU1reG8wZ3xBQ3Jtc0ttTHJSU2xpODdTV19vaTd1OGN1WWViR3VuWHhkMnNxMjFtVG1IZHEteTVxNW8xWGlSOWw4Nng3aUZHeW9KbUFJTWNUV3lTLVo1RHhGLXc2eDlFZFRSX21qd2VyU3ZXdXRaNTlfNmVkRmxXSktYSVRCVQ&q=https://www.flaticon.com/free-icons/clock&v=-O3oe8sSRhQ

snippet:
[cell repeats an earlier one in this file: 8515 characters]


title: https://www.flaticon.com/free-icons/m...
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbDZjOHZqaWd4SUdrY2RxUnl2TWJaWmw3c2lYUXxBQ3Jtc0tseUFrNnNKb005dl9xR2ppWklCZV8zX3otZi1BaWsyY1ZqTGsyb3FzeHBScFRYXzZydUh0X19nS2p6TjlwUWRHNmgwWUh4UUZIckF1bGpiWHBuS0FzOW9PVElrUnpyRk5KeDVJVGUzcUdHeHhLSHl5Zw&q=https://www.flaticon.com/free-icons/money&v=-O3oe8sSRhQ

snippet:
[cell repeats an earlier one in this file: 8515 characters]


title: https://stiig.bandcamp.com/track/gent...
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVZZOU8wUEk3NWtvT0JUdmpOZDJLbFZ0UXc5QXxBQ3Jtc0trSkVKSDA5Nzg4d0JFeG9EVWZsMHE4ODEtSi1iY1NoUWFGRXFLOVJ0WW94a2FyVnRIdTJYLVctbzdldWhwS2NDajYyV0RxX21CMjFnN3lkWWJESS1OOTJOMDdaM1NhenBvWVdpOXZCUlBWdnBMVHhSWQ&q=https://stiig.bandcamp.com/track/gently-pass&v=-O3oe8sSRhQ

snippet:
[cell repeats an earlier one in this file: 8515 characters]


title: https://fanlink.to/AfterLifeAlbum
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbnV6S3gzb2hpSERjaXRzU2tSc215UlF3ZnFKd3xBQ3Jtc0tsTWVyaHA5NTR6TGlRd0g5dE9yTkxrT2dCLUxmbXpuZmN3QkpzejJSZU1wUU5yUXVUX1dfemMzMjVmYW1GVlhjQk84UURFU2JsbnRORWxCUVlKdi1HLXd3d2xHWV94cjlkX1dDSFJrNFM0ZmpHS2g0dw&q=https://fanlink.to/AfterLifeAlbum&v=-O3oe8sSRhQ

snippet:
[cell repeats an earlier one in this file: 8515 characters]


title: https://docs.google.com/document/d/1C...
type: markdown
href:
  https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbWg4TGtnS1lHSC1vYWRveVFkUGxaZ3ptbmhKd3xBQ3Jtc0tsUHVFMFZUWmlMRWlZS0xMVG1JVFlyRUtfRmJncW8zdjBTbnZYclQ1Z0FKd0lMMFdxb2RGV3dpR1hrWlhIZEVlQXNWQXhEMWVMM29MN3B6ZWZqVFkxUUt0WE54TDN6ZlcwRTFMeHpWeDdnSmxEZnV4aw&q=https://docs.google.com/document/d/1Cdv5oLFP0iq7OOf7vSyU_sNWt9W2z5LYlJ1-zYjPxG4/edit?usp=sharing&v=-O3oe8sSRhQ

snippet:
[cell repeats an earlier one in this file: 8515 characters]


title: source
type: markdown
href:
  https://omnivore.app/me/highlighting-fold-text-community-fork-of-null-ls-leetcode-integr-18b3533f57b#5de369b4-f406-446f-b59a-358d59dd9eb1

snippet:
  [source](https://omnivore.app/me/highlighting-fold-text-community-fork-of-null-ls-leetcode-integr-18b3533f57b#5de369b4-f406-446f-b59a-358d59dd9eb1)  #Todo


title: :fclose to close floating window
href: https://github.com/neovim/neovim/commit/fd39f5ce8c9bbda1b77ff6c03553148fadac5d57
type: markdown
snippet:
  [:fclose to close floating window](https://github.com/neovim/neovim/commit/fd39f5ce8c9bbda1b77ff6c03553148fadac5d57)


href: https://github.com/neovim/neovim/commit/f5eabaa9407ae3d1ccf6592337453c423eff3d9a
type: markdown
title:
  Spaces can be used to separate directory names. To have a space in a directory name, precede it with an extra backslash, and escape the space

snippet:
  [Spaces can be used to separate directory names. To have a space in a directory name, precede it with an extra backslash, and escape the space](https://github.com/neovim/neovim/commit/f5eabaa9407ae3d1ccf6592337453c423eff3d9a)


title: Ignore swapfile for running Nvim processes
href: https://github.com/neovim/neovim/commit/29fe883aa9166bdbcae3f935523c75a8aa56fe45
type: markdown
snippet:
  [Ignore swapfile for running Nvim processes](https://github.com/neovim/neovim/commit/29fe883aa9166bdbcae3f935523c75a8aa56fe45)


href: https://github.com/neovim/neovim/commit/eb1f0e8fcca756a00d287e23bf87554e0e7f6dfd
type: markdown
title:
  vim.lsp.util.parse\_snippet() will now strictly follow the snippet grammar defined by LSP, and hence previously parsed snippets might now be considered invalid input.

snippet:
  [vim.lsp.util.parse\_snippet() will now strictly follow the snippet grammar defined by LSP, and hence previously parsed snippets might now be considered invalid input.](https://github.com/neovim/neovim/commit/eb1f0e8fcca756a00d287e23bf87554e0e7f6dfd)


title: vim.treesitter.foldtext() applies treesitter highlighting to foldtext.
href: https://github.com/neovim/neovim/commit/9ce1623837a817c3f4f5deff9c8ba862578b6009
type: markdown
snippet:
  [vim.treesitter.foldtext() applies treesitter highlighting to foldtext.](https://github.com/neovim/neovim/commit/9ce1623837a817c3f4f5deff9c8ba862578b6009)


title: Better cmdline completion for string option value
href: https://github.com/neovim/neovim/commit/01c51a491330bd10202c73aff92c0978984c0692
type: markdown
snippet:
  [Better cmdline completion for string option value](https://github.com/neovim/neovim/commit/01c51a491330bd10202c73aff92c0978984c0692)


title: Support toggling showing of float window
href: https://github.com/neovim/neovim/commit/4200a0f1678c06c6da4e4cfb0184c29c1174ed21
type: markdown
snippet:
  [Support toggling showing of float window](https://github.com/neovim/neovim/commit/4200a0f1678c06c6da4e4cfb0184c29c1174ed21)


title: NVIM\_APPNAME now supports relative paths
href: https://github.com/neovim/neovim/commit/a66b0fdfaa35715c832b98b8941cc5673505e0c2
type: markdown
snippet:
  [NVIM\_APPNAME now supports relative paths](https://github.com/neovim/neovim/commit/a66b0fdfaa35715c832b98b8941cc5673505e0c2)


title: Reddit
href: https://www.reddit.com/r/neovim/comments/16sqyjz/finally_we_can_have_highlighted_folds/
type: markdown
snippet:
  [Reddit](https://www.reddit.com/r/neovim/comments/16sqyjz/finally%5Fwe%5Fcan%5Fhave%5Fhighlighted%5Ffolds/)


title: Blog
href: https://theosteiner.de/open-neovim-from-your-browser-integrating-nvim-with-sveltes-inspector
type: markdown
snippet:
  [Blog](https://theosteiner.de/open-neovim-from-your-browser-integrating-nvim-with-sveltes-inspector)


title: Reddit
href: https://www.reddit.com/r/neovim/comments/177p9fj/open_neovim_from_your_browser_integrating_nvim/
type: markdown
snippet:
  [Reddit](https://www.reddit.com/r/neovim/comments/177p9fj/open%5Fneovim%5Ffrom%5Fyour%5Fbrowser%5Fintegrating%5Fnvim/)


title: Reddit
href: https://www.reddit.com/r/neovim/comments/16wystn/nonelsnvim_is_a_community_fork_of_nulllsnvim/
type: markdown
snippet:
  [Reddit](https://www.reddit.com/r/neovim/comments/16wystn/nonelsnvim%5Fis%5Fa%5Fcommunity%5Ffork%5Fof%5Fnulllsnvim/)


title: Reddit
type: markdown
href:
  https://www.reddit.com/r/neovim/comments/173ctlz/leetcodenvim_solve_leetcode_problems_within_neovim/

snippet:
  [Reddit](https://www.reddit.com/r/neovim/comments/173ctlz/leetcodenvim%5Fsolve%5Fleetcode%5Fproblems%5Fwithin%5Fneovim/)


title: Reddit
href: https://www.reddit.com/r/neovim/comments/176yv8g/minipick_pick_anything_interactive_nonblocking/
type: markdown
snippet:
  [Reddit](https://www.reddit.com/r/neovim/comments/176yv8g/minipick%5Fpick%5Fanything%5Finteractive%5Fnonblocking/)


title: Reddit
href: https://www.reddit.com/r/neovim/comments/16v32p5/clearactionnvim_makes_lsp_code_actions/
type: markdown
snippet:
  [Reddit](https://www.reddit.com/r/neovim/comments/16v32p5/clearactionnvim%5Fmakes%5Flsp%5Fcode%5Factions/)


title: Reddit
href: https://www.reddit.com/r/neovim/comments/16smdr6/introducing_roobertpalettenvim_a_beautiful/
type: markdown
snippet:
  [Reddit](https://www.reddit.com/r/neovim/comments/16smdr6/introducing%5Froobertpalettenvim%5Fa%5Fbeautiful/)


title: Reddit
href: https://www.reddit.com/r/neovim/comments/16qwcl7/buildernvim_simple_build_plugin_for_neovim/
type: markdown
snippet:
  [Reddit](https://www.reddit.com/r/neovim/comments/16qwcl7/buildernvim%5Fsimple%5Fbuild%5Fplugin%5Ffor%5Fneovim/)


title: Reddit
href: https://www.reddit.com/r/neovim/comments/16qr135/nerdynvim_easily_find_and_insert_nerd_font_glyphs/
type: markdown
snippet:
  [Reddit](https://www.reddit.com/r/neovim/comments/16qr135/nerdynvim%5Feasily%5Ffind%5Fand%5Finsert%5Fnerd%5Ffont%5Fglyphs/)


title: tmux-windowizer
href: https://github.com/ThePrimeagen/.dotfiles/blob/master/bin/.local/scripts/tmux-windowizer
type: markdown
snippet:
  Whaler is a Telescope extension to move between directories. It is based on the concept of [tmux-windowizer](https://github.com/ThePrimeagen/.dotfiles/blob/master/bin/.local/scripts/tmux-windowizer) which uses a set of directories and fzf to move to another directory whilst creating a new tmux session.


title: Reddit
href: https://www.reddit.com/r/neovim/comments/16sk266/nyoom_why_im_ultimately_archiving_it_a_short/
type: markdown
snippet:
  [Reddit](https://www.reddit.com/r/neovim/comments/16sk266/nyoom%5Fwhy%5Fim%5Fultimately%5Farchiving%5Fit%5Fa%5Fshort/)


title: source
type: markdown
href:
  https://omnivore.app/me/noboilerplate-scripts-34-plain-text-team-md-at-main-0-atman-nobo-18b42e0d185#7466a699-a115-4b9f-99fc-416852b5aef2

snippet:
  [source](https://omnivore.app/me/noboilerplate-scripts-34-plain-text-team-md-at-main-0-atman-nobo-18b42e0d185#7466a699-a115-4b9f-99fc-416852b5aef2)  #frameworks


title: source
type: markdown
href:
  https://omnivore.app/me/noboilerplate-scripts-34-plain-text-team-md-at-main-0-atman-nobo-18b42e0d185#9a030eb7-6269-4863-8e5e-61b59a1704b6

snippet:
  [source](https://omnivore.app/me/noboilerplate-scripts-34-plain-text-team-md-at-main-0-atman-nobo-18b42e0d185#9a030eb7-6269-4863-8e5e-61b59a1704b6)  #quote


title: John William Waterhouse
href: https://en.wikipedia.org/wiki/John_William_Waterhouse
type: markdown
snippet:
  _"Ulysses and the Sirens"_ [John William Waterhouse](https://en.wikipedia.org/wiki/John%5FWilliam%5FWaterhouse)


href: Omnivore/#documenting-architecture-decisions
type: markdown
snippet:
  [](#documenting-architecture-decisions)["Documenting Architecture Decisions"](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions)


title: Github Et Al. Are Greater Than the Sum of Their Parts
href: Omnivore/#github-et-al-are-greater-than-the-sum-of-their-parts
type: markdown
snippet:
  [Github Et Al. Are Greater Than the Sum of Their Parts](#github-et-al-are-greater-than-the-sum-of-their-parts)


title: this is a link
href: https://github.com/0atman/noboilerplate/blob/main/scripts
type: markdown
snippet:
  \[[this is a link](https://github.com/0atman/noboilerplate/blob/main/scripts)\]([http://example.com](http://example.com/))


title: source
type: markdown
href:
  https://omnivore.app/me/study-shows-stronger-brain-activity-after-writing-on-paper-than--18b5cd2abed#1c9a0a5a-c3a9-40d8-a6de-9e986dd27aec

snippet:
  [source](https://omnivore.app/me/study-shows-stronger-brain-activity-after-writing-on-paper-than--18b5cd2abed#1c9a0a5a-c3a9-40d8-a6de-9e986dd27aec)


title: source
type: markdown
href:
  https://omnivore.app/me/study-shows-stronger-brain-activity-after-writing-on-paper-than--18b5cd2abed#85a6ad74-1b87-4f32-95b3-f0a549d32089

snippet:
  [source](https://omnivore.app/me/study-shows-stronger-brain-activity-after-writing-on-paper-than--18b5cd2abed#85a6ad74-1b87-4f32-95b3-f0a549d32089)


title: source
type: markdown
href:
  https://omnivore.app/me/study-shows-stronger-brain-activity-after-writing-on-paper-than--18b5cd2abed#aeb79efa-7582-4493-94e1-6a7004b5ed80

snippet:
  [source](https://omnivore.app/me/study-shows-stronger-brain-activity-after-writing-on-paper-than--18b5cd2abed#aeb79efa-7582-4493-94e1-6a7004b5ed80)


title: spending time in nature
href: https://greatergood.berkeley.edu/article/item/how_nature_makes_you_kinder_happier_more_creative
type: markdown
snippet:
  It’s been proven that [spending time in nature](https://greatergood.berkeley.edu/article/item/how%5Fnature%5Fmakes%5Fyou%5Fkinder%5Fhappier%5Fmore%5Fcreative) makes us more creative. Looking at trees and leaves — instead of our electronic devices — reduces our anxiety, lowers our heart rates, soothes us, and allows our brains to make [connections more easily](https://bjsm.bmj.com/content/49/4/272.abstract?sid=56b97a4c-0e75-46d0-a6ba-41c7f41a089c).


title: British Journal of Sports Medicine
href: https://bjsm.bmj.com/content/49/4/272?sid=56b97a4c-0e75-46d0-a6ba-41c7f41a089c
type: markdown
snippet:
  By spending time in nature, I’m not referring to a trek in the wilderness either. Walking in an urban green space for just 25 minutes can quiet our brains and help us switch into autopilot node. According to the [_British Journal of Sports Medicine_](https://bjsm.bmj.com/content/49/4/272?sid=56b97a4c-0e75-46d0-a6ba-41c7f41a089c), this state sparks our present awareness and fuels imagination. We are more easily able to connect existing notions, thoughts, and images to form a new, relevant, and useable concept.


title: source
type: markdown
href:
  https://omnivore.app/me/train-your-brain-to-be-more-creative-18b5cd2a390#9190b653-c9fe-4438-b02d-10ac2095ecd1

snippet:
  [source](https://omnivore.app/me/train-your-brain-to-be-more-creative-18b5cd2a390#9190b653-c9fe-4438-b02d-10ac2095ecd1)


title: neuroscientists have found
href: https://www.livescience.com/39671-roots-of-creativity-found-in-brain.html
type: markdown
snippet:
  You may have heard that creativity uses your right brain while your left brain is triggered during more analytical tasks. Well, [neuroscientists have found](https://www.livescience.com/39671-roots-of-creativity-found-in-brain.html) that creativity actually draws on your _entire_ brain — and meditation can you give you access to it.


title: source
type: markdown
href:
  https://omnivore.app/me/train-your-brain-to-be-more-creative-18b5cd2a390#6b9b547e-2d87-4b4e-8fb5-76c0fe82be37

snippet:
  [source](https://omnivore.app/me/train-your-brain-to-be-more-creative-18b5cd2a390#6b9b547e-2d87-4b4e-8fb5-76c0fe82be37)


title: source
type: markdown
href:
  https://omnivore.app/me/train-your-brain-to-be-more-creative-18b5cd2a390#339a25cd-d9b8-4c5c-90bb-34f31965dea8

snippet:
  [source](https://omnivore.app/me/train-your-brain-to-be-more-creative-18b5cd2a390#339a25cd-d9b8-4c5c-90bb-34f31965dea8)


href: https://hbr.org/ascend
type: markdown
snippet:
  [ ![](https://proxy-prod.omnivore-image-cache.app/0x0,soxosZVFQZnXwxzP9rgu_9TRZBUG3bjD3lZNejHcEJZc/https://hbr.org/resources/css/images/ascend/Ascend-Landing-FINAL.png) ](https://hbr.org/ascend)


title: Ascend logo
href: https://hbr.org/insight-center/ascend
type: markdown
snippet:
  [![Ascend logo](https://proxy-prod.omnivore-image-cache.app/105x20,sdbRjRBiTtM89dGr0O-MZ2bZF4PuOMPYm7J_ky4ZT0M4/https://hbr.org/resources/images/article_assets/2020/10/Ascend_Logo_2020_2x.png)](https://hbr.org/insight-center/ascend)


title: here
href: https://hbr.org/insight-center/ascend
type: markdown
snippet:
  Where your work meets your life. See more from Ascend [here](https://hbr.org/insight-center/ascend).


title: spending time in nature
href: https://greatergood.berkeley.edu/article/item/how_nature_makes_you_kinder_happier_more_creative
type: markdown
snippet:
  ==It’s been proven that== ==[spending time in nature](https://greatergood.berkeley.edu/article/item/how%5Fnature%5Fmakes%5Fyou%5Fkinder%5Fhappier%5Fmore%5Fcreative)== ==makes us more creative. Looking at trees and leaves — instead of our electronic devices — reduces our anxiety, lowers our heart rates, soothes us, and allows our brains to make== ==[connections more easily](https://bjsm.bmj.com/content/49/4/272.abstract?sid=56b97a4c-0e75-46d0-a6ba-41c7f41a089c)====.==


title: British Journal of Sports Medicine
href: https://bjsm.bmj.com/content/49/4/272?sid=56b97a4c-0e75-46d0-a6ba-41c7f41a089c
type: markdown
snippet:
  ==By spending time in nature, I’m not referring to a trek in the wilderness either. Walking in an urban green space for just 25 minutes can quiet our brains and help us switch into autopilot node. According to the== [_British Journal of Sports Medicine_](https://bjsm.bmj.com/content/49/4/272?sid=56b97a4c-0e75-46d0-a6ba-41c7f41a089c)==, this state sparks our present awareness and fuels imagination. We are more easily able to connect existing notions, thoughts, and images to form a new, relevant, and useable concept.==


title: Meditation
href: https://www.frontiersin.org/articles/10.3389/fpsyg.2013.01020/full
type: markdown
snippet:
  I know, I know, you’ve heard this a million times: [Meditation](https://www.frontiersin.org/articles/10.3389/fpsyg.2013.01020/full) clears our minds of jumbled thoughts, and gives our brains the space to observe and reflect, improving task concentration and enhancing our ability to make smart decisions.


title: neuroscientists have found
href: https://www.livescience.com/39671-roots-of-creativity-found-in-brain.html
type: markdown
snippet:
  ==You may have heard that creativity uses your right brain while your left brain is triggered during more analytical tasks. Well,== ==[neuroscientists have found](https://www.livescience.com/39671-roots-of-creativity-found-in-brain.html)== ==that creativity actually draws on your== _==entire==_ ==brain — and meditation can you give you access to it.==


title: we allow our minds the freedom and space to be still and creative
href: https://www.headspace.com/meditation/creativity
type: markdown
snippet:
  This intentional practice can be as simple as closing your eyes and focusing on your breath. Headspace, the popular meditation app, even has guided meditations for inspiring creativity. The idea is that when we intentionally pause in awareness, [we allow our minds the freedom and space to be still and creative](https://www.headspace.com/meditation/creativity). I practice this between meetings. I find a quiet space, focus on my breathing, and get my brain into an alpha state, or a wakeful state of relaxation. This allows me to disconnect from my initial ideas (after all, the human brain is hardwired to take the path of least resistance) and create new pathways in my mind.


title: Steve Jobs
href: https://financialpost.com/executive/c-suite/steve-jobs-was-right-about-walking
type: markdown
snippet:
  [Steve Jobs](https://financialpost.com/executive/c-suite/steve-jobs-was-right-about-walking) was a big advocate for walking meetings for a reason. Moving around [has been linked to increased performance](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1332529/pdf/brjsmed00003-0076.pdf) on creative tests. Exercising releases endorphins — chemicals our bodies produce to relieve stress and pain. When we are less stressed, our brains venture into more fruitful territory.


title: a recent article
href: https://www.irishexaminer.com/lifestyle/healthandwellbeing/arid-40251431.html
type: markdown
snippet:
  In fact, [a recent article](https://www.irishexaminer.com/lifestyle/healthandwellbeing/arid-40251431.html) compared the chemical that our brain releases during physical activity to Miracle-Gro, the water-soluble plant food that helps grow bigger, healthier plants. The good part is moving around is super simple to do, especially when you’re working at home. I often attend meetings while cycling on a stationary bike or plan short walks in between (and this can be done in an office too).


title: by challenging stereotypes.
type: markdown
href:
  https://www.theguardian.com/lifeandstyle/2015/nov/01/diversity-good-for-your-brain-mind-multicultural

snippet:
  When consciously seeking inspiration, not enough can be said about diversity. Remember the brain and its predisposition to take the lazy way out? Diversity makes the brain work harder [by challenging stereotypes.](https://www.theguardian.com/lifeandstyle/2015/nov/01/diversity-good-for-your-brain-mind-multicultural) In addition, researchers at Johns Hopkins University [found](https://muse.jhu.edu/article/536530/summary) that “exposure to diversity experiences might foster the development of more complex forms of thought, including the ability to think critically.”


title: a “team of rivals.”
href: https://bigthink.com/in-their-own-words/you-can-be-your-own-team-of-rivals
type: markdown
snippet:
  I make it a point to surround myself with people who come from different backgrounds than I do because their perspectives are a catalyst for creative thinking. Contrasting opinions sparks new possibilities, and allow us to make connections we hadn’t seen before, leading to better decisions. There was something to be said about Abraham Lincoln filling his cabinet with [a “team of rivals.”](https://bigthink.com/in-their-own-words/you-can-be-your-own-team-of-rivals) Productive discussions, brainstorms, and debates often result in wiser outcomes. At my agency, we’ve set up an “inspiration council,” which brings together our people from various regions, cultures, genders, and more, to initiate these kind of discussions.


title: Bas Korsten
href: https://hbr.org/search?term=bas korsten&search_type=search-all
type: markdown
snippet:
  [Bas Korsten](https://hbr.org/search?term=bas%20korsten&search%5Ftype=search-all) is the Global Chief Creative Officer at Wunderman Thompson.


title: Yew
href: https://letsgetrusty.krtra.com/c/y9r3LFJzeRCp/OQKy
type: markdown
snippet:
  ...and front-end frameworks like [Yew](https://letsgetrusty.krtra.com/c/y9r3LFJzeRCp/OQKy) and [Seed](https://letsgetrusty.krtra.com/c/mN30voJhWLXc/OQKy) letting you write web apps in Rust!


title: wasm-bindgen
href: https://letsgetrusty.krtra.com/c/Fv1n9JiwhxdT/OQKy
type: markdown
snippet:
  With crates such as [wasm-bindgen ](https://letsgetrusty.krtra.com/c/Fv1n9JiwhxdT/OQKy)facilitating high-level interactions between Rust and JavaScript...


title: Yew
href: https://letsgetrusty.krtra.com/c/y9r3LFJzeRCp/OQKy
type: markdown
snippet:
  ==...and front-end frameworks like== ==[Yew](https://letsgetrusty.krtra.com/c/y9r3LFJzeRCp/OQKy)== ==and== ==[Seed](https://letsgetrusty.krtra.com/c/mN30voJhWLXc/OQKy)== ==letting you write web apps in Rust!==


title: \>> Building a Rust App with Yew! <<
href: https://letsgetrusty.krtra.com/c/6AUVThScIsa4/OQKy
type: markdown
snippet:
  Check out this video I made: **[\>> Building a Rust App with Yew! <<](https://letsgetrusty.krtra.com/c/6AUVThScIsa4/OQKy)**


title: Website
href: https://letsgetrusty.krtra.com/c/FBKvcPOtTzlF/OQKy
type: markdown
snippet:
  **[Website](https://letsgetrusty.krtra.com/c/FBKvcPOtTzlF/OQKy)** | **[YouTube](https://letsgetrusty.krtra.com/c/4KIGD3ocszdT/OQKy)**


title: mockall crate
type: markdown
href:
  https://letsgetrusty.us6.list-manage.com/track/click?u=9f28b35c1658c447f3b962a54&id=00a07042b3&e=d0eb971086

snippet:
  We can use the [mockall crate](https://letsgetrusty.us6.list-manage.com/track/click?u=9f28b35c1658c447f3b962a54&id=00a07042b3&e=d0eb971086)!


title: source
type: markdown
href:
  https://omnivore.app/me/what-the-rust-book-didn-t-tell-you-about-testing-18b6707a120#f9650419-c778-4974-9da2-aabce209609f

snippet:
  [source](https://omnivore.app/me/what-the-rust-book-didn-t-tell-you-about-testing-18b6707a120#f9650419-c778-4974-9da2-aabce209609f)


title: entire chapter dedicated to testing
type: markdown
href:
  https://letsgetrusty.us6.list-manage.com/track/click?u=9f28b35c1658c447f3b962a54&id=a95a715235&e=d0eb971086

snippet:
  The Rust Book has an [entire chapter dedicated to testing](https://letsgetrusty.us6.list-manage.com/track/click?u=9f28b35c1658c447f3b962a54&id=a95a715235&e=d0eb971086), but it's missing a critical piece…


title: intro to testing in Rust video
type: markdown
href:
  https://letsgetrusty.us6.list-manage.com/track/click?u=9f28b35c1658c447f3b962a54&id=90d4167901&e=d0eb971086

snippet:
  If you haven't seen my [intro to testing in Rust video](https://letsgetrusty.us6.list-manage.com/track/click?u=9f28b35c1658c447f3b962a54&id=90d4167901&e=d0eb971086) make sure to check it out!


title: source
href: https://omnivore.app/me/use-cases-for-rust-18b85df6f3a#64793bd7-d3bd-4597-9f2c-9b4697217661
type: markdown
snippet:
  [source](https://omnivore.app/me/use-cases-for-rust-18b85df6f3a#64793bd7-d3bd-4597-9f2c-9b4697217661)


title: https://letsgetrusty.com/jobs
href: https://letsgetrusty.krtra.com/c/ysWbInNFr59c/OQKy
type: markdown
snippet:
  PS - Looking for a Rust job? Apply here - [https://letsgetrusty.com/jobs](https://letsgetrusty.krtra.com/c/ysWbInNFr59c/OQKy)


title: source
type: markdown
href:
  https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#a243f9e5-2cf7-437b-afdb-725d69408fa5

snippet:
  [source](https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#a243f9e5-2cf7-437b-afdb-725d69408fa5)


title: source
type: markdown
href:
  https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#7da331b9-d92c-40b1-b9ff-03cd350b19e0

snippet:
  [source](https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#7da331b9-d92c-40b1-b9ff-03cd350b19e0)


title: source
type: markdown
href:
  https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#c2a6ebd3-44b3-4bac-b723-be08ec3191d3

snippet:
  [source](https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#c2a6ebd3-44b3-4bac-b723-be08ec3191d3)


title: source
type: markdown
href:
  https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#644def06-75fc-41b3-ad64-8b0eb34eb055

snippet:
  [source](https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#644def06-75fc-41b3-ad64-8b0eb34eb055)


title: source
type: markdown
href:
  https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#5d22dea1-4451-4052-a211-ffbc432cb3be

snippet:
  [source](https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#5d22dea1-4451-4052-a211-ffbc432cb3be)


title: keyboard accessibility
href: https://www.freecodecamp.org/news/designing-keyboard-accessibility-for-complex-react-experiences/
type: markdown
snippet:
  And make sure you think about [keyboard accessibility](https://www.freecodecamp.org/news/designing-keyboard-accessibility-for-complex-react-experiences/) so users can navigate and communicate using the keyboard, and not exclusively using a mouse.


title: source
type: markdown
href:
  https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#a6f33320-f395-41f2-92e4-7e5c70337377

snippet:
  [source](https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#a6f33320-f395-41f2-92e4-7e5c70337377)


title: source
type: markdown
href:
  https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#d6c8b9dc-b9e7-4ab7-8b53-0057246fea9a

snippet:
  [source](https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#d6c8b9dc-b9e7-4ab7-8b53-0057246fea9a)


title: HTML5 semantic elements
href: https://www.freecodecamp.org/news/semantic-html-alternatives-to-using-divs/
type: markdown
snippet:
  Use [HTML5 semantic elements](https://www.freecodecamp.org/news/semantic-html-alternatives-to-using-divs/) like ``, ``, ``, and `` to enhance the document's structure.


title: JavaScript code is efficient
href: https://www.freecodecamp.org/news/javascript-performance-async-defer/
type: markdown
snippet:
  Ensure that your [JavaScript code is efficient](https://www.freecodecamp.org/news/javascript-performance-async-defer/) and doesn't block the rendering process.


title: browser developer tools
href: https://www.freecodecamp.org/news/learn-how-to-use-the-chrome-devtools-to-troubleshoot-websites/
type: markdown
snippet:
  Utilize [browser developer tools](https://www.freecodecamp.org/news/learn-how-to-use-the-chrome-devtools-to-troubleshoot-websites/) and online testing services to identify and fix compatibility issues.


title: usability testing
href: https://www.freecodecamp.org/news/10-best-ux-testing-software-tools/
type: markdown
snippet:
  Conduct [usability testing](https://www.freecodecamp.org/news/10-best-ux-testing-software-tools/) with a diverse group of users, including those who rely on assistive technologies, to gather feedback and make improvements.


title: caching
href: https://www.freecodecamp.org/news/a-detailed-guide-to-pre-caching/
type: markdown
snippet:
  Optimize your website for fast loading times and low data usage using techniques like [caching](https://www.freecodecamp.org/news/a-detailed-guide-to-pre-caching/) and [tools like CDNs](https://www.freecodecamp.org/news/cdns-speed-up-performance-by-reducing-latency/) to reduce latency. This benefits both accessibility and user experience.


title: website compatibility across various browsers
type: markdown
href:
  https://www.freecodecamp.org/news/cross-browser-compatibility-testing-best-practices-for-web-developers/

snippet:
  Test [website compatibility across various browsers](https://www.freecodecamp.org/news/cross-browser-compatibility-testing-best-practices-for-web-developers/). Testing website compatibility involves ensuring that your website functions correctly and looks good on a variety of devices, browsers, and assistive technologies.


title: source
type: markdown
href:
  https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#ade773c1-f3e3-499b-8b34-c9d8a2c084e3

snippet:
  [source](https://omnivore.app/me/web-accessibility-tips-for-developers-a-11-y-principles-explaine-18b91ba16e5#ade773c1-f3e3-499b-8b34-c9d8a2c084e3)


title: Web accessibility
href: https://www.freecodecamp.org/news/accessibility-best-practices-to-make-web-apps-accessible/
type: markdown
snippet:
  [Web accessibility](https://www.freecodecamp.org/news/accessibility-best-practices-to-make-web-apps-accessible/) refers to the practice of designing and developing websites, applications, and digital content in a way that ensures people with disabilities can perceive, understand, navigate, and interact with them effectively.


title: WCAG
href: https://www.w3.org/WAI/WCAG21/quickref/?versions=2.0
type: markdown
snippet:
  To effectively enhance the accessibility of your websites and apps, you'll want to follow these fundamental principles outlined by the Web Content Accessibility Guidelines ([WCAG](https://www.w3.org/WAI/WCAG21/quickref/?versions=2.0)):


title: keyboard accessibility
href: https://www.freecodecamp.org/news/designing-keyboard-accessibility-for-complex-react-experiences/
type: markdown
snippet:
  ==And make sure you think about== ==[keyboard accessibility](https://www.freecodecamp.org/news/designing-keyboard-accessibility-for-complex-react-experiences/)== ==so users can navigate and communicate using the keyboard, and not exclusively using a mouse.==


title: HTML5 semantic elements
href: https://www.freecodecamp.org/news/semantic-html-alternatives-to-using-divs/
type: markdown
snippet:
  ==Use== ==[HTML5 semantic elements](https://www.freecodecamp.org/news/semantic-html-alternatives-to-using-divs/)== ==like== `==&lt;====header====&gt;==`==,== `==&lt;====nav====&gt;==`==,== `==&lt;====main====&gt;==`==, and== `==&lt;====footer====&gt;==` ==to enhance the document's structure.==


title: JavaScript code is efficient
href: https://www.freecodecamp.org/news/javascript-performance-async-defer/
type: markdown
snippet:
  ==Ensure that your== ==[JavaScript code is efficient](https://www.freecodecamp.org/news/javascript-performance-async-defer/)== ==and doesn't block the rendering process.==


title: browser developer tools
href: https://www.freecodecamp.org/news/learn-how-to-use-the-chrome-devtools-to-troubleshoot-websites/
type: markdown
snippet:
  ==Utilize== ==[browser developer tools](https://www.freecodecamp.org/news/learn-how-to-use-the-chrome-devtools-to-troubleshoot-websites/)== ==and online testing services to identify and fix compatibility issues.==


title: usability testing
href: https://www.freecodecamp.org/news/10-best-ux-testing-software-tools/
type: markdown
snippet:
  ==Conduct== ==[usability testing](https://www.freecodecamp.org/news/10-best-ux-testing-software-tools/)== ==with a diverse group of users, including those who rely on assistive technologies, to gather feedback and make improvements.==


title: caching
href: https://www.freecodecamp.org/news/a-detailed-guide-to-pre-caching/
type: markdown
snippet:
  ==Optimize your website for fast loading times and low data usage using techniques like== ==[caching](https://www.freecodecamp.org/news/a-detailed-guide-to-pre-caching/)== ==and== ==[tools like CDNs](https://www.freecodecamp.org/news/cdns-speed-up-performance-by-reducing-latency/)== ==to reduce latency. This benefits both accessibility and user experience.==


title: website compatibility across various browsers
type: markdown
href:
  https://www.freecodecamp.org/news/cross-browser-compatibility-testing-best-practices-for-web-developers/

snippet:
  ==Test== ==[website compatibility across various browsers](https://www.freecodecamp.org/news/cross-browser-compatibility-testing-best-practices-for-web-developers/)====. Testing website compatibility involves ensuring that your website functions correctly and looks good on a variety of devices, browsers, and assistive technologies.==


title: Get started
href: https://www.freecodecamp.org/learn/
type: markdown
snippet:
  Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. [Get started](https://www.freecodecamp.org/learn/)


title: Git Merge vs Rebase vs Squash ¿Qué estrategia debemos elegir?
href: https://www.youtube.com/watch?pp=ygUKZ2l0IHNxdWFzaA%3D%3D&v=HlmZLXMOpEM
type: markdown
snippet:
  [Git Merge vs Rebase vs Squash ¿Qué estrategia debemos elegir?](https://www.youtube.com/watch?pp=ygUKZ2l0IHNxdWFzaA%253D%253D&v=HlmZLXMOpEM)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-write-components-that-work-in-any-framework-18ba72d0079#bceef8c0-728e-422a-aed6-b047736cb395

snippet:
  [source](https://omnivore.app/me/how-to-write-components-that-work-in-any-framework-18ba72d0079#bceef8c0-728e-422a-aed6-b047736cb395)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-write-components-that-work-in-any-framework-18ba72d0079#46fc130a-1549-40c8-b950-42035c227bc4

snippet:
  [source](https://omnivore.app/me/how-to-write-components-that-work-in-any-framework-18ba72d0079#46fc130a-1549-40c8-b950-42035c227bc4)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-write-components-that-work-in-any-framework-18ba72d0079#855f444c-49f1-4176-9537-aaeeb6a01355

snippet:
  [source](https://omnivore.app/me/how-to-write-components-that-work-in-any-framework-18ba72d0079#855f444c-49f1-4176-9537-aaeeb6a01355)


title: Lit
href: https://lit.dev/
type: markdown
snippet:
  One such tool is called Lit, which is developed by a team at Google. [Lit](https://lit.dev/) is a lightweight library designed to make writing web components simple, by removing the need for the boilerplate we’ve already seen above.


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-write-components-that-work-in-any-framework-18ba72d0079#385d9ef8-13fb-4799-bff5-ef767b3df67f

snippet:
  [source](https://omnivore.app/me/how-to-write-components-that-work-in-any-framework-18ba72d0079#385d9ef8-13fb-4799-bff5-ef767b3df67f)


title: A2K
href: https://a2000-docs.netlify.app/
type: markdown
snippet:
  Here are some of the reusable components from my library [A2K](https://a2000-docs.netlify.app/). You can see that they come in all shapes and sizes, and have a range of different functionalities. Using them in your projects is similar to using any old HTML element.


title: you can read more here
href: https://component-odyssey.com/articles/00-sandpack-lit-universal
type: markdown
snippet:
  I recently created a web component that renders a CodeSandbox code editor in the browser. And because it’s a web component, you can use it in any framework you like! If you’d like to learn a little more about that, [you can read more here](https://component-odyssey.com/articles/00-sandpack-lit-universal).


title: Component Odyssey
href: https://component-odyssey.com/
type: markdown
snippet:
  There’s a lot more nuance when it comes to the Shadow DOM, as well as other features that we’re not going to touch on in this article. If you’d like to learn more about web components though, I have an entire course ([Component Odyssey](https://component-odyssey.com/)) dedicated to teaching you how to build reusable components that work in any framework.


title: Lit
href: https://lit.dev/
type: markdown
snippet:
  ==One such tool is called Lit, which is developed by a team at Google.== ==[Lit](https://lit.dev/)== ==is a lightweight library designed to make writing web components simple, by removing the need for the boilerplate we’ve already seen above.==


title: Component Odyssey
href: https://component-odyssey.com/
type: markdown
snippet:
  If you’d like to learn even more, this is the approach I teach in my upcoming course [Component Odyssey](https://component-odyssey.com/). This course is excellent for anyone who wants to understand how to write components that work in any framework.


title: over to the site to get notified
href: https://component-odyssey.com/subscribe
type: markdown
snippet:
  If you want early-bird discount codes for Component Odyssey, then head on [over to the site to get notified](https://component-odyssey.com/subscribe).


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#05db3def-4e59-4cfe-b8dd-1044ce91a9d5

snippet:
  [source](https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#05db3def-4e59-4cfe-b8dd-1044ce91a9d5)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#fa2c28c0-1b7e-4416-8553-c1b5c7a59637

snippet:
  [source](https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#fa2c28c0-1b7e-4416-8553-c1b5c7a59637)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#6749a89e-a38c-4f4f-aa3f-c6455e6daf85

snippet:
  [source](https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#6749a89e-a38c-4f4f-aa3f-c6455e6daf85)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#751d81de-62b7-444b-a2f0-a0b374f6ce45

snippet:
  [source](https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#751d81de-62b7-444b-a2f0-a0b374f6ce45)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#90f807ca-03a3-4804-bcf1-c5df4e53a997

snippet:
  [source](https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#90f807ca-03a3-4804-bcf1-c5df4e53a997)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#0112181f-34b7-4ca3-b941-f1c16303c6c0

snippet:
  [source](https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#0112181f-34b7-4ca3-b941-f1c16303c6c0)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#c17f1d4e-8f5c-45d1-9078-fe8ab740e11e

snippet:
  [source](https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#c17f1d4e-8f5c-45d1-9078-fe8ab740e11e)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#9f94fd13-9558-4bd3-a60c-60074b3495d2

snippet:
  [source](https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#9f94fd13-9558-4bd3-a60c-60074b3495d2)


title: component composition
href: https://www.codementor.io/@dinerismail/the-power-of-component-composition-in-react-21goassg4m
type: markdown
snippet:
  **Steer clear of redundant components by employing a children-parent replacement approach.** This approach naturally incorporates [component composition](https://www.codementor.io/@dinerismail/the-power-of-component-composition-in-react-21goassg4m) without introducing redundant components or states when resolving prop drilling.


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#8ff7b79b-5503-4e1a-b7fe-1a07a46c578c

snippet:
  [source](https://omnivore.app/me/how-to-avoid-prop-drilling-in-react-18bae0b4ca2#8ff7b79b-5503-4e1a-b7fe-1a07a46c578c)


title: prop drilling
href: https://www.quora.com/What-is-prop-drilling-in-ReactJS
type: markdown
snippet:
  And if you don't properly understand these key React concepts, you can run into various issues, like [prop drilling](https://www.quora.com/What-is-prop-drilling-in-ReactJS).


title: YouTube channel
href: https://youtu.be/KZnQ5R8Kd4I
type: markdown
snippet:
  If you prefer a visual guide, here's a video version of this tutorial on my [YouTube channel](https://youtu.be/KZnQ5R8Kd4I) (approximately 15 minutes).


title: Watch the video
href: https://www.youtube.com/embed/ELZZnqHJhlw
type: markdown
snippet:
  [![Watch the video](https://proxy-prod.omnivore-image-cache.app/480x360,sEF1bGD-Lf4T-Vw-XRelb5_QXFIgGpiBvkoeFBwT8sbs/https://img.youtube.com/vi/ELZZnqHJhlw/hqdefault.jpg)](https://www.youtube.com/embed/ELZZnqHJhlw)


title: Emily Morter
href: https://unsplash.com/@emilymorter?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit
type: markdown
snippet:
  Photo by [Emily Morter](https://unsplash.com/@emilymorter?utm%5Fsource=ghost&utm%5Fmedium=referral&utm%5Fcampaign=api-credit) / [Unsplash](https://unsplash.com/?utm%5Fsource=ghost&utm%5Fmedium=referral&utm%5Fcampaign=api-credit)


title: Etienne Girardet
href: https://unsplash.com/@etiennegirardet?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit
type: markdown
snippet:
  Photo by [Etienne Girardet](https://unsplash.com/@etiennegirardet?utm%5Fsource=ghost&utm%5Fmedium=referral&utm%5Fcampaign=api-credit) / [Unsplash](https://unsplash.com/?utm%5Fsource=ghost&utm%5Fmedium=referral&utm%5Fcampaign=api-credit)


title: Edwin Hooper
href: https://unsplash.com/@edwinhooper?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit
type: markdown
snippet:
  Photo by [Edwin Hooper](https://unsplash.com/@edwinhooper?utm%5Fsource=ghost&utm%5Fmedium=referral&utm%5Fcampaign=api-credit) / [Unsplash](https://unsplash.com/?utm%5Fsource=ghost&utm%5Fmedium=referral&utm%5Fcampaign=api-credit)


title: component composition
href: https://www.codementor.io/@dinerismail/the-power-of-component-composition-in-react-21goassg4m
type: markdown
snippet:
  **==Steer clear of redundant components by employing a children-parent replacement approach.==** ==This approach naturally incorporates== ==[component composition](https://www.codementor.io/@dinerismail/the-power-of-component-composition-in-react-21goassg4m)== ==without introducing redundant components or states when resolving prop drilling.==


title: Ayobami Ogundiran
href: https://twitter.com/codingnninja
type: markdown
snippet:
  Hey wait! I am [Ayobami Ogundiran](https://twitter.com/codingnninja) and I am about to start showing how to build your own React, Redux, TypeScript, Zod or Ecommerce websites on my YouTube channel. [Click to subscribe](https://youtube.com/youtoocancode) to stay connected.


title: source
type: markdown
href:
  https://omnivore.app/me/career-mistakes-to-avoid-as-a-developer-18bf626412f#3d561a03-61e0-4ca6-8e70-81651abe90c1

snippet:
  [source](https://omnivore.app/me/career-mistakes-to-avoid-as-a-developer-18bf626412f#3d561a03-61e0-4ca6-8e70-81651abe90c1)


title: share knowledge
href: https://www.freecodecamp.org/news/author/tapas/
type: markdown
snippet:
  Usually, I [share knowledge](https://www.freecodecamp.org/news/author/tapas/) on technical topics like JavaScript, web development, React, Node, Next.js, and so on. But this time, let's connect on essential tips for our Career Development.


title: how to set SMART goals you can actually achieve
href: https://www.freecodecamp.org/news/how-to-set-smart-goals-you-can-achieve/
type: markdown
snippet:
  If you don't have any career goals for yourself right now, take some time to come up with a couple realistic goals. Here's some advice on [how to set SMART goals you can actually achieve](https://www.freecodecamp.org/news/how-to-set-smart-goals-you-can-achieve/).


title: Continuous improvements and how it works
href: https://jamesclear.com/continuous-improvement
type: markdown
snippet:
  It is a strategy of being just 1% better every day. If you continue to do that for a year, you get almost 38% better at the end of the year. Being 1% worse does the opposite. The strategy was represented in mathematical graphs by James Clear in explanation of [Continuous improvements and how it works](https://jamesclear.com/continuous-improvement).


title: freeCodeCamp forum
href: https://forum.freecodecamp.org/
type: markdown
snippet:
  Also, being part of a forum like the [freeCodeCamp forum](https://forum.freecodecamp.org/) can be helpful for networking and learning as well. It is also a place for you to share solutions to a problem, talk about what you've learned, and make yourself visible gradually.


title: GreenRoots Blog
href: https://blog.greenroots.info/
type: markdown
snippet:
  That's all for now. I hope you found this article informative and insightful. I regularly publish meaningful posts on my [GreenRoots Blog](https://blog.greenroots.info/), you may find them helpful, too.


title: SUBSCRIBE
href: https://www.youtube.com/tapasadhikary?sub_confirmation=1
type: markdown
snippet:
  I am an educator on my YouTube channel, `tapaScript`. Please [SUBSCRIBE](https://www.youtube.com/tapasadhikary?sub%5Fconfirmation=1) to the channel if you want to learn JavaScript, ReactJS, Next.js, Node.js, Git, and all about Web Development in the fundamental way.


title: Follow me on X (Twitter
href: https://twitter.com/tapasadhikary
type: markdown
snippet:
  [Follow me on X (Twitter](https://twitter.com/tapasadhikary)) or [LinkedIn](https://www.linkedin.com/in/tapasadhikary/) if you don't want to miss the daily dose of Web Development and Programming Tips.


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-conventionalcommits-org-en-v-1-0-0-18bf36268eb#0a71a3f4-0b81-4ccf-849b-f45c65951d5b

snippet:
  [source](https://omnivore.app/me/https-www-conventionalcommits-org-en-v-1-0-0-18bf36268eb#0a71a3f4-0b81-4ccf-849b-f45c65951d5b)


title: RFC 2119
href: https://www.ietf.org/rfc/rfc2119.txt
type: markdown
snippet:
  The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).


title: git trailer convention
href: https://git-scm.com/docs/git-interpret-trailers
type: markdown
snippet:
  One or more footers MAY be provided one blank line after the body. Each footer MUST consist of a word token, followed by either a `:` or `#` separator, followed by a string value (this is inspired by the[git trailer convention](https://git-scm.com/docs/git-interpret-trailers)).


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-conventionalcommits-org-en-v-1-0-0-18bf36268eb#5670099d-60fe-4b9c-82b9-814e423c0e61

snippet:
  [source](https://omnivore.app/me/https-www-conventionalcommits-org-en-v-1-0-0-18bf36268eb#5670099d-60fe-4b9c-82b9-814e423c0e61)


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-conventionalcommits-org-en-v-1-0-0-18bf36268eb#6ae81ced-efe6-464a-8026-c2f286faf4b7

snippet:
  [source](https://omnivore.app/me/https-www-conventionalcommits-org-en-v-1-0-0-18bf36268eb#6ae81ced-efe6-464a-8026-c2f286faf4b7)


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-conventionalcommits-org-en-v-1-0-0-18bf36268eb#6876934a-5761-49f8-8905-3153e5d667b7

snippet:
  [source](https://omnivore.app/me/https-www-conventionalcommits-org-en-v-1-0-0-18bf36268eb#6876934a-5761-49f8-8905-3153e5d667b7)


title: SemVer
href: http://semver.org/
type: markdown
snippet:
  The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of. This convention dovetails with [SemVer](http://semver.org/), by describing the features, fixes, and breaking changes made in commit messages.


title: PATCH
href: http://semver.org/#summary
type: markdown
snippet:
  **fix:** a commit of the _type_ `fix` patches a bug in your codebase (this correlates with [PATCH](http://semver.org/#summary) in Semantic Versioning).


title: MINOR
href: http://semver.org/#summary
type: markdown
snippet:
  **feat:** a commit of the _type_ `feat` introduces a new feature to the codebase (this correlates with [MINOR](http://semver.org/#summary) in Semantic Versioning).


title: MAJOR
href: http://semver.org/#summary
type: markdown
snippet:
  **BREAKING CHANGE:** a commit that has a footer `BREAKING CHANGE:`, or appends a `!` after the type/scope, introduces a breaking API change (correlating with [MAJOR](http://semver.org/#summary) in Semantic Versioning). A BREAKING CHANGE can be part of commits of any _type_.


title: @commitlint/config-conventional
href: https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional
type: markdown
snippet:
  _types_ other than `fix:` and `feat:` are allowed, for example [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional) (based on the [Angular convention](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines)) recommends `build:`, `chore:`,`ci:`, `docs:`, `style:`, `refactor:`, `perf:`, `test:`, and others.


title: git trailer format
href: https://git-scm.com/docs/git-interpret-trailers
type: markdown
snippet:
  _footers_ other than `BREAKING CHANGE: <description>` may be provided and follow a convention similar to[git trailer format](https://git-scm.com/docs/git-interpret-trailers).


href: Omnivore/#commit-message-with-description-and-breaking-change-footer
type: markdown
snippet:
  [](#commit-message-with-description-and-breaking-change-footer)Commit message with description and breaking change footer


href: Omnivore/#commit-message-with--to-draw-attention-to-breaking-change
type: markdown
snippet:
  [](#commit-message-with--to-draw-attention-to-breaking-change)Commit message with `!` to draw attention to breaking change


href: Omnivore/#commit-message-with-scope-and--to-draw-attention-to-breaking-change
type: markdown
snippet:
  [](#commit-message-with-scope-and--to-draw-attention-to-breaking-change)Commit message with scope and `!` to draw attention to breaking change


href: Omnivore/#commit-message-with-both--and-breaking-change-footer
type: markdown
snippet:
  [](#commit-message-with-both--and-breaking-change-footer)Commit message with both `!` and BREAKING CHANGE footer


href: Omnivore/#commit-message-with-multi-paragraph-body-and-multiple-footers
type: markdown
snippet:
  [](#commit-message-with-multi-paragraph-body-and-multiple-footers)Commit message with multi-paragraph body and multiple footers


title: RFC 2119
href: https://www.ietf.org/rfc/rfc2119.txt
type: markdown
snippet:
  ==The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in== ==[RFC 2119](https://www.ietf.org/rfc/rfc2119.txt)====.==


title: git trailer convention
href: https://git-scm.com/docs/git-interpret-trailers
type: markdown
snippet:
  ==One or more footers MAY be provided one blank line after the body. Each footer MUST consist of  
  a word token, followed by either a== `==:====&lt;====space====&gt;==` ==or== `==&lt;====space====&gt;====#==` ==separator, followed by a string value (this is inspired by the====[git trailer convention](https://git-scm.com/docs/git-interpret-trailers)====).==


href: Omnivore/#how-should-i-deal-with-commit-messages-in-the-initial-development-phase
type: markdown
snippet:
  [](#how-should-i-deal-with-commit-messages-in-the-initial-development-phase)How should I deal with commit messages in the initial development phase?


href: Omnivore/#are-the-types-in-the-commit-title-uppercase-or-lowercase
type: markdown
snippet:
  [](#are-the-types-in-the-commit-title-uppercase-or-lowercase)Are the types in the commit title uppercase or lowercase?


href: Omnivore/#what-do-i-do-if-the-commit-conforms-to-more-than-one-of-the-commit-types
type: markdown
snippet:
  [](#what-do-i-do-if-the-commit-conforms-to-more-than-one-of-the-commit-types)==What do I do if the commit conforms to more than one of the commit types?==


href: Omnivore/#doesnt-this-discourage-rapid-development-and-fast-iteration
type: markdown
snippet:
  [](#doesnt-this-discourage-rapid-development-and-fast-iteration)Doesn’t this discourage rapid development and fast iteration?


type: markdown
href:
  Omnivore/#might-conventional-commits-lead-developers-to-limit-the-type-of-commits-they-make-because-theyll-be-thinking-in-the-types-provided

snippet:
  [](#might-conventional-commits-lead-developers-to-limit-the-type-of-commits-they-make-because-theyll-be-thinking-in-the-types-provided)Might Conventional Commits lead developers to limit the type of commits they make because they’ll be thinking in the types provided?


type: markdown
href:
  Omnivore/#how-should-i-version-my-extensions-to-the-conventional-commits-specification-eg-jameswomackconventional-commit-spec

snippet:
  [](#how-should-i-version-my-extensions-to-the-conventional-commits-specification-eg-jameswomackconventional-commit-spec)How should I version my extensions to the Conventional Commits Specification, e.g. `@jameswomack/conventional-commit-spec`?


href: Omnivore/#what-do-i-do-if-i-accidentally-use-the-wrong-commit-type
type: markdown
snippet:
  [](#what-do-i-do-if-i-accidentally-use-the-wrong-commit-type)What do I do if I accidentally use the wrong commit type?


href: Omnivore/#when-you-used-a-type-thats-of-the-spec-but-not-the-correct-type-eg-fix-instead-of-feat
type: markdown
snippet:
  [](#when-you-used-a-type-thats-of-the-spec-but-not-the-correct-type-eg-fix-instead-of-feat)When you used a type that’s of the spec but not the correct type, e.g. `fix` instead of `feat`


href: Omnivore/#when-you-used-a-type-not-of-the-spec-eg-feet-instead-of-feat
type: markdown
snippet:
  [](#when-you-used-a-type-not-of-the-spec-eg-feet-instead-of-feat)When you used a type _not_ of the spec, e.g. `feet` instead of `feat`


href: Omnivore/#do-all-my-contributors-need-to-use-the-conventional-commits-specification
type: markdown
snippet:
  [](#do-all-my-contributors-need-to-use-the-conventional-commits-specification)Do all my contributors need to use the Conventional Commits specification?


href: Omnivore/#how-does-conventional-commits-handle-revert-commits
type: markdown
snippet:
  [](#how-does-conventional-commits-handle-revert-commits)How does Conventional Commits handle revert commits?


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-freecodecamp-org-news-how-to-write-better-git-commit-m-18bf26ec55f#b1693951-0a92-44f4-804d-7c5008bf3113

snippet:
  [source](https://omnivore.app/me/https-www-freecodecamp-org-news-how-to-write-better-git-commit-m-18bf26ec55f#b1693951-0a92-44f4-804d-7c5008bf3113)


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-freecodecamp-org-news-how-to-write-better-git-commit-m-18bf26ec55f#a3c842a2-18b0-46b9-8131-c37ecd867c19

snippet:
  [source](https://omnivore.app/me/https-www-freecodecamp-org-news-how-to-write-better-git-commit-m-18bf26ec55f#a3c842a2-18b0-46b9-8131-c37ecd867c19)


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-freecodecamp-org-news-how-to-write-better-git-commit-m-18bf26ec55f#f3ea8f19-6480-43ac-a72f-2856ee003fb6

snippet:
  [source](https://omnivore.app/me/https-www-freecodecamp-org-news-how-to-write-better-git-commit-m-18bf26ec55f#f3ea8f19-6480-43ac-a72f-2856ee003fb6)


title: Git Handbook
href: https://guides.github.com/introduction/git-handbook/
type: markdown
snippet:
  This article assumes you already understand basic Git workflow. If not, I suggest reading through the [Git Handbook](https://guides.github.com/introduction/git-handbook/).


title: Scott Tolinski, Syntax.fm
href: https://syntax.fm/
type: markdown
snippet:
  I think git enters a whole other realm the moment you start working in teams -- there are so many cool different flows and ways that people can commit code, share code, and add code to your repo open-source or closed-source-wise. — [Scott Tolinski, Syntax.fm](https://syntax.fm/).


title: Git Blame
href: https://marketplace.visualstudio.com/items?itemName=waderyan.gitblame
type: markdown
snippet:
  If you're a VSCode user, download the [Git Blame](https://marketplace.visualstudio.com/items?itemName=waderyan.gitblame) extension. This is a prime example of when useful commit messages are helpful to future developers.


title: Git History
href: https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory
type: markdown
snippet:
  Imagine how useful this could be in troubleshooting a bug or back-tracing changes made. Other honorable mentions to see Git historical information are [Git History](https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory) and [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens).


title: Commitizen
href: https://commitizen-tools.github.io/commitizen/
type: markdown
snippet:
  To ensure that these committing conventions remain consistent across developers, commit message linting can be configured before changes are able to be pushed up. [Commitizen](https://commitizen-tools.github.io/commitizen/) is a great tool to enforce standards, sync up semantic versioning, along with other helpful features.


title: SemVer.org
href: https://semver.org/
type: markdown
snippet:
  Conventional Commit works particularly well with semantic versioning (learn more at [SemVer.org](https://semver.org/)) where commit types can update the appropriate version to release. You can also [read more about Conventional Commits here](https://www.conventionalcommits.org/en/v1.0.0/).


title: vim-git runtime files
href: http://github.com/tpope/vim-git
type: markdown
snippet:
  Vim users can meet this requirement by installing my [vim-git runtime files](http://github.com/tpope/vim-git), or by simply setting the following option in your git commit message file:


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-user-stories-18c9dc0ecd1#d1988eb3-4939-4bf3-b932-44aad141c065

snippet:
  [source](https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-user-stories-18c9dc0ecd1#d1988eb3-4939-4bf3-b932-44aad141c065)


title: scrum
href: https://www.atlassian.com/es/agile/scrum
type: markdown
snippet:
  Las historias encajan perfectamente en marcos ágiles como [scrum](https://www.atlassian.com/es/agile/scrum) y [kanban](https://www.atlassian.com/es/agile/kanban). En el scrum, las historias de los usuarios se añaden a los sprints y se van realizando a lo largo del sprint. Los equipos de kanban incorporan las historias de usuario en su backlog y las ejecutan siguiendo su flujo de trabajo.


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-user-stories-18c9dc0ecd1#3e9e29ab-43db-4c8f-b517-c2f3b8892432

snippet:
  [source](https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-user-stories-18c9dc0ecd1#3e9e29ab-43db-4c8f-b517-c2f3b8892432)


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-user-stories-18c9dc0ecd1#8f41f654-4b72-4789-b848-b46c2d185291

snippet:
  [source](https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-user-stories-18c9dc0ecd1#8f41f654-4b72-4789-b848-b46c2d185291)


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-user-stories-18c9dc0ecd1#536ca974-d30c-4d48-a02f-a9c16c469e01

snippet:
  [source](https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-user-stories-18c9dc0ecd1#536ca974-d30c-4d48-a02f-a9c16c469e01)


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-user-stories-18c9dc0ecd1#74f6051c-6394-4c99-94c9-176857d9caf2

snippet:
  [source](https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-user-stories-18c9dc0ecd1#74f6051c-6394-4c99-94c9-176857d9caf2)


title: scrum
href: https://www.atlassian.com/es/agile/scrum
type: markdown
snippet:
  ==Las historias encajan perfectamente en marcos ágiles como== ==[scrum](https://www.atlassian.com/es/agile/scrum)== ==y== ==[kanban](https://www.atlassian.com/es/agile/kanban)====. En el scrum, las historias de los usuarios se añaden a los sprints y se van realizando a lo largo del sprint. Los equipos de kanban incorporan las historias de usuario en su backlog y las ejecutan siguiendo su flujo de trabajo.== Es este trabajo sobre las historias de usuario lo que ayuda a los equipos de scrum a mejorar en la [estimación](https://www.atlassian.com/es/agile/project-management/estimation) y planificación de sprints, lo que conduce a un pronóstico más preciso y a una mayor agilidad. Gracias a las historias, los equipos de kanban aprenden a gestionar el trabajo en curso (WIP) y pueden perfeccionar aún más sus flujos de trabajo.


title: Más información sobre epics e iniciativas
href: https://www.atlassian.com/es/agile/project-management/epics-stories-themes
type: markdown
snippet:
  [Más información sobre epics e iniciativas](https://www.atlassian.com/es/agile/project-management/epics-stories-themes)


title: el epic
href: https://www.atlassian.com/es/agile/project-management/epics
type: markdown
snippet:
  Para los equipos de desarrollo nuevos en la metodología ágil, las historias de usuario a veces parecen un paso más. ¿Por qué no dividir el gran proyecto ([el epic](https://www.atlassian.com/es/agile/project-management/epics)) en una serie de pasos y seguir adelante? Pero las historias dan al equipo un contexto importante y asocian las tareas con el valor que estas aportan.


title: source
type: markdown
href:
  https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-estimation-18c9dc1e48a#4ddb962e-4ff6-44fa-8e72-b74db4a9b7a2

snippet:
  [source](https://omnivore.app/me/https-www-atlassian-com-es-agile-project-management-estimation-18c9dc1e48a#4ddb962e-4ff6-44fa-8e72-b74db4a9b7a2)


title: propietario del producto
href: https://www.atlassian.com/es/agile/product-management
type: markdown
snippet:
  En un desarrollo ágil, el [propietario del producto](https://www.atlassian.com/es/agile/product-management) se encarga de priorizar el [backlog](https://www.atlassian.com/es/agile/scrum/backlogs), es decir, la lista ordenada de trabajo que contiene descripciones breves de todas las funciones y correcciones de un producto. Los propietarios del producto capturan los [requisitos](https://www.atlassian.com/es/agile/product-management/requirements) empresariales, pero no siempre entienden los detalles de la implementación. Por ello, una buena estimación puede informar al propietario del producto sobre el nivel de esfuerzo de cada elemento de trabajo, que a su vez sirve para evaluar la prioridad relativa de cada elemento.


title: mesa redonda con expertos del sector
type: markdown
href:
  https://community.atlassian.com/t5/Agile-articles/Six-experts-sound-off-on-story-points-the-evolution-of-agile/ba-p/1553590

snippet:
  Lamentablemente, los puntos de historia se suelen utilizar de forma incorrecta; por ejemplo, cuando se emplean para juzgar a las personas o para asignar cronogramas y recursos detallados, o bien cuando se confunden con una medida de productividad. La auténtica función de los puntos de historia es que los equipos puedan hacerse una idea del volumen de trabajo y saber qué partes tienen prioridad. Para ver un debate en profundidad sobre los puntos de historia y las prácticas relacionadas con las estimaciones, échale un vistazo a esta [mesa redonda con expertos del sector](https://community.atlassian.com/t5/Agile-articles/Six-experts-sound-off-on-story-points-the-evolution-of-agile/ba-p/1553590). Si quieres más consejos sobre la estimación ágil, sigue leyendo.


title: Planning Poker
href: https://www.atlassian.com/blog/platform/a-brief-overview-of-planning-poker
type: markdown
snippet:
  Los equipos que se están iniciando en los puntos de historia usan un ejercicio llamado [Planning Poker](https://www.atlassian.com/blog/platform/a-brief-overview-of-planning-poker). En Atlassian, el Planning Poker es una práctica habitual en toda la empresa. Los miembros del equipo toman un elemento del backlog, hablan sobre él brevemente y cada uno fórmula mentalmente una estimación. A continuación, todos levantan una tarjeta con el número que refleje su estimación. Si todo el mundo está de acuerdo, ¡estupendo! De lo contrario, dedica algo de tiempo (no mucho, tan solo un par de minutos) para entender el motivo de las distintas estimaciones. Recuerda, sin embargo, que la estimación debe ser una actividad bastante general. Si el equipo se va por las ramas, respira hondo y deriva el debate a un superior.


title: Aplicación de póker de planificación
href: https://marketplace.atlassian.com/apps/1212495/planning-poker?hosting=cloud&tab=overview
type: markdown
snippet:
  Instala esta [Aplicación de póker de planificación](https://marketplace.atlassian.com/apps/1212495/planning-poker?hosting=cloud&tab=overview)


title: póker de planificación
href: https://www.atlassian.com/blog/agile/planning-poker-sane-healthy
type: markdown
snippet:
  Obtén más información sobre el [póker de planificación](https://www.atlassian.com/blog/agile/planning-poker-sane-healthy)


title: Jira Software
href: https://www.atlassian.com/es/software/jira
type: markdown
snippet:
  Las retrospectivas constituyen un momento para que el equipo incorpore ideas de iteraciones anteriores, incluida la precisión de sus estimaciones. Hay muchas herramientas ágiles (como [Jira Software](https://www.atlassian.com/es/software/jira)) que realizan el seguimiento de los puntos de historia, cosa que facilita en gran medida el análisis y el recalibrado de las estimaciones. Prueba, por ejemplo, a comparar las cinco últimas historias de usuario que haya entregado el equipo con un valor de 8 puntos de historia. Estudia si cada uno de estos elementos de trabajo tuvo un nivel de esfuerzo similar. Si no, analizad por qué. Utilizad esta información en los siguientes debates de estimaciones.


title: el resto de los aspectos de un proceso ágil
href: https://www.atlassian.com/es/agile/project-management
type: markdown
snippet:
  Al igual que [el resto de los aspectos de un proceso ágil](https://www.atlassian.com/es/agile/project-management), la estimación es una cuestión de práctica. Irás mejorando con el tiempo.


title: source
type: markdown
href:
  https://omnivore.app/me/debouncing-in-java-script-explained-by-building-auto-complete-fu-18da0bc7510#2c8f31bd-f011-49bd-99bc-36192f7fd823

snippet:
  [source](https://omnivore.app/me/debouncing-in-java-script-explained-by-building-auto-complete-fu-18da0bc7510#2c8f31bd-f011-49bd-99bc-36192f7fd823)


title: source
type: markdown
href:
  https://omnivore.app/me/debouncing-in-java-script-explained-by-building-auto-complete-fu-18da0bc7510#5a57c802-520a-409a-a51c-e554a6ec8bd5

snippet:
  [source](https://omnivore.app/me/debouncing-in-java-script-explained-by-building-auto-complete-fu-18da0bc7510#5a57c802-520a-409a-a51c-e554a6ec8bd5)


title: source
type: markdown
href:
  https://omnivore.app/me/debouncing-in-java-script-explained-by-building-auto-complete-fu-18da0bc7510#226d8c7b-6900-4b2f-a705-5f5b6e10afc5

snippet:
  [source](https://omnivore.app/me/debouncing-in-java-script-explained-by-building-auto-complete-fu-18da0bc7510#226d8c7b-6900-4b2f-a705-5f5b6e10afc5)


title: handbook for beginners
href: https://www.freecodecamp.org/news/learn-javascript-for-beginners/
type: markdown
snippet:
  Learn JavaScript basics – [handbook for beginners](https://www.freecodecamp.org/news/learn-javascript-for-beginners/)


title: JavaScript Algorithms and Data Structures certification
type: markdown
href:
  https://www.freecodecamp.org/news/learn-javascript-with-new-data-structures-and-algorithms-certification-projects/

snippet:
  The freeCodeCamp [JavaScript Algorithms and Data Structures certification](https://www.freecodecamp.org/news/learn-javascript-with-new-data-structures-and-algorithms-certification-projects/)


title: this beginner-friendly tutorial
href: https://www.freecodecamp.org/news/closures-in-javascript/
type: markdown
snippet:
  You can check out [this beginner-friendly tutorial](https://www.freecodecamp.org/news/closures-in-javascript/) to learn more about closures.


title: GitHub
href: https://github.com/KunalN25/react-debouncing
type: markdown
snippet:
  Use `create-react-app` (or a modern build tool like Vite) to create the project. Remove the existing boilerplate code. There is no need to install any additional dependencies. Run `npm start` command to start the project. You can find the complete code on [GitHub](https://github.com/KunalN25/react-debouncing).


title: Git Repo
href: https://github.com/KunalN25/react-debouncing
type: markdown
snippet:
  The data will be stored as state and the results will only be shown if the data is non-empty. I'll skip over the CSS for this tutorial, you can find it in the [Git Repo](https://github.com/KunalN25/react-debouncing).


title: source
type: markdown
href:
  https://omnivore.app/me/https-thevaluable-dev-zsh-install-configure-mouseless-18dacdbdb29#debc2c0b-4a8b-4073-8a0b-fbddbf99bdcb

snippet:
  [source](https://omnivore.app/me/https-thevaluable-dev-zsh-install-configure-mouseless-18dacdbdb29#debc2c0b-4a8b-4073-8a0b-fbddbf99bdcb)


title: https://ttssh2.osdn.jp/manual/4/en/usage/tips/vim.html
href: https://ttssh2.osdn.jp/manual/4/en/usage/tips/vim.html
type: implicit
snippet:
  <span data-omnivore-anchor-idx="248" class="hljs-builtin-name">export</span> <span data-omnivore-anchor-idx="249" class="hljs-attribute">HISTFILE</span>=<span data-omnivore-anchor-idx="250" class="hljs-string">"<span data-omnivore-anchor-idx="251" class="hljs-variable">$ZDOTDIR</span>/.zhistory"</span>    # History filepath
  <span data-omnivore-anchor-idx="252" class="hljs-builtin-name">export</span> <span data-omnivore-anchor-idx="253" class="hljs-attribute">HISTSIZE</span>=10000                   # Maximum events <span data-omnivore-anchor-idx="254" class="hljs-keyword">for</span> internal history
  <span data-omnivore-anchor-idx="255" class="hljs-builtin-name">export</span> <span data-omnivore-anchor-idx="256" class="hljs-attribute">SAVEHIST</span>=10000                   # Maximum events <span data-omnivore-anchor-idx="257" class="hljs-keyword">in</span> history file
  </code></pre></div><p data-omnivore-anchor-idx="258">I already explained the first line. For the other ones, they will:</p><ul data-omnivore-anchor-idx="259"><li data-omnivore-anchor-idx="260">Store your command line history in the file <code data-omnivore-anchor-idx="261" class="hljs language-asciidoc language-css"><span data-omnivore-anchor-idx="262" class="hljs-title">.zhistory</span></code>.</li><li data-omnivore-anchor-idx="263">Allows you to have a history of 10000 entries maximum.</li></ul><p data-omnivore-anchor-idx="264"><a data-omnivore-anchor-idx="265" href="https://github.com/Phantas0s/.dotfiles/blob/master/zsh/zshenv" target="_blank" rel="noopener">Here’s my .zshenv file</a>, if you need some inspiration.</p><h3 data-omnivore-anchor-idx="266" id="aliases">Aliases</h3><p data-omnivore-anchor-idx="267">Aliases are crucial to improve your efficiency. For example, I have a bunch of aliases for git I use all the time. It’s always easier to type when it’s shorter:</p><div data-omnivore-anchor-idx="268"><pre data-omnivore-anchor-idx="269" tabindex="0"><code data-omnivore-anchor-idx="270" class="hljs language-vhdl language-monkey"><span data-omnivore-anchor-idx="271" class="hljs-keyword">alias</span> gs=<span data-omnivore-anchor-idx="272" class="hljs-symbol">'git</span> status'
  <span data-omnivore-anchor-idx="273" class="hljs-keyword">alias</span> ga=<span data-omnivore-anchor-idx="274" class="hljs-symbol">'git</span> add'
  <span data-omnivore-anchor-idx="275" class="hljs-keyword">alias</span> gp=<span data-omnivore-anchor-idx="276" class="hljs-symbol">'git</span> push'
  <span data-omnivore-anchor-idx="277" class="hljs-keyword">alias</span> gpo=<span data-omnivore-anchor-idx="278" class="hljs-symbol">'git</span> push origin'
  <span data-omnivore-anchor-idx="279" class="hljs-keyword">alias</span> gtd=<span data-omnivore-anchor-idx="280" class="hljs-symbol">'git</span> tag <span data-omnivore-anchor-idx="281" class="hljs-comment">--delete'</span>
  <span data-omnivore-anchor-idx="282" class="hljs-keyword">alias</span> gtdr=<span data-omnivore-anchor-idx="283" class="hljs-symbol">'git</span> tag <span data-omnivore-anchor-idx="284" class="hljs-comment">--delete origin'</span>
  <span data-omnivore-anchor-idx="285" class="hljs-keyword">alias</span> gr=<span data-omnivore-anchor-idx="286" class="hljs-symbol">'git</span> branch -r'
  <span data-omnivore-anchor-idx="287" class="hljs-keyword">alias</span> gplo=<span data-omnivore-anchor-idx="288" class="hljs-symbol">'git</span> pull origin'
  <span data-omnivore-anchor-idx="289" class="hljs-keyword">alias</span> gb=<span data-omnivore-anchor-idx="290" class="hljs-symbol">'git</span> branch '
  <span data-omnivore-anchor-idx="291" class="hljs-keyword">alias</span> gc=<span data-omnivore-anchor-idx="292" class="hljs-symbol">'git</span> commit'
  <span data-omnivore-anchor-idx="293" class="hljs-keyword">alias</span> gd=<span data-omnivore-anchor-idx="294" class="hljs-symbol">'git</span> diff'
  <span data-omnivore-anchor-idx="295" class="hljs-keyword">alias</span> gco=<span data-omnivore-anchor-idx="296" class="hljs-symbol">'git</span> checkout '
  <span data-omnivore-anchor-idx="297" class="hljs-keyword">alias</span> gl=<span data-omnivore-anchor-idx="298" class="hljs-symbol">'git</span> log'
  <span data-omnivore-anchor-idx="299" class="hljs-keyword">alias</span> gr=<span data-omnivore-anchor-idx="300" class="hljs-symbol">'git</span> remote'
  <span data-omnivore-anchor-idx="301" class="hljs-keyword">alias</span> grs=<span data-omnivore-anchor-idx="302" class="hljs-symbol">'git</span> remote show'
  <span data-omnivore-anchor-idx="303" class="hljs-keyword">alias</span> glo=<span data-omnivore-anchor-idx="304" class="hljs-symbol">'git</span> log <span data-omnivore-anchor-idx="305" class="hljs-comment">--pretty="oneline"'</span>
  <span data-omnivore-anchor-idx="306" class="hljs-keyword">alias</span> glol=<span data-omnivore-anchor-idx="307" class="hljs-symbol">'git</span> log <span data-omnivore-anchor-idx="308" class="hljs-comment">--graph --oneline --decorate'</span>
  </code></pre></div><p data-omnivore-anchor-idx="309">I like to have my aliases in one separate file (called, surprisingly, <code data-omnivore-anchor-idx="310" class="hljs language-ebnf language-maxima"><span data-omnivore-anchor-idx="311" class="hljs-attribute">aliases</span></code>), and I source it in my <code data-omnivore-anchor-idx="312" class="hljs language-asciidoc language-css"><span data-omnivore-anchor-idx="313" class="hljs-title">.zshrc</span></code>:</p><div data-omnivore-anchor-idx="314"><pre data-omnivore-anchor-idx="315" tabindex="0"><code data-omnivore-anchor-idx="316" class="hljs language-gradle language-applescript"><span data-omnivore-anchor-idx="317" class="hljs-keyword">source</span> <span data-omnivore-anchor-idx="318" class="hljs-regexp">/path/</span>to<span data-omnivore-anchor-idx="319" class="hljs-regexp">/my/</span>aliases
  </code></pre></div><p data-omnivore-anchor-idx="320">Here are <a data-omnivore-anchor-idx="321" href="https://github.com/Phantas0s/.dotfiles/blob/master/aliases/aliases" target="_blank" rel="noopener">all my aliases</a>.</p><h3 data-omnivore-anchor-idx="322" id="zsh-options">Zsh Options</h3><p data-omnivore-anchor-idx="323">You can set or unset many <a data-omnivore-anchor-idx="324" href="http://zsh.sourceforge.net/Doc/Release/Options.html" target="_blank" rel="noopener">Zsh options</a> using <code data-omnivore-anchor-idx="325" class="hljs language-bash language-ebnf"><span data-omnivore-anchor-idx="326" class="hljs-built_in">setopt</span></code> or <code data-omnivore-anchor-idx="327" class="hljs language-bash language-ebnf"><span data-omnivore-anchor-idx="328" class="hljs-built_in">unsetopt</span></code>. For example:</p><div data-omnivore-anchor-idx="329"><pre data-omnivore-anchor-idx="330" tabindex="0"><code data-omnivore-anchor-idx="331" class="hljs language-bash language-delphi"><span data-omnivore-anchor-idx="332" class="hljs-built_in">setopt</span> HIST_SAVE_NO_DUPS         <span data-omnivore-anchor-idx="333" class="hljs-comment"># Do not write a duplicate event to the history file.</span>
  <span data-omnivore-anchor-idx="334" class="hljs-built_in">unsetopt</span> HIST_SAVE_NO_DUPS       <span data-omnivore-anchor-idx="335" class="hljs-comment"># Write a duplicate event to the history file</span>
  </code></pre></div><p data-omnivore-anchor-idx="336">You can already do a lot of customization only using these options.</p><h3 data-omnivore-anchor-idx="337" id="zsh-completion-system">Zsh Completion System</h3><p data-omnivore-anchor-idx="338">The completion system of Zsh is one of its bigger strength, compared to other shells.</p><p data-omnivore-anchor-idx="339">To initialize the completion for the current Zsh session, you’ll need to call the function <code data-omnivore-anchor-idx="340" class="hljs language-ebnf"><span data-omnivore-anchor-idx="341" class="hljs-attribute">compinit</span></code>. More precisely, you’ll need to add this in your <code data-omnivore-anchor-idx="342" class="hljs language-ebnf"><span data-omnivore-anchor-idx="343" class="hljs-attribute">zshrc</span></code>:</p><div data-omnivore-anchor-idx="344"><pre data-omnivore-anchor-idx="345" tabindex="0"><code data-omnivore-anchor-idx="346" class="hljs language-nginx language-abnf"><span data-omnivore-anchor-idx="347" class="hljs-attribute">autoload</span> -U compinit; <span data-omnivore-anchor-idx="348" class="hljs-attribute">compinit</span>
  </code></pre></div><p data-omnivore-anchor-idx="349">What does it mean?</p><p data-omnivore-anchor-idx="350">The <code data-omnivore-anchor-idx="351" class="hljs language-angelscript language-bash"><span data-omnivore-anchor-idx="352" class="hljs-built_in">auto</span>load</code> command load a file containing shell commands. To find this file, Zsh will look in the directories of the <em data-omnivore-anchor-idx="353">Zsh file search path</em>, defined in the variable <code data-omnivore-anchor-idx="354" class="hljs language-gams language-arcade"><span data-omnivore-anchor-idx="355" class="hljs-meta"><span data-omnivore-anchor-idx="356" class="hljs-meta-keyword">$fpath</span></span></code>, and search a file called <code data-omnivore-anchor-idx="357" class="hljs language-ebnf"><span data-omnivore-anchor-idx="358" class="hljs-attribute">compinit</span></code>.</p><p data-omnivore-anchor-idx="359">When <code data-omnivore-anchor-idx="360" class="hljs language-ebnf"><span data-omnivore-anchor-idx="361" class="hljs-attribute">compinit</span></code> is found, its content will be loaded as a <em data-omnivore-anchor-idx="362">function</em>. The function name will be the name of the file. You can then call this function like any other shell function.</p><div data-omnivore-anchor-idx="363"><p data-omnivore-anchor-idx="364">What about the semi-colon <code data-omnivore-anchor-idx="365" class="hljs language-abnf language-ini"><span data-omnivore-anchor-idx="366" class="hljs-comment">;</span></code>? It’s just a handy way to separate commands. It’s the same as calling <code data-omnivore-anchor-idx="367" class="hljs language-ebnf"><span data-omnivore-anchor-idx="368" class="hljs-attribute">compinit</span></code> on a new line.</p></div><p data-omnivore-anchor-idx="369">Why using autoload, and not sourcing the file by doing <code data-omnivore-anchor-idx="370" class="hljs language-gradle language-arcade"><span data-omnivore-anchor-idx="371" class="hljs-keyword">source</span> ~<span data-omnivore-anchor-idx="372" class="hljs-regexp">/path/</span>of<span data-omnivore-anchor-idx="373" class="hljs-regexp">/compinit</span></code>?</p><ul data-omnivore-anchor-idx="374"><li data-omnivore-anchor-idx="375">It avoids name conflicts if you have an executable with the same name.</li><li data-omnivore-anchor-idx="376">It doesn’t expand aliases thanks to the <code data-omnivore-anchor-idx="377" class="hljs language-diff language-haml"><span data-omnivore-anchor-idx="378" class="hljs-deletion">-U</span></code> option.</li><li data-omnivore-anchor-idx="379">It will load the function only when it’s needed (lazy-loading). It comes in handy to speed up Zsh startup.</li></ul><p data-omnivore-anchor-idx="380">Then, let’s add the following;</p><div data-omnivore-anchor-idx="381"><pre data-omnivore-anchor-idx="382" tabindex="0"><code data-omnivore-anchor-idx="383" class="hljs language-applescript language-dts">_comp_options+=(globdots) <span data-omnivore-anchor-idx="384" class="hljs-comment"># With hidden files</span>
  source /<span data-omnivore-anchor-idx="385" class="hljs-keyword">my</span>/path/<span data-omnivore-anchor-idx="386" class="hljs-keyword">to</span>/zsh/completion.zsh
  </code></pre></div><p data-omnivore-anchor-idx="387">The first line will complete <a data-omnivore-anchor-idx="388" href="https://wiki.archlinux.org/index.php/Dotfiles" target="_blank" rel="noopener">dotfiles</a>.</p><p data-omnivore-anchor-idx="389">The second line source <a data-omnivore-anchor-idx="390" href="https://github.com/Phantas0s/.dotfiles/blob/master/zsh/completion.zsh" target="_blank" rel="noopener">this file</a>. It’s my personal config for the Zsh completion. I’ve written an <a data-omnivore-anchor-idx="391" href="https://thevaluable.dev/zsh-completion-guide-examples/">article about that</a> if you’re interested to dive more into the completion system.</p><p data-omnivore-anchor-idx="392">Now, the completion should work:</p><ul data-omnivore-anchor-idx="393"><li data-omnivore-anchor-idx="394">If you type <code data-omnivore-anchor-idx="395" class="hljs language-avrasm language-ebnf"><span data-omnivore-anchor-idx="396" class="hljs-keyword">cp</span></code> and hit the tab key, you’ll see that Zsh will complete the command.</li><li data-omnivore-anchor-idx="397">If you type <code data-omnivore-anchor-idx="398" class="hljs language-avrasm language-nginx"><span data-omnivore-anchor-idx="399" class="hljs-keyword">cp</span> -</code> and hit the tab key, Zsh will display the possible arguments for the command.</li></ul><picture data-omnivore-anchor-idx="400"><source data-omnivore-anchor-idx="401" srcset="https://proxy-prod.omnivore-image-cache.app/0x0,sfiBcmObf97NIeUibtBNabIdkPJ0sEqndbvVxv52zQmk/https://thevaluable.dev/images/2020/zsh/auto_complete.webp," type="image/webp"><img data-omnivore-anchor-idx="402" data-omnivore-original-src="https://thevaluable.dev/images/2020/zsh/auto_complete.png" width="780" height="520" src="https://proxy-prod.omnivore-image-cache.app/780x520,shXcZ-OuRAMljwivxvaLoPqZ9COFjw6mY9KEnyqQBCKQ/https://thevaluable.dev/images/2020/zsh/auto_complete.png" alt="Zsh completion in action"></picture><h3 data-omnivore-anchor-idx="403" id="pimp-my-zsh-prompt">Pimp My Zsh Prompt</h3><p data-omnivore-anchor-idx="404">What would be the shell experience without a nice prompt? Dull. Tasteless. Depressing.</p><p data-omnivore-anchor-idx="405">Let’s be honest here: Zsh default prompt is ugly. We need to change it, before our eyes start crying some blood. My needs are simple:</p><ul data-omnivore-anchor-idx="406"><li data-omnivore-anchor-idx="407">The prompt needs to be on one line. I had display problems with two lines.</li><li data-omnivore-anchor-idx="408">The prompt needs to display some git info when necessary.</li></ul><p data-omnivore-anchor-idx="409">From there, I created <a data-omnivore-anchor-idx="410" href="https://github.com/Phantas0s/purification/blob/master/prompt_purification_setup" target="_blank" rel="noopener">my own prompt</a> from <a data-omnivore-anchor-idx="411" href="https://github.com/therealklanni/purity" target="_blank" rel="noopener">another one</a>. It looks like that:</p><picture data-omnivore-anchor-idx="412"><source data-omnivore-anchor-idx="413" srcset="https://proxy-prod.omnivore-image-cache.app/0x0,sEbG09G1juFPo63j_VjykyvXcIJNnKy9th3zqNYTNLns/https://thevaluable.dev/images/2020/zsh/prompt.webp," type="image/webp"><img data-omnivore-anchor-idx="414" data-omnivore-original-src="https://thevaluable.dev/images/2020/zsh/prompt.png" width="780" height="520" src="https://proxy-prod.omnivore-image-cache.app/780x520,sYO_QmAuKGoSirbH4ZiWqkffidw64lNbq8Ixd6jKGOew/https://thevaluable.dev/images/2020/zsh/prompt.png" alt="Zsh prompt"></picture><p data-omnivore-anchor-idx="415">If you open the prompt script, you’ll see that it’s pretty simple:</p><ul data-omnivore-anchor-idx="416"><li data-omnivore-anchor-idx="417">I set two environment variables: <code data-omnivore-anchor-idx="418" class="hljs language-gams language-autoit"><span data-omnivore-anchor-idx="419" class="hljs-meta"><span data-omnivore-anchor-idx="420" class="hljs-meta-keyword">$PROMPT</span></span></code> and <code data-omnivore-anchor-idx="421" class="hljs language-gams language-autoit"><span data-omnivore-anchor-idx="422" class="hljs-meta"><span data-omnivore-anchor-idx="423" class="hljs-meta-keyword">$RPROMPT</span></span></code>. The first one format the left prompt, the second display git information on the far right.</li><li data-omnivore-anchor-idx="424">You can add some formatting styles using, for example, <code data-omnivore-anchor-idx="425" class="hljs language-haml language-cos"><span data-omnivore-anchor-idx="426" class="hljs-tag">%<span data-omnivore-anchor-idx="427" class="hljs-selector-tag">F</span>{blue}</span>%f</code> to change the color, or <code data-omnivore-anchor-idx="428" class="hljs language-cos language-gcode"><span data-omnivore-anchor-idx="429" class="hljs-built_in">%Bmy</span>-cool-prompt<span data-omnivore-anchor-idx="430" class="hljs-built_in">%b</span></code> to make everything bold.</li></ul><p data-omnivore-anchor-idx="431">This prompt doesn’t need any external <a data-omnivore-anchor-idx="432" href="https://thevaluable.dev/cohesion-coupling-guide-examples/">dependency</a>. You can copy it right away and modify it as much as you want.</p><p data-omnivore-anchor-idx="433"><a data-omnivore-anchor-idx="434" href="http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html" target="_blank" rel="noopener">Here’s everything you need, to create the prompt of your dream</a>.</p><p data-omnivore-anchor-idx="435">To load the prompt, you need to add something like that in your <code data-omnivore-anchor-idx="436" class="hljs language-ebnf"><span data-omnivore-anchor-idx="437" class="hljs-attribute">zshrc</span></code>:</p><div data-omnivore-anchor-idx="438"><pre data-omnivore-anchor-idx="439" tabindex="0"><code data-omnivore-anchor-idx="440" class="hljs language-applescript language-arcade">fpath=(/<span data-omnivore-anchor-idx="441" class="hljs-keyword">my</span>/path/<span data-omnivore-anchor-idx="442" class="hljs-keyword">to</span>/zsh/prompt $fpath)
  autoload -Uz name_of_the_prompt_file; name_of_the_prompt_file
  </code></pre></div><p data-omnivore-anchor-idx="443">The first line will add the folder containing the prompt to <code data-omnivore-anchor-idx="444" class="hljs language-gams language-arcade"><span data-omnivore-anchor-idx="445" class="hljs-meta"><span data-omnivore-anchor-idx="446" class="hljs-meta-keyword">$fpath</span></span></code>, as discussed above. It will also ensure that any function declared in the folder <code data-omnivore-anchor-idx="447" class="hljs language-applescript language-awk">/<span data-omnivore-anchor-idx="448" class="hljs-keyword">my</span>/path/<span data-omnivore-anchor-idx="449" class="hljs-keyword">to</span>/zsh/prompt</code> will overwrite every other ones with the same name, in other <code data-omnivore-anchor-idx="450" class="hljs language-ebnf"><span data-omnivore-anchor-idx="451" class="hljs-attribute">fpath</span></code> folders.</p><p data-omnivore-anchor-idx="452">The second line autoload the prompt itself.</p><p data-omnivore-anchor-idx="453">This prompt require <a data-omnivore-anchor-idx="454" href="https://fontawesome.com/v4.7.0/" target="_blank" rel="noopener">font awesome 4</a> for the git icons. You can download the font and install it, or you can change the icons.</p><h3 data-omnivore-anchor-idx="455" id="zsh-directory-stack">Zsh Directory Stack</h3><p data-omnivore-anchor-idx="456">Zsh has commands to <a data-omnivore-anchor-idx="457" href="http://zsh.sourceforge.net/Intro/intro_6.html" target="_blank" rel="noopener">push and pop directories on a directory stack</a>.</p><p data-omnivore-anchor-idx="458">By manipulating this stack, you can set up an history of directory visited, and be able to jump back to these directories.</p><p data-omnivore-anchor-idx="459">First, let’s set some options in your <code data-omnivore-anchor-idx="460" class="hljs language-asciidoc language-css"><span data-omnivore-anchor-idx="461" class="hljs-title">.zshrc</span></code>:</p><div data-omnivore-anchor-idx="462"><pre data-omnivore-anchor-idx="463" tabindex="0"><code data-omnivore-anchor-idx="464" class="hljs language-bash language-nginx"><span data-omnivore-anchor-idx="465" class="hljs-built_in">setopt</span> AUTO_PUSHD           <span data-omnivore-anchor-idx="466" class="hljs-comment"># Push the current directory visited on the stack.</span>
  <span data-omnivore-anchor-idx="467" class="hljs-built_in">setopt</span> PUSHD_IGNORE_DUPS    <span data-omnivore-anchor-idx="468" class="hljs-comment"># Do not store duplicates in the stack.</span>
  <span data-omnivore-anchor-idx="469" class="hljs-built_in">setopt</span> PUSHD_SILENT         <span data-omnivore-anchor-idx="470" class="hljs-comment"># Do not print the directory stack after pushd or popd.</span>
  </code></pre></div><p data-omnivore-anchor-idx="471">Then, you can create these aliases:</p><div data-omnivore-anchor-idx="472"><pre data-omnivore-anchor-idx="473" tabindex="0"><code data-omnivore-anchor-idx="474" class="hljs language-bash language-perl"><span data-omnivore-anchor-idx="475" class="hljs-built_in">alias</span> d=<span data-omnivore-anchor-idx="476" class="hljs-string">'dirs -v'</span>
  <span data-omnivore-anchor-idx="477" class="hljs-keyword">for</span> index ({1..9}) <span data-omnivore-anchor-idx="478" class="hljs-built_in">alias</span> <span data-omnivore-anchor-idx="479" class="hljs-string">"<span data-omnivore-anchor-idx="480" class="hljs-variable">$index</span>"</span>=<span data-omnivore-anchor-idx="481" class="hljs-string">"cd +<span data-omnivore-anchor-idx="482" class="hljs-variable">${index}</span>"</span>; <span data-omnivore-anchor-idx="483" class="hljs-built_in">unset</span> index
  </code></pre></div><p data-omnivore-anchor-idx="484">What does it do?</p><ul data-omnivore-anchor-idx="485"><li data-omnivore-anchor-idx="486">Every directory visited will populate the stack.</li><li data-omnivore-anchor-idx="487">When you use the alias <code data-omnivore-anchor-idx="488" class="hljs language-ebnf"><span data-omnivore-anchor-idx="489" class="hljs-attribute">d</span></code>, it will display the directories on the stack prefixed with a number.</li><li data-omnivore-anchor-idx="490">The line <code data-omnivore-anchor-idx="491" class="hljs language-perl language-bash"><span data-omnivore-anchor-idx="492" class="hljs-keyword">for</span> <span data-omnivore-anchor-idx="493" class="hljs-keyword">index</span> ({<span data-omnivore-anchor-idx="494" class="hljs-number">1</span>..<span data-omnivore-anchor-idx="495" class="hljs-number">9</span>}) alias <span data-omnivore-anchor-idx="496" class="hljs-string">"$index"</span>=<span data-omnivore-anchor-idx="497" class="hljs-string">"cd +<span data-omnivore-anchor-idx="498" class="hljs-subst">${<span data-omnivore-anchor-idx="499" class="hljs-keyword">index</span>}</span>"</span>; unset <span data-omnivore-anchor-idx="500" class="hljs-keyword">index</span></code> will create aliases from 1 to 9. They will allow you to jump directly in whatever directory on your stack.</li></ul><p data-omnivore-anchor-idx="501">For example, if you execute <code data-omnivore-anchor-idx="502" class="hljs language-angelscript language-lsl"><span data-omnivore-anchor-idx="503" class="hljs-number">1</span></code> in Zsh, you’ll jump to the directory prefixed with <code data-omnivore-anchor-idx="504" class="hljs language-angelscript language-lsl"><span data-omnivore-anchor-idx="505" class="hljs-number">1</span></code> in your stack list.</p><p data-omnivore-anchor-idx="506">You can also increase <code data-omnivore-anchor-idx="507" class="hljs language-angelscript language-lsl">index ({<span data-omnivore-anchor-idx="508" class="hljs-number">1.</span><span data-omnivore-anchor-idx="509" class="hljs-number">.9</span>})</code> to <code data-omnivore-anchor-idx="510" class="hljs language-angelscript language-lsl">index ({<span data-omnivore-anchor-idx="511" class="hljs-number">1.</span><span data-omnivore-anchor-idx="512" class="hljs-number">.100</span>})</code> for example, if you want to be able to jump back to 100 directories.</p><p data-omnivore-anchor-idx="513">For example, you can do that:</p><div data-omnivore-anchor-idx="514"><pre data-omnivore-anchor-idx="515" tabindex="0"><code data-omnivore-anchor-idx="516" class="hljs language-jboss-cli language-arduino">~ &gt; <span data-omnivore-anchor-idx="517" class="hljs-keyword">cd</span> <span data-omnivore-anchor-idx="518" class="hljs-string">.config</span>
  ~<span data-omnivore-anchor-idx="519" class="hljs-string">/.config</span> &gt; <span data-omnivore-anchor-idx="520" class="hljs-keyword">cd</span> devdash
  ~<span data-omnivore-anchor-idx="521" class="hljs-string">/.config/devdash</span> &gt; <span data-omnivore-anchor-idx="522" class="hljs-keyword">cd</span> <span data-omnivore-anchor-idx="523" class="hljs-string">..</span>
  ~<span data-omnivore-anchor-idx="524" class="hljs-string">/.config</span> &gt; <span data-omnivore-anchor-idx="525" class="hljs-keyword">cd</span> i3
  ~<span data-omnivore-anchor-idx="526" class="hljs-string">/.config/i3</span> &gt; <span data-omnivore-anchor-idx="527" class="hljs-keyword">cd</span> <span data-omnivore-anchor-idx="528" class="hljs-string">..</span>
  ~<span data-omnivore-anchor-idx="529" class="hljs-string">/.config</span> &gt; d
  0       ~<span data-omnivore-anchor-idx="530" class="hljs-string">/.config</span>
  1       ~<span data-omnivore-anchor-idx="531" class="hljs-string">/.config/i3</span>
  2       ~<span data-omnivore-anchor-idx="532" class="hljs-string">/.config/devdash</span>
  3       ~
  ~<span data-omnivore-anchor-idx="533" class="hljs-string">/.config</span> &gt; 2
  ~<span data-omnivore-anchor-idx="534" class="hljs-string">/.config/devdash</span> &gt; 
  </code></pre></div><h3 data-omnivore-anchor-idx="535" id="zsh-by-default">Zsh By Default</h3><p data-omnivore-anchor-idx="536">When you’re ready psychologically to set Zsh as your default shell, you can run these commands:</p><ul data-omnivore-anchor-idx="537"><li data-omnivore-anchor-idx="538">For Linux: <code data-omnivore-anchor-idx="539" class="hljs language-reasonml language-arcade">chsh -s <span data-omnivore-anchor-idx="540" class="hljs-constructor">$(<span data-omnivore-anchor-idx="541" class="hljs-params">which</span> <span data-omnivore-anchor-idx="542" class="hljs-params">zsh</span>)</span></code></li><li data-omnivore-anchor-idx="543">For macOS: <code data-omnivore-anchor-idx="544" class="hljs language-reasonml language-bash">sudo sh -c <span data-omnivore-anchor-idx="545" class="hljs-string">"echo $(which zsh) &gt;&gt; /etc/shells"</span><span data-omnivore-anchor-idx="546" class="hljs-operator"> &amp;&amp; </span>chsh -s <span data-omnivore-anchor-idx="547" class="hljs-constructor">$(<span data-omnivore-anchor-idx="548" class="hljs-params">which</span> <span data-omnivore-anchor-idx="549" class="hljs-params">zsh</span>)</span></code></li></ul><p data-omnivore-anchor-idx="550">A good soul on Reddit whispered me that Zsh is now the default shell from macOS Catalina onwards, so you don’t necessarily need the above command.</p><p data-omnivore-anchor-idx="551">Zsh is now part of your life. Congratulation!</p><h2 data-omnivore-anchor-idx="552" id="zsh-with-vim-flavors">Zsh With Vim Flavors</h2><p data-omnivore-anchor-idx="553">For editing purposes, <a data-omnivore-anchor-idx="554" href="https://thevaluable.dev/phpstorm-vs-vim/">Vim is my best friend</a>. I love when CLIs use some Vim key binding, and Zsh gives you even more than that. If you’d like to learn Vim, this <a data-omnivore-anchor-idx="555" href="https://thevaluable.dev/vim-commands-beginner/" target="_blank" rel="noopener">series of articles</a> can help.</p><h3 data-omnivore-anchor-idx="556" id="activating-vi-mode">Activating Vi Mode</h3><p data-omnivore-anchor-idx="557">Zsh has a Vi mode you can enable by adding the following in your <code data-omnivore-anchor-idx="558" class="hljs language-asciidoc language-css"><span data-omnivore-anchor-idx="559" class="hljs-title">.zshrc</span></code>:</p><div data-omnivore-anchor-idx="560"><pre data-omnivore-anchor-idx="561" tabindex="0"><code data-omnivore-anchor-idx="562" class="hljs language-routeros language-bash">bindkey -v
  <span data-omnivore-anchor-idx="563" class="hljs-builtin-name">export</span> <span data-omnivore-anchor-idx="564" class="hljs-attribute">KEYTIMEOUT</span>=1
  </code></pre></div><p data-omnivore-anchor-idx="565">You can now switch between INSERT and NORMAL mode (called also COMMAND mode) with the <code data-omnivore-anchor-idx="566" class="hljs language-ebnf"><span data-omnivore-anchor-idx="567" class="hljs-attribute">ESC</span></code> key, and use the familiar Vim keystrokes to edit what you’re typing in your shell prompt. I write the different modes in uppercase here for clarity, but it doesn’t have to be.</p><p data-omnivore-anchor-idx="568">The second line <code data-omnivore-anchor-idx="569" class="hljs language-routeros language-angelscript"><span data-omnivore-anchor-idx="570" class="hljs-builtin-name">export</span> <span data-omnivore-anchor-idx="571" class="hljs-attribute">KEYTIMEOUT</span>=1</code> makes the switch between modes quicker.</p><h3 data-omnivore-anchor-idx="572" id="changing-cursor">Changing Cursor</h3><p data-omnivore-anchor-idx="573">A visual indicator to show the current mode (NORMAL or INSERT) could be nice. In Vim, my cursor is a beam <code data-omnivore-anchor-idx="574" class="hljs language-1c"><span data-omnivore-anchor-idx="575" class="hljs-string">|</span></code> when I’m in INSERT mode, and a block <code data-omnivore-anchor-idx="576" class="hljs language-undefined">█</code> when I’m in NORMAL mode. I wanted the same for Zsh.</p><p data-omnivore-anchor-idx="577">You can add the following in your <code data-omnivore-anchor-idx="578" class="hljs language-ebnf"><span data-omnivore-anchor-idx="579" class="hljs-attribute">zshrc</span></code>, or autoload it from a file, <a data-omnivore-anchor-idx="580" href="https://github.com/Phantas0s/.dotfiles/blob/master/zsh/plugins/cursor_mode" target="_blank" rel="noopener">as I did</a>.</p><div data-omnivore-anchor-idx="581"><pre data-omnivore-anchor-idx="582" tabindex="0"><code data-omnivore-anchor-idx="583" class="hljs language-bash language-perl"><span data-omnivore-anchor-idx="584" class="hljs-function"><span data-omnivore-anchor-idx="585" class="hljs-title">cursor_mode</span></span>() {
      <span data-omnivore-anchor-idx="586" class="hljs-comment"># See https://ttssh2.osdn.jp/manual/4/en/usage/tips/vim.html for cursor shapes</span>
      cursor_block=<span data-omnivore-anchor-idx="587" class="hljs-string">'\e[2 q'</span>
      cursor_beam=<span data-omnivore-anchor-idx="588" class="hljs-string">'\e[6 q'</span>


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#9fb355ed-811d-44e7-aa61-12c0b18db7e2

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#9fb355ed-811d-44e7-aa61-12c0b18db7e2)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#f9c0a23a-9d66-4a80-bb4c-a4f2806ed1aa

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#f9c0a23a-9d66-4a80-bb4c-a4f2806ed1aa)


title: intersection observer API
href: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
type: markdown
snippet:
  Another approach is to use the [intersection observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection%5FObserver%5FAPI), which is a web API that allows you to detect when an element enters or exists the viewport efficiently.


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#a44706c9-5cce-4765-ac78-77efdca40a30

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#a44706c9-5cce-4765-ac78-77efdca40a30)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#051f1544-65d2-4eae-87c6-bb7f226c4fa7

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#051f1544-65d2-4eae-87c6-bb7f226c4fa7)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#f0735f25-7bdf-4562-84cb-6f93f3a0b5a6

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#f0735f25-7bdf-4562-84cb-6f93f3a0b5a6)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#360c5717-251f-40d7-9dd8-24bccb26a59b

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#360c5717-251f-40d7-9dd8-24bccb26a59b)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#c01f0766-7401-44ae-9888-ee1da6d10ca7

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#c01f0766-7401-44ae-9888-ee1da6d10ca7)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#4292a582-b6cb-44e9-baff-3be6a127ed14

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#4292a582-b6cb-44e9-baff-3be6a127ed14)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#5e73fc50-7717-449d-a27f-f3bb87fd100f

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#5e73fc50-7717-449d-a27f-f3bb87fd100f)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#2926578f-0a36-4acc-8c03-5d740981bb04

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#2926578f-0a36-4acc-8c03-5d740981bb04)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#131255d3-029e-43c9-8c5e-0489e786e425

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#131255d3-029e-43c9-8c5e-0489e786e425)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#9f66f0bf-2185-499a-a4f1-591e5af60182

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#9f66f0bf-2185-499a-a4f1-591e5af60182)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#aff44dd9-50f2-4ad2-8f93-d52e6ab0988d

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#aff44dd9-50f2-4ad2-8f93-d52e6ab0988d)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#16416227-0870-4503-a67d-76418223953a

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#16416227-0870-4503-a67d-76418223953a)


title: source
type: markdown
href:
  https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#0622edf4-fa98-4848-aeee-174fa1cbde22

snippet:
  [source](https://omnivore.app/me/react-optimization-techniques-to-help-you-write-more-performant--18db03268c2#0622edf4-fa98-4848-aeee-174fa1cbde22)


title: Portent
href: https://www.portent.com/blog/analytics/research-site-speed-hurting-everyones-revenue.htm
type: markdown
snippet:
  **Competitive Advantage:** A fast and efficient application sets you apart from competitors whose applications may be slower or less optimized. According to research by [Portent](https://www.portent.com/blog/analytics/research-site-speed-hurting-everyones-revenue.htm), a website that loads within one second has a conversion rate five times higher than a site that takes ten seconds to load. Therefore, ensuring your React applications perform well is crucial for retaining users and maintaining a competitive edge.


title: React Virtualized
href: https://www.npmjs.com/package/react-virtualized
type: markdown
snippet:
  There are different approaches to implementing list visualization in React, and one is using a popular library called [React Virtualized](https://www.npmjs.com/package/react-virtualized).


title: react-lazyload
href: https://www.npmjs.com/package/react-lazyload
type: markdown
snippet:
  Lazy loading in React can be achieved using various libraries and techniques. One of the popular libraries is the [react-lazyload](https://www.npmjs.com/package/react-lazyload).


title: intersection observer API
href: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
type: markdown
snippet:
  ==Another approach is to use the== ==[intersection observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection%5FObserver%5FAPI)====, which is a web API that allows you to detect when an element enters or exists the viewport efficiently.== Here's how we can use the Intersection Observer API along with the `useEffect` hook in React:


title: React 16.2
href: https://legacy.reactjs.org/blog/2017/11/28/react-v16.2.0-fragment-support.html
type: markdown
snippet:
  React Fragments are a feature introduced in [React 16.2](https://legacy.reactjs.org/blog/2017/11/28/react-v16.2.0-fragment-support.html) that allows you to group multiple elements together without adding an additional DOM node. This is particularly useful when you need to return multiple elements from a component's render method, but you don't want to introduce unnecessary DOM elements that could affect the layout or styles of your application.


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-1-oldies-but-goodies-18dbc861eae#4994949d-07aa-4baf-8b39-7b003dcc4487

snippet:
  [source](https://omnivore.app/me/git-tips-1-oldies-but-goodies-18dbc861eae#4994949d-07aa-4baf-8b39-7b003dcc4487)


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-1-oldies-but-goodies-18dbc861eae#400065ab-ea9d-4b03-80c8-aec98b643a27

snippet:
  [source](https://omnivore.app/me/git-tips-1-oldies-but-goodies-18dbc861eae#400065ab-ea9d-4b03-80c8-aec98b643a27)


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-1-oldies-but-goodies-18dbc861eae#60d94f0c-f71c-4e30-83d7-ed9d4ac07265

snippet:
  [source](https://omnivore.app/me/git-tips-1-oldies-but-goodies-18dbc861eae#60d94f0c-f71c-4e30-83d7-ed9d4ac07265)


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-1-oldies-but-goodies-18dbc861eae#7e50290a-231d-4e52-9518-2e8ad22503cf

snippet:
  [source](https://omnivore.app/me/git-tips-1-oldies-but-goodies-18dbc861eae#7e50290a-231d-4e52-9518-2e8ad22503cf)


title: short series of Git tips
href: https://blog.gitbutler.com/git-tips-and-tricks/
type: markdown
snippet:
  For the first in our [short series of Git tips](https://blog.gitbutler.com/git-tips-and-tricks/), I wanted to start with stuff that's been around for a while, but it still seems like a lot of people don't know about or don't know how to use.


title: Git Blame with Following
href: https://blog.gitbutler.com/git-tips-1-theres-a-git-config-for-that/git-blame-with-following
type: markdown
snippet:
  [Git Blame with Following](https://blog.gitbutler.com/git-tips-1-theres-a-git-config-for-that/git-blame-with-following)


title: probably been told
href: https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup?ref=blog.gitbutler.com
type: markdown
snippet:
  Every Git user will have [probably been told](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup?ref=blog.gitbutler.com) to run something like this when they first set up:


title: the docs
href: https://git-scm.com/docs/git-config?ref=blog.gitbutler.com#_includes
type: markdown
snippet:
  Check out [the docs](https://git-scm.com/docs/git-config?ref=blog.gitbutler.com#%5Fincludes) for more.


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-2-new-stuff-in-git-18dbc865f77#303433c7-6c8d-45df-b8ae-729aa598255b

snippet:
  [source](https://omnivore.app/me/git-tips-2-new-stuff-in-git-18dbc865f77#303433c7-6c8d-45df-b8ae-729aa598255b)


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-2-new-stuff-in-git-18dbc865f77#6870b9f8-0e0c-4a26-8d4e-b0dd630f7260

snippet:
  [source](https://omnivore.app/me/git-tips-2-new-stuff-in-git-18dbc865f77#6870b9f8-0e0c-4a26-8d4e-b0dd630f7260)


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-2-new-stuff-in-git-18dbc865f77#0a2d2271-21f5-46e5-8f83-8fd08a82e25c

snippet:
  [source](https://omnivore.app/me/git-tips-2-new-stuff-in-git-18dbc865f77#0a2d2271-21f5-46e5-8f83-8fd08a82e25c)


title: here
type: markdown
href:
  https://github.blog/2021-04-29-scaling-monorepo-maintenance/?ref=blog.gitbutler.com#multi-pack-indexes

snippet:
  This means that every hour it will rebuild your commit graph and do a prefetch (we will cover these concepts in the next post), and once per day it will clean up loose objects and put them in pack-files and also repack the object directory using the `multi-pack-index` feature (read more about that in an incredible blog post from GitHub's Taylor Blau [here](https://github.blog/2021-04-29-scaling-monorepo-maintenance/?ref=blog.gitbutler.com#multi-pack-indexes)).


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-2-new-stuff-in-git-18dbc865f77#cdd9aacf-451b-4437-9976-61dcbc1322aa

snippet:
  [source](https://omnivore.app/me/git-tips-2-new-stuff-in-git-18dbc865f77#cdd9aacf-451b-4437-9976-61dcbc1322aa)


title: 3 part series
href: https://blog.gitbutler.com/git-tips-and-tricks/
type: markdown
snippet:
  Next up in our [3 part series](https://blog.gitbutler.com/git-tips-and-tricks/) on "Stuff you may not know about Git", we have **New Stuff**!


title: wrote about this
href: https://blog.gitbutler.com/signing-commits-in-git-explained/
type: markdown
snippet:
  We [wrote about this](https://blog.gitbutler.com/signing-commits-in-git-explained/) a few months ago in mind-numbing detail, because the GitButler client does this automatically for you with the flip of a config setting, but if you want to do this on the command line, read on.


title: writeup
href: https://people.kernel.org/monsieuricon/signed-git-pushes?ref=blog.gitbutler.com
type: markdown
snippet:
  If you're interested in this, there is a very nice [writeup](https://people.kernel.org/monsieuricon/signed-git-pushes?ref=blog.gitbutler.com) by over at kernel.org.


title: here
type: markdown
href:
  https://github.blog/2021-04-29-scaling-monorepo-maintenance/?ref=blog.gitbutler.com#multi-pack-indexes

snippet:
  ==This means that every hour it will rebuild your commit graph and do a prefetch (we will cover these concepts in the next post), and once per day it will clean up loose objects and put them in pack-files and also repack the object directory using the== `==multi-====pack====-====index==` ==feature (read more about that in an incredible blog post from GitHub's Taylor Blau== ==[here](https://github.blog/2021-04-29-scaling-monorepo-maintenance/?ref=blog.gitbutler.com#multi-pack-indexes)====).==


title: here
href: https://git-scm.com/docs/git-maintenance?ref=blog.gitbutler.com
type: markdown
snippet:
  You can read more about git maintenance and it's various options [here](https://git-scm.com/docs/git-maintenance?ref=blog.gitbutler.com).


title: Really Big Repositories
href: https://blog.gitbutler.com/git-tips-3-really-large-repositories/
type: markdown
snippet:
  OK, now onto our next post where we cover those commit graph and prefetching topics. Let's get into [Really Big Repositories](https://blog.gitbutler.com/git-tips-3-really-large-repositories/).


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-3-really-large-repositories-18dbc867c96#d319f349-d2ea-4aed-9558-d67e4b708d74

snippet:
  [source](https://omnivore.app/me/git-tips-3-really-large-repositories-18dbc867c96#d319f349-d2ea-4aed-9558-d67e4b708d74)


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-3-really-large-repositories-18dbc867c96#d296df77-d1f6-4a1b-99c6-9716824f2ee2

snippet:
  [source](https://omnivore.app/me/git-tips-3-really-large-repositories-18dbc867c96#d296df77-d1f6-4a1b-99c6-9716824f2ee2)


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-3-really-large-repositories-18dbc867c96#d92785cc-9dde-46f8-9764-af2195722289

snippet:
  [source](https://omnivore.app/me/git-tips-3-really-large-repositories-18dbc867c96#d92785cc-9dde-46f8-9764-af2195722289)


title: Scalar
href: https://git-scm.com/docs/scalar?ref=blog.gitbutler.com
type: markdown
snippet:
  [Scalar](https://git-scm.com/docs/scalar?ref=blog.gitbutler.com) is mostly just used to clone with the correct defaults and config settings (blobless clone, no checkout by default, setting up maintenance properly, etc).


title: source
type: markdown
href:
  https://omnivore.app/me/git-tips-3-really-large-repositories-18dbc867c96#96d0ab7b-1bf9-4b10-a08a-3d13c01bf56c

snippet:
  [source](https://omnivore.app/me/git-tips-3-really-large-repositories-18dbc867c96#96d0ab7b-1bf9-4b10-a08a-3d13c01bf56c)


title: Git Tips series
href: https://blog.gitbutler.com/git-tips-and-tricks/
type: markdown
snippet:
  In our third and final section of our [Git Tips series](https://blog.gitbutler.com/git-tips-and-tricks/), we're going to talk about how well Git now handles **very large** repositories and monorepos.


title: The Largest Git Repo on the Planet
href: https://devblogs.microsoft.com/bharry/the-largest-git-repo-on-the-planet/?ref=blog.gitbutler.com
type: markdown
snippet:
  In 2017, Microsoft successfully moved the Windows codebase to Git. Brian Harry wrote a really great blog post about it called [The Largest Git Repo on the Planet](https://devblogs.microsoft.com/bharry/the-largest-git-repo-on-the-planet/?ref=blog.gitbutler.com) that you should read if you're interested, but the size and scope of this repository is astounding.


title: VFS for Git
href: https://github.com/microsoft/VFSForGit?ref=blog.gitbutler.com
type: markdown
snippet:
  The first solution to this problem was a new project called [VFS for Git](https://github.com/microsoft/VFSForGit?ref=blog.gitbutler.com) which was a virtual filesystem layer that did virtual checkouts and then requested files from a central server on demand.


title: Scalar
href: https://github.com/microsoft/scalar?ref=blog.gitbutler.com
type: markdown
snippet:
  Eventually they moved more and more of the solutions they developed to the [Scalar](https://github.com/microsoft/scalar?ref=blog.gitbutler.com) project, which got rid of the virtualization layer, and would instead request file contents on checkout rather than on demand.


title: Microsoft Git
href: https://github.com/microsoft/git?ref=blog.gitbutler.com
type: markdown
snippet:
  Then they moved everything, piece by piece, into the [Microsoft Git](https://github.com/microsoft/git?ref=blog.gitbutler.com) fork and then finally every part of _that_ was moved into [core Git](https://git-scm.com/docs/scalar?ref=blog.gitbutler.com).


title: GitHub blog
type: markdown
href:
  https://github.blog/2022-08-30-gits-database-internals-ii-commit-history-queries/?ref=blog.gitbutler.com#the-commit-graph

snippet:
  Here's a benchmark of some log related subcommands run on the Linux kernel codebase with and without the commit graph data (from the [GitHub blog](https://github.blog/2022-08-30-gits-database-internals-ii-commit-history-queries/?ref=blog.gitbutler.com#the-commit-graph))


title: fsmonitor-daemon
href: https://git-scm.com/docs/git-fsmonitor--daemon?ref=blog.gitbutler.com
type: markdown
snippet:
  What this will do is add a setting that the `git status` command will see when it runs, indicating that it should be using the [fsmonitor-daemon](https://git-scm.com/docs/git-fsmonitor--daemon?ref=blog.gitbutler.com). If this daemon is not running, it will start it.


title: Linux
href: https://github.com/torvalds/linux?ref=blog.gitbutler.com
type: markdown
snippet:
  Another big issue with large repositories is clone size. As you probably know, by default Git will fetch everything. You don't even need to have a 300GB repository for this to be a problem. [Linux](https://github.com/torvalds/linux?ref=blog.gitbutler.com) is over 4GB, [Chromium](https://github.com/chromium/chromium?ref=blog.gitbutler.com) is over 20GB. A full Chromium clone can easily take an hour, even over a pretty fast connection.


title: Scalar
href: https://git-scm.com/docs/scalar?ref=blog.gitbutler.com
type: markdown
snippet:
  ==[Scalar](https://git-scm.com/docs/scalar?ref=blog.gitbutler.com)== ==is mostly just used to clone with the correct defaults and config settings (blobless clone, no checkout by default, setting up maintenance properly, etc).==


title: The Commit Graph
type: markdown
href:
  https://github.blog/2022-08-30-gits-database-internals-ii-commit-history-queries/?ref=blog.gitbutler.com#the-commit-graph

snippet:
  [The Commit Graph](https://github.blog/2022-08-30-gits-database-internals-ii-commit-history-queries/?ref=blog.gitbutler.com#the-commit-graph)


title: Sparse checkout
type: markdown
href:
  https://github.blog/2020-01-17-bring-your-monorepo-down-to-size-with-sparse-checkout/?ref=blog.gitbutler.com

snippet:
  [Sparse checkout](https://github.blog/2020-01-17-bring-your-monorepo-down-to-size-with-sparse-checkout/?ref=blog.gitbutler.com)


title: Filesystem Monitor
type: markdown
href:
  https://github.blog/2022-06-29-improve-git-monorepo-performance-with-a-file-system-monitor/?ref=blog.gitbutler.com

snippet:
  [Filesystem Monitor](https://github.blog/2022-06-29-improve-git-monorepo-performance-with-a-file-system-monitor/?ref=blog.gitbutler.com)


title: Sparse index
type: markdown
href:
  https://github.blog/2021-11-10-make-your-monorepo-feel-small-with-gits-sparse-index/?ref=blog.gitbutler.com

snippet:
  [Sparse index](https://github.blog/2021-11-10-make-your-monorepo-feel-small-with-gits-sparse-index/?ref=blog.gitbutler.com)


title: Partial and shallow clone
type: markdown
href:
  https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/?ref=blog.gitbutler.com

snippet:
  [Partial and shallow clone](https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/?ref=blog.gitbutler.com)


title: Derrick Stolee
href: https://stolee.dev/?ref=blog.gitbutler.com
type: markdown
snippet:
  There is also a ton more fascinating information on this from [Derrick Stolee](https://stolee.dev/?ref=blog.gitbutler.com), who did a lot of work on these projects.


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-use-the-java-script-map-and-set-objects-explained-with-co-18dcf1d24bb#9c807b39-b9c0-49de-895e-1d7f6b095ab4

snippet:
  [source](https://omnivore.app/me/how-to-use-the-java-script-map-and-set-objects-explained-with-co-18dcf1d24bb#9c807b39-b9c0-49de-895e-1d7f6b095ab4)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-use-the-java-script-map-and-set-objects-explained-with-co-18dcf1d24bb#52f87526-14bc-40fb-b821-493da97dd7e3

snippet:
  [source](https://omnivore.app/me/how-to-use-the-java-script-map-and-set-objects-explained-with-co-18dcf1d24bb#52f87526-14bc-40fb-b821-493da97dd7e3)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-use-the-java-script-map-and-set-objects-explained-with-co-18dcf1d24bb#cb2eebdd-f9f4-4a83-b298-f65c5556f842

snippet:
  [source](https://omnivore.app/me/how-to-use-the-java-script-map-and-set-objects-explained-with-co-18dcf1d24bb#cb2eebdd-f9f4-4a83-b298-f65c5556f842)


title: MDN Set documentation
type: markdown
href:
  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#set_composition

snippet:
  The following table is from [MDN Set documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global%5FObjects/Set#set%5Fcomposition):


title: here
href: https://codewithnathan.com/beginning-modern-javascript
type: markdown
snippet:
  If you enjoyed this article and want to take your JavaScript skills to the next level, I recommend you check out my new book __Beginning Modern JavaScript_ [here](https://codewithnathan.com/beginning-modern-javascript).


title: beginning-js-cover
href: https://codewithnathan.com/beginning-modern-javascript
type: markdown
snippet:
  [![beginning-js-cover](https://proxy-prod.omnivore-image-cache.app/2000x1667,s6cLBb9obr-IvLwhkHZ_9YW6u9bvhxbOp3iAu4nsV6tM/https://www.freecodecamp.org/news/content/images/2024/01/beginning-js-cover.png)](https://codewithnathan.com/beginning-modern-javascript)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-learn-the-hard-parts-of-react-and-tips-to-conquer-them-18de8db4244#e912d65e-4c82-41f1-94d4-56c151254c3e

snippet:
  [source](https://omnivore.app/me/how-to-learn-the-hard-parts-of-react-and-tips-to-conquer-them-18de8db4244#e912d65e-4c82-41f1-94d4-56c151254c3e)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-learn-the-hard-parts-of-react-and-tips-to-conquer-them-18de8db4244#9074fe2d-d95d-4fc6-af45-be052bb24de5

snippet:
  [source](https://omnivore.app/me/how-to-learn-the-hard-parts-of-react-and-tips-to-conquer-them-18de8db4244#9074fe2d-d95d-4fc6-af45-be052bb24de5)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-learn-the-hard-parts-of-react-and-tips-to-conquer-them-18de8db4244#a42adf04-e7ec-4612-a7ea-c179bfce9163

snippet:
  [source](https://omnivore.app/me/how-to-learn-the-hard-parts-of-react-and-tips-to-conquer-them-18de8db4244#a42adf04-e7ec-4612-a7ea-c179bfce9163)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-learn-the-hard-parts-of-react-and-tips-to-conquer-them-18de8db4244#7ef6781d-7b8b-496d-bd2d-2974995be502

snippet:
  [source](https://omnivore.app/me/how-to-learn-the-hard-parts-of-react-and-tips-to-conquer-them-18de8db4244#7ef6781d-7b8b-496d-bd2d-2974995be502)


title: source
type: markdown
href:
  https://omnivore.app/me/how-to-learn-the-hard-parts-of-react-and-tips-to-conquer-them-18de8db4244#eb5d0b4b-a153-4551-a3a4-522a590854b5

snippet:
  [source](https://omnivore.app/me/how-to-learn-the-hard-parts-of-react-and-tips-to-conquer-them-18de8db4244#eb5d0b4b-a153-4551-a3a4-522a590854b5)


title: Quick Recap of React Fundamentals
href: Omnivore/#what-we-ll-cover-
type: markdown
snippet:
  [Quick Recap of React Fundamentals](#what-we-ll-cover-)  
  – [Components: The Web Building Blocks](#components-the-web-building-blocks)  
  – [JSX: Where HTML Meets JavaScript](#jsx-where-html-meets-javascript)  
  – [State and Props: The Dynamic Duo](#state-and-props-the-dynamic-duo)


title: The Good, the Bad, and the Challenging Parts of React
href: Omnivore/#the-good-the-bad-and-the-challenging-parts-of-react
type: markdown
snippet:
  [The Good, the Bad, and the Challenging Parts of React](#the-good-the-bad-and-the-challenging-parts-of-react)  
  – [The Good Parts of React](#the-good-parts-of-react)  
  – [The Bad Parts of React](#the-bad-parts-of-react)  
  – [The Challenging Parts of React](#the-challenging-parts-of-react)  
   – [Key Prop Mishaps](#key-prop-mishaps)  
   – [Mutating States Directly](#mutating-states-directly)  
   – [Mysterious Bugs with Conditional Rendering](#mysterious-bugs-with-conditional-rendering)  
   – [Ignoring Dependency Arrays in React Hooks](#ignoring-dependency-arrays-in-react-hooks)  
   – [Neglecting Optional Chaining for API Data](#neglecting-optional-chaining-for-api-data)  
   – [Ignoring React Fragments for Grouping JSX Elements](#ignoring-react-fragments-for-grouping-jsx-elements)


