236 Matching Annotations
  1. Feb 2024
    1. Its a bit tricky because of the ambiguity of how the args get presented. You can see through the little demo the args are presented the same way whether its a straight kwargs or a hash, but the assignment of the args to parameters is different. def foo(*args) puts args.inspect end def bar(x=1, a:2) puts "x:#{x} a:#{a}" end foo(:a => 1) # [{:a=>1}] foo({:a => 1}) # [{:a=>1}] bar(:a => 1). # x:1 a:1 bar({:a => 1}). # x:{:a => 1} a:2
    1. accepting an answer doesn't mean it is the best one. For me it is interesting how argumentation of some users is reduced to "Hey, the editor has 5000+ edits. Do not ever think that a particular edit was wrong."
    1. Regardless of what your arguments are, the personal reasons of the developer are what matters for what platforms this game is provided on. You can choose to pay for the game, or not. Paying for the game supports the developer, and allows them to develop more. It is not reasonable to argue that someone should have put in additional unpaid effort to do something for unknown future benefit, or that they should charge less for a game because it's only available on one platform; that's their choice, and their decision.For context, development of Taiji was started in mid 2015; it took seven years to finish. That's with the Commercial Game Engine, and even with that, there were platform-based bugs that needed to be worked around (issues that won't be present on other platforms, or will have different presentations); here's just one of those, involving an issue around mouse sluggishness:https://taiji-game.com/2020/07/13/68-in-the-mountains-of-madness-win32-wrangling...If the developer is not already familiar with Linux, then there's a small mountain of language barriers around using Linux that needs to be overcome first, before being able to get to the game development phase. It's rare for game development to work on different platforms when it can't be tested on those different platforms. While it might be easy to cross-compile on a Windows system (e.g. via IL2CPP), that's only if everything works perfectly (which is unlikely to be the case). 
  2. Dec 2023
    1. They don't want their intimate convic-tions turned over and examined, and itis unfortunate that the emphasis put

      upon minor differences by men of science and belief in their strenuous search for the completest truth and the exactest expression sometimes gives color to this sort of misunderstanding.

      This emphasis on minor differences is exactly what many anti-science critics have done. See examples with respect to evolution and climate science denial.

  3. Nov 2023
    1. The rejection of the provincial assemblies’ petition movement for a national parliament had already led many constitutionalists to accept the necessity of revolution, i

      they tried to get reform through legal processes but then had to resort to revolution when this didn't work

    2. unity of the five races advocated by the constitutionalists helped keep the border regions of the Qing Empire together.

      simultaneous ethnic/racial unity and disunity

    3. socially regressive, but recognizes the politically progressive contributions of the constitutionalist gentry in leading the transition to a republican form of government.

      proggress? or disruption

    4. revolutionaries may have both appealed to and created anti-Manchu sentiment through their propaganda.
    5. The revolution happened suddenly, unlike other revolutions that were long and protracted.
    1. yeah - it is basically half the stuff you don't want autoloaded and half app/lib but it is not called app/lib because DHH does not want app/lib"
    2. I stand by what I said and I do not believe it is off-topic. Nevertheless, I realize it is your forum and if you want to silence and exclude people because something we say does not fit in your worldview, then I am certainly willing to accept this and remove myself from the forum. In the big picture, I will not be shut up or bullied and I think you owe me an apology as nothing I have said or done warrants your actions.
  4. Oct 2023
    1. we have Dharma friends in Russia we have Dharma friends in Ukraine they're 00:01:20 in touch with each other the Dharma uh links these people even though their countries are at War um we also have Dharma friends in Israel 00:01:36 and okay there's some crossover here s
      • for: non-polarization, transcending differences during war
  5. Sep 2023
    1. files with characters after the last newline are not text files, and those characters don't constitute a line. In many cases those bogus characters are better left ignored or removed, though there are cases where you may want to treat it as a extra line, so it's good you show how.
    1. The key differences between #inject and #scan_left are: Incremental results: #scan_left returns a series of results after processing each element of the input series. #inject returns a single value, which equals the final result in the series returned by #scan_left. Laziness: #scan_left can preserve the laziness of the input series. As each incremental result is read from the output series, the actual calculation is lazily performed against the input. #inject cannot be a lazy operation in general, as its single result reflects a calculation across every element of the input series.
  6. Aug 2023
  7. Jul 2023
    1. "Data models for different systems are arbitrarily different. The result of this is that complex interfaces are required between systems that share data. These interfaces can account for between 25-70% of the cost of current systems".
    1. But in almost all English sentences containing »there is«, these words do not mean »in this place is« but »it exists«. But the German words »da ist« do not have the meaning »it exists«. They only mean »in this place is«.
  8. Jun 2023
    1. If we hand most, if not all responsibility for that exploration to the relatively small number of people who talk at conferences, or have popular blogs, or who tweet a lot, or who maintain these very popular projects and frameworks, then that’s only a very limited perspective compared to the enormous size of the Ruby community.
  9. Mar 2023
    1. discussions about SMS-2FA get heated very quickly. I've found that SMS-2FA deployment or advocacy has been a major professional project for some people, and they take questioning it's efficacy personally
  10. Feb 2023
    1. Is Muni, is the Sage, the true Recluse! He who to none and nowhere overbound By ties of flesh, takes evil things and good Neither desponding nor exulting, such Bears wisdom’s plainest mark!

      In this excerpt, Krishna is explaining yoga and mindfulness to Arjuna. He describes how the saint, or "Muni", stays awake when the world is asleep, and does not take interest in what the world lives for. "Muni" translates to "the silent one"; someone who can "control and silence their illogical thoughts". (Prasad). By practicing silence, munis are able to reach a higher level of consciousness and more spiritual holiness is achieved.

  11. Nov 2022
    1. I have rolled back your edit to Jukka K. Korpela's answer. Please include that information in this answer and/or add a comment to the other answer.
    2. Why not just include the information there and delete this answer?
  12. Oct 2022
    1. This distinguishes this grammar from other programming languages or domain-specific languages.
  13. Sep 2022
  14. Jul 2022
  15. Apr 2022
    1. Generates the following sql in sqlite3: "SELECT \"patients\".* FROM \"patients\" INNER JOIN \"users\" ON \"users\".\"id\" = \"patients\".\"user_id\" WHERE (\"users\".\"name\" LIKE '%query%')" And the following sql in postgres (notice the ILIKE): "SELECT \"patients\".* FROM \"patients\" INNER JOIN \"users\" ON \"users\".\"id\" = \"patients\".\"user_id\" WHERE (\"users\".\"name\" ILIKE '%query%')" This allows you to join with simplicity, but still get the abstraction of the ARel matcher to your RDBMS.
  16. Mar 2022
    1. Results showed that men prefer working with things and women prefer working with people, producing a large effect size (d = 0.93) on the Things-People dimension.
  17. Jan 2022
  18. Dec 2021
  19. Nov 2021
    1. Type aliases and interfaces are very similar, and in many cases you can choose between them freely. Almost all features of an interface are available in type, the key distinction is that a type cannot be re-opened to add new properties vs an interface which is always extendable.
  20. Sep 2021
    1. Mac: "3-bar" menu button (or Firefox menu) > Preferences Windows: "3-bar" menu button (or Tools menu) > Options Linux: "3-bar" menu button (or Edit menu) > Preferences
    1. She looked at me, noticing my bare feet. (I still felt strange wearing shoes indoors, and always removed them before entering my room.) "Are you new to Boston?

      In America it’s normal to wear shoes in house, but not really in the east side of the world

    2. I read every article and advertisement, so that I would grow familiar with things,

      reflects the work that emigration or a new country or an unknown culture requires

    3. . "God bless America!" one of them hollered. Across the aisle, I saw a woman praying. I spent my first night a

      new national customs, integration

    1. Which do you prefer? If the answer was "the first" then read no further. You have all you need, go forth and be happy.

      good example of: not just assuming people are dissatisfied / will want to change

    1. Saying that web devs used to be fine with relative imports is like saying that human beings used to be fine living without refrigerators. Sure we did. But was it better than it is now? No. No, it wasn't.
    2. Aliases are absolute nonsense for resolving imports. If you don't want to type ../ consider using something like path.resolve(__dirname, '../src') so you can do import Stuff from 'client/components/stuff'; // relative to root of project instead of: import Stuff from 'COMPONENTS/stuff'; // this is dumb
    1. Yeah I don’t think we will find something that works for everyone in all cases. But Webpacker is quite flexible with the setup it has now. Easy to change!
    2. I feel like app/packs (or something like it) is a good name because it communicates to developers that it's not just JavaScript that can be bundled, it's also CSS, images, SVGs — you name it. I realize what can be bundled is wholly dependent on the bundler you use, but even esbuild supports bundling CSS. So couldn't this possibly be confusing?
    1. Some would argue that the phrase ''survival of the fittest'' is tautological, in that the fittest are defined as those that survive to reproduce.
  21. Jul 2021
    1. correlated with disease progression

      Indeed this distinction between the immune systems of males and females is to be considered when developing vaccines against SARS-Co-V2. (DOI: 10.1021/acs.molpharmaceut.1c00291)

  22. Jun 2021
    1. Different ways to prepend a line: (echo 'line to prepend';cat file)|sponge file sed -i '1iline to prepend' file # GNU sed -i '' $'1i\\\nline to prepend\n' file # BSD printf %s\\n 0a 'line to prepend' . w|ed -s file perl -pi -e 'print"line to prepend\n"if$.==1' file
    1. To avoid the problems with different versions of echo you may want to use printf instead. In contrast to echo printf always interprets \ sequences but doesn't automatically add a linefeed at the end so you have to append \n at the end if you want one.
    1. According to official Actioncable guide, Actioncable creates multiple redis pubsub channels.
    2. Yes, AnyCable uses only a single Redis pub/sub channel. Unlike Action Cable, anycable-go manages the actual subscriptions by itself (see hub.go), we only need a single channel to get broadcasts from web apps to a WS server, which performs the actual retransmission. Check out https://docs.anycable.io/#/v1/misc/how_to_anycable_server
    1. Time returned from a database can differ in precision from time objects in Ruby, so we need flexible tolerances when comparing in specs. We can use be_like_time to compare that times are within one second of each other.
    1. 語 is the suffix which means 'language'. Unlike English which needs two different nouns for a country and its language, in Japanese, you can simply add 語 after the name of a country to mean the language spoken in that country. (e.g. ドイツ = Germany, ドイツ語 = German, フランス = France, フランス語 = French)
  23. May 2021
    1. women

      Vahidy et al: Men are more likely to test positive, have complications, require ICU admission and mechanical ventilation and have higher mortality than females, independent of age.

      Peckham et al: Meta-analysis of 3,111,714 reported global cases - males are 3x more likely to require ICU admission and have higher odds of death.


      Vahidy FS, Pan AP, Ahnstedt H, Munshi Y, Choi HA, et al. (2021) Sex differences in susceptibility, severity, and outcomes of coronavirus disease 2019: Cross-sectional analysis from a diverse US metropolitan area. PLOS ONE 16(1): e0245556. https://doi.org/10.1371/journal.pone.0245556

      Peckham, H., de Gruijter, N.M., Raine, C. et al. Male sex identified by global COVID-19 meta-analysis as a risk factor for death and ITU admission. Nat Commun 11, 6317 (2020). https://doi.org/10.1038/s41467-020-19

    1. Email tools/clients are inconsistent in how they render HTML and CSS. A designed email might look great in Gmail, broken in Outlook, and unreadable in Apple Mail. Half of all emails are opened on mobile devices (according to one study). Email looks good in different clients? Great, now make it work on a 4" screen just as well as on a desktop.
  24. 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. Games that aren't really like rogue, but tagged roguelike. Lite on rogue elements, they should be tagged as roguelite or genre_roguelike instead. For more info, check out: http://en.wikipedia.org/wiki/Roguelike
    1. i found that for the osx host "gonzo" , the vanished files (not the warning message itself) appear in stdout - for linux hosts they _both_ appear in stderr , but nothing in stdout (rsync.err.#num is stderr, rsync.log is stdout)
    1. Because it's totally and completely different? The games have nothing in common except that they both use square cardboard tiles with terrain on them.I agree, but I would go further and claim that they don't even have square tiles in common!
    2. Because it's totally and completely different? The games have nothing in common except that they both use square cardboard tiles with terrain on them.
    1. Once established, however, it spreads slowly. Unlike aggressive Kentucky bluegrass, which spreads by underground stems called rhizomes, perennial ryegrass is a bunch-forming grass. Like tall fescue, it naturally grows in clumps and spreads through vertical shoots known as tillers, rather than spreading by rhizomes or horizontal above-ground stems, known as stolons.
  25. Mar 2021
  26. Feb 2021
  27. Jan 2021
    1. In contrast to the Chinese civil service examinations, tests in ancient Greek societ-ies were not written but were typically oral or performance based. Examinations were conducted for the purpose of determining whether men (and of course then it was only men) were qualified for various aspects of Greek life and citizenship; examinations were not, as far as we know, used to select citizens for government positions.

    Tags

    Annotators

    1. Slogans can therefore be longer than taglines
    2. Taglines are more often next to the company's logo on official advertisements, and are dedicated more specifically to brand awareness than slogans. Slogans carry a brand's values and promises as the company grows and evolves, and can be promoted under an overarching company tagline.
    1. The only difference is that in this case “auto” will not work, but instead “height: 100%” is required.
    1. It’s true that the auto value would do the same, but auto isn’t quite as robust since it’s size is based on the content inside.
    1. A bind mount is basically where you mount a given directory on top of an existing one. Suppose you have a RAID array where you have a partition mounted at /home2, containing some larger user accounts. If you wanted to remount /home2/user to /home/user (to sidestep issue #1), without the issues that come along with symlinks (it is not a directory, just a token that points to it), you'd do something like mount --bind /home2/bob /home/bob and the directory will then be traversable from both locations. The target folder must exist, same as any mount point. The end result is somewhat similar to a symlink, but instead of creating a special filesystem object, it utilizes the operating system's filesystem mounting machinery to do it, which makes it more transparent to running software. Tools like 'du' and 'find' will still be aware that they are cross filesystem boundaries, and will also behave as such if the bind mount is entirely within a given filesystem. Finally, as they're transient by nature (unlike symlinks), they need to be placed in fstab or some startup script to make them persistent.
    1. Open About Popover

      I have to say, I like how it looks in their Apple and Desktop preview better than the Android/Material preview. I wish they had the arrow in Android Material too.

      But on https://sveltematerialui.com/demo/menu-surface it doesn't bother me quite as much...

    1. In my opinion, it can sometimes look odd. Very interestingly, this is by design and is part of the Material design specification. This article isn’t to argue whether it should be this way or not, though; it’s just to change yours such that your MenuItem(s) show below the menu selection, like so:
    1. By default, menus open with an entrance animation. However, on desktop, menus can skip the animation and open instantly instead.

      Why only on desktop? That delay drives me crazy. I would like to skip on web/mobile too.

    1. A notable difference between OS dialogs and Material dialogs is that OS dialogs save the work when a user dismisses a dialog but Material dialogs don’t.
    2. The difference is that a UWP pop-up dialog requires explicit action from the user as to a flyout is more peripheral and easy-to-dismiss.
  28. Dec 2020
    1. React abstracts the DOM with functionally pure declarative rendering and provides escape hatches back to mutable imperative DOM land. This is a profound philosophical difference that Rich gave a talk about.
  29. Nov 2020
    1. The delete operator does not directly free memory, and it differs from simply assigning the value of null or undefined to a property, in that the property itself is removed from the object.
    1. The same emoji will not look the same across every device. Each operating system has its own design language. For example, take a look at how the smiley face renders across various platforms:<img src="https://www.smartrmail.com/blog/wp-content/uploads/2020/03/image15.png" alt="smiley face across different mobile devices" class="wp-image-5429"/>The differences are subtle, but for some emojis the differences are much more pronounced. The t-shirt for instance completely changes color.<img src="https://www.smartrmail.com/blog/wp-content/uploads/2020/03/image6.png" alt="how t-shirt renders across different mobile devices" class="wp-image-5430"/>So one subject line you definitely don’t want to send your email with is “Flash Sale on Blue T-Shirts ”
    1. Content is what is passed as children usually to be projected at some <ng-content> element of a component. View is the template of the current component. The view is initialized after the content and ngAfterViewInit() is therefore called after ngAfterContentInit().
    1. This is Sass based, and therefore doesn't require Svelte components

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

      Compare:

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

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

        • And they were probably wise to not do so. Just reuse the existing work from the Material team so that there's less work for you to keep in sync and less chance of divergence.
    1. If you would like a process management tool with a lot of features, including tmux support, restarting and killing individual processes and advanced configuration, you should take a look at Hivemind's big brother — Overmind!
    1. If a lot of those features seem like overkill for you, especially the tmux integration, you should take a look at Overmind's little sister — Hivemind!
    1. Prettier’s printWidth option does not work the same way. It is not the hard upper allowed line length limit. It is a way to say to Prettier roughly how long you’d like lines to be. Prettier will make both shorter and longer lines, but generally strive to meet the specified printWidth. Remember, computers are dumb. You need to explicitly tell them what to do, while humans can make their own (implicit) judgements, for example on when to break a line. In other words, don’t try to use printWidth as if it was ESLint’s max-len – they’re not the same. max-len just says what the maximum allowed line length is, but not what the generally preferred length is – which is what printWidth specifies.
    1. apt-get upgrade is restricted to the case where packages are to be replaced by newer versions, but no package needs to be added or removed.

      from dist-upgrade

    1. On a user-defined bridge network, containers can resolve each other by name or alias.But, The containers on the default bridge network can only access each other by IP addresses, unless you use the --link option, which is considered legacy.
  30. Oct 2020
    1. Secondly, whether this works is highly dependent on the module bundler. For example, in codesandbox, when bundling our app with Parcel (or Webpack or Rollup), this solution doesn’t work. However, when running this locally with Node.js and commonJS modules this workaround might work just fine.
    1. Doing so also means adding empty import statements to guarantee correct order of evaluation of modules (in ES modules, evaluation order is determined statically by the order of import declarations, whereas in CommonJS – and environments that simulate CommonJS by shipping a module loader, i.e. Browserify and Webpack – evaluation order is determined at runtime by the order in which require statements are encountered).

      Here: dynamic loading (libraries/functions) meaning: at run time

    2. Replaced nested `require` statements with `import` declarations for the sake of a leaner bundle. This entails adding empty imports to three files to guarantee correct ordering – see https://github.com/styled-components/styled-components/pull/100
    1. One of the significant differences between the two is that a call to a partially applied function returns the result right away, not another function down the currying chain; this distinction can be illustrated clearly for functions whose arity is greater than two.
    1. A ponyfill is almost the same as a polyfill, but not quite. Instead of patching functionality for older browsers, a ponyfill provides that functionality as a standalone module you can use.
    1. The important goal here is that if we're going to introduce different semantics between classes and function components, we need to know before calling them which semantics we're going to apply.
    1. The Shadow DOM is a browser technology designed primarily for scoping variables and CSS in web components. The virtual DOM is a concept implemented by libraries in JavaScript on top of browser APIs.
    1. The second issue is that React's JSX uses className to denote the class property on an element, whereas Deku uses class. Therefor JSX written for Deku will always error when linted by standard.
    1. Unlike DOM events, component events don't bubble. If you want to listen to an event on some deeply nested component, the intermediate components must forward
    1. So while Solid's JSX and might resemble React it by no means works like React and there should be no illusions that a JSX library will just work with Solid. Afterall, there are no JSX libraries, as they all work without JSX, only HyperScript or React ones.
    1. Remember even though the syntax is almost identical, there are significant differences between how Solid's JSX works and a library like React.
    1. In Formik, validateOnBlur defaults to true and it allows you to tell Formik not to validate on blur. React Final Form validates on every change by default, and setting validateOnBlur to true is a way to tell React Final Form to only validate on blur (to not validate on change).
    1. t’s not clear why the sequence of the vaccines only mattered in girls, partly because there has been very little research into how male and female immune systems are different. “Somehow immunology has been blind to sex,” says Aaby. “If you read research about mortality in low income countries, there is no such thing as boys and girls – there are children. So we perceive that they have to be the same, and they are definitely not the same.”

      Take away: "Immune training" or bystander effects from other vaccinations may help to fight off Covid-19 or other infections, in spite of not being specific to that pathogen. Some of these effects are sex-specific.

      Claim: "Somehow immunology has been blind to sex"

      The evidence: This is not entirely true- there is actually a LOT of research into sex differences in the immune response, and it is well-known that women can generally mount stronger Th1-type immune responses against viral infections than men. This is thought to be partially linked to estrogen cycling, and partly due to the fact that women have 2 active copies of genes associated with immunity because those are encoded on the X chromosomes. Men only have 1 copy, and thus they don't generally mount as strong an inflammatory response. However, women are also more prone to autoimmune diseases as a consequence of having stronger inflammatory responses than men, which is seen in diseases such as multiple sclerosis, rheumatoid arthritis, and lupus.

      Sources: (https://www.nature.com/articles/nri.2016.90).

  31. Sep 2020
    1. Next.js is a React framework from Vercel (formerly ZEIT), and is the inspiration for Sapper. There are a few notable differences, however:
    2. It lives in a context="module" script — see the tutorial — because it's not part of the component instance itself; instead, it runs before the component is created, allowing you to avoid flashes while data is fetched.
    1. Actually just returning the loginDaoCall works fine. I dont really get what's different as it is the looked like it was the same instance, but probably not.

      So the posted answer wasn't necessary/correct? Which part of the answer was incorrect/unneeded?

      I wish this OP comment included the full version of code that worked.

      I don't understand this OP comment. Wasn't OP already returning loginDaoCall? So maybe the only thing they could mean is that they just needed to change it to return loginDaoCall.then(...) instead...

      That would be consistent with what the answer said:

      the promise returned by the further .then() does also get rejected and was not handled.

      So I guess the unnecessary part of the answer was adding the return true/false...

    1. This is a framework and it comes with certain opinions about how things should be done, this isn't unique to Svelte. And before we can decide whether or not we will allow certain behaviour or encourage it with better ergonomics, we have to have a conversation about whether or not we should be doing things that way. You can't separate the can from the should in an opinionated framework. We want to make building UIs simpler, for sure, but also safer we don't want to add ease of use at the expense of component encapsulation, there has to be a balance
    1. Le Bert, N., Tan, A. T., Kunasegaran, K., Tham, C. Y. L., Hafezi, M., Chia, A., Chng, M. H. Y., Lin, M., Tan, N., Linster, M., Chia, W. N., Chen, M. I.-C., Wang, L.-F., Ooi, E. E., Kalimuddin, S., Tambyah, P. A., Low, J. G.-H., Tan, Y.-J., & Bertoletti, A. (2020). SARS-CoV-2-specific T cell immunity in cases of COVID-19 and SARS, and uninfected controls. Nature, 584(7821), 457–462. https://doi.org/10.1038/s41586-020-2550-z

  32. Aug 2020
  33. Jul 2020
    1. Where a slogan differs from a tagline is its scope: A tagline should represent your business, while a slogan represents a single product or is part of an advertising campaign.
    1. On Windows, wall time is measured using GetTickCount(), on MacOS by mach_absolute_time, on Linux by clock_gettime and otherwise by gettimeofday.
  34. Jun 2020
  35. May 2020
    1. For instance, cor does not distribute over cand: compare (A cand B) cor C with (A cor C) cand (B cor C); in the case ¬A ∧ C , the second expression requires B to be defined, the first one does not
    1. So what’s the difference between returning a product on the grounds of withdrawal and returning it on the grounds of a guarantee?
    2. A real-world example of this would be an e-commerce site that allows users to “hold” items in their cart while they’re using the site or for the duration of a session. In this scenario, the technical cookies are both necessary for the functioning of the purchasing service and are explicitly requested by the user when they indicate that they would like to add the item to the cart. Do note, however, that these session-based technical cookies are not tracking cookies.

      I'm not sure I agree with this:

      [the technical cookies] are explicitly requested by the user when they indicate that they would like to add the item to the cart.

      The only thing they requested was that the item be held in a cart for them. They didn't explicitly request that cookies be used to store information about items in the cart. They most likely don't understand all of the options for how to store data like this, and certainly wouldn't know or expect specifically that cookies be used for this.

      In fact, localStorage could be used instead. If it's a single-page app, then even that would be necessary; it could all be kept in page-local variables until they checked out (all on the same page); such that reloading the page would cause the cart data held in those variables to be lost.

  36. Apr 2020
    1. Finally, from a practical point of view, we suggest the adoption of "privacy label," food-like notices, that provide the required information in an easily understandable manner, making the privacy policies easier to read. Through standard symbols, colors and feedbacks — including yes/no statements, where applicable — critical and specific scenarios are identified. For example, whether or not the organization actually shares the information, under what specific circumstances this occurs, and whether individuals can oppose the share of their personal data. This would allow some kind of standardized information. Some of the key points could include the information collected and the purposes of its collection, such as marketing, international transfers or profiling, contact details of the data controller, and distinct differences between organizations’ privacy practices, and to identify privacy-invasive practices.
    1. For instance, if an IP address is sent with an ad request (which will be the case with almost any ad request as a consequence of internet protocols), that transmission will not breach any prohibition on sending PII to Google.
    2. Google interprets PII to exclude, for example: pseudonymous cookie IDs pseudonymous advertising IDs IP addresses
    3. data excluded from Google's interpretation of PII may still be considered personal data under the GDPR