20 Matching Annotations
  1. Nov 2022
  2. Sep 2022
    1. This is a distillation of the results of 230+ comments on #515, not to mention the 300+ comments spread across several other older issues that fed into that one. I know it's long. Please don't complain unless you can offer a shorter write-up. :-)
  3. Aug 2022
  4. Aug 2021
  5. May 2021
  6. Nov 2020
  7. Oct 2020
    1. Look at their Readme:

      Well we have had a great time adding field validations, but there are validations that are tied up to the whole record we are editing than to a given field, for instance let's face this scenario:
      
      - You are not allowed to transfer more than 1000 € to Switzerland using this form (for instance: you have to go through another form where some additional documentation is required).
      
      - The best place to fire this validation is at record level.
      
      - Record validation functions accept as input parameter that whole form record info, and return the result of the validation (it accepts both flavours sync and promise based), let's check the code for this validator:
      
      ...
      
  8. Sep 2020
  9. May 2020
    1. In depth
    2. The Analytics JavaScript Tag When a JavaScript-enabled web browser loads a page with the Analytics tag (ga.js or analytics.js), it does two things asynchronously: load and process the Analytics function queue and request the Analytics JavaScript. The function queue is a JavaScript array where the different Analytics configuration and collection functions are pushed. These functions, which are set by the site owner when implementing Analytics can include functions like specifying the Analytics account number and actually sending page view data to the Analytics Collection Network for processing. When the Analytics JavaScript runs a function from the function queue that triggers data to be sent to the Analytics Collection Network (this function is typically ga('send', 'pageview') in the analytics.js JavaScript library and _trackPageview in the ga.js library), it sends the data as URL parameters attached to an HTTP request for http://www.google-analytics.com/_utm.gif (for ga.js) and http://www.google-analytics.com/collect (for analytics.js). If the anonymization function has been called prior to the page tracking function, an additional parameter is added to the pixel request. The IP anonymization parameter looks like this: &aip=1 The Analytics Collection Network The Analytics Collection Network is the set of servers that provide two main services: the serving of ga.js and analytics.js (the Analytics JavaScript) and the collection of data sent via requests for _utm.gif and /collect. When a request for ga.js, analytics.js, _utm.gif, or /collect arrives, it includes additional information in the HTTP request header (i.e. the type of browser being used) and the TCP/IP header (i.e. the IP address of the requester). As soon as a request for _utm.gif arrives, it is held in memory for anonymization. If the &aip=1 parameter is found in the request URL (as it would have been placed by the Analytics JavaScript after processing the anonymization function in ga.js or analytics.js ), then the last octet of the user IP address is set to zero while still in memory. For example, an IP address of 12.214.31.144 would be changed to 12.214.31.0. (If the IP address is an IPv6 address, the last 80 of the 128 bits are set to zero.) Only after this anonymization process is the request written to disk for processing. If the IP anonymization method is used, then at no time is the full IP address written to disk as all anonymization happens in memory nearly instantaneously after the request has been received.
  10. Nov 2019
  11. Oct 2019
  12. Sep 2019