144 Matching Annotations
  1. Last 7 days
  2. Jul 2025
    1. This typewriter was quite grimy, so I removed the shell (fairly challenging) and gave it a bath in an ultrasonic cleaning tank. Mitch Hamm alerted me that such tanks, big enough to dip a portable while keeping its keys out of the water, are now available for a mere $150 or so. Here’s the Royal undergoing what sounds like electroshock therapy, but is really just a micro-agitated bath. Concentrated Simple Green Industrial Cleaner & Degreaser was added to hot water in a 1:20 ratio.

      https://typewriterrevolution.com/a-green-machine/

      Richard Polt's experience in cleaning a Royal Portable with an ultrasonic cleaning tank with Simple Green in a 1:20 ratio.

  3. May 2025
    1. Royal Futura 800 Typewriter Plastic Key Top White Crud Removal Cleaning Servicing by [[Phoenix Typewriter]]

      For the white, crusty out gassing (or off gassing) on plastic typewriter keys, Duane recommends a round or two of Simple Green with a stiff bristle brush. Follow this up with a scrub down using WD-40 to displace the water from the Simple Green and then follow up with denatured alcohol, which is safe on plastics, and a wipe down with a rag to dry.

  4. Mar 2025
    1. The goal of Lucia v3 was to be the easiest and cleanest way to implement database-backed sessions in your projects. It didn't have to be a library. I just assumed that a library will be the answer. But I ultimately came to conclusion that my assumption was wrong. I don't see this change as me abandoning the project. In fact, I think it's a step forward. If implementing sessions wasn't easy, I wouldn't be deprecating the package. But why wouldn't a library be the answer? It seems like a such an obvious answer. One word - database. I talked about how database adapters were a significant complexity tax to the library. I think a lot of people interpreted that as maintenance burden on myself. That's not wrong, but the bigger issue is how the adapters limit the API. Adapters always felt like a black box to me as both an end user and a maintainer. It's very hard to design something clean around it and makes everything clunky and fragile, especially when you need to deal with TypeScript shenanigans.
    1. Old school repair guys used a lot of different stuff that's no longer available due to being... Not good. Ha. But naphta was one that's still widely available as white gas aka "coleman/camping fuel" Essentially naphtha with stabilizers to keep it from going bad. Mineral spirits works as well, but naphtha leaves less residue in my experience. Lacquer thinner is good for especially stubborn crap and cleaning slugs, but evaporates really fast and the fumes are no bueno. Alternatively; non toxic degreasing cleaners like simple green are usually my preferred method of cleaning up especially gross machines. Typically very safe on paint finishes and internals, just make sure to keep it off the decals. (It can and WILL erase them if it sits for more than 10 secs) Really though, nothing beats air and a long handled "paint" brush. My air compressor and blow out tube are some of my most cherished tools.

      https://www.reddit.com/r/typewriters/comments/1jm7c02/is_it_better_to_use_mineral_spirits_or_lighter/?sort=old

      quote from Nashville Typewriter

  5. Feb 2025
    1. One of our favorite sayings is: opt in to complexity. We designed Astro to remove as much “required complexity” as possible from the developer experience, especially as you onboard for the first time. You can build a “Hello World” example website in Astro with just HTML and CSS. Then, when you need to build something more powerful, you can incrementally reach for new features and APIs as you go.
    2. Astro was designed to be less complex than other UI frameworks and languages. One big reason for this is that Astro was designed to render on the server, not in the browser. That means that you don’t need to worry about: hooks (React), stale closures (also React), refs (Vue), observables (Svelte), atoms, selectors, reactions, or derivations. There is no reactivity on the server, so all of that complexity melts away.
  6. Jan 2025
    1. Reflexivity has been explored on a collective societal level, for example through Ulrich Beck's work on reflexive modernization wherein the unintended consequences of simple modernity motivate a reflexive turn across society, including to science itself: ‘science itself is deconstructed by means of science’

      for - further research - Ulrich Beck's research on unintended consequences of simple modernity - SOURCE - paper - Reflexivity as a transformative capacity for sustainability science: introducing a critical systems approach - Lazurko et al. - 2025, Jan 10

  7. Nov 2024
    1. the real problem is what we're layering the web on we shouldn't be doing the web over this kind of just simple file distribution system that works over TCP and you have to work really hard to put over anything else we should be putting the web over a distribution system that can deal with the distributed case that is offline first and uh this is are kind of like stats showing the usage of mobile apps versus uh the web and so on so this is a very real real thing

      for - quote / insight - We shouldn't be doing the web over this simple file distribution system that works over TCP - Juan Benet - IPFS

  8. Sep 2024
  9. Aug 2024
  10. Jul 2024
  11. Jun 2024
  12. Apr 2024
    1. What are some top UX design principles when designing for kids?Some important UX design principles when designing for kids are as follows. Simplicity and clarity Interactive and engaging elements Age-appropriate content Safety and privacy Consistent feedback and rewards

      There's 5 in this list and there was 4 in the other - I think Safety and Privacy is the one additional but it's also in my proposal because I am concerned about it too.

    1. Engaging Visuals: Bright, colorful, and appealing visuals are essential to capture a child’s attention and stimulate their creativity.

      This is especially important for me, the Applications that have been offered so far by no fee schools locally are not engaging, the visuals looks very outdated, the colours are very dull.

  13. Mar 2024
  14. 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

    1. Issue relations are meant to be the basic infrastructure to build on (at least that is how I meant it when I posted the original feature request). Just like the labels are just a binary relation between a issue and a "label", the relations should be just a ternary relation between two issues and a "label". Then you can build issue task lists on top of the relations like you've built issue boards on top of the labels.
  15. Dec 2023
    1. its easy to get lost in complexity here, but i prefer to keep it simple: our *only* problem is overpopulation, which is caused by pacifism = civilization. *all* other problems are only symptoms of overpopulation. these "financial weapons of mass destruction" (warren buffett) have the only purpose of mass murder = to kill the 95% useless eaters. so yes, this is a "controlled demolition" aka "global suicide cult". most of us will die, but we are happy...

      financial weapons of mass destruction: the useful idiots believe that they can defeat risk (or generally, defeat death) by centralization on a global scale. they want to build a system that is "too big to fail" and which will "live forever". they use all kinds of tricks to make their slaves "feel safe" and "feel happy", while subconsciously, everything is going to hell in the long run. so this is just another version of "stupid and evil people trying to rule the world". hubris comes before the fall, nothing new. their system will never work, but idiots must try... because "fake it till you make it" = constructivism, mind over matter, fantasy defeats reality, ...

      the video and soundtrack are annoying, they add zero value to the monolog.

  16. Oct 2023
  17. Sep 2023
    1. Recent work has revealed several new and significant aspects of the dynamics of theory change. First, statistical information, information about the probabilistic contingencies between events, plays a particularly important role in theory-formation both in science and in childhood. In the last fifteen years we’ve discovered the power of early statistical learning.

      The data of the past is congruent with the current psychological trends that face the education system of today. Developmentalists have charted how children construct and revise intuitive theories. In turn, a variety of theories have developed because of the greater use of statistical information that supports probabilistic contingencies that help to better inform us of causal models and their distinctive cognitive functions. These studies investigate the physical, psychological, and social domains. In the case of intuitive psychology, or "theory of mind," developmentalism has traced a progression from an early understanding of emotion and action to an understanding of intentions and simple aspects of perception, to an understanding of knowledge vs. ignorance, and finally to a representational and then an interpretive theory of mind.

      The mechanisms by which life evolved—from chemical beginnings to cognizing human beings—are central to understanding the psychological basis of learning. We are the product of an evolutionary process and it is the mechanisms inherent in this process that offer the most probable explanations to how we think and learn.

      Bada, & Olusegun, S. (2015). Constructivism Learning Theory : A Paradigm for Teaching and Learning.

  18. Aug 2023
  19. Jun 2023
  20. Apr 2023
  21. Nov 2022
  22. Sep 2022
    1. This means that when considering the "unevaluatedProperties": false in the root schema, "wheels" has not been evaluated, so unevaluatedProperties applies to it, and therefore validation fails because the false subschema fails by definition against any instance.
  23. Aug 2022
  24. Apr 2022
  25. Mar 2022
  26. Jan 2022
    1. There's a problem with 401 Unauthorized, the HTTP status code for authentication errors. And that’s just it: it’s for authentication, not authorization. Receiving a 401 response is the server telling you, “you aren’t authenticated–either not authenticated at all or authenticated incorrectly–but please reauthenticate and try again.” To help you out, it will always include a WWW-Authenticate header that describes how to authenticate.
    2. So, for authorization I use the 403 Forbidden response. It’s permanent, it’s tied to my application logic, and it’s a more concrete response than a 401. Receiving a 403 response is the server telling you, “I’m sorry. I know who you are–I believe who you say you are–but you just don’t have permission to access this resource. Maybe if you ask the system administrator nicely, you’ll get permission. But please don’t bother me again until your predicament changes.”
    3. +----------------------- | RESOURCE EXISTS ? (if private it is often checked AFTER auth check) +----------------------- | | NO | v YES v +----------------------- 404 | IS LOGGED-IN ? (authenticated, aka user session) or +----------------------- 401 | | 403 NO | | YES 3xx v v 401 +----------------------- (404 no reveal) | CAN ACCESS RESOURCE ? (permission, authorized, ...) or +----------------------- redirect | | to login NO | | YES | | v v 403 OK 200, redirect, ... (or 404: no reveal) (or 404: resource does not exist if private) (or 3xx: redirection)
    1. When you initially logon with OAuth2, you will be redirect to Google’s sign-in page,. Once you have signed in, Google issues you a special OAuth2 token which is saved in Thunderbird and can be seen in the same place as passwords. So when you next logon to gmail, it is using that unique OAuth ID instead of password.
  27. Nov 2021
  28. Sep 2021
  29. Aug 2021
    1. function strictIsDog<T extends Dog extends T ? unknown : never>( // like <T super Dog> candidate: Dog | T // if Dog extends T then Dog | T is T ): candidate is Dog { // compiler recognizes that Dog | T can narrow to T return "bark" in candidate; } if (strictIsDog(animal)) {} // okay if (strictIsDog(dog)) {} // okay if (strictIsDog(mixed)) {} // okay if (strictIsDog(cat)) {} // error! // ~~~ <-- Cat is not assignable to Dog
  30. May 2021
    1. That image only contains 200 pixels horizontally, but the browser stretches it to 400px wide or even farther!Luckily, you’ll see there’s an easy “fix” there at the end: our old good friend the width attribute!<img src="example.gif", srcset="example.gif 200w" sizes="(min-width: 400px) 400px, 100vw" width="200" /* <=== TA-DA! */ class="logo">As long as you can specify the width attribute so it reflects the true maximum size of your largest image, you won’t run into this problem of having sizes make your image wider than it naturally should go.
  31. Apr 2021
    1. Everything about this game is as simple as possible, down to the three main leads, their conversations, and even the plot—it may sound super exciting to go on an expedition under the ruins of a temple to find some ancient advanced machinery; but in reality, the whole thing is like a longer Saturday morning cartoon episode.
  32. Mar 2021
  33. Feb 2021
    1. All those names of things - topology, complex analysis, and differential geometry - might not sound like much to you now, but you'll soon learn that they're really just describing the shapes of things in our Universe, and the way those shapes change in time and space are explained by things like calculus and chaos theory.
  34. Jan 2021
  35. Dec 2020
    1. page is a { host, path, params, query } object where host is the URL's host, path is its pathname, params is derived from path and the route filename, and query is an object of values in the query string.

      I like that we don't have to manually parse params/query out of the full request URI. It provides the data that you are most likely to need, in an readily/easily-usable form.

  36. Nov 2020
    1. This is Sass based, and therefore doesn't require Svelte components

      Just because we could make Svelte wrapper components for each Material typography [thing], doesn't mean we should.

      Compare:

      • material-ui [react] did make wrapper components for typography.

        • But why did they? Is there a technical reason why they couldn't just do what svelte-material-ui did (as in, something technical that Svelte empowers/allows?), or did they just not consider it?
      • svelte-material-ui did not.

        • And they were probably wise to not do so. Just reuse the existing work from the Material team so that there's less work for you to keep in sync and less chance of divergence.
  37. Oct 2020
  38. Sep 2020
  39. Jul 2020
  40. May 2020
  41. www.kickstarter.com www.kickstarter.com
  42. Apr 2020
    1. Markdown provides shorthand for the most common features of HTML. One of its best features is that you can always fallback to the full syntax for HTML. This includes doing things that aren't included in markdown. Personally, I like that markdown is concise and includes very little fluff. It makes it easier to learn the whole set of shorthand. This is particularly important if you expect someone else to read your code later.

      One of its best features is that you can always [fall back[ to the full syntax for HTML.

      See rebuttal below.

  43. Mar 2020
    1. I discuss the flaws of this in regards to spreadsheets in Spreadsheets Are Sabotaging Your Business. In brief, when people inevitably started using the more complex formulas available, they unknowingly broke the fundamental design concept of paper spreadsheets: that humans can understand what’s happening between the cells.
  44. Dec 2019
  45. Feb 2019
  46. Dec 2018
  47. Oct 2018
  48. Apr 2017
  49. Jan 2016
    1. quickly realized something counterintuitive: Often, it’s the simplest uses of technology that get students to talk, write and create

      This is really interesting. I think this is an important finding because as teachers begin to blend and personalize instruction, keeping it simple will allow for more teachers to engage because it doesn't appear to be daunting and super-sophisticated (and scary).