771 Matching Annotations
  1. Sep 2021
    1. I would have chosen a society of a sizelimited by the extent of human faculties—that is, by the possibility of being wellgoverned—and where, each person being up to his task, no one was compelledto entrust others with the functions with which he was charged; a state where, allindividuals knowing one another, neither the obscure maneuvers of vice nor themodesty of virtue could be hidden from the public’s notice and judgment, andwhere that sweet habit of seeing and knowing one another made love of thefatherland a love of the citizens rather than love of the soi

      Basically imagining a society where everyone works together for the greater good of each other. Where we aren't just putting our trust (AND POWER) in the hands of others. Where we know each other well enough that we aren't separated by our power. Where no wrongdoing can be hidden from public notice or judgement because we all understand whats going on. Love for one another,not just the soil we live on. NO BOURGOIS

  2. 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
    1. In the vast majority of cases when I'm using prettier-ignore I'm only really looking to prevent it from breaking my code into new lines, whilst keeping its other transformations such as switching quotes and adding space between brackets. When ignoring single lines, fixing these formatting problems by hand is very manageable. With the ability to have Prettier ignore entire blocks of code I think the ability to specify what you want it to ignore is essential.
    1. Now some people may just say “Pffft… just get up earlier and do it”. Clearly those people don’t understand how much I love to get up as late as I can afford in the mornings, those moments between asleep and ‘Fuck, I have to go to work’ are few, and precious my friends.

      I resemble this remark...

    1. 要给程序员这样的灵活性,Go必需支持指向分配在堆中对象的指针,我们将这种指针称为内部指针。上文的例子中X.buff字段保存于struct之中,但也可以保留这个内部字段的地址。比如,可以将这个地址传递给I/O子程序。在Java以及许多类似的支持垃圾回收的语音中,不可能构造象这样的内部指针,但在Go中这么做很自然。这样设计的指针会影响可以使用的回收算法,并可能会让算法变得更难写,但经过慎重考虑,我们决定允许内部指针是必要的,因为这对程序员有好处,让大家具有降低对(可能实现起来更困难)回收器的压力的能力。到现在为止,我们的将大致相同的Go和Java程序进行对比的经验表明,使用内部指针能够大大影响arena总计大型、延迟和回收次数。
  3. Jul 2021
  4. Jun 2021
    1. As aforementioned, the usage of master as a branch most likely originated from the first meaning

      The meaning:

      An original recording, film, or document from which copies can be made.

      makes more sense to me. Why would they have meant the other meaning?

    1. a principle I use is: If you have an accessor, use the accessor rather than the raw variable or mechanism it's hiding. The raw variable is the implementation, the accessor is the interface. Should I ignore the interface because I'm internal to the instance? I wouldn't if it was an attr_accessor.
    2. But what's the matter with "raw" instance variables? They are internal to your instance; the only code that will call them by name is code inside pancake.rb which is all yours. The fact that they start with @, which I assume made you say "blech", is what makes them private. Think of @ as shorthand for private if you like.

      I agree / like that: @ is just shorthand for private.

      But OP clarified in a comment that the @ itself is not what they disliked: it was the accessing data directly instead of going through an accessor method.

      The raw variable is the implementation, the accessor is the interface. Should I ignore the interface because I'm internal to the instance?

    3. One of the consequences (although arguably not the primary motivation) of DRY is that you tend to end up with chunks of complex code expressed once, with simpler code referencing it throughout the codebase. I can't speak for anyone else, but I consider it a win if I can reduce repetition and tuck it away in some framework or initialisation code. Having a single accessor definition for a commonly used accessor makes me happy - and the new Object class code can be tested to hell and back. The upshot is more beautiful, readable code.

      new tag?:

      • extract reusable functions to reduce duplication / allow elegant patterns elsewhere
    1. I don't think this warrants adding to the Array class, since it's not generalizable to all the types that Arrays can contain.

      You could say the same thing about Array#sort. It can cause an error if elements of the array aren't all of the same type/shape. Just make sure it's safe to use first, and thenArray#sort, Array#sum, Array#average, ... are all quite handy and useful to have on Array class.

    2. I don't think it is too clever. I think it solves the problem idiomatically. I.e., it uses reduce, which is exactly correct. Programmers should be encouraged to understand what is correct, why it is correct, and then propagate. For a trivial operation like average, true, one doesn't need to be "clever". But by understanding what "reduce" is for a trivial case, one can then start applying it to much more complex problems. upvote.
    3. Thanks, this was just what I was looking for! This is a perfect appropriate use of instance_eval. I do not understand the nay-sayers. If you already have your array in a variable, then sure, a.reduce(:+) / a.size.to_f is pretty reasonable. But if you want to "in line" find the mean of an array literal or an array that is returned from a function/expression — without duplicating the entire expression ([0,4,8].reduce(:+) / [0,4,8].length.to_f, for example, is abhorrent) or being required to assign to a local, then instance_eval option is a beautiful, elegant, idiomatic solution!!
    4. I don't know, using instance_eval this way just seems weird, and it has a lot of gotchas associated with it that make this approach a bad idea, IMO. (For example, if you tried to access and instance variable or a method on self inside that block, you'd run into problems.) instance_eval is more for metaprogramming or DSL.

      But that's exactly when/why you'd use it: to make self refer to the instance! Just learn that and you'll be fine. You can still access locals from outside the block. And if you need to access instance variables/methods of a different instance, then sure, it's probably a sign you shouldn't be using instance_eval here.

  5. May 2021
    1. I was thinking that illuminati is not real, But today with Mr Anthony carl now believe that illuminati is real, when you come across wrong person’s you will think that life is not real but when you are with the real one you will experience the goodness of your life, To MR Anthony carl has made me discovered my purpose of life. Welcome to the great brotherhood of Illuminati 666 WhatsApp mr Anthony carl +1(267)580-9355, from USA, and every other Country’s on how to join the Illuminati brotherhood to get rich and famous, You may be a politician, business man/woman ,musical artist, student, footballer or whatever occupation you do, you want to be rich, powerful and famous in life. Illuminati can grant all your heart desires join the Illuminati to become rich and famous in life, Illuminati will make you achieve all your dream to become rich and be protected all the days of your life.

    1. The developer or content creator may have a general idea of how a page’s content might be divided up, but ultimately it will be the linking resource that should have full control over what portion of the page they want to highlight.
  6. Apr 2021
    1. The main difference is in the flow of how messages are ultimately sent to devices for output. The standard library Logger logic converts the log entries to strings and then sends the string to the device to be written to a stream. Lumberjack, on the other hand, sends structured data in the form of a Lumberjack::LogEntry to the device and lets the device worry about how to format it. The reason for this flip is to better support structured data logging. Devices (even ones that write to streams) can format the entire payload including non-string objects and tags however they need to.
    1. Neither question nor answer appears to understand the notion of semantic HTML. Height and width are presentational attributes regardless of where you put them. For semantics we establish what the image means to content in the alt tag. I don't remember why it was so important to width/height in the HTML but I suspect it was in case you hit browsers without CSS rendering. It's not a semantics issue. If anything it thwarts separation of concerns to a degree.

      claim: that the OP's question and this answer are incorrect

      Could we say that this answer (that this comment replies to) missed the point?

      I actually believed and thought this answer was spot on ... until I read this comment, and then I reversed my opinion.

    1. Very slow, very cheap shipping via Royal Mail. Royal Mail advertises an ‘online’ international 12 week ’no rush’ service (not trackable). The price of the service is dependant on weight. It may be possible for international shipping to be achieved for around £15 GBP, may be even less! (This is not a typing error).  If you are interested in this service you will need to contact us before the campaign ends.

      Why do we need to contact you before the campaign ends if we want cheap shipping? Why wouldn't we want cheap shipping? What will shipping be if we don't choose that? How do we choose that? Why can't we choose shipping directly after the campaign ends?

    1. It has two very different meanings, that you would have to distinguish by context. One meaning is just expressing that we have limitations. If you don't know something, that's just tough, you don't know it and you have to live with that. You don't have information if you don't have that information. The other meaning is that not only are there gaps in our knowledge, but often we don't even know what the gaps in our knowledge are. I don't know how to speak Finnish. That's a gap in my knowledge that I know about. I know that I don't know how to speak Finnish. But there are gaps in my knowledge that I'm not even aware of. That's where you can say "You don't know what you don't know" meaning that you don't even know what knowledge you are missing.

      I had this thought too.

    1. can be easily invoked directly from shell prompt or script

      Can't expect / unbuffer / etc. (whatever this is attempting to contrast itself with) be easily invoked directly from shell prompt or script too??

      Okay, I guess you have to know more about how expect is invoked to understand what they mean. One glance at the examples, comparing them, and all becomes clear:

      #!/bin/sh
      empty -f -i in -o out telnet foo.bar.com
      empty -w -i out -o in "ogin:" "luser\n"
      

      I didn't realize that expect required/expected (no pun intended) to be used in scripts with its own shebang line:

      #!/usr/bin/expect
      
      spawn telnet foo.bar.com 
      expect ogin {send luser\r}
      

      That does make it less easy/normal to use expect within a shell script.

      I was coming to the expect project from/for the unbuffer command, which by contrast, is quite easy to include/use in a shell script -- almost the same as empty, in fact. (Seems like almost a mismatch to have unbuffer command in expect toolkit then. Or is expect command the only odd one out in that toolkit?)

    1. https://boardgamegeek.com/boardgame/183284/factory-funner/versions

      And now there are two versions with the nickname "Second edition": 2018 https://boardgamegeek.com/boardgameversion/404596/second-edition 2021 https://boardgamegeek.com/boardgameversion/556765/second-edition

      and a 3rd edition published prior to the current/new 2nd edition: 2019 https://boardgamegeek.com/boardgameversion/486693/third-edition

      Confusing all around.

      But I think the bottom line is that the 2021 version is in fact the same game and the newest rules tweaks:

      1. Added a sixth player
      2. Official variant to play without the quick grab element.
    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. I strongly prefer this over Carcassonne. It plays faster (I don't want a tile laying game to go for more than 30 mins or so) and I happen to like the limited options. Carcassonne just gets on my nerves because I just don't view selecting between so many placement options to be that interesting. Obviously, YMMV. Ditto the previous statement, it's different than Carcassonne. And that's why I like it.
    2. However, it can be extremely frustrating placing the tiles. Very commonly there will be no position to place a tile in and it will be put to one side. Perhaps someone new to tile-laying games wouldn't find this so odd, but to anyone with experience of Carcassonne it will seem very limiting. In Carcassonne you can pretty much always place a tile, with several choices of position available. Every player I've introduced this game to has looked at me as if to say, "We must be doing something wrong." But no, that game is designed that way. Sometimes it feels like the map builds itself - there is often only one viable placement, so it starts to feel like a jigsaw, searching for that available position. Surely placing a single tile shouldn't be this difficult!

      I don't think I'd find it frustrating. I think I would enjoy the puzzle part of it.

      But indirectly I see that difficulty in placing tiles impacting my enjoyment: because it means that there are no/few meaningful decisions to be had in terms of where to place your tile (because there's often only 1 place you can put it, and it may sometimes benefit your opponent more than yourself) or which tile to place (because you don't get any choice -- unless you can't play the first one, and then you can play a previously unplayable one or draw blind).

    1. What I dislike from the achievements is the "Dialogue Skipper". I really don't like it because you are encouraging people just to skim or even skip it at all and not get interested with the story. I earned this achievement on a 2nd run but I had a friend who just skipped it all on her 1st try.What devs should encourage is for the gamers to have a lot of playing time on their game so they would recommend it to others and not just do it for the cards and uninstalling it afterwards.
    1. Most of the projects here are the kind that might be fun to make but shortly end up in the trash (like: animals made out of toilet paper tubes, a Paper plate ring toss game, A necklace made of colored plastic straws...)
    1. Tangentially is defined as briefly mentioning a subject but not going into it in detail, or is defined as going off in a different direction.

      in the case of

      briefly mentioning a subject but not going into it in detail the topic/subject need not be related at all (it sounds like).

      What about in the case fo:

      is defined as going off in a different direction. Does the fact that it's going off in a different direction imply that it at least starts out connected/related to the original (starting point) subject (as it does in the geometry sense of tangential)? Or does it permit "jumping" to another topic (in another direction) without being related/connected at all??

      I don't think I like this definition very much. It doesn't quite fit the sense I'm trying to use it for in my tag:

      tangentially related content (aside)

      Ah, here's a definition that matches what I thought it meant (one of the senses anyway): https://hyp.is/3Bn2bpZ7Eeu3Ok8vg03AVA/www.merriam-webster.com/dictionary/tangential

    1. I have a 2 radio buttons with the same id and label, only different values, (true, false)....anything I can do to choose false?

      If you just do find_field(radio_input_name) you end up with

         Ambiguous match, found 2 elements matching visible field "name" that is not disabled
      
  7. Mar 2021
    1. Nevertheless, co-hyponyms are not necessarily incompatible in all senses. A queen and mother are both hyponyms of woman but there is nothing preventing the queen from being a mother.

      not necessarily incompatible in all senses.

      so is this only a concern/possibility when the word in question is a polyseme?

      but there is nothing preventing the queen from being a mother

      The meaning of the "incompatibility" relation seems really ambiguous. What does that mean precisely?

      And how would we know for sure if an incompatibility (such as a peach is not a plum) or lack of incompatibility (a queen can be a mother and a mother can be a queen) is a sufficient condition to cause it to be or not be a co-hyponym?

      Oh. I guess it says

      Co-hyponyms are often but not always related to one another by the relation of incompatibility.

      so it actually can't ever be used to prove or disprove (sufficient/necessary condition) that something is a co-hyponym. So that observation, while interesting, is not helpful in a practical / deterministic way...

    2. It consists of two relations; the first one being exemplified in "An X is a Y" (simple hyponymy) while the second relation is "An X is a kind/type of Y". The second relation is said to be more discriminating and can be classified more specifically under the concept of taxonomy.

      So I think what this saying, rather indirectly (from the other direction), if I'm understanding correctly, is that the relationships that can be inferred from looking at a taxonomy are ambiguous, because a taxonomy includes 2 kinds of relationships, but encodes them in the same way (conflates them together as if they were both hyponyms--er, well, this is saying that the are both kinds of hyponyms):

      • "An X is a Y" (simple hyponymy)
      • "An X is a kind/type of Y".

      Actually, I may have read it wrong / misunderstood it... While it's not ruling out that simple hyponymy may sometimes be used in a taxonomy, it is be saying that the "second relation" is "more specifically under the concept of taxonomy" ... which is not really clear, but seems to mean that it is more appropriate / better for use as a criterion in a taxonomy.


      Okay, so define "simple hyponymy" and name the other kind of hyponymy that is referenced here.

    1. semantic domain or semantic field

      What, then, is the difference between a semantic domain and a semantic field? The way they are used here, it's almost as if they are listing them in order to emphasis that they are synonyms ... but I'm not sure.

      From the later examples of basketball (https://hyp.is/ynKbXI1BEeuEheME3sLYrQ/en.wikipedia.org/wiki/Semantic_domain) and coffee shop, however, I am pretty certain that semantic domain is quite different from (broader than) semantic field.

    1. (Not answered on this stub article)

      What, precisely, is the distinction/difference between a semantic class and a semantic field? At the very least, you would say that they are themselves both very much within the same semantic field.

      So, is a semantic class distinct from a semantic field in that semantic class is a more well-defined/clear-cut semantic field? And a semantic field is a more fluid, nebulous, not well-defined field (in the same sense as a magnetic field, which has no distinct boundary whatsoever, only a decay as you move further away from its source) ("semantic fields are constantly flowing into each other")?

      If so, could you even say that a semantic class is a kind of (hyponym) of semantic field?

      Maybe I should pose this question on a semantics forum.

    1. those aspects of a linguistic unit, such as a morpheme, word, or sentence,

      Speaking of ambiguity...

      Are the examples in the list "such as a morpheme, word, or sentence" examples of

      • aspects of a linguistic unit or of:
      • linguistic units themselves ?

      Unless you are already fairly familiar with those terms -- in particular, linguistic unit -- it may not be clear.

      I believe these are given as examples of "linguistic unit", in order to clarify what we mean by "linguistic unit" — perhaps (ironically) precisely because many people would be unfamiliar with that expression/term.

    1. Some research led me to the --remote-tab switch that allows to open files as tabs in currently open Vim processes but it seemed to work only with the graphical interface (gvim) and not with the console (vim). But as I made some tests I found this can work with the vim in console mode

      That's what I thought too (that it was only available with gvim, which I don't want to use).

      But I get this error when I try it with regular vim:

      $ vim --servername local
      VIM - Vi IMproved 8.1 (2018 May 18, compiled Apr 15 2020 06:40:31)
      Unknown option argument: "--servername"
      
    1. If I do gnome-open foo.desktop it simply opens foo.desktop as a text file. If I make it executable and then run it in bash it simply fails (which is expected, it's clearly not bash script). EDIT: Doing exec /fullpath/foo.desktop gives me a Permission denied message, even if I change ownership to myself. If I make executable and do the same command, the terminal tab I'm using simply closes (I'm guessing it crashes). Finally, if I do sudo exec /fullpath/foo.desktop, I get an error reporting sudo: exec: command not found.
    1. What is the point of avoiding the semicolon in concat_javascript_sources

      For how detailed and insightful his analysis was -- which didn't elaborate or even touch on his not understanding the reason for adding the semicolon -- it sure appeared like he knew what it was for. Otherwise, the whole issue would/should have been about how he didn't understand that, not on how to keep adding the semicolon but do so in a faster way!

      Then again, this comment from 3 months afterwards, indicates he may not think they are even necessary: https://github.com/rails/sprockets/issues/388#issuecomment-252417741

      Anyway, just in case he really didn't know, the comment shortly below partly answers the question:

      Since the common problem with concatenating JavaScript files is the lack of semicolons, automatically adding one (that, like Sam said, will then be removed by the minifier if it's unnecessary) seems on the surface to be a perfectly fine speed optimization.

      This also alludes to the problem: https://github.com/rails/sprockets/issues/388#issuecomment-257312994

      But the explicit answer/explanation to this question still remains unspoken: because if you don't add them between concatenated files -- as I discovered just to day -- you will run into this error:

         (intermediate value)(...) is not a function
             at something.source.js:1
      

      , apparently because when it concatenated those 2 files together, it tried to evaluate it as:

         ({
           // other.js
         })()
         (function() {
           // something.js
         })();
      

      It makes sense that a ; is needed.

    1. Fibar bi jàngal na taawan bu góor ni ñuy dagge reeni aloom.

      Le guérisseur a appris à son fils aîné comment on coupe les racines du Diospyros.

      fibar -- (fibar bi? the healer? as in feebar / fièvre / fever? -- used as a general term for sickness).

      bi -- the (indicates nearness).

      jàngal v. -- to teach (something to someone), to learn (something from someone) -- compare with jàng (as in janga wolof) and jàngale.

      na -- pr. circ. way, defined, distant. How? 'Or' What. function indicator. As.

      taaw+an (taaw) bi -- first child, eldest. (taawan -- his eldest).

      bu -- the (indicates relativeness).

      góor gi -- man; male.

      ni -- pr. circ. way, defined, distant. How? 'Or' What. function indicator. As.

      ñuy -- they (?).

      dagg+e (dagg) v. -- cut; to cut.

      reen+i (reen) bi -- root, taproot, support.

      aloom gi -- Diospyros mespiliformis, EBENACEA (tree).

      https://www.youtube.com/watch?v=BryN2nVE3jY

    2. Dafa ànd ak moroom yi àll ba, fori aloom.

      Il est allé dans la brousse ramasser des fruits de Diospyros avec ses camarades.

      dafa -- he/she.

      ànd v. / ànd bi -- to be together, to go together; copulate; going together, fellowship; placenta.

      ak -- and, with, etc.

      moroom mi -- comrade of the same age group, equal, companion, neighbor.

      yi -- the (plural).

      àll bi -- large expanse of uninhabited land, bush; distant, as opposed to home.

      ba -- the (indicates distance).

      for+i (for) v. -- to pick up.

      aloom bi -- edible fruit of Diospyros mespiliformis (aloom gi for the tree).

      https://www.youtube.com/watch?v=nL4iHgp5ejk

  8. Feb 2021
    1. step :direct_debit

      I don't think we would/should really want to make this the "success" (Right) path and :credit_card be the "failure" (Left) track.

      Maybe it's okay to repurpose Left and Right for something other than failure/success ... but only if we can actually change the default semantic of those signals/outputs. Is that possible? Maybe there's a way to override or delete the default outputs?

    2. Defaults names are given to steps without the :id options, but these might be awkward sometimes.

      Why would those default names ever be awkward?

      If you the default name is whatever comes after step:

      step :default_name
      

      then why can't you just change that name to whatever you want?

      To answer my own question: I think you can do that, as long as the name is the 1st argument to step. But below I noticed an example where a Subprocess was the 1st argument instead, and so it needs a name in this case:

      step Subprocess(DeleteAssets), id: :delete_assets
      

      Why are they inconsistent about calling it name or id? Which one is it? I guess it's an id since that's what the key is called, and since there's an Id() helper to reference a task by its id.

    1. Another thing I don’t like is the name of the config file manifest.js. Internally Sprockets has the concept of a manifest already Sprockets::Manifest, but the two aren’t directly coupled. We also already have a “manifest” JSON file that gets generated in public/assets/ and has manifest in the name .Sprockets-manifest-140998229eec5a9a5802b31d0ef6ed25.json. I know one is a JS file and one is a JSON file, but it’s a bit confusing to talk about.

      When I first heard of app/assets/config/manifest.js, I was a bit confused too, and assumed/wondered if it was related to the manifest it generates under public.

    1. provide interfaces so you don’t have to think about them

      Question to myself: Is not having to think about it actually a good goal to have? Is it at odds with making intentional/well-considered decisions?  Obviously there are still many of interesting decisions to make even when using a framework that provides conventions and standardization and makes some decisions for you...

    1. What is the opposite of free content?

      The opposite of free/open-source software is proprietary software or non-free software (https://en.wikipedia.org/wiki/Proprietary_software).

      So should we call the opposite of free content "non-free content"? Or "proprietary content"?

      Seems likes either would be fine.

      Looks like https://en.wikipedia.org/wiki/Wikipedia:Non-free_content prefers the term "non-free content".

      Couldn't find anyone contrasting these 2 terms (like I could no doubt find for software):

      Not to be confused with:

      • paid content ... just like:
      • free content should not be confused with gratis content (?)
      • free software should not be confused with freeware
  9. www.metacritic.com www.metacritic.com
    1. Please, do not buy this. I am really tired of "games" that are given critical praise because its cool to praise or because its political correct to do. I will break up my review in points so its clear why I dislike this "game" : 1) This is not a game. This is a short story, like an interactive book. 2) This game is so short, that I completed it in a 3 hour bus ride. It was boring. 3) Its a story of a girl that have to take the reigns of her life after divorce. WOMAN EMPOWERMENT. Now you know why this game is rated so highly 4) This is a MOBILE GAME. I paid $3 to play on an iphone (after watching a gaming channel give it GOTY contender. Needless to say, I never watched that gaming channel again). I FELT I WAS ROBBED OF TIME AND $3. Imagine how much I hated this game to feel like I was robbed even though it costed me only $3. 5) This game costs $7 on the eshop. You could buy CELESTE for $9 on sale on the Eshop. That is a great game. I recently bought Hollow Knight for $7 on Playstation. This interactive novel should not be sold as a game. Period. It is a waste of time and money.

      Nothing wrong with interactive novels being sold in the same store as games... as long as it's clear what it is (no false advertising).

      Somewhat agree with some of the other points...

    1. @adisos if reform-rails will not match, I suggest to use: https://github.com/orgsync/active_interaction I've switched to it after reform-rails as it was not fully detached from the activerecord, code is a bit hacky and complex to modify, and in overall reform not so flexible as active_interaction. It has multiple params as well: https://github.com/orgsync/active_interaction/blob/master/spec/active_interaction/modules/input_processor_spec.rb#L41

      I'm not sure what he meant by:

      fully detached from the activerecord I didn't think it was tied to ActiveRecord.

      But I definitely agree with:

      code is a bit hacky and complex to modify

    1. with ActiveForm-Rails, validations is the responsability of the form and not of the models. There is no need to synchronize errors from the form to the models and vice versa.

      But if you intend to save to a model after the form validates, then you can't escape the models' validations:

      either you check that the models pass their own validations ahead of time (like I want to do, and I think @mattheworiordan was wanting to do), or you have to accept that one of the following outcomes is possible/inevitable if the models' own validations fail:

      1. if you use object.save then it may silently fail to save
      2. if you use object.save then it will fail to save and raise an error

      Are either of those outcomes acceptable to you? To me, they seem not to be. Hence we must also check for / handle the models' validations. Hence we need a way to aggregate errors from both the form object (context-specific validations) and from the models (unconditional/invariant validations that should always be checked by the model), and present them to the user.

      What do you guys find to be the best way to accomplish that?

      I am interested to know what best practices you use / still use today after all these years. I keep finding myself running into this same problem/need, which is how I ended up looking for what the current options are for form objects today...

    1. you'll want to update Devise's generated views to remove references to passwords, since you don't need them any more

      Doesn't this contradict the statement

      This strategy plays well with most other Devise strategies

      (which includes password strategies)?


      One thing that wasn't clear from their instructions was whether magic links could be used as an option in addition to regular password log-ins. On the one hand they say:

      This strategy plays well with most other Devise strategies (see notes on other Devise strategies).

      but on the other hand they say:

      you'll want to update Devise's generated views to remove references to passwords, since you don't need them any more

  10. Jan 2021
    1. Simple ways to do more with spreadsheets

      For me the key is use cases within my discipline--teaching and how students can use them. I don't like to teach stuff that won't reap students dividends in productivity, learning, sharing, gathering info effectively, time saving.

  11. Dec 2020
    1. This can be used to perform actions once the navigation has completed, such as updating a database, store

      Wouldn't/shouldn't it be the other way around — wouldn't we wait until the save is completed (database is updated) successfully before we navigate away from the current page/form??

  12. Nov 2020
    1. Text links are a very simple button type.

      Eh? I didn't know links were considered buttons. I'm not sure I totally agree understand, but it's not outrageous either...

      Update: Okay, I guess when you put an outline around it (like they directly below this paragraph), and even more if you put an icon with it (like they did further down; https://hyp.is/DZTZzi6fEeuu65uvQJ9W1Q/uxdesign.cc/ui-cheat-sheets-buttons-7329ed9d6112), the link looks like more like a button.

      But (and I think this is their point) it is what it is because of how it's used and not how it's styled: it should be the same thing (a button) whether or not it has an outline.