319 Matching Annotations
  1. Last 7 days
  2. Oct 2024
    1. I am just surprised that there is no clear official name for such a popular and well known convention.  Internet searching seems to indicate that the common term used is "Red Squiggly Line", but it seems like a term quickly made-up just to describe something for which we know no name.  There's a technical name for the dot on an "i" for goodness sake (tittle).
  3. Sep 2024
    1. Now we understand why there has to be an inner reality which is made of qualia and an outer reality which is made a lot of symbols, shareable symbols, what we call matter.

      for - unpack - key insight - with the postulate of consciousness as the foundation, it makes sense that this is - an inner reality made of qualia - and an outer reality made of shareable symbols we call matter - Federico Faggin - question - about Federico Faggin's ideas - in what way is matter a symbol? - adjacency - poverty mentality - I am the universe who wants to know itself question - in what way is matter a symbol? - Matter is a symbol in the sense that it - we describe reality using language, both - ordinary words as well as - mathematics - It is those symbolic descriptions that DIRECT US to jump from one phenomena to another related phenomena. - After all, WHO is the knower of the symbolic descriptions? - WHAT is it that knows? Is it not, as FF points out, the universe itself - as expressed uniquely through all the MEs of the world, that knows? - Hence, the true nature of all authentic spiritual practices is that - the reality outside of us is intrinsically the same as - the reality within us - our lebenswelt of qualia

  4. Aug 2024
    1. This is the most simulative version of a controller. It will try and mimic real user behaviour. It's the recommended version to use when the goal of the load-test is finding out how many concurrently active users the target instance supports.
    1. you can Google data if you're good you can Google information but you cannot Google an idea you cannot Google Knowledge because having an idea acquiring knowledge this is what is happening on your mind when you change the way you think and I'm going to prove that in the next yeah 20 or so minutes that this will stay analog in our closed future because this is what makes us human beings so unique and so Superior to any kind of algorithm

      for - key insight - claim - humans can generate new ideas by changing the way we think - AI cannot do this

  5. Jun 2024
  6. May 2024
  7. Apr 2024
  8. Feb 2024
    1. Modus vivendi (plural modi vivendi) is a Latin phrase that means "mode of living" or "way of life".

      Modus means way and vivendi means of living

  9. Jan 2024
    1. Driver management through Selenium Manager is opt-in for the Selenium bindings. Thus, users can continue managing their drivers manually (putting the driver in the PATH or using system properties) or rely on a third-party driver manager to do it automatically. Selenium Manager only operates as a fallback: if no driver is provided, Selenium Manager will come to the rescue.
    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

  10. Dec 2023
    1. A personalized button gives users a quick indication of the session status, both on Google's side and on your website, before they click the button. This is especially helpful to end users who visit your website only occasionally. They may forget whether an account has been created or not, and in which way. A personalized button reminds them that Sign In With Google has been used before. Thus, it helps to prevent unnecessary duplicate account creation on your website.

      first sighting: sign-in: problem: forgetting whether an account has been created or not, and in which way

  11. Nov 2023
    1. Roger Hardy erklärt in diesem Artikel über die von ihm in Großbritannien gegründete Organisation Round our Way, dass Arbeiterklassen-Communities von der globalen Erhitzung und ihren Folgen besonders stark betroffen sind und das auch wissen. Nur eine Klimabewegung für "ordinary people" könne das Fundament für einen gesellschaftlichen Konsens über Klimaschutz herstellen. https://www.theguardian.com/environment/commentisfree/2023/nov/21/working-class-people-climate-crisis-policy

    1. But I do question why lib and not something in app is the common suggestion for classes/modules who do not fall into the default set of folders (models, controllers, jobs, etc). Is it just because it's what we've been doing for so long? To me feels like we're trying to shoehorn the lib folder into further being a kitchen sink (now holding rake tasks and miscellaneous classes), rather than just saying "your Ruby classes/modules go somewhere in app because they're application code".
      • for: Deep Humanity, epoche, BEing journey, Douglas Harding, Zen, emptiness, awakening, the Headless Way

      • summary

      • adjacency between
        • Kensho
        • Zen
        • Douglas Harding's Headless Way
      • adjacency statement

        • this paper explores the parallels between Zen b experienced of Kensho and Douglas Harding's Headless Way
      • question

        • can this technique be adapted for Deep Humanity BEing journeys and mass awakening /epoche?
    1. Google Chrome for Android no longer has an option to disable “Pull to Refresh”. For people who don’t really like using this feature, this is pretty annoying. There was a way to disable this using a flag, but version 75 removed this flag too.
    2. I was filling and completing a report on a website, uploaded an attachment just wanted to fill up some remaining inputs on final step, while scrolling down the whole page refreshed!.. hours of work and composition was gone instantly, extremely frustrating!
    3. I stoped using chrome android for purchases, due to the refresh occuring while scrolling up. Poor design choice
  12. Aug 2023
    1. If tech doesn’t contribute to solving some of the problems it creates, we are doomed
      • for: quote, quote - Esther Dyson, quote - progress trap, quote - progress traps, progress trap,
      • quote: "If tech doesn’t contribute to solving some of the problems it creates, we are doomed"
      • author: Esther Dyson
        • internet pioneer
        • journalist
        • entrepreneur
        • executive founder of Way to Wellville
  13. Jul 2023
    1. The "Dokkōdō" (Japanese: 獨行道) ("The Path of Aloneness", "The Way to Go Forth Alone", or "The Way of Walking Alone") is a short work written by Miyamoto Musashi a week before he died in 1645. It consists of 21 precepts. "Dokkodo" was largely composed on the occasion of Musashi giving away his possessions in preparation for death, and was dedicated to his favorite disciple, Terao Magonojō (to whom the earlier Go rin no sho [The Book of Five Rings] had also been dedicated), who took them to heart. "Dokkōdō" expresses a stringent, honest, and ascetic view of life.

      The work of Musashi, Dokkodo, is the Japanese for "The way of walking alone", which I like most as a translation.

    1. no we don't
      • Answer

        • No.
        • we end up with a non conceptual insight that:
          • we can then communicate
          • that we can discuss
          • that we can articulate
          • that requires that reason be present at:
            • the beginning like the seed
            • in the middle when we're performing the analysis
            • like the rain that nourishes the crops and
            • in the end in the harvest
          • because non conceptuality is really easy to achieve all you need is a very large rock,
            • just bang right on your head and non conceptuality is there
          • but that's a mute inert non-conceptual
          • Non-conceptuality needs to be enriched by the conceptual insight that allows you to actually make something of it
      • The Middle Way

        • using the conceptual to reach a deeper appreciation of the state of non-conceptuality,
        • in other words, using dualistic thought and language to reach insights about the nondual
      • Title
        • Madhyamaka: Jay Garfield
      • Description
        • Jay Garfield talks about why Nagarjuna's technique employts reason to undermine itself to achieve peace in a nonconceptual state.
          • He humorously points out how its easy to achieve nonconceptual states in many ways, such as a large rock to the head, but that kind of nonconceptual state is not really insightful for penetrating the deep philosophical questions we all have.
          • He clarifies why Nagarjuna's process is called the Middle Way,
            • it employs (conceptual) analysis to achieve wisdom of the nondual (nonconceptual) state
  14. Jun 2023
  15. May 2023
    1. Stop to think about "normal app" as like desktop app. Android isn't a desktop platform, there is no such this. A "normal" mobile app let the system control the lifecycle, not the dev. The system expect that, the users expect that. All you need to do is change your mindset and learn how to build on it. Don't try to clone a desktop app on mobile. Everything is completely different including UI/UX.

      depends on how you look at it: "normal"

  16. Mar 2023
    1. We have a finite pool of good will with which we can advocate for the implementation of new security technologies. If we spend all that good will on irritating attackers, then by the time we’re ready to actually implement a solution, developers are not going to be interested.
    1. When you call 'foo' in Ruby, what you're actually doing is sending a message to its owner: "please call your method 'foo'". You just can't get a direct hold on functions in Ruby in the way you can in Python; they're slippery and elusive. You can only see them as though shadows on a cave wall; you can only reference them through strings/symbols that happen to be their name. Try and think of every method call 'object.foo(args)' you do in Ruby as the equivalent of this in Python: 'object.getattribute('foo')(args)'.
  17. Jan 2023
    1. from the start the logic reflected the social relations of the one-way mirror. They were able to see and to take — and to do this in a way that we could not contest because we had no way to know what was happening.

      !- surveillance capitalism : metaphor - one way mirror

    1. The best way to learn common table expressions is through practice. I recommend LearnSQL.com's interactive Recursive Queries course. It contains over 100 exercises that teach CTEs starting with the basics and progressing to advanced topics like recursive common table expressions.
  18. Dec 2022
    1. This is a terrible idea. At least if there's no way to opt out of it! And esp. if it doesn't auto log out the original user after some timeout.

      Why? Because I may no longer remember which device/connection I used originally or may no longer have access to that device or connection.

      What if that computer dies? I can't use my new computer to connect to admin UI without doing a factory reset of router?? Or I have to clone MAC address?

      In my case, I originally set up via ethernet cable, but after I disconnected and connected to wifi, the same device could not log in, getting this error instead! (because different interface has different mac address)

  19. Nov 2022
    1. While there are many great answers regarding the "glyph not found" glyph, that won't help you actually detect it, as the text string in code will still have the character regardless of the font used to render it.
  20. Oct 2022
    1. I'm afraid you missed the joke ;-) While you believe spaces are required on both sides of an em dash, there is no consensus on this point. For example, most (but not all) American authorities say /no/ spaces should be used. That's the joke. In writing a line about "only one way to do it", I used a device (em dash) for which at least two ways to do it (with spaces, without spaces) are commonly used, neither of which is obvious -- and deliberately picked a third way just to rub it in. This will never change ;-)
  21. Sep 2022
    1. the AST version of the code is vastly superior IMHO. The knowledge about what constitutes an access modifier is already encoded in the system so it makes more sense to just call the method to test the type of node. The regexp solution may be expedient, but it's not as resilient to change -- if new access modifiers are added in the future it's very likely this code won't be updated, which will be the source of a bug.
  22. Aug 2022
  23. Jul 2022
    1. let me first say how why we're here um 00:05:01 and first point out that barry and carl have never met before this is the first time you will discuss

      Title: What is Real? Nagarjuna's Middle Way A Discussion with Barry Kerzin (Doctor to HH Dalai Lama, Professor and Buddhist Monk) and Carlo Rovelli (Quantum Physicist)

  24. Apr 2022
    1. Best Ways to Scale a Startup or Business Successfully

      Your dream project is no longer merely a concept. It's now a reality. You've successfully launched your product, and it's gradually growing in popularity. You might be wondering now, "How does one scale a startup?"

      However, there is another critical question to consider: Is your project ready to scale?

      According to the Startup Genome Report, up to 90% of all startups fail because they try to scale too quickly. You risk a lot if you make a mistake and start scaling a business before you're ready.

      It's not easy, but you can avoid those dangers. In this blog post, we'll show you how to tell if your startup is ready for scale, and if it isn't, how to get ready. We’ve

    1. The Internet owes its strength and success to a foundation of critical properties that, when combined, represent the Internet Way of Networking (IWN). This includes: an accessible Infrastructure with a common protocol, a layered architecture of interoperable building blocks, decentralized management and distributed routing, a common global identifier system, and a technology neutral, general-purpose network.

      Definition of the Internet Way of Networking

    1. and within that within that area then you have on one on the light side with on the eastern side of the milky way all of those people there have a 00:39:56 relationship to each other all the tribes and all the clans and so and then you come on to the west side exactly the same thing again so on the east side those stars on the 00:40:10 bright side we are not allowed if you've got a totemic system that belongs to the east side you cannot marry your children into any one of them you must marry across the river so 00:40:23 you've got to go across the river which is that milky way and so the light side's going to go across the dark side to find their wives and so the old people understood who the people were and 00:40:35 and so they understood that genealogical background of every family every child and so they made sure that that when you made a promise to a child you 00:40:49 make sure that there are at least five generation removed from the people you want to marry them back into genetics was very important to us even though we didn't know it was genetics at 00:41:01 the time but it was maintaining the purity of the people

      There's a light side (East) and a dark side (West) of the Milky Way (seen as a river) which is mirrored into the moieties of the people. Dark people must go across the river to marry those on the light side. The elders kept track of all the genealogy in the totemic system of every family and every child and made their promises such that there were at least five generations removed from their family to maintain the purity (in the sense of genetic soundness, not genetic purity from a "racial" perspective) of the people.

      via Uncle Ghillar Michael Anderson

    1. start composting

      some part of foods that can't be eaten

      banana peels or onion skins

      prepare a compost bin where you can get rid of decayable food waste

      to fertilise garden

  25. Mar 2022
    1. dark constellations

      Dark constellations are dark patches amidst brighter portions of the Milky Way in the night sky which are visible to the naked eye.

      Historically they were viewed by Indigenous peoples of Australia as well as Incans.

      The emu in the sky is an example from the southern hemisphere. Its 'body' is outlined by Scorpius and Sagittarius and its 'head' is known as as the Coalsack Nebula.

      Another example is the Great Rift.

  26. Feb 2022
    1. his suggests that successful problem solvingmay be a function of flexible strategy application in relation to taskdemands.” (Vartanian 2009, 57)

      Successful problem solving requires having the ability to adaptively and flexibly focus one's attention with respect to the demands of the work. Having a toolbelt of potential methods and combinatorially working through them can be incredibly helpful and we too often forget to explicitly think about doing or how to do that.

      This is particularly important in mathematics where students forget to look over at their toolbox of methods. What are the different means of proof? Some mathematicians will use direct proof during the day and indirect forms of proof at night. Look for examples and counter-examples. Why not look at a problem from disparate areas of mathematical thought? If topology isn't revealing any results, why not look at an algebraic or combinatoric approach?

      How can you put a problem into a different context and leverage that to your benefit?

  27. Dec 2021
  28. Nov 2021
    1. I know I know with the Paris is it is a stone. And people used to write on stone in Egypt. And that’s where they would create their hieroglyphic alphabet.

    1. I am firmly convinced that asserting on the state of the interface is in every way superior to asserting on the state of your model objects in a full-stack test.
    2. Even if #foo is originally on the page and then removed and replaced with a #foo which contains baz after a short wait, Capybara will still figure this out.
    3. As long as you stick to the Capybara API, and have a basic grasp of how its waiting behaviour works, you should never have to use wait_until explicitly.
    4. Let’s make that really clear, Capybara is ridiculously good at waiting for content.
    5. apybara could have easily figured out how to wait for this content, without you muddying up your specs with tons of explicit calls to wait_until. Our developer could simply have done this: page.find("#foo").should have_content("login failed")
  29. Oct 2021
    1. Inflections go the other way around.In classic mode, given a missing constant Rails underscores its name and performs a file lookup. On the other hand, zeitwerk mode checks first the file system, and camelizes file names to know the constant those files are expected to define.While in common names these operations match, if acronyms or custom inflection rules are configured, they may not. For example, by default "HTMLParser".underscore is "html_parser", and "html_parser".camelize is "HtmlParser".
    2. All these problems are solved in zeitwerk mode, it just works as expected, and require_dependency should not be used anymore, it is no longer needed.
    1. And on any given day, developing with Svelte and its reactive nature is simply a dream to use. You can tell Svelte to track state changes on practically anything using the $: directive. And it’s quite likely that your first reactive changes will produce all the expected UI results.
  30. Sep 2021
    1. Codica Named a Top E-commerce Web Development Company by ManifestIrina TurchanovaSaaS Growth ResearcherAwardsHomeBlogCodica WayCodica Named a Top E-commerce Web Development Company by ManifestAug 26, 202110 min readCodica is a professional team that provides software consultancy services to all-sized businesses. We have been building unique and complex custom web solutions for more than six years, helping our customers reach their business goals and prosper.

      Manifest, a Clutch’s sister website, is also a business news platform. Our Manifest profile ranks among the top 60 e-commerce app development companies in Ukraine and Top apps Developers.

    1. Three days before Labor Day, on Friday, September 2, 1921, the U.S. Army intervened on the side of coal companies against striking coal miners, marking the end of the Battle of Blair Mountain in southern West Virginia. The battle was the climax of two decades of low-intensity warfare across the coalfields of Appalachia, as the West Virginia miners sought to unionize and mining companies used violent tactics to undermine their efforts. The struggle turned deadly.
  31. Aug 2021
    1. “Ultimately, these kind of iframe limitations are the reason why vendors should implement embeddable marketing forms with JavaScript instead of iframes….” – I couldn’t agree more. The trouble is, Pardot’s developers still believe it’s the 1990’s
    1. Now consider we want to handle numbers in our known value set: const KNOWN_VALUES = Object.freeze(['a', 'b', 'c', 1, 2, 3]) function isKnownValue(input?: string | number) { return typeof(input) === 'string' && KNOWN_VALUES.includes(input) } Uh oh! This TypeScript compiles without errors, but it's not correct. Where as our original "naive" approach would have worked just fine. Why is that? Where is the breakdown here? It's because TypeScript's type system got in the way of the developer's initial intent. It caused us to change our code from what we intended to what it allowed. It was never the developer's intention to check that input was a string and a known value; the developer simply wanted to check whether input was a known value - but wasn't permitted to do so.
  32. Jun 2021
    1. "Although in the United States it is common to use the term multiculturalism to refer to both liberal forms of multiculturalism and to describe critical multicultural pedagogies, in Canada, Great Britain, Australia, and other areas,anti-racism refers to those enactments of multiculturalism grounded in critical theory and pedagogy. The term anti-racism makes a greater distinction, in my opinion, between the liberal and critical paradigms of multiculturalism, and is one of the reasons I find the anti-racism literature useful for analyzing multiculturalism in music education."

    1. We want the GraphQL API to be the primary means of interacting programmatically with GitLab. To achieve this, it needs full coverage - anything possible in the REST API should also be possible in the GraphQL API.
  33. May 2021
    1. or simply install the package to devDependencies rather than dependencies, which will cause it to get bundled (and therefore compiled) with your app:
    1. In the earlier example, I used “no-reply@” because this is, unfortunately, a common practice used by many email marketers. As a brand utilizing email, you should never expect a personal experience like email to ever be one-sided.
  34. Apr 2021
    1. There's nothing to stop you from doing initializer code in a file that lives in app/models. for example class MyClass def self.run_me_when_the_class_is_loaded end end MyClass.run_me_when_the_class_is_loaded MyClass.run_me... will run when the class is loaded .... which is what we want, right? Not sure if its the Rails way.... but its extremely straightforward, and does not depend on the shifting winds of Rails.

      does not depend on the shifting winds of Rails.

    1. But in all this incongruous abundance you'll certanly find the links to expect It's just what is wanted: the tool, which is traditionally used to communicate automatically with interactive programs. And as it always occurs, there is unfortunately a little fault in it: expect needs the programming language TCL to be present. Nevertheless if it doesn't discourage you to install and learn one more, though very powerful language, then you can stop your search, because expect and TCL with or without TK have everything and even more for you to write scripts.
    1. “Who cares? Let’s just go with the style-guide” — to which my response is that caring about the details is in the heart of much of our doings. Yes, this is not a major issue; def self.method is not even a code smell. Actually, that whole debate is on the verge of being incidental. Yet the learning process and the gained knowledge involved in understanding each choice is alone worth the discussion. Furthermore, I believe that the class << self notation echoes a better, more stable understanding of Ruby and Object Orientation in Ruby. Lastly, remember that style-guides may change or be altered (carefully, though!).
    1. This approach is preferable to overriding authenticate_user! in your controller because it won't clobber a lot of "behind the scenes" stuff Devise does (such as storing the attempted URL so the user can be redirected after successful sign in).
  35. Mar 2021
    1. Your validation functions should also treat undefined and '' as the same. This is not too difficult since both undefined and '' are falsy in javascript. So a "required" validation rule would just be error = value ? undefined : 'Required'.
    1. Visible spectrum wrapped to join blue and green in an additive mixture of cyan

      the rainbow as a continuous (repeating) circle instead of semicircle

    1. Svelte is there when I need it with useful APIs, but fades into the background as I put my app together.
    2. This isn't really a downside to React; one of React's strengths is that it lets you control so much and slot React into your environment
    3. Svelte is different in that by default most of your code is only going to run once; a console.log('foo') line in a component will only run when that component is first rendered.
    1. As to why both is_a? and kind_of? exist: I suppose it's part of Ruby's design philosophy. Python would say there should only be one way to do something; Ruby often has synonymous methods so you can use the one that sounds better. It's a matter of preference.
    1. I'd suggest there ought to be config to disable source maps specifically, and specifically for either CSS or JS (not alwasy both), without turning off debug mode. As you note, debug mode does all sorts of different things that you might want with or without source maps.
    2. Meh... as I said earlier, I think using Webpack is the recommended way now. Another issue is there is no way to generate source maps in production.
    3. But yeah, I'm not sure how you would determine which was the "recommended way" really. I don't see anything in Rails docs saying either way.
    4. But last I have seen comments from DHH, he considered webpack(er) recommended for JS, but Sprockets still the preferred solution for (S)CSS.
    1. # This behavior can be disabled with: # # environment.unregister_postprocessor 'application/javascript', Sprockets::SafetyColons

      but it appears to no longer be possible in latest version...

    1. In production, you will never trigger one specific callback or a particular validation, only. Your application will run all code required to create a Song object, for instance. In Trailblazer, this means running the Song::Create operation, and testing that very operation with all its side-effects.
    2. There’s no need to test controllers, models, service objects, etc. in isolation
    3. Run the complete unit with a certain input set, and test the side-effects. This differs to the Rails Way™ testing style, where smaller units of code, such as a specific validation or a callback, are tested in complete isolation. While that might look tempting and clean, it will create a test environment that is not identical to what happens in production.
  36. Feb 2021
    1. Have you ever felt like a framework was getting in the way instead of helping you go faster? Maybe you’re stuck on some simple task that would be easy to do manually, but your framework is making you jump through configuration hoops. I end up getting lost in a sea of documentation (or no documentation), and the search for that one magical config key takes just a tad bit too long. It’s a productivity sink, and worse than the time delay it adds to my frustration throughout the day.
    1. In other words: the controllers usually contain only routing and rendering code and dispatch instantly to a particular operation/activity class.
    1. Endpoint is the missing link between your routing (Rails, Hanami, …) and the “operation” to be called. It provides standard behavior for all cases 404, 401, 403, etc and lets you hook in your own logic like Devise or Tyrant authentication, again, using TRB activity mechanics.
    2. What this means is: I better refrain from writing a new book and we rather focus on more and better docs.

      I'm glad. I didn't like that the book (which is essentially a form of documentation/tutorial) was proprietary.

      I think it's better to make documentation and tutorials be community-driven free content

    3. To make it short: we returned to the Rails Way™, lowering our heads in shame, and adhere to the Rails file and class naming structure for operations.
    4. There is nothing wrong with building your own “service layer”, and many companies have left the Traiblazer track in the past years due to problems they had and that we think we now fixed.
    1. a framework containing the basic assumptions, ways of thinking, and methodology that are commonly accepted by members of a scientific community. such a cognitive framework shared by members of any discipline or group:
    1. In Trailblazer, models are completely empty. They solely contain associations and finders. No business logic is allowed in models.
    2. The bare bones operation without any Trailblazery is implemented in the trailblazer-operation gem and can be used without our stack.
    3. While Trailblazer offers you abstraction layers for all aspects of Ruby On Rails, it does not missionize you. Wherever you want, you may fall back to the "Rails Way" with fat models, monolithic controllers, global helpers, etc. This is not a bad thing, but allows you to step-wise introduce Trailblazer's encapsulation in your app without having to rewrite it.
    4. Only use what you like.
    5. you can pick which layers you want. Trailblazer doesn't impose technical implementations
    1. class FormsController < ApplicationController class SearchForm < ActiveModel::Form

      I kind of like how they put the form class nested directly inside the controller, although I would probably put it in its own file myself, unless it was quite trivial.

    1. Set your models free from the accepts_nested_attributes_for helper. Action Form provides an object-oriented approach to represent your forms by building a form object, rather than relying on Active Record internals for doing this.

      It seems that the primary/only goal/purpose was to provide a better alternative to ActiveRecord's accepts_nested_attributes_for.

      Unfortunately, this appears to be abandoned.

    1. Set your models free from the accepts_nested_attributes_for helper. Active Form provides an object-oriented approach to represent your forms by building a form object, rather than relying on Active Record internals for doing this.
    1. The Timeless Way of Building is the first in a series of books which describe an entirely new attitude to architec- ture and planning. The books are intended to provide a complete working alternative to our present ideas about ar- chitecture, building, and planning—~an alternative which will, we hope, gradually replace current ideas and practices,

      [[the timeless way of building]]

  37. Jan 2021
    1. Moving DOM elements around made me anxious and I wanted to preserve natural tab order without resorting to setting tabindex, so I also made a flexbox version that never moves DOM elements around. I think it's the superior solution, at least for the layouts I was going for. https://github.com/wickning1/svelte-components/blob/master/src/FlexCardLayout.svelte
    1. Popper for Svelte with actions, no wrapper components or component bindings required! Other Popper libraries for Svelte (including the official @popperjs/svelte library) use a wrapper component that takes the required DOM elements as props. Not only does this require multiple bind:this, you also have to pollute your script tag with multiple DOM references. We can do better with Svelte actions!
    1. When there are imperfections, we rely on users and our active community to tell us how the software is not working correctly, so we can fix it. The way we do that, and have done for 15 years now, is via bug reports. Discussion is great, but detailed bug reports are better for letting developers know what’s wrong.
    2. Adding layer of settings and complexity for the end user might also bring bad practices to keep a comfortable use of app’s by installing snap without confinement…
  38. Dec 2020
    1. The following ANOVA table illustrates the relationship between the sums of squares for each component and the resulting F-statistic for testing the three null and alternative hypotheses for a two-way ANOVA.

      The following ANOVA table illustrates the relationship between the sums of squares for each component and the resulting F-statistic for testing the three null and alternative hypotheses for a two-way ANOVA.

    1. Some devs prefer Svelte’s minimal approach that defers problems to userland, encouraging more innovation, choice, and fragmentation, and other devs prefer a more fully integrated toolkit with a well-supported happy path.

      tag?: what scope of provided features / recommended happy path is needed?

    2. It's true that Svelte does not allow you to map over children like React, but its slot API and <svelte:component> provide similarly powerful composition. You can pass component constructors as props and instantiate them with <svelte:component>, and use slots and their let bindings for higher order composition. It sounds like you're thinking in virtual DOM idioms instead of Svelte's.
    3. However, Svelte isn't React or Vue or any other framework, the same approach will not always work and given that Svelte has very different constraints and approach that works well in another framework is not suitable with Svelte. Trying to apply approaches use with other frameworks to Svelte will invariably end in frustration.