21 Matching Annotations
  1. Mar 2024
    1. Notice how you know where you are in the book by the distribution of weight in each hand, and the thickness of the page stacks between your fingers. Turn a page, and notice how you would know if you grabbed two pages together, by how they would slip apart when you rub them against each other.

      Go ahead and pick up a book. Open it up to some page. Notice how you know how much water is left, by how the weight shifts in response to you tipping it.


      Victor, B. (2011). A brief rant on the future of interaction design. Tomado de https://worrydream.com/ABriefRantOnTheFutureOfInteractionDesign/

  2. Jan 2024
    1. Instance methods Instances of Models are documents. Documents have many of their own built-in instance methods. We may also define our own custom document instance methods. // define a schema const animalSchema = new Schema({ name: String, type: String }, { // Assign a function to the "methods" object of our animalSchema through schema options. // By following this approach, there is no need to create a separate TS type to define the type of the instance functions. methods: { findSimilarTypes(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); } } }); // Or, assign a function to the "methods" object of our animalSchema animalSchema.methods.findSimilarTypes = function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); }; Now all of our animal instances have a findSimilarTypes method available to them. const Animal = mongoose.model('Animal', animalSchema); const dog = new Animal({ type: 'dog' }); dog.findSimilarTypes((err, dogs) => { console.log(dogs); // woof }); Overwriting a default mongoose document method may lead to unpredictable results. See this for more details. The example above uses the Schema.methods object directly to save an instance method. You can also use the Schema.method() helper as described here. Do not declare methods using ES6 arrow functions (=>). Arrow functions explicitly prevent binding this, so your method will not have access to the document and the above examples will not work.

      Certainly! Let's break down the provided code snippets:

      1. What is it and why is it used?

      In Mongoose, a schema is a blueprint for defining the structure of documents within a collection. When you define a schema, you can also attach methods to it. These methods become instance methods, meaning they are available on the individual documents (instances) created from that schema.

      Instance methods are useful for encapsulating functionality related to a specific document or model instance. They allow you to define custom behavior that can be executed on a specific document. In the given example, the findSimilarTypes method is added to instances of the Animal model, making it easy to find other animals of the same type.

      2. Syntax:

      Using methods object directly in the schema options:

      javascript const animalSchema = new Schema( { name: String, type: String }, { methods: { findSimilarTypes(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); } } } );

      Using methods object directly in the schema:

      javascript animalSchema.methods.findSimilarTypes = function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); };

      Using Schema.method() helper:

      javascript animalSchema.method('findSimilarTypes', function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); });

      3. Explanation in Simple Words with Examples:

      Why it's Used:

      Imagine you have a collection of animals in your database, and you want to find other animals of the same type. Instead of writing the same logic repeatedly, you can define a method that can be called on each animal instance to find similar types. This helps in keeping your code DRY (Don't Repeat Yourself) and makes it easier to maintain.


      ```javascript const mongoose = require('mongoose'); const { Schema } = mongoose;

      // Define a schema with a custom instance method const animalSchema = new Schema({ name: String, type: String });

      // Add a custom instance method to find similar types animalSchema.methods.findSimilarTypes = function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); };

      // Create the Animal model using the schema const Animal = mongoose.model('Animal', animalSchema);

      // Create an instance of Animal const dog = new Animal({ type: 'dog', name: 'Buddy' });

      // Use the custom method to find similar types dog.findSimilarTypes((err, similarAnimals) => { console.log(similarAnimals); }); ```

      In this example, findSimilarTypes is a custom instance method added to the Animal schema. When you create an instance of the Animal model (e.g., a dog), you can then call findSimilarTypes on that instance to find other animals with the same type. The method uses the this.type property, which refers to the type of the current animal instance. This allows you to easily reuse the logic for finding similar types across different instances of the Animal model.

      Certainly! Let's go through each part and explain it in simple terms: ### 1. `this` in Mongoose: - **What is `this`?** In JavaScript, `this` refers to the current context or object. In Mongoose, particularly within methods and middleware functions, `this` represents the instance (document) the function is currently operating on. - **Why is it used?** `this` is used to access and modify the properties of the current document. For example, in a Mongoose method, `this` allows you to refer to the fields of the specific document the method is called on. ### 2. Example: Let's use the `userSchema.pre("save", ...)`, which is a Mongoose middleware, as an example: ```javascript userSchema.pre("save", async function (next) { if (!this.isModified("password")) { next(); } else { this.password = await bcrypt.hash(this.password, 10); next(); } }); ``` - **Explanation in Simple Words:** - Imagine you have a system where users can sign up and set their password. - Before saving a new user to the database, you want to ensure that the password is securely encrypted (hashed) using a library like `bcrypt`. - The `userSchema.pre("save", ...)` is a special function that runs automatically before saving a user to the database. - In this function: - `this.isModified("password")`: Checks if the password field of the current user has been changed. - If the password is not modified, it means the user is not updating their password, so it just moves on to the next operation (saving the user). - If the password is modified, it means a new password is set or the existing one is changed. In this case, it uses `bcrypt.hash` to encrypt (hash) the password before saving it to the database. - The use of `this` here is crucial because it allows you to refer to the specific user document that's being saved. It ensures that the correct password is hashed for the current user being processed. In summary, `this` in Mongoose is a way to refer to the current document or instance, and it's commonly used to access and modify the properties of that document, especially in middleware functions like the one demonstrated here for password encryption before saving to the database.




  3. Nov 2022
    1. Second, the range of the function must be efficiently computable, and it must be efficiently computable by you.

      taking too long to compute if a user is a good fit is the same as not being able to.

  4. Jul 2022
    1. Chapter 5: Demand, services and social aspects of mitigation

      Public Annotation of IPCC Report AR6 Climate Change 2022 Mitigation of Climate Change WGIII Chapter 5: Demand, Services and Social Aspects of Mitigation

      NOTE: Permission given by one of the lead authors, Felix Creutzig to annotate with caveat that there may be minor changes in the final version.

      This annotation explores the potential of mass mobilization of citizens and the commons to effect dramatic demand side reductions. It leverages the potential agency of the public to play a critical role in rapid decarbonization.

  5. May 2022
    1. “harm-to-help”

      The open access Stop Reset Go meme is the actionable turnaround instrument. When we recognize something is harmful, applying the Stop Reset Go methodology turns around harm to wellbeing by removing the harm but keeping the component that contributes to wellbeing. Myopic, exclusive wellbeing is what can cause harm, Expansive, inclusive wellbeing is a more inclusive wellbeing that includes a wider swath of the biosphere.

  6. Nov 2021
    1. A final cluster gathers lenses that explore phenomena that are arguably more elastic and with the potential to both indirectly maintain and explicitly reject and reshape existing norms. Many of the topics addressed here can be appropriately characterized as bottom-up, with strong and highly diverse cultural foundations. Although they are influenced by global and regional social norms, the expert framing of institutions, and the constraints of physical infrastructure (from housing to transport networks), they are also domains of experimentation, new norms, and cultural change. Building on this potential for either resisting or catalyzing change, the caricature chosen here is one of avian metaphor and myth: the Ostrich and Phoenix cluster. Ostrich-like behavior—keeping heads comfortably hidden in the sand—is evident in different ways across the lenses of inequity (Section 5.1), high-carbon lifestyles (Section 5.2), and social imaginaries (Section 5.3), which make up this cluster. Yet, these lenses also point to the power of ideas, to how people can thrive beyond dominant norms, and to the possibility of rapid cultural change in societies—all forms of transformation reminiscent of the mythological phoenix born from the ashes of its predecessor. It is conceivable that this cluster could begin to redefine the boundaries of analysis that inform the Enabler cluster, which in turn has the potential to erode the legitimacy of the Davos cluster. The very early signs of such disruption are evident in some of the following sections and are subsequently elaborated upon in the latter part of the discussion.

      The bottom-up nature of this cluster makes it the focus area for civil society movements, human inner transformation (HIT) approaches and cultural methodologies.

      Changing the mindset or paradigm from which the system arises is the most powerful place to intervene in a system as Donella Meadows pointed out decades ago in her research on system leverage points: https://donellameadows.org/archives/leverage-points-places-to-intervene-in-a-system/

      The sleeping giant of billions of potential change actors remains dormant. How do we awaken them and mobilize them. If we can do this, it can constitute the emergence of a third unidentified actor in system change.

      The Stop Reset Go (SRG) initiative is focused on this thematic lens, bottom-up, rapid whole system change, with Deep Humanity (DH) as the open-source praxis to address the needed shift in worldview advocated by Meadows. One of the Deep Humanity programs is based on addressing the psychological deficits of the wealthy, and transforming them into heroes for the transition, by redirecting their WEALTH-to-WELLth.

      There are a number of strategic demographics that can be targeted in methodical evidence-based ways. Each of these is a leverage point and can bring about social tipping points.

      A number of 2021 reports characterize the outsized impact of the top 1% and top 10% of humanity. Unless their luxury, high ecological footprint behavior is reeled in, humanity won't stand a chance. Annotation of Oxfam report: https://hyp.is/go?url=https%3A%2F%2Foxfamilibrary.openrepository.com%2Fbitstream%2Fhandle%2F10546%2F621305%2Fbn-carbon-inequality-2030-051121-en.pdf&group=__world__ Annotation of Hot or Cool report: https://hyp.is/go?url=https%3A%2F%2Fhotorcool.org%2Fhc-posts%2Frelease-governments-in-g20-countries-must-enable-1-5-aligned-lifestyles%2F&group=__world__

  7. Jun 2021
    1. "Many North American music education programs exclude in vast numbers students who do not embody Euroamerican ideals. One way to begin making music education programs more socially just is to make them more inclusive. For that to happen, we need to develop programs that actively take the standpoint of the least advantaged, and work toward a common good that seeks to undermine hierarchies of advantage and disadvantage. And that, inturn, requires the ability to discuss race directly and meaningfully. Such discussions afford valuable opportunities to confront and evaluate the practical consequences of our actions as music educators. It is only through such conversations, Connell argues, that we come to understand “the real relationships and processes that generate advantage and disadvantage”(p. 125). Unfortunately, these are also conversations many white educators find uncomfortable and prefer to avoid."

    1. Oversharing. Crying, disclosing intimate details, and telling long (unrelated and/or unsolicited) stories about one’s personal life may indicate the lack of an essential social work skill: personal boundaries.

      Testing out the annotate feature. Student 1 will highlight sections according to the prompts, as shown HERE.

      For example: "This is me during interviews. I say too much and veer off topic."

  8. Mar 2021
    1. Beykat yi duñu dem tool altine.

      Les cultivateurs ne vont pas au champ le lundi.

      beykat bi -- farmer 👩🏾‍🌾 (from bey -- to farm/cultivate).

      yi -- the (indicates plurality).

      duñu -- do not/no one (?).

      dem v. -- to go, leave, etc.

      tool bi -- field, orchard.

      altine ji -- (Arabic) Monday.

  9. Feb 2021
  10. Nov 2020
  11. Oct 2020
    1. Then at some moment I just stumbled upon limitations and inexpressiveness of templates and started to use JSX everywhere — and because JSX was not a typical thing for Vue I switched to React over time. I don’t want to make a step back.
  12. Sep 2020
    1. But if you’ve spent time building front ends with components, it’s hard to go back. Svelte lets us do that with a minimum of fuss or code bloat.
  13. Aug 2020
    1. Course as community onboarding

      I like this idea - as when joining a community figuring out the 'rules of engagement' can be hard, and also

      • who to go for what
      • what do I need to know to start
      • how does this community work

      For team on-boarding, project on-boarding, etc - it can also guide people towards other courses / resources that may be more ongoing or of other types

  14. Jul 2020
  15. May 2019