546 Matching Annotations
  1. Last 7 days
    1. (Ideally the run-time library would treat a pipe in the same way as a console, but it seems that most don't.)

      Often/usually treating a pipe/redirect differently is in fact what you want.

      Like if you output to a file, you don't necessarily want colors or real-time progress/status outputted along with it: you want just the bare data to be saved, which can then be filtered in useful ways with other standard tools like grep and sed.

    1. Dry humor is a delivery technique. As such, it shouldn't be confused with specific types of humor or with sarcasm. Sarcasm is delivered without humor because it's generally not funny but intended to mock or convey contempt. Dry humor pertains to something funny.
    1. Of course you must not use plain-text passwords and place them directly into scripts. You even must not use telnet protocol at all. And avoid ftp, too. I needn’t say why you should use ssh, instead, need I? And you also must not plug your fingers into 220 voltage AC-output. Telnet was chosen for examples as less harmless alternative, because it’s getting rare in real life, but it can show all basic functions of expect-like tools, even abilities to send passwords. BUT, you can use “Expect and Co” to do other things, I just show the direction.
    1. you're quite the lucky man. i finally got my wife to agree to play fjords with me last weekend and, after beating me pretty soundly in two straight games, she announced she didn't like the game. turns out she didn't like the puzzle/board-building aspect of the game, the lack of aggressive play ("it would have been better if i could have fire-bombed some of your land") nor all of the 'action' taking place in the last minute or two of the game.drats.
    2. It's the first time that my wife and I have played Fjords together. She's not a gamer but we've recently been playing a few more games and she's been willing to try a few Eurogames (e.g. Carcassonne) and some of the kosmos 2-player games (Jambo, Odin's Ravens, Balloon Cup, Lost Cities) that I've borrowed from friends which is great. I manage to get a hold of a copy of Fjords and we have a go.I tell her that it involves spatial awareness and planning ahead. I explain the rules to her (having only played it once or twice myself and won each time), and she's doing her best not to roll her eyes; there's a definite lack of enthusiasm there.
    1. Secondly, the difficulty ramps up very quickly - once I'd got a handle on things and started getting in to it, it threw me off that the Novice level 7 is just WAY TOO HARD - it's not a game centered on difficulty so it's not like that's an excuse, nor is this a later on level where you'd except difficulty, but having just 15 seconds to do that lap, that needs to be changed to 20 at least!
    1. Already Signed InThis session has ended because the account has been signed into from another browser window on 04/11/2021 04:30:09 PM. This happens when you sign in to your account on more than one browser screen. You can't be signed into your account on two or more browser windows at the same time. Just close your browser and sign back into your account.
    1. Is a lawn roller necessary? It is spring, and I imagine the soil in your yard is lumpy because of the frost that occurred in the previous months. This is why you think a lawn roller is necessary. Well, unless you’re maintaining a golf course, I wouldn’t recommend a lawn roller. It just isn’t necessary.
    2. In short, here’s why a lawn roller may not be necessary for your lawn: Using heavy rollers on the ground leads to soil compaction.Compacted soil causes slow root development and slower turfgrass growth.
  2. Apr 2021
    1. Open your phone’s settings application and tap on the Apps segment. From all the apps mentioned below, select AOL to open. When it opens, locate and tap on the Force stop option. You can fix AOL mail not working on Android by force stopping the application. If force stopping the AOL email application doesn’t fix your problem, you can uninstall and then re-install the application on your android device.

      For more details: AOL mail not working

    2. Resetting password on AOL email using your iPhone is an extremely easy task. You can do that by opening the settings on your iPhone, tapping on the Passwords and accounts segment. When it opens, locate your AOL email account name and click on it to reset AOL password on iPhone. Click on the Account option and then on the password option, finish the process by changing the password. Lastly, change the settings by tapping on SMTP, Primary Server, and then Password. For more details: AOL Mail not working

    1. I can’t say Incredible Mandy is a bad game per se, but it is underwhelming and less than the sum of its parts
    2. nothing about the game is really offensive, but there’s just no hook that managed to keep me invested up to the end.
    1. this game is - well not exactly bad, but it also isn't a very good game of the genre - there are some riddles and puzzles that can give you quite the headache. I like hard puzzles, I like games where all isn't quite obvious - but I also like a barrier-free gaming experience.
    1. The Not So Good: The Dev/s seems to be in hiatus -- still waiting for the "coming soon" additional levels: Laser Land.
  3. Mar 2021
    1. Both Prof Wu and Ms Truong cited the 1875 Page Act, one of the earliest pieces of federal law restricting immigration to the US. On paper, the legislation barred the entry of any woman from China, Japan "or any Oriental country" for "lewd and immoral purposes", including prostitution.In reality, the law blocked virtually all immigration from Asian women, who were collectively presumed to be sex workers or prostitutes.This racist and sexist stereotype that they "were bringing their immorality to the US", Ms Truong explains, has lingered.

      le bruh moment.

    1. A general and intuitive description is that words in a semantic field are not necessarily synonymous, but are all used to talk about the same general phenomenon.
    1. Optimization in this case is nothing crazy, just something I neglected while designing the framework.
    2. With all this “monetization” happening around Trailblazer, we will also make sure that all free and paid parts of the project grow adult and maintan an LTS - or long-term support - status. Those are good news to all you users out there having been scared to use gems of this project, not knowing whether or not they’re being maintained, breaking code in the future or making your developers addicted to and then cutting off the supply chain. Trailblazer 2.1 onwards is LTS, and the last 1 ½ years of collaboration have proven that.
    1. This could be because of security measures by windows or any other security provider you use. In case you use Windows security, follow the instructions mentioned here to fix Thunderbird not receiving emails. Open Settings and click on Update & Security, click on windows security next and navigate Virus & Threat protection. You will find manage settings option right under it, click on it then on Add or remove exclusions, and finally click on Add an exclusion to select Thunderbird. Related Issues Thunderbird Email Not Responding How to Setup Thunderbird for Yahoo Mail

    2. Open the official AT&T webpage and click on the Forgot password option at the bottom of the sign-in window. Enter all asked inputs in their respective fields. Fill the CAPTCHA as you see it and click on Continue once you do. To resolve BellSouth.net email login problems, verify yourself as the true owner on the verification page using two ways; sending a temporary password or answer security questions. Next, follow the screen steps under any option you choose and verify yourself.<br> Related Post Bellsouth email not working How do you fix the Common BellSouth Email Errors

    3. Fix the issues with IncrediMail by trying out a couple of different solutions; reconfiguring it if the issue occurs when sending or receiving emails, you can update IncrediMail Mail program to ensure smooth functioning with Windows 10, uninstall the contrary applications that may be causing the Incredimail problems with Windows 10, or you can reset your web browser to get rid of ay technical hindrance. Try these solutions to fix the problems with IncrediMail. Related Issues Incredimail not sending emails Incredimail password recovery

    4. One reason for this problem can be the disabled IMAP. IMAP is the technology that Gmail uses to deliver the emails to your device, which may be disabled on your iPhone causing Gmail won't load on iPhone issue. Open Gmail on a browser and open its settings. In the settings, you will find the Forwarding and IMAP/POP tab –click on it and enable the IMAP under this tab. This should solve your problem with Gmail and iPhone.

      Visit: Gmail notification not working

    5. If you encounter ‘Processing’ Screen each time you open Outlook and it just won’t load, you need to open Outlook in safe mode. Start by closing Outlook first and clicking on the Start symbol on your desktop. When it opens, type Outlook.exe /safe in the search box to launch Outlook in safe mode. Opening the software in safe mode will help you resolve Outlook not working properly, as Outlook in Safe mode works well but with a few lesser options in general.

    6. Open tools tab on Incredimail and selects Accounts in this tab. Choose your account and click on properties. Now, in the servers tab of Incredimail not sending emails account, ensure that incoming and outgoing mail server is set to ‘pop.oricom.ca’ and ‘smtp.oricom.ca’ respectively. Ensure the password is correct and that ‘My server requires authentication’ box is unchecked. Open the Advanced tab next and make sure that outgoing server for SMTP is set on ‘25’ with ‘This server requires an encrypted connection (ssl)’ box unchecked while the incoming server is set on ‘110’ and the same box is unchecked. Finally, click OK to save. For more details: How to Fix Incredimail 2.5 Crashing Issue Incredimail Password recovery

    7. It may seem strange, but some users claim that opening Gmail in an incognito Chrome window is an effective workaround for the Gmail not working in chrome problem. To do that, Launch Google Chrome. Go to the top-right area of the browser, and then click the more icons, which look like three vertically aligned dots. Select New Incognito Window. A new window will show up. Check if the Incognito icon can be seen in the top corner of the window. You can also open an incognito window by pressing Ctrl+Shift+N on your keyboard.

    8. Cookies and cache are pieces of information saved in your browser to enable quicker function of website. If you are facing AOL login issues, you can start by deleting these cookies and cache. To clear the Cache in chrome, open chrome and click on the three dots present at the top-right corner of the screen. From the list of options, choose more tools and further select clear browsing data. Clear the data from beginning of time. Check AOL login again if it works now.

      AOL mail not working on Android

    9. Press the windows key and the R key simultaneously to open the Run dialog box, type msconfig in it when it opens and click on Boot tab. Untick Safe Boot option and click on Selective Start up instead. Click on the Load Startup items to clear the items. Go to Hide all Microsoft services and click on Disable all option. Next, open task manager and disable all startup elements. Now, enable each element one by one and then restart your computer. Thunderbird email not responding can be fixed by identifying the problematic startup item and then repairing it. This method should fix the problem for you. For more details Visit: Thunderbird Emails not Working

    10. Begin by searching Control Panel in the search bar of your desktop – present at the bottom-left side of the screen. Open control panel and select Programs, then select Microsoft Office. Click on Change and then click on Repair. Wait for the system to repair the program, then relaunch the Outlook app and check if the search is working. Outlook not searching can be easily resolved by repairing the entire Microsoft office as any corrupted elements will be fixed instantly.

    1. However, since you haven't yet provided any details about how you built with Qt (Qt isn't officially supported, so you must have used a third party derivative of vim), and you haven't provided any detailed information about what error messages or malfunctions you're having with python-complete, it's not really possible to tell you how to fix the problem and get vim working with Qt.
    1. Sorry you’re surprised. Issues are filed at about a rate of 1 per day against GLib. Merge requests at a rate of about 1 per 2 days. Each issue or merge request takes a minimum of about 30 minutes (across at least 2 people) to analyse, put together a fix, test it, review it, fix it, review it and merge it. I’d estimate the average is closer to 3 hours than 30 minutes. Even at the fastest rate, it would take 3 working months to clear the backlog of ~1000 issues. I get a small proportion of my working time to spend on GLib (not full time).
    2. Age of a ticket is completely irrelevant as anyone can request anything but the number of developers is limited. If you'd like to see something implemented, please consider providing a patch. Thanks!
    1. We are just as in the dark as the customers. We clock in and look at a screen on a scanner and scan the stuff the systems tells us to pick for you. We have no clue how the website worked for you for that order, no clue about billing issues, nada. The system didnt want you to have that item that day. The only thing we can suggest is "try again later". or call 1800walmart and complain to a call taker to see if they can put in a complaint for you. We are peons and know not much more than if you walked in the backroom threw on a vest and did the work yourself. Were not privy to anything and the company doesnt tell us jack shit except how to do the immediate task in front of us until we clock out
    1. Dole Mandarin Oranges in Light Syrup, All Natural Fruit, Non-GMO, 15oz CanNot available for curbside
    1. This isn't to say that on a case by case basis there aren't modules that are grossly overcomplicated.
    2. "Functions Are Not Packages" - Well why not?
    3. I would much rather have a "cosine" module than a "trigonometry" module because chances are good I only need a small fraction of the utilities provided by the larger trig module.
    4. Small modules are extremely versatile and easy to compose together in an app with any number of other modules that suit your needs.
    5. Second, I don't agree that there are too many small modules. In fact, I wish every common function existed as its own module. Even the maintainers of utility libraries like Underscore and Lodash have realized the benefits of modularity and allowed you to install individual utilities from their library as separate modules. From where I sit that seems like a smart move. Why should I import the entirety of Underscore just to use one function? Instead I'd rather see more "function suites" where a bunch of utilities are all published separately but under a namespace or some kind of common name prefix to make them easier to find. The way Underscore and Lodash have approached this issue is perfect. It gives consumers of their packages options and flexibility while still letting people like Dave import the whole entire library if that's what they really want to do.
    1. every symbol in D3 4.0 now shares a flat namespace rather than the nested one of D3 3.x. For example, d3.scale.linear is now d3.scaleLinear, and d3.layout.treemap is now d3.treemap.
    1. I get asked a lot which I want to do more; design or write code? I answer, “yes.”
    2. Being a better designer makes me a better engineer and being a better engineer makes me a better designer.
    1. This is a huge disadvantage to all web developers. Why can't we at least have the ability to turn validation messages off? Why do we have to re-implement a validation system when you already have one in place, but all we want is the validation aspect and not the built in messaging? By taking away the ability to style elements that CHROME adds to the browser window, it is hurting developers professional appearance. We just want to use Chrome's WONDERFUL validation system with our own error messages. Either let us style them, or let us hide them, but don't make us re-invent the wheel just because you don't want our code to be "browser specific". Writing a new validation system just for Chrome is going to be much more "browser (chrome) specific" code than setting "::-webkit-validation-bubble, ::-webkit-validation-bubble * { display: none; }. This isn't just an annoyance, it's a huge disadvantage to any developer who wants to easily utilize Chrome's built in validation. I usually brag about how wonderful Chrome is, but I'm starting to think it's heading in another direction...

    1. Beykat yi duñu dem tool altine.

      Les cultivateurs ne vont pas au champ le lundi.

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

      yi -- the (indicates plurality).

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

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

      tool bi -- field, orchard.

      altine ji -- (Arabic) Monday.

  4. afarkas.github.io afarkas.github.io
    1. Webshim is also more than a polyfill, it has become a UI component and widget library. Webshim enables a developer to also enhance HTML5 capable browsers with more highly customizable, extensible and flexible UI components and widgets.

      And now that it's deprecated (presumably due to no longer needing these polyfills), not only do the polyfills go away (no longer maintained), but also these unrelated "extras" that some of us may have been depending on are now going away with no replacement ...

      If those were in a separate package, then there would have been some chance of the "extras" package being updated to work without the base webshims polyfills.

      In particular, I was using $.webshims.addCustomValidityRule which adds something that you can't do in plain HTML5 (that I can tell), so it isn't a polyfill...

  5. Feb 2021
    1. For branching out a separate path in an activity, use the Path() macro. It’s a convenient, simple way to declare alternative routes

      Seems like this would be a very common need: once you switch to a custom failure track, you want it to stay on that track until the end!!!

      The problem is that in a Railway, everything automatically has 2 outputs. But we really only need one (which is exactly what Path gives us). And you end up fighting the defaults when there are the automatic 2 outputs, because you have to remember to explicitly/verbosely redirect all of those outputs or they may end up going somewhere you don't want them to go.

      The default behavior of everything going to the next defined step is not helpful for doing that, and in fact is quite frustrating because you don't want unrelated steps to accidentally end up on one of the tasks in your custom failure track.

      And you can't use fail for custom-track steps becase that breaks magnetic_to for some reason.

      I was finding myself very in need of something like this, and was about to write my own DSL, but then I discovered this. I still think it needs a better DSL than this, but at least they provided a way to do this. Much needed.

      For this example, I might write something like this:

      step :decide_type, Output(Activity::Left, :credit_card) => Track(:with_credit_card)
      # Create the track, which would automatically create an implicit End with the same id.
      Track(:with_credit_card) do
          step :authorize
          step :charge

      I guess that's not much different than theirs. Main improvement is it avoids ugly need to specify end_id/end_task.

      But that wouldn't actually be enough either in this example, because you would actually want to have a failure track there and a path doesn't have one ... so it sounds like Subprocess and a new self-contained ProcessCreditCard Railway would be the best solution for this particular example... Subprocess is the ultimate in flexibility and gives us all the flexibility we need)

      But what if you had a path that you needed to direct to from 2 different tasks' outputs?

      Example: I came up with this, but it takes a lot of effort to keep my custom path/track hidden/"isolated" and prevent other tasks from automatically/implicitly going into those steps:

      class Example::ValidationErrorTrack < Trailblazer::Activity::Railway
        step :validate_model, Output(:failure) => Track(:validation_error)
        step :save,           Output(:failure) => Track(:validation_error)
        # Can't use fail here or the magnetic_to won't work and  Track(:validation_error) won't work
        step :log_validation_error, magnetic_to: :validation_error,
          Output(:success) => End(:validation_error), 
          Output(:failure) => End(:validation_error) 
      puts Trailblazer::Developer.render o
       {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model>
       {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=save>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=save>
       {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Right} => #<End/:success>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Left} => #<End/:validation_error>
       {Trailblazer::Activity::Right} => #<End/:validation_error>

      Now attempt to do it with Path... Does the Path() have an ID we can reference? Or maybe we just keep a reference to the object and use it directly in 2 different places?

      class Example::ValidationErrorTrack::VPathHelper1 < Trailblazer::Activity::Railway
         validation_error_path = Path(end_id: "End.validation_error", end_task: End(:validation_error)) do
          step :log_validation_error
        step :validate_model, Output(:failure) => validation_error_path
        step :save,           Output(:failure) => validation_error_path
      o=Example::ValidationErrorTrack::VPathHelper1; puts Trailblazer::Developer.render o
       {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model>
       {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=save>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Right} => #<End/:validation_error>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=save>
       {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Right} => #<End/:success>

      It's just too bad that:

      • there's not a Railway helper in case you want multiple outputs, though we could probably create one pretty easily using Path as our template
      • we can't "inline" a separate Railway acitivity (Subprocess "nests" it rather than "inlines")
    2. 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?

    3. This connects the failure output to the previous task, which might create an infinity loop and waste your computing time - it is solely here for demonstrational purposes.
    1. Personally, I'm starting to think that the feature where it automatically adds xray.js to the document is more trouble than it's worth. I propose that we remove that automatic feature and just make it part of the install instructions that you need to add this line to your template/layout: <%= javascript_include_tag 'xray', nonce: true if Rails.env.development? %>
    1. The link name is not very helpful, it doesn’t explain what it does very well.
    2. Another big issue is that the config wasn’t really expressive enough. From the beginning Rails needed a way to say “only compile application.css and application.js, but compile ALL images” by default. With our previous interface, we’re limited to only strings.
    3. That’s pretty gnarly. While the name of the constant LOOSE_APP_ASSETS gives me some idea of what it does, it still takes a second to wrap your mind around. If you were trying to figure out what assets are being precompiled and you did a puts config.assets.precompile that lambda object would be utterly baffling.
    4. Another thing I don’t like: our asset behavior is decoupled from the assets. If you’re mucking around in your app/assets folder, then you have to first know that such a config exists, and then hunt it down in a totally different config folder. It would be nice if, while we’re working in asset land, we didn’t have to mentally jump around.
    1. Good intentions, but I doubt there's any relation of the origin of the terms blacklist/whitelist to race. There are many idioms and phrases in the English language that make use of colours without any racial backstories. I haven't met any black person (myself included) who was ever offended by the use of "blacklist".
    1. Literally, everything in this example can go wrong. Here’s an incomplete list of all possible errors that might occur: Your network might be down, so request won’t happen at all The server might be down The server might be too busy and you will face a timeout The server might require an authentication API endpoint might not exist The user might not exist You might not have enough permissions to view it The server might fail with an internal error while processing your request The server might return an invalid or corrupted response The server might return invalid json, so the parsing will fail And the list goes on and on! There are so maybe potential problems with these three lines of code, that it is easier to say that it only accidentally works. And normally it fails with the exception.
    2. And we can specify types of wrapped values in a function return annotation, for example Result[float, ZeroDivisionError] returns either Success[float] or Failure[ZeroDivisionError].
    3. we also wrap them in Failure to solve the second problem: spotting potential exceptions is hard
    4. exceptions are not exceptional, they represent expectable problems
    5. Exceptions are not exceptional
    6. Almost everything in python can fail with different types of exceptions: division, function calls, int, str, generators, iterables in for loops, attribute access, key access, even raise something() itself may fail. I am not even covering IO operations here. And checked exceptions won’t be supported in the nearest future.
    7. You still need to have a solid experience to spot these potential problems in a perfectly readable and typed code.
    8. print will never be actually executed. Because 1 / 0 is an impossible operation and ZeroDivisionError will be raised.
    1. So every program starts in the IO monad. From here you can get any input you need, call into relatively "pure" code with the inputs, and then output the result in some way. The reverse does not work. You cannot call into IO code from pure code like you can call into a Maybe function from pure code.
    1. it is inconvenient to write specific implementations for each datatype contained, especially if the code for each datatype is virtually identical. For example, in C++, this duplication of code can be circumvented by defining a class template
    1. which entails computer programming (process of writing and maintaining the source code), but also encompasses a planned and structured process from the conception of the desired software to its final manifestation
    1. note that TRB source code modifications are not proprietary

      In other words, you can build on this software in your proprietary software but can't change the Trailblazer source unless you're willing to contribute it back.

      loophole: I wonder if this will actually just push people to move their code -- which at the core is/would be a direction modification to the source code - out to a separate module. That's so easy to do with Ruby, so this restriction hardly seems like it would have any effect on encouraging contributions.

    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. To repair the Outlook index when Microsoft Outlook mail search not working, type control in the Windows search bar and then select the suitable option to open the Control Panel. Now, navigate to Programs and then Programs & Features. After that, scroll down and select Outlook 2016 or Microsoft Office. Now, select Change from the top menu, and choose Quick repair. After that, select Repair to fix Outlook search no results issues.

    2. Gmail is a free email service developed by Google. To fix Gmail not receiving email on Android, first try and update Gmail Application on your device. Remove your Gmail account from the “Accounts & Passwords” located in “Settings” of your device and add it back. Clear the cache by going to “Settings” on the device, then tapping on “Apps manager,” locating and selecting “Gmail” from the list and tapping on “Clear Cache.”

    1. stolen love from the child and infant and made it the exclusive property of the adolescent and adult

      Love is not exclusive to adults and adolescents as there are many types of love. I do not believe it has been stolen but added to love in general.

    1. Since we're using an interaction, we don't need strong parameters. The interaction will ignore any inputs that weren't defined by filters. So you can forget about params.require and params.permit because interactions handle that for you.
    1. The great thing about working with reinteractive is you get to work directly with the developers, which is a huge plus. As a technical founder, I find proxying through a project manager adds unnecessary layers of complexity and creates opportunity for human error.
    1. By explicitly defining the form layout using ::property there is no more need for protecting from unwanted input. strong_parameter or attr_accessible become obsolete. Reform will simply ignore undefined incoming parameters.
    1. Any attribute in the list will be allowed, and any defined as attr_{accessor,reader,writer} will not be populated when passed in as params. This means we no longer need to use strong_params in the controllers because the form has a clear definition of what it expects and protects us by design.

      strong params not needed since form object handles that responsibility.

      That's the same opinion Nick took in Reform...