This commit is contained in:
Alexander Navarro 2024-10-13 17:51:40 -03:00
parent fd2cfaba66
commit c620e6b14a
18 changed files with 543 additions and 4 deletions

View file

@ -0,0 +1,64 @@
# 10 Practical Time Management Tips for When Everything Is a Priority
![rw-book-cover](https://rebelsguidetopm.com/wp-content/uploads/2016/04/GGtPM-Pin-5.png)
## Metadata
- Author: [[Elizabeth Harrin]]
- Full Title: 10 Practical Time Management Tips for When Everything Is a Priority
- Category: #articles
- URL: https://rebelsguidetopm.com/time-management-tips/
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=10%20Practical%20Time%20Management%20Tips%20for%20When%20Everything%20Is%20a%20Priority
> [!note]
> **Background:** I aim to enhance my personal organization within my projects to manage tasks more effectively and make better use of my time.
> **Top 3 Important Takeaways:**
> 🗂️ **Establish Clear Priorities:** Understand the distinction between urgent and important tasks. Use tools like the Eisenhower Matrix to identify and focus on high urgency and high importance tasks, ensuring that you also allocate time for important but less urgent tasks to avoid last-minute stress.
> 📅 **Create a Structured Schedule:** Develop a detailed weekly plan that includes your priorities, meetings, and commitments. Dedicate specific time blocks each day to work on tasks that align with your goals, helping you stay organized and productive throughout the week.
> ✉️ **Implement an Email Management Strategy:** Design a system to manage your emails effectively, reducing inbox clutter and stress. This will allow you to quickly find important messages and maintain organization, especially when dealing with multiple priorities.
> [!tldr]
> This article offers practical time management tips for increasing productivity when everything feels like a priority. The tips include scheduling your time, understanding the difference between urgent and important tasks, and knowing when you are most productive. By following these tips, you can better prioritize tasks and manage your workload effectively.
## Highlights
I am most productive and get the most out of my time when my time is planned. [View Highlight](https://read.readwise.io/read/01j98zjaq5c6j0kah92r2s5pwf))
This is how I schedule my time:
• I work out my priorities for the week.
• I look at what meetings and other commitments I have.
• I split my priorities across the week, blocking out time each day to do something that gets me closer to having achieved my goals by Friday. [View Highlight](https://read.readwise.io/read/01j98zkq45h9f9e2hw0afrc21y))
Not everything that is urgent is important.
And not everything that is important is urgent. ... Important means something that:
• has high significance
• other people believe is a good use of your time
• will help you or the organization reach your goals. ... Urgent tasks are things that have to happen now.
Tasks that are high urgency and high importance should take most of your time in the day.
However, ideally, youll also be spending time on the highly important but less urgent tasks too. Plan these in your calendar for the coming weeks so they dont become a source of panic. [View Highlight](https://read.readwise.io/read/01j98ztb77ncd7d5zw6v15m6s4))
> [!note]
> The Eisenhower Matrix of TickTick was usefull for this
Task priority can change over time [View Highlight](https://read.readwise.io/read/01j990cbt2hveke2849wjwqnst))
You can only block out time on your calendar if you know what your priorities are. Understanding what is urgent and important will help you spot priority tasks. [View Highlight](https://read.readwise.io/read/01j990h9rp0c19yamjw766kw6j))
**the answer is never: everything is a priority.**
Thats just lazy thinking. Some things will be more priority than others. [View Highlight](https://read.readwise.io/read/01j990jd7zq69xc6fgkeskrtxg))
A great time management tip for teams is to [delegate](https://rebelsguidetopm.com/how-to-delegate-tasks-with-more-confidence-and-less-stress/) to each other. [View Highlight](https://read.readwise.io/read/01j99197wtqzqvx6fbsfvbppsw))
Dont forget that “managing” also takes time. [View Highlight](https://read.readwise.io/read/01j9918rgtz371s7h6j9shv54t))
Have different To Do lists. Know what you need to achieve this year, quarter, month, week and day. [View Highlight](https://read.readwise.io/read/01j9919h30698gxszd9733vcp1))
Learn when you are at your most productive and use that to your advantage. Schedule your frogs for the time when you are sharpest. [View Highlight](https://read.readwise.io/read/01j991bs54wa52q66hp3kf12k8))
Remember to build some slack into your calendar as well. You cant work every evening and still function at full capacity during the day. Have some downtime, whatever that looks like for you! [View Highlight](https://read.readwise.io/read/01j991e4nzd98gzr6yee0yger9))
Having a strategy for dealing with email is important because when everything is a priority you have to be able to find messages and stay organized. For me, having thousands of mails in my inbox is a source of stress. [View Highlight](https://read.readwise.io/read/01j991gt8fq6bvjbw40zbpcdvp))
Integrating your schedules will help you see all the key milestones at once. ... At its simplest, make a milestone planner and use that to see which months are going to be your busy times.
Keep talking to your stakeholders and clients about their expectations, and keep communication channels open with your team as well. Managing expectations on all sides goes a long way to keeping the peace. [View Highlight](https://read.readwise.io/read/01j991pdc0apq5bn06k3w9b3hs))
Try to be flexible and adapt to whats required this week (or today). And let your positive attitude rub off on your team. [View Highlight](https://read.readwise.io/read/01j991rcc7xk5rqgw10e32f3ws))

View file

@ -52,3 +52,8 @@ Or when you feel more positive emotions—why? What can you learn from you
Finally, its important to check that youre being honest with yourself, because if youre not, none of your other answers really matter. [View Highlight](https://read.readwise.io/read/01j85ye7w6zca1hjwcaqxmp2zt))
---
New highlights added at 2024-10-13 4:11 PM
Everything in life has a tradeoff. [View Highlight](https://read.readwise.io/read/01j8j1xm6rfcw66sjf6nz1xf47))

View file

@ -0,0 +1,21 @@
# Coding and ADHD - ADHD Brains
![rw-book-cover](https://res.cloudinary.com/practicaldev/image/fetch/s--BliSrKEI--/c_imagga_scale,f_auto,fl_progressive,h_500,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ri1ahc6zfstekngl1ejg.png)
## Metadata
- Author: [[DEV Community 👩‍💻👨‍💻]]
- Full Title: Coding and ADHD - ADHD Brains
- Category: #articles
- URL: https://dev.to/abbeyperini/coding-and-adhd-adhd-brains-im1
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Coding%20and%20ADHD%20-%20ADHD%20Brains
> [!tldr]
> The author shares their experience of having ADHD and how it affects their coding abilities. They describe struggles with focus and attention but also highlight the excitement and stimulation coding provides. The piece will explore strategies for managing ADHD challenges in programming while acknowledging the potential benefits of ADHD in a development role.
## Highlights
Rather than "Attention-Deficit," it should be called something like "Attention-Regulation" or "Executive Function" / Hyperactivity Disorder. [View Highlight](https://read.readwise.io/read/01j9ynfj6cn6zz3nf53v9t6g6z))
novelty [View Highlight](https://read.readwise.io/read/01j9ynk79n34t53r0qkb6de9w1))
> [!note]
> Novelty: The quality of being new, original, or unusual, often evoking interest or excitement. In psychology and marketing, novelty is associated with the human desire for variety and stimulation, influencing behavior and preferences. Novelty can enhance experiences, making them more memorable and enjoyable, as well as motivating individuals to seek out new products, ideas, or experiences. In various contexts, such as art, technology, and consumer goods, novelty plays a key role in innovation and cultural trends.
> In the context of "Coding and ADHD - ADHD Brains," the term "novelty" refers to the appeal of new and interesting challenges that stimulate the brains of individuals with ADHD. This drive for novelty helps such individuals engage deeply with coding, as they are often drawn to the constant learning and problem-solving that comes with tackling new tasks. The pursuit of novel experiences can lead to significant achievements, but it also contributes to a tendency to start many projects without finishing them.

View file

@ -0,0 +1,20 @@
# Currying - Writing Sophisticated Functional Code
![rw-book-cover](https://i.ytimg.com/vi/Q01LEKKrTmA/maxresdefault.jpg)
## Metadata
- Author: [[Coding with Yalco]]
- Full Title: Currying - Writing Sophisticated Functional Code
- Category: #articles
- URL: https://www.youtube.com/watch?v=Q01LEKKrTmA
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Currying%20-%20Writing%20Sophisticated%20Functional%20Code
> [!tldr]
> #FunctionalProgramming #Coding #Programming
In this video, we look at one of the representative techniques of functional programming, currying. Currying is a coding method that breaks down tasks that should be performed at once into multiple stages. To explain this, we use a function that makes a sandwich as an example, where a traditional function handles the three ingredients (bread, meat, vegetables) of a sandwich all at once, but Currying divides this process into each ingredient, or argument. This allows for the execution of functions in divided stages. By doing this, one advantage is that the original process can be diversely branched into multiple stages and branches for each ingredient. This video provides a detailed code example and explanation of this. In the next video, we're going to look at monads, one of the most challenging topics in functional programming.
## Highlights
Currying is a coding method that  allows you to break down tasks that   used to be done at once into multiple steps [View Highlight](https://read.readwise.io/read/01j9rca7zb81g8vzbx7n2xj22e))
A function created with  Currying executes like this.  As you can see, it gets executed  individually as many times as the number   of arguments the original function had. [View Highlight](https://read.readwise.io/read/01j9rcc05k5d11mf16szvrs8y3))

View file

@ -0,0 +1,69 @@
# GitHub - SanderMertens/ecs-faq: Frequently asked questions about Entity Component Systems
![rw-book-cover](https://opengraph.githubassets.com/9f38bac900ccebd3e7025142dc959fe140bdc3ea93f156cb20fc5c1cf7f5b193/SanderMertens/ecs-faq)
## Metadata
- Author: [[https://github.com/SanderMertens/]]
- Full Title: GitHub - SanderMertens/ecs-faq: Frequently asked questions about Entity Component Systems
- Category: #articles
- Document Tags: [[dev]] [[dev/design-patterns]]
- URL: https://github.com/SanderMertens/ecs-faq
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=GitHub%20-%20SanderMertens/ecs-faq%3A%20Frequently%20asked%20questions%20about%20Entity%20Component%20Systems
> [!tldr]
> ECS promotes code reusability by separating data from behavior through entities, components, and systems. ECS is a design pattern that can be implemented in various ways with different tradeoffs. Reading existing ECS resources and experimenting with different approaches can help understand and implement ECS applications effectively.
## Highlights
EC frameworks, as typically found in game engines, are similar to ECS in that they allow for the creation of entities and the composition of components. However, in an EC framework, components are classes that contain both data and behavior, and behavior is executed directly on the component. [View Highlight](https://read.readwise.io/read/01j91jpa60m0gseet7h0ve558p))
users have reported that once ECS "clicked", it made it easier to write, reuse and scale code. [View Highlight](https://read.readwise.io/read/01j91jreb2rx3n0s4kjegsf23p))
Because of its small set of concepts and rules, building a functional ECS is not hard. There are many benefits to building your own, like the freedom to add new features, and only building features that you really need. [View Highlight](https://read.readwise.io/read/01j91jvvay1c66e7124rbpvff6))
Things that ECS implementations are generally good at are querying and iterating sets of entities linearly, or dynamically changing components at runtime. Things that ECS implementations are generally not good at are queries or operations that require highly specialized data structures, such as binary trees or spatial structures. [View Highlight](https://read.readwise.io/read/01j91jx0jh2wn8xrhmzvycyf1w))
The reason for this is that behavior in an ECS is matched with a set of components, vs. for example being tightly coupled with a class in OOP. [View Highlight](https://read.readwise.io/read/01j91jzyev2345b36sy6aphze1))
new systems can be introduced at any stage of development, and will automatically get matched with any existing and new entities that have the right components. [View Highlight](https://read.readwise.io/read/01j91k0jc5vdz6zfysrwvfqezc))
This promotes a design where systems are developed as single-responsibility, small units of functionality that can be easily deployed across different projects. [View Highlight](https://read.readwise.io/read/01j91k0ypypatnzt77n85sdrer))
Designing an ECS application starts with creating the components (data structures) that contain the game data. Important things to take into account are:
• How many instances of the data will exist
• How often is data accessed
• How often is the data mutated
• When does data need to be accessed/mutated
• Which data is accessed/mutated together
• What is the cardinality of the data [View Highlight](https://read.readwise.io/read/01j91k30n38vyb492he5vej8b2))
It is good practice to design components and systems to have a single responsibility. This makes them easier to reuse across projects, and makes it easier to refactor code. [View Highlight](https://read.readwise.io/read/01j91k34bzgxsycjdsfxfj4jm1))
An archetype ECS stores entities in tables, where components are columns and entities are rows. Archetype implementations are fast to query and iterate. [View Highlight](https://read.readwise.io/read/01j91k41g8wnx5ahhg34x2jkn5))
A sparse set based ECS stores each component in its own sparse set which is has the entity id as key. Sparse set implementations allow for fast add/remove operations. [View Highlight](https://read.readwise.io/read/01j91k4e2nj4wk4x8qm0rcw1ea))
A bitset-based ECS stores components in arrays where the entity id is used as index, and uses a bitset to indicate if an entity has a specific component. [View Highlight](https://read.readwise.io/read/01j91k5v49vx19nff799nzy3ty))
A reactive ECS uses signals resulting from entity mutations to keep track of which entities match systems/queries. [View Highlight](https://read.readwise.io/read/01j91k649x535px14rzf4r5a85))
ECS ("Entity Component System") describes a design approach which promotes code reusability by separating data from behavior. [View Highlight](https://read.readwise.io/read/01j91htdgbpsyzgr1b0ddfa0ac))
ECS has the following characteristics:
• It has entities, which are unique identifiers
• It has components, which are plain datatypes without behavior
• Entities can contain zero or more components
• Entities can change components dynamically
• It has systems, which are functions matched with entities that have a certain set of components. [View Highlight](https://read.readwise.io/read/01j91hvjdef0xbq6p44wgq4jrj))
A framework that lets you add "things" to entities, with a way to query for entities that have some things but not other things, is generally considered to be an ECS. [View Highlight](https://read.readwise.io/read/01j91hx4zdbfka8v3x211xs198))
• ECS can typically support larger numbers of game objects
• ECS code tends to be more reusable
• ECS code is easier to extend with new features
• ECS allows for a more dynamic coding style [View Highlight](https://read.readwise.io/read/01j91hxszmzjc3mtrcwrg3m53x))
While ECS and OOP overlap, there are differences that impact how applications are designed:
• Inheritance is a 1st class citizen in OOP, composition is a 1st class citizen in ECS.
• OOP encourages encapsulation of data, ECS encourages exposed POD (plain old data) objects.
• OOP colocates data with behavior, ECS separates data from behavior.
• OOP Object instances are of a single static type, ECS entities can have multiple, dynamically changing components [View Highlight](https://read.readwise.io/read/01j91hzkqsfw0qdfg2e282zp3v))

View file

@ -0,0 +1,33 @@
# How to Build New Habits by Taking Advantage of Old Ones
![rw-book-cover](https://jamesclear.com/wp-content/uploads/2014/07/Habit-stacking-01-1086x1200.png)
## Metadata
- Author: [[James Clear]]
- Full Title: How to Build New Habits by Taking Advantage of Old Ones
- Category: #articles
- Document Tags: [[productivity]]
- URL: https://jamesclear.com/habit-stacking
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=How%20to%20Build%20New%20Habits%20by%20Taking%20Advantage%20of%20Old%20Ones
> [!tldr]
> James Clear explains how to build new habits by linking them to existing ones, a technique called habit stacking. By pairing a new behavior with a current daily habit, you make it easier to remember and stick to the new action. This method utilizes the brain's natural ability to strengthen connections between frequently used neurons, enhancing skill development over time.
## Highlights
One of the best ways to build a new habit is to identify a current habit you already do each day and then stack your new behavior on top. This is called habit stacking. [View Highlight](https://read.readwise.io/read/01j9ptg4p5nm7em2n2azb1e7vg))
The habit stacking formula is:
> After/Before [CURRENT HABIT], I will [NEW HABIT]. [View Highlight](https://read.readwise.io/read/01j9pth51kbn08v4p8q8pb6s8g))
![](https://jamesclear.com/wp-content/uploads/2014/07/Habit-stacking-01-1086x1200.png)
Habit stacking increases the likelihood that youll stick with a habit by stacking your new behavior on top of an old one. This process can be repeated to chain numerous habits together, each one acting as the cue for the next. [View Highlight](https://read.readwise.io/read/01j9ptmf01qgk91cvkdcd7kyqs))
No matter how you use this strategy, the secret to creating a successful habit stack is selecting the right cue to kick things off. [View Highlight](https://read.readwise.io/read/01j9ptqdz0614xq8g6apgh3kf2))
One way to find the right trigger for your habit stack is by brainstorming a list of your current habits. [View Highlight](https://read.readwise.io/read/01j9pts3gjkah6w1dm32xzdnnz))
, you can create a list with two columns. In the first column, write down the habits you do each day without fail. ... In the second column, write down all of the things that happen to you each day without fail. ... Armed with these two lists, you can begin searching for the best place to layer your new habit into your lifestyle.
Habit stacking works best when the cue is highly specific and immediately actionable. Many people select cues that are too vague. [View Highlight](https://read.readwise.io/read/01j9ptvtp0hv80yjc2cvt41esx))
Habits like “read more” or “eat better” are worthy causes but far too vague. These goals do not provide instruction on how and when to act. Be specific and clear: After I close the door. After I brush my teeth. After I sit down at the table. [View Highlight](https://read.readwise.io/read/01j9pty5517662hdae5jqcmpwj))

View file

@ -0,0 +1,25 @@
# I Like Makefiles
![rw-book-cover](https://news.ycombinator.com/favicon.ico)
## Metadata
- Author: [[thunderbong]]
- Full Title: I Like Makefiles
- Category: #articles
- URL: https://switowski.com/blog/i-like-makefiles/
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=I%20Like%20Makefiles
> [!tldr]
> The author, Sebastian Witowski, enjoys using makefiles because they provide a consistent way to automate project setups and commands. He finds makefiles simple to write and effective for managing various projects, regardless of the technologies used. While he appreciates other build tools, he prefers to use makefiles for their familiarity and ease of use.
## Highlights
they often follow an unwritten convention of implementing the same set of commands to get you up and running. [View Highlight](https://read.readwise.io/read/01j8tjgaevhxxyf0b2nf9gnbkd))
Even if I use tools like Docker or gulp in my project, I still use makefiles to orchestrate those tools. [View Highlight](https://read.readwise.io/read/01j8tjjdw6w421n8jk5vvj6cs5))
Some common tasks that most of my personal projects[[1]](https://switowski.com/blog/i-like-makefiles/#fn1) contain include:
`dev` to start the development server
`build` to build the project (if a build step is necessary)
`deploy` to deploy/publish the project [View Highlight](https://read.readwise.io/read/01j8tjknbwkzycf3ft7bka78ym))
Make is simple and doesn't require as many additional dependencies as some other build tools. This can be useful if you need a tool that will work in a restricted environment where installing additional packages is difficult or impossible for security reasons. [View Highlight](https://read.readwise.io/read/01j8tjpnwyppr4k1jf6ctx5js0))

View file

@ -0,0 +1,23 @@
# Implementing an Actor Model in Golang
![rw-book-cover](https://miro.medium.com/v2/da:true/resize:fit:1200/0*smZOmMQjuS_5l1Af)
## Metadata
- Author: [[Gaurav Sharma]]
- Full Title: Implementing an Actor Model in Golang
- Category: #articles
- Document Tags: [[dev]] [[dev/design-patterns]] [[dev/go]]
- URL: https://betterprogramming.pub/implementing-the-actor-model-in-golang-3579c2227b5e
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Implementing%20an%20Actor%20Model%20in%20Golang
> [!tldr]
> The article explains how to implement an actor model in Golang to handle concurrent tasks efficiently. It describes the roles of actors, task assigners, and the actor system, highlighting their interactions and task processing. The author also shares insights from a simulated web server benchmark that demonstrates how the system adapts to varying task latencies.
## Highlights
The actor model is one such programming construct that models a large number of independent jobs, being processed in any order with no need for a lock synchronisation. [View Highlight](https://read.readwise.io/read/01j96c65ze39pyrcsvp8fpg6xp))
An actor has a task queue and goroutine that listens to the task queue and execute task. [View Highlight](https://read.readwise.io/read/01j96c7xjz9y9snbaawa8qa6hn))
The task is executed in an actor. It is an implementation of a given interface with *Execute method*. Anything which can be executed by making Execute call. Task is a business implementation of the work we need to do. [View Highlight](https://read.readwise.io/read/01j96c958cxjr5855jy9qcshx1))
![](https://miro.medium.com/v2/resize:fit:700/1*YGV-7SgbyBUKIUnruMI5Sg.png) ... `Task`s are submitted to `ActorSystem` using the `SubmitTask` method. A `taskAssigner` assigns each of the task to one of the `Actor`s. Each `Actor` also has a small queue, in which it buffers the tasks and executes one by one.

View file

@ -0,0 +1,23 @@
# Mi Paso a Paso Para Desarrollar Proyectos De Software
![rw-book-cover](https://i.ytimg.com/vi/uCq7XP9CNag/maxresdefault.jpg)
## Metadata
- Author: [[Fazt]]
- Full Title: Mi Paso a Paso Para Desarrollar Proyectos De Software
- Category: #articles
- URL: https://www.youtube.com/watch?v=uCq7XP9CNag
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Mi%20Paso%20a%20Paso%20Para%20Desarrollar%20Proyectos%20De%20Software
> [!tldr]
> El video de Fazt explica el proceso de desarrollo de proyectos de software como desarrollador independiente. Se enfoca en las herramientas y técnicas que utiliza para organizar su trabajo y comunicarse con los clientes. Además, menciona la importancia de recibir feedback y hacer ajustes durante el desarrollo del proyecto.
## Highlights
yo utilizo una herramienta bastante sencilla llamada d diagram.io esta te permite poder diseñar dentro de la web una especie de tablas a medida de que escribes un lenguaje y esas te permiten crear relaciones y esto incluso luego se pueden convertir en sq huele [View Highlight](https://read.readwise.io/read/01j8nppp54gq5czx8dzghw9w7b))
> [!note]
> db diagram.io
la plataforma supabase también ha creado una web llamada postgress neww en donde utilizando un pront puedes ir generando un diagrama Rd e incluso te da el código de postgress en caso utilicen
esta base de datos [View Highlight](https://read.readwise.io/read/01j8nps2a1bz3xgkamzvsd60m7))
> [!note]
> postgres.new

View file

@ -0,0 +1,40 @@
# Monad Is Actually Easy.
![rw-book-cover](https://i.ytimg.com/vi/8hYUthfmSRM/maxresdefault.jpg)
## Metadata
- Author: [[Coding with Yalco]]
- Full Title: Monad Is Actually Easy.
- Category: #articles
- Document Tags: [[dev]] [[dev/design-patterns]]
- URL: https://www.youtube.com/watch?v=8hYUthfmSRM
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Monad%20Is%20Actually%20Easy.
> [!tldr]
> #Functional #Programming #Coding
This video explains one of the concepts of functional programming, Monad. A monad can be understood as a box that creates a new box filled with values by applying a function to a value. The basic functions of a monad include Unit, Map, and FlatMap. The unit is a function that wraps a given value in a monad, Map is a function that sends out the result of the executed function back into the box, and FlatMap is a function that processes values already contained in the box. Thanks to these functions, monads make it convenient to process values in programming and help simplify difficult problems. Therefore, understanding and being able to use it is a great help in improving programming skills. Through this video, I hope you have helped understand the basic concepts and operating principles of Monad, and understand Monad through a simple example.
## Highlights
'Maybe' is like Schrödinger's box.  In other words, it is used to hold a value that  may or may not exist, just like the types called   Option, Optional, Nullable in other languages. Such monads allow for the safe and convenient  
handling of operations when a  valid value has not been returned [View Highlight](https://read.readwise.io/read/01j9xkp05a5hvjysk36jj8qt2x)) [[resources]]
> [!note]
> This example can be usefull to replicate the behavior of Option<T> of Rust in other languages
There are these three essentials in  a monad. Unit, map, and flat map. [View Highlight](https://read.readwise.io/read/01j9xks9yx76p1gnsrxh1kz6qn))
In other words, this 'Maybe' monad can make   a box with a value with 'just',  or an empty box with 'nothing' [View Highlight](https://read.readwise.io/read/01j9xktwhss9pwc2y7yt09t6x2))
the 'Functor' function,  commonly referred to as the 'map' method.  It carries out the given function and  then puts the result back into a box. [View Highlight](https://read.readwise.io/read/01j9xkw0a68fr05fytfenqczj3))
the flat map,   also known as 'bind'. It's the same as the above map,   but you can see that it doesn't wrap  the value in a box when sending it out. [View Highlight](https://read.readwise.io/read/01j9xkwy1tgn917kczbarkdxcr))
we can summarize monads like this:  
They are magic boxes that have the  ability to hold a given value and   later process the subsequent functions given  by map or flat map, returning other boxes. [View Highlight](https://read.readwise.io/read/01j9xk4qrbj6bft0t9vwx8pgk0))
the Left Unit Law. When there's a certain value and a function,  the rule is that the result of wrapping this  value in a monad and applying a function,  should be the same as simply  giving that value to the function. [View Highlight](https://read.readwise.io/read/01j9xk6jbj6rjagtgqvfzp4kjs))
the Right  Unit Law which stipulates that,  the result of applying a function that  simply returns the same value to the monad  should be identical to the original monad. [View Highlight](https://read.readwise.io/read/01j9xk7rpfgzvd8ba29cx9qj44))
he law of associativity. 
When applying two functions  'f' and 'g' to a certain monad,  Applying 'g' to the result of first applying 'f', Should yield the same result as applying a single   function that is a combination  of 'f' and 'g' sequentially. [View Highlight](https://read.readwise.io/read/01j9xk96vz0xb9wm1vkmke4ser))

View file

@ -0,0 +1,33 @@
# Psychological Safety Is Critical for High-Performing Teams
![rw-book-cover](https://cdn.stackoverflow.co/images/jo7n4k8s/production/7aebe88c0b5d91d2b212b405326d45070ea6f928-2400x1260.jpg?w=1200&fm=png&auto=format)
## Metadata
- Author: [[Stack Overflow Blog]]
- Full Title: Psychological Safety Is Critical for High-Performing Teams
- Category: #articles
- Document Tags: [[mental-health]] [[productivity]] [[work]]
- URL: https://stackoverflow.blog/2022/01/27/psychological-safety-is-critical-for-high-performing-teams/
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Psychological%20Safety%20Is%20Critical%20for%20High-Performing%20Teams
> [!tldr]
> Psychological safety is crucial for high-performing teams. It refers to creating a work environment where employees feel safe to speak up, share ideas, and discuss failures without fear of punishment or humiliation. When teams feel psychologically safe, they are more willing to take risks, collaborate, and put in discretionary effort. Evaluating the level of psychological safety in an organization can be done by assessing factors such as tolerance for mistakes, micro-moments of learning, space for reflection and review, encouragement of risk-taking, and diversity of thought. Creating a psychologically safe workplace requires ongoing effort and a combination of factors including company values, leadership qualities, and supportive technology.
## Highlights
According to [Amy Edmondson](https://www.hbs.edu/faculty/Pages/profile.aspx?facId=6451), “psychological safety in the workplace is the belief that the environment is safe for interpersonal risk-taking. It is a belief that one will not be punished or humiliated for speaking up with ideas, questions, concerns, or mistakes.” [View Highlight](https://read.readwise.io/read/01j93vhyxhk5j2b15nwatff18r))
When employees feel psychologically safe, theyre willing to take more risks, share ideas, and speak their truth. There is an unspoken agreement that employees will not feel punished or embarrassed when speaking up, whether its exposing ones ignorance by asking questions or offering a new solution or idea to a problem. Trust is created through interpersonal connections and reinforced through an open and transparent environment. [View Highlight](https://read.readwise.io/read/01j93vk913rzjpbgwkzkfsv4pb))
By having a psychologically safe environment, employees perceive risk as a good thing, and there is an understanding that employees wont be seen as ignorant, incompetent, or invalid. [View Highlight](https://read.readwise.io/read/01j93vpnspqs7wcbqp8rv2q64h))
Risk-taking and learning from mistakes so the team doesnt repeat them again are behaviors of high-performing teams. [View Highlight](https://read.readwise.io/read/01j93vp6hf2wnjgzjecqrqbd1t))
There is a tolerance for mistakes [View Highlight](https://read.readwise.io/read/01j93vthzdva8gc9yhaajf5bv5))
Micro-moments of learning occur regularly [View Highlight](https://read.readwise.io/read/01j93vtre343brwez6m6rft2d9))
Space is created for reflection and review [View Highlight](https://read.readwise.io/read/01j93vx25zbxmr5xf4rw12mhyh))
Risk-taking is encouraged [View Highlight](https://read.readwise.io/read/01j93vybefn6z629f6q03y7f4z))
There is a diversity of thought [View Highlight](https://read.readwise.io/read/01j93wdk43srd38dar2f08afwb))

View file

@ -0,0 +1,39 @@
# The Actor Model in 10 Minutes
![rw-book-cover](https://www.brianstorti.com/assets/images/profile-small.png)
## Metadata
- Author: [[brianstorti.com]]
- Full Title: The Actor Model in 10 Minutes
- Category: #articles
- URL: https://www.brianstorti.com/the-actor-model/
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Actor%20Model%20in%2010%20Minutes
> [!tldr]
> The actor model is a conceptual model for concurrent computation that uses actors as the primitive unit of computation. Actors receive messages and perform computation based on them, similar to objects in object-oriented languages. Actors are isolated from each other and maintain a private state. Messages are sent asynchronously and stored in an actor's mailbox until processed. Actors can create more actors, send messages to other actors, and designate how to handle the next message. The actor model also allows for fault tolerance and distribution across multiple machines.
## Highlights
An actor is the primitive unit of computation. Its the *thing* that receives a message and does some kind of computation based on it. [View Highlight](https://read.readwise.io/read/01j918hcacc07w4axvgt59x8zq))
actors are completely isolated from each other and they will never share memory. Its also worth noting that an actor can maintain a private state that can never be changed directly by another actor. [View Highlight](https://read.readwise.io/read/01j918j9h6jqm35fdy1vqcfpvd))
In the actor model everything is an actor and they need to have addresses so one actor can send a message to another. [View Highlight](https://read.readwise.io/read/01j918ke4asb17p1z7nt58d46v))
multiple actors can run at the same time, an actor will process a given message sequentially. [View Highlight](https://read.readwise.io/read/01j918nf2daeb5my4gfz7vq4vy))
Messages are sent asynchronously to an actor, that needs to store them somewhere while its processing another message. The mailbox is the place where these messages are stored. [View Highlight](https://read.readwise.io/read/01j918p5c4xp37ry1q48rk46p7))
![](https://www.brianstorti.com/assets/images/actors.png) [View Highlight](https://read.readwise.io/read/01j918m33wqavsptrvx0tt7pen))
When an actor receives a message, it can do one of these 3 things:
• Create more actors
• Send messages to other actors
• Designate what to do with the next message [View Highlight](https://read.readwise.io/read/01j918qs9pm600m7ywrjcwjwmb))
“Designating what to do with the next message” basically means defining how this state will look like for the next message it receives. Or, more clearly, its how actors mutate state. [View Highlight](https://read.readwise.io/read/01j918r1sd8f8ajq9n0b44atyr))
What `Erlang` does is simply letting it crash, but make this critical code be supervised by someone whose only responsibility is to know what to do when this crash happens (like resetting this unit of code to a stable state), and what makes it all possible is the actor model. [View Highlight](https://read.readwise.io/read/01j918v4a749ra9wqtaag6xrt4))
This makes it possible to create systems that “self heal”, meaning that if an actor gets to an exceptional state and crashes, by whatever reason, a supervisor can do something about it to try to put it in a consistent state again [View Highlight](https://read.readwise.io/read/01j918xtyxjak1pwdav830pd8a))
Another interesting aspect of the actor model is that it doesnt matter if the actor that Im sending a message to is running locally or in another node. [View Highlight](https://read.readwise.io/read/01j9192dk4wf5rj9ccpzhpfb29))

View file

@ -0,0 +1,34 @@
# The Art of Finishing
![rw-book-cover](https://www.bytedrum.com/assets/art-of-finishing/og.png)
## Metadata
- Author: [[emmorts]]
- Full Title: The Art of Finishing
- Category: #articles
- URL: https://www.bytedrum.com/posts/art-of-finishing/
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=The%20Art%20of%20Finishing
> [!tldr]
> The author discusses the challenge of finishing projects, highlighting the temptation to start new ones instead. They outline strategies to overcome procrastination, such as defining what "done" means and setting deadlines. Ultimately, the goal is to build the habit of completing projects to experience the satisfaction and growth that comes from finishing.
## Highlights
Its the Hydra Project Effect: no matter how much progress I make, new challenges always seem to sprout in their place. [View Highlight](https://read.readwise.io/read/01j9rmxn4ng2c8zys41hfkqdq2))
When a project is ongoing, it can be anything. Its Schrödingers[1](https://www.bytedrum.com/posts/art-of-finishing/#user-content-fn-schrodinger) project—simultaneously perfect and flawed until you actually finish it and put it out into the world. [View Highlight](https://read.readwise.io/read/01j9rn0cnw6xcrfv3236ekfy1k))
Before diving into a project, Ill clearly define what “finished” looks like. What are the core features that constitute a complete project? Ill write them down and resist the urge to expand this list as I go. [View Highlight](https://read.readwise.io/read/01j9tz2kvb3g5ytpbdkkjd88sy))
**Embrace MVP**: Instead of aiming for perfection, Ill aim for “good enough.” Ill get a basic version working and out into the world. I can always iterate and improve later. [View Highlight](https://read.readwise.io/read/01j9tz46f5mr2wf3d6nzn7hgq0))
**-Box My Projects**: Ill give myself a deadline. It doesnt have to be short, but it should be finite. Having an end date creates urgency and helps me prevent endless feature creep. [View Highlight](https://read.readwise.io/read/01j9tz4wxc2jhwk7npbhp9km0z))
Ill build my “finishing muscle” by completing small projects or tasks regularly. I recognize that the skill of finishing is like any other—it improves with practice. This could be as simple as finishing a blog post or completing a small coding challenge each week. [View Highlight](https://read.readwise.io/read/01j9tz6d7dmmmnhpmcq5w97hgz))
When new features or project ideas pop up during implementation, Ill jot them down for future consideration instead of immediately acting on them. This helps maintain focus on the current project while still capturing potentially valuable ideas. [View Highlight](https://read.readwise.io/read/01j9tz748wp0dznk73afv1chm7))
Ill celebrate when I complete a project, no matter how small. This positive reinforcement can help shift my mindset towards completion. [View Highlight](https://read.readwise.io/read/01j9tz8xdbyvk47smjy3nkghqs))
External accountability adds motivation and support to the often solitary journey of personal projects.[3](https://www.bytedrum.com/posts/art-of-finishing/#user-content-fn-accountability-study) [View Highlight](https://read.readwise.io/read/01j9tza1jjcf360gr4z6gaka63))
This phenomenon is closely related to [Parkinsons Law](https://en.wikipedia.org/wiki/Parkinson%27s_law#First_meaning), which states that “work expands so as to fill the time available for its completion.” In personal projects, the available time is often infinite, leading to endless expansion. [](https://www.bytedrum.com/posts/art-of-finishing/#user-content-fnref-parkinson-law) [View Highlight](https://read.readwise.io/read/01j9tzeefxcvyb8yx4499ndgev)) [[quotes]]

View file

@ -30,3 +30,24 @@ And so the subclass explosion is avoided! Logger objects and adapter objects can
The Bridge Pattern splits a classs behavior between an outer “abstraction” object that the caller sees and an “implementation” object thats 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))
---
New highlights added at 2024-10-13 4:11 PM
Instead of file output being native to the `Logger` but non-file output requiring an additional class, a functioning logger is now always built by composing an abstraction with an implementation. [View Highlight](https://read.readwise.io/read/01j8mcakzs1dpqmst4sgsxby1k))
The reason we cannot stack two filters is that theres an asymmetry between the interface they offer and the interface they wrap: they offer a `log()` method but call their handlers `emit()` method. Wrapping one filter in another would result in an `AttributeError` when the outer filter tried to call the inner filters `emit()`.
If we instead pivot our filters and handlers to offering the same interface, so that they all alike offer a `log()` method, then we have arrived at the Decorator Pattern [View Highlight](https://read.readwise.io/read/01j8r6kf6c1dp9y5sbaxss465r))
Python logging module implements its own Composition Over Inheritance pattern.
1. The `Logger` class that callers interact with doesnt itself implement either filtering or output. Instead, it maintains a list of filters and a list of handlers.
2. For each log message, the logger calls each of its filters. The message is discarded if any filter rejects it.
3. For each log message thats accepted by all the filters, the logger loops over its output handlers and asks every one of them to `emit()` the message. [View Highlight](https://read.readwise.io/read/01j8r76se8wen2j1m7g91bgp89))
a loggers messages might deserve both multiple filters *and* multiple outputs — to decouple filter classes and handler classes entirely [View Highlight](https://read.readwise.io/read/01j8r77jrx6spm326k65g9w54d))
design principles like Composition Over Inheritance are, in the end, more important than individual patterns like the Adapter or Decorator. Always follow the principle. But dont always feel constrained to choose a pattern from an official list. [View Highlight](https://read.readwise.io/read/01j8sgr5es60teb6y127ycdjnw))
Sometimes, yes, you will find an existing Design Pattern thats a perfect fit for your problem — but if not, your design might be stronger if you move beyond them. [View Highlight](https://read.readwise.io/read/01j8sgsc3731bd5qq2fxm6ww5e))
I suggest that the apparent simplicity of the `if` statement forest is, from the point of view of software design, largely an illusion. [View Highlight](https://read.readwise.io/read/01j8sh7a9e0mf63x6r2fqpemh5))

View file

@ -0,0 +1,49 @@
# Time Blocking: The Ultimate Guide
![rw-book-cover](https://blog.superhuman.com/content/images/size/w1200/2022/03/00_Hero---Everything-you-need-to-know-about-calendar-blocking.jpg)
## Metadata
- Author: [[Jenna Scaglione]]
- Full Title: Time Blocking: The Ultimate Guide
- Category: #articles
- Document Tags: [[productivity]]
- URL: https://blog.superhuman.com/time-blocking/
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Time%20Blocking%3A%20The%20Ultimate%20Guide
> [!note]
> **Background:** How can I effectively utilize calendar blocking to enhance my productivity and manage my tasks more efficiently?
> Here are the top three most important takeaways or to-dos that stood out to you regarding your intent:
> 🗓️ **Define Theme Days:** Consider assigning specific themes to each day of the week, such as dedicating Wednesdays to meetings and Thursdays to creative tasks. This can help streamline your focus and make your week more structured.
> ⏳ **Schedule Breaks and Reactive Time:** Incorporate 15-30 minute breaks throughout your day to recharge, and allow for 1-2 hours of reactive time each week to accommodate unexpected tasks. This will help maintain your energy and flexibility in your schedule.
> ✅ **Prioritize and Map Out Tasks:** Before scheduling, categorize your tasks into meaningful work, "me" time, high priority, and low priority. Then, start mapping out your week by assigning specific blocks of time for each task, ensuring a balanced and focused approach to your workload.
> [!tldr]
> Time blocking, also known as calendar blocking, is a method that can help individuals accomplish important tasks, feel more in control of their day, and dedicate time to activities that enrich their lives. By designating blocks of time in their calendar for specific tasks, individuals can avoid distractions and stay focused. The process involves creating weekly and daily goals, prioritizing tasks, and assigning calendar blocks for each task. Additional tips include scheduling reactive time, breaks, and tasks with productivity in mind. It's important to remain flexible and experiment with different strategies to find what works best for each individual.
## Highlights
Committing to a daily to-do list is a significant accomplishment. It provides structure and direction for personal or workday time management, and helps us avoid randomly completing tasks. It can also feel liberating to transfer your to-do items from your head to paper or an app. [View Highlight](https://read.readwise.io/read/01j9rcxb6bdxq1m7ykh6573qwg))
Calendar blocking involves designating blocks of time during your day to essential tasks and scheduling them into your calendar. By assigning tasks to time blocks, you can easily avoid distractions and stay more focused. [View Highlight](https://read.readwise.io/read/01j9rcz2wktsfweqh3kcdf0t43))
Create weekly and daily tasks/goals
What are your goals for the week ahead? What would you like to accomplish? [View Highlight](https://read.readwise.io/read/01j9rh1f2e92jbv0s6j3tb15y9))
Prioritize your tasks
Next, divide your tasks into four categories: (1) meaningful work, (2) "me" time, (3) high priority, and (4) low priority. [View Highlight](https://read.readwise.io/read/01j9rh28qw4faekc503axpzx93))
Define your calendar blocks ... Start mapping out your week and assigning calendar blocks of time for each task you wrote down.
Scheduling in a little reactive time (around 1-2 hours a week depending on your profession) will give you some wiggle room in your schedule should unexpected situations arise. [View Highlight](https://read.readwise.io/read/01j9rhb4qmt7yh3ph64xy6yp2n))
Schedule 15-30 minute breaks throughout the day to recharge, use the bathroom, drink water, etc. [View Highlight](https://read.readwise.io/read/01j9rhjxrm3f4dyxxch1xqt3pw))
Schedule tasks with productivity in mind [View Highlight](https://read.readwise.io/read/01j9rhsjknppx61zz2tbsnw9f3))
Don't schedule more than 90 minutes for each task — the science says so! ... our body rhythms play out in 90 minutes of activity, followed by 20 minutes of rest.
**Are you trying to accomplish more than what is humanly possible in one week?** Instead of cramming tasks or removing "me" time, consider what you can push off until next week. [View Highlight](https://read.readwise.io/read/01j9rj2nffa0g1b7jgb8x22kff))
Are those priority items really a priority for this week? ... When we're stressed, we can sometimes see tasks as more urgent than they really are.
**Try defining theme days**
Maybe Wednesdays will be meeting days, and Thursdays will be dedicated to creative endeavors. [View Highlight](https://read.readwise.io/read/01j9rj4rasqpqhp893dqddng04))

View file

@ -0,0 +1,23 @@
# Use a Work Journal to Recover Focus Faster and Clarify Your Thoughts
![rw-book-cover](https://news.ycombinator.com/favicon.ico)
## Metadata
- Author: [[Charles Féval]]
- Full Title: Use a Work Journal to Recover Focus Faster and Clarify Your Thoughts
- Category: #articles
- Document Tags: [[journaling]] [[notetaking]] [[productivity]]
- URL: https://fev.al/posts/work-journal/
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Use%20a%20Work%20Journal%20to%20Recover%20Focus%20Faster%20and%20Clarify%20Your%20Thoughts
> [!tldr]
> The author shares the benefits of using a work journal to improve focus and clarify thoughts while dealing with interruptions and distractions. By writing down tasks, thoughts, and plans, the author found it easier to recover focus and continue work more efficiently. Keeping track of progress and ideas in a journal helped the author stay organized and regain momentum when switching between tasks.
## Highlights
![](https://fev.al/img/2024/focus.png) [View Highlight](https://read.readwise.io/read/01j93tyz3xadwbjh1jf1y96phr))
I started listing all the commands I was running, and their results. Writing down my train of thoughts, the things I was doing and what I wanted to do next. And I have been doing that for the past 3-4 months. I feel like I invented something new. It helps me think more clearly, and restore the context so, so much faster when I switch between things. [View Highlight](https://read.readwise.io/read/01j93v4f4yq4ycdpcy2sysn9mg))
Write notes of what youre doing and what youre thinking. When you drop the pen and get back at it, read the last bit. Thats it. [View Highlight](https://read.readwise.io/read/01j93v5t0hfpz3knh2425ne5ep)) [[productivity]] [[notetaking]]
After all, Im writing pages of text, of which I will never read more than a fraction. But thats not the point. The point is structure, and the point is caching. [View Highlight](https://read.readwise.io/read/01j93v72kryd88jmrpdj4mqxce)) [[notetaking]] [[productivity]]

View file

@ -0,0 +1,16 @@
# Why Gumroad Didn't Choose htmx
![rw-book-cover](https://htmx.org/img/gumroad-red.jpeg)
## Metadata
- Author: [[Sahil Lavingia]]
- Full Title: Why Gumroad Didn't Choose htmx
- Category: #articles
- URL: https://htmx.org/essays/why-gumroad-didnt-choose-htmx/
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Why%20Gumroad%20Didn%27t%20Choose%20htmx
> [!tldr]
> Gumroad initially considered using htmx for their new project, Helper, but found it didn't meet their needs as they grew. They switched to React and Next.js, which provided a better user experience and easier development. This experience highlighted the importance of choosing technologies that align with project complexity and long-term goals.
## Highlights
“HTMX is (officially) a meme to make fun of how overly complicated the JS landscape has gotten - much like tailwind is just a different syntax for inline CSS, HTMX is a different syntax for inline JS.” [View Highlight](https://read.readwise.io/read/01j9k9tx30e5kw6zm07drhw8gv))