35 Matching Annotations
  1. 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.

      Example:

      ```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.

    Tags

    Annotators

    URL

  2. Sep 2023
  3. May 2023
  4. Mar 2023
    1. Fortunately, we found RingCaptcha (https://ringcaptcha.com), which has a the 'starter plan' that offers free 500 OTP monthly. Just a small plug for them for providing freemium service; they are highly reliable because they are integrated with all major global, and regional providers, e.g., Twilio, Nexmo, Infobip, MessageBird, etc., and send your OTP through the best provider/route based on country/phone carrier, and can auto fallback to alternative paths. This means you just need to integrate with RingCaptcha, without the headache of deciding which SMS/voice OTP provider has best combination of price and reliability, which is a real headache when you are sending OTP world-wide.
  5. Jan 2023
  6. Aug 2022
  7. Jun 2022
  8. Jan 2022
  9. Feb 2021
  10. Nov 2020
  11. Apr 2020
    1. Another approach I toyed with (very transiently) was blocking entire countries from accessing the API. I was always really hesitant to do this, but when 90% of the API traffic was suddenly coming from a country in West Africa, for example, that was a pretty quick win.
    1. Well, as a home user, I also belong to an investment club with 10 members. I also have a medium size family who I like to send photo's to, and my son is on a soccer team. all those have greater than 5 people on the list. sooooooooo..... once again, the people with valid use of the internet have to 'deal' with those that abuse it.
  12. Jan 2020
    1. Alloys[edit] Antimony forms a highly useful alloy with lead, increasing its hardness and mechanical strength. For most applications involving lead, varying amounts of antimony are used as alloying metal. In lead–acid batteries, this addition improves plate strength and charging characteristics.[49][59] For sailboats, lead keels are used as counterweights, ranging from 600 lbs to over 8000 lbs; to improve hardness and tensile strength of the lead keel, antimony is mixed with lead between 2% and 5% by volume. Antimony is used in antifriction alloys (such as Babbitt metal),[60] in bullets and lead shot, electrical cable sheathing, type metal (for example, for linotype printing machines[61]), solder (some "lead-free" solders contain 5% Sb),[62] in pewter,[63] and in hardening alloys with low tin content in the manufacturing of organ pipes. Other applications[edit] Three other applications consume nearly all the rest of the world's supply.[48] One application is as a stabilizer and catalyst for the production of polyethylene terephthalate.[48] Another is as a fining agent to remove microscopic bubbles in glass, mostly for TV screens;[64] antimony ions interact with oxygen, suppressing the tendency of the latter to form bubbles.[65] The third application is pigments.[48] Antimony is increasingly being used in semiconductors as a dopant in n-type silicon wafers[66] for diodes, infrared detectors, and Hall-effect devices. In the 1950s, the emitters and collectors of n-p-n alloy junction transistors were doped with tiny beads of a lead-antimony alloy.[67] Indium antimonide is used as a material for mid-infrared detectors.[68][69][70]

      Potential uses in phone batteries and silicon wafers As semi conductors.

  13. Dec 2019
  14. Nov 2019
    1. Tests implementation details a bit (child component props received), but pretty good other than that.

      https://www.robinwieruch.de/react-testing-tutorial, for example, says that is reasonable to do:

      an integration test could verify that all necessary props are passed through from the tested component to a specific child component.

  15. Oct 2019
  16. Aug 2019
  17. Oct 2015
    1. a web-wide ‘Like’ feature could just be implemented as a special kind of annotation

      Unlike some other approaches to development, this acknowledgment that usage can push innovation could help expand Hypothesis beyond a core base of “annotation geeks”. Document-level annotations can serve to classify or evaluate, like social bookmarking. What’s wrong with that?

  18. Sep 2015
    1. Cogni- tive and linguistic approaches consider the built environment in terms of systems of knowledge and understanding

      Trying to find the best ways to implement the uses of said "built environment" within our society

  19. Jun 2015
    1. Sec. 22a-40. Permitted operations and uses. (a) The following operations and uses shall be permitted in wetlands and watercourses, as of right:

      Rights of use for wetlands and watercourses.

  20. Oct 2013
    1. A maxim is a general statement about questions of practical conduct. It is an incomplete enthymeme. Four kinds of maxims. Maxims should be used (a) by elderly men, and (b) to controvert popular sayings. Advantages of maxims: (a) they enable a speaker to gratify his commonplace hearers by expressing as a universal truth the opinions which they themselves hold about particular cases; (b) they invest a speech with moral character.

      maxims

  21. Sep 2013
    1. And yet, Socrates, rhetoric should be used like any other competitive art, not against everybody,—the rhetorician ought not to abuse his strength any more than a pugilist or pancratiast or other master of fence;—because he has powers which are more than a match either for friend or enemy, he ought not therefore to strike, stab, or slay his friends.

      It was mentioned above that Gorgias made rhetoric sound sinister, and think this is a good follow up. We tend to receive persuasion and rhetoric when mixed with politics with bad connotation. And I saw where the poster was coming from. I am glad this clears the air up. However, I think Rhetoric Man is on par with Captain Hindsight as the lamest of the super heroes.