652 Matching Annotations
  1. 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??

  2. Nov 2020
    1. If I understand the problem correctly, just changing the imports to point to svelte/internal isn't enough because they could still point to different packages depending on how your components are bundled. It solved your specific issue, but if you had two completely unrelated Svelte components compiled to vanilla javascript bundled with Svelte, you'd still hit issues with mismatching current_component when using slots or callbacks.
    2. It sounds like another case of multiple svelte/internal modules? I think we need to look into reworking how svelte/internal keeps track of the current component since it breaks when mixing components not bundled with the app. It sounds like we need to find a way to pass Svelte's internal runtime state when instantiating components, since slots and callbacks end up mixing different svelte/internal together.
    1. A Chrome Extension designed with one intention: Increase the speed and privacy of your web browsing by skipping tracking redirects and removing the tracking parameters from URLs to keep them short and cleaner for sharing, bookmarking, etc.
    1. Man, for some reason, I really like this answer. I recognize it's a bit more complicated, but it seems so useful. And given that I'm no bash expert, it leads me to believe that my logic is faulty, and there's something wrong with this methodology, otherwise, I feel others would have given it more praise. So, what's the problem with this function? Is there anything I should be looking out for here?

      I think the main thing wrong with it is the eval (which I think can be changed to $("$@") and it's pretty verbose.

      Also, there are more concise ways to do it that would probably appeal more to most bash experts...

      like set -x

      and it does unnecessary things: why save output to a variable? Just let output go to where it would normally go...

      So yeah, I can see why this solution isn't very popular. And I'm rather surprised by all the praise comments it's gotten.

    1. It is impossible to rebuild the base from the Dockerfile as the 3rd party dependencies have changed significantly since 8 months ago when the base was last built. The tags for my base image have been overwritten and I can only restore them from a descendant image. With Docker 1.8 I simply pulled the descendant image, tagged the base layer and I was done. With Docker 1.10+ I'd need to save, then manually construct the base image descriptor and reload it. Doable but sad that it's far more complex.
    2. Is anything like this possible with the new setup?
    3. Unfortunately, this image was built months ago. No one has the build any more. We are left with a descendant image that has all the original content but on lower layers.
    4. is there a way we can specify for image build layers to be included in the pull?
    5. Sorry, I don't totally know how the internals work, but does there currently exist a workaround? By that I mean, can I pull an image, then run it at a layer other than the top layer? (I basically use this for testing purposes, its certainly possible to build the image myself then do it, but its slightly less convenient)
    1. The Chinese Internet also illustrates the importance of theorizing online expression based on a representative spectrum of digital environments.

      How does Chinese cancel culture differ from American cancel cuture? Is this phenomenon different worldwide?

  3. Oct 2020
    1. “"

      Which character is this referring to exactly?

      It looks like the empty string, which wouldn't make sense.

      https://www.postgresql.org/docs/13/functions-matching.html only lists these 2:

      If pattern does not contain percent signs or underscores, then the pattern only represents the string itself; in that case LIKE acts like the equals operator. An underscore (_) in pattern stands for (matches) any single character; a percent sign (%) matches any sequence of zero or more characters.

    1. Yeah I see what you're saying. In my case, I had a group of classes that relied on each other but they were all part of one conceptual "module" so I made a new file that imports and exposes all of them. In that new file I put the imports in the right order and made sure no code accesses the classes except through the new interface.
    1. Could you please explain why it is a vulnerability for an attacker to know the user names on a system? Currently External Identity Providers are wildly popular, meaning that user names are personal emails.My amazon account is my email address, my Azure account is my email address and both sites manage highly valuable information that could take a whole company out of business... and yet, they show no concern on hiding user names...

      Good question: Why do the big players like Azure not seem to worry? Microsoft, Amazon, Google, etc. too probably. In fact, any email provider. So once someone knows your email address, you are (more) vulnerable to someone trying to hack your account. Makes me wonder if the severity of this problem is overrated.

      Irony: He (using his full real name) posts:

      1. Information about which account ("my Azure account is my email address"), and
      2. How high-value of a target he would be ("both sites manage highly valuable information that could take a whole company out of business...")

      thus making himself more of a target. (I hope he does not get targetted though.)

    2. Comments for: https://blog.rapid7.com/2017/06/15/about-user-enumeration/ (they were in iframe there)

    1. Another example:

      const expensiveOperation = async (value) => {
        // return Promise.resolve(value)
          // console.log('value:', value)
          await sleep(1000)
          console.log('expensiveOperation: value:', value, 'finished')
          return value
      }
      
      var expensiveOperationDebounce = debounce(expensiveOperation, 100);
      
      // for (let num of [1, 2]) {
      //   expensiveOperationDebounce(num).then(value => {
      //     console.log(value)
      //   })
      // }
      (async () => { await sleep(0   ); console.log(await expensiveOperationDebounce(1)) })();
      (async () => { await sleep(200 ); console.log(await expensiveOperationDebounce(2)) })();
      (async () => { await sleep(1300); console.log(await expensiveOperationDebounce(3)) })();
      // setTimeout(async () => {
      //   console.log(await expensiveOperationDebounce(3))
      // }, 1300)
      

      Outputs: 1, 2, 3

      Why, if I change it to:

      (async () => { await sleep(0   ); console.log(await expensiveOperationDebounce(1)) })();
      (async () => { await sleep(200 ); console.log(await expensiveOperationDebounce(2)) })();
      (async () => { await sleep(1100); console.log(await expensiveOperationDebounce(3)) })();
      

      Does it only output 2, 3?

    1. By wrapping a stateful ExternalModificationDetector component in a Field component, we can listen for changes to a field's value, and by knowing whether or not the field is active, deduce when a field's value changes due to external influences.

      Clever.

      By wrapping a stateful ExternalModificationDetector component in a Field component

      I think you mean wrapping a Field in a ExternalModificationDetector. Or wrapping a ExternalModificationDetector around a Field component.

    1. Using the keyboard arrows, navigate down the suggestion list to the item(s) you want to remove from the Chrome autofill suggestions With the suggestion highlighted, use the appropriate keystroke sequence to delete the Chrome suggestion:

      Linux: Shift + Delete

    1. formvalidation: path.resolve

      Why use resolve.alias to point to 'vendors/formvalidation/dist/es6'? Why not just use an npm package and have package.json name module: 'vendors/formvalidation/dist/es6'

      Then (I think) the examples below like

      import luhn from 'formvalidation/algorithms/luhn';
      

      would work the same but without that workaround.

    1. I don't understand the need for the name "Open–closed principle". It doesn't seem meaningful or clear to me.

      Can't we just call it "extensibility" or "easily extendable"? Doesn't "extensibility" already imply that we are extending it (adding new code on top of it, to interoperate with it) rather than modifying its source code?

    1. Don’t indent code blocks.

      Sure, we don't need to add any additional indent. But what if your code block contains indentation (function body)? It would look silly to remove all leading indentation.

    1. Although I'm starting to regret even posting this because I feel like it cheapens what we've accomplished.
    2. But I suppose it comes with the territory when I consider even publishing an article like this. I was sitting on this one for weeks and wasn't sure I was going to publish it until I found myself trying to defend why I didn't just give up before I started.
    1. How To Write This Poem

      begin here …with TIME

      where words

      are layered with text

      where the pen

      etches into screen …

      then go here …

      (https://www.vialogues.com/vialogues/play/61205)

      … only to leap from one place

      to another,

      where my mind goes

      I hardly every know,

      only that it ventures forward …

      (https://paper.dropbox.com/doc/How-to-Read-a-Poem-by-me--A9AH3OSbHZqKqxia0PQOSa1~Ag-pHyO4XNCl1aIq4KoX22Be)

      … heard by hearts,​​

      and scattered stars,

      ​​where I see the sky fall,​​

      you find the debris …

      our thoughts.

      (https://nowcomment.com/documents/234044)

      Might we be permitted them?

      The dragonfly

      rarely yields her ground

      to the critics among

      us.

    2. Kevin's Response

      How To Write This Poem

      begin here …with TIME

      where words

      are layered with text

      where the pen

      etches into screen …

      then go here … https://www.vialogues.com/vialogues/play/61205

      ... only to leap from one place to another, where my mind goes I hardly every know, only that it ventures forward ...

      https://paper.dropbox.com/doc/How-to-Read-a-Poem-by-me--A9AH3OSbHZqKqxia0PQOSa1~Ag-pHyO4XNCl1aIq4KoX22Be

      … heard by hearts, ​​and scattered stars, ​​where I see the sky fall, ​​you find the debris …. ​​https://nowcomment.com/documents/234044

      Your thoughts?

    1. A new option --proximate=N groups together lines of output that are within N lines of each other in the file. This is useful when looking for matches that are related to each other.

      I'd been wishing for a feature like this with grep/etc. tools.

      I've had to use some really ugly workarounds (chain grep -C5 | grep -B5) which end up showing extra irrelevant context lines.

      So I'm glad there's a clean way to do this now!

    1. I'm glad they added this site. Instead of just closing such questions as "off topic" on StackOverflow or SuperUser without having them some place appropriate to send them.

  4. Sep 2020
    1. By default, npx will check whether <command> exists in $PATH, or in the local project binaries, and execute that. Calling npx <command> when <command> isn't already in your $PATH will automatically install a package with that name from the NPM registry for you, and invoke it. When it's done, the installed package won’t be anywhere in your globals, so you won’t have to worry about pollution in the long-term. You can prevent this behaviour by providing --no-install option.
    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. setContext / getContext can only be used once at component init, so how do you share your API result through context? Related: how would you share those API results if the call was made outside of a Svelte component, where setContext would be even more out of the question (and the API call would arguably be better located, for separation of concerns matters)? Well, put a store in your context.
    1. I took the same approach with _layout.svelte and not just for the svelte-apollo client. Except I put all of that setup into another module (setup.js) and imported from _layout. I just couldn't stomach having all that code actually in my _layout file. It's for layout, supposedly, but it's the only component that is a parent to the whole app.
    2. I got this working by using _layout.svelte as the point to initialise and set the Client we can then use getClient in each route that uses this layout.
    1. Then, the projects that use these libraries get to process these import statements how they like when they are bundled. For the ones that wish to load jQuery from a global, we again mark 'jquery' as an external—since we still don't want Rollup to bundle jQuery—and as a global.
    1. Luckily, there is absolutely no good reason not to use strict mode for everything — so the solution to this problem is to lobby the authors of those modules to update them.
    1. There is a good amount of properties that should mostly be applied from a parent's point of view. We're talking stuff like grid-area in grid layouts, margin and flex in flex layouts. Even properties like position and and the top/right/left/bottom following it in some cases.
    2. It would be tiresome - and bloated - to include a class pass-through for every component or assigning custom properties (from the RFC linked) for all potential properties on every component, just in case it's gonna be used in layouts that requires it. Wrapping them in a wrapper div is certainly an option, but potentially creates 100s or 1000s (long lists, several lists etc.) of new elements in the DOM slowing down low-end devices.
    3. The main reason using classes isn't a great solution is that it completely breaks encapsulation in a confusing way, the paren't shouldn't be dictating anything, the component itself should. The parent can pass things and the child can choose to use them or not but that is different: control is still in the hands of the component itself, not an arbitrary parent.
    4. The RFC is more appropriate because it does not allow a parent to abritrarily control anything below it, that responsibility still relies on the component itself. Just because people have been passing classes round and overriding child styles for years doesn't mean it is a good choice and isn't something we wnat to encourage.
    5. Ideally: Only let a parent control those specific CSS properties, and never let a child use them on the root element.
    6. margin, flex, position, left, right, top, bottom, width, height, align-self, justify-self among other is CSS properties that should never be modified by the child itself. The parent should always have control of those properties, which is the whole reason I'm asking for this.
    1. Your tooltip component will have to wrap your image with a span tag or something, it can’t just add events to its children. And if you are adding multiple actions to it you will have to wrap it multiple times.
      <Concern1> <Concern2> </Concern2> </Concern1>

      vs.

      <img use:concern1 use:concern2>

    2. I totally get not wanting to extend the syntax. I tried doing these things and in practice it was not easy or pretty. Actions provide a much cleaner and easier way to accomplish a certain set of functionality that would be much more difficult without it.
    3. Actions add additional functionality to elements within your component's template that may be difficult to add with other mechanisms. Examples of functionality which actions makes trivial to attach are:
    1. You can imagine the ensuing combinatorial explosion if we needed to add borders or box shadows or filters or what-have-you.
    2. If this was tied into Svelte's flow with hooks this would not be necessary since it would know when it was being removed from the DOM.
    3. You must: reference each element you are extending using refs or an id add code in your oncreate and ondestroy for each element you are extending, which could become quite a lot if you have a lot of elements needing extension (anchors, form inputs, etc.)
    4. This is where hooks/behaviors are a good idea. They clean up your component code a lot. Also, it helps a ton since you don't get create/destroy events for elements that are inside {{#if}} and {{#each}}. That could become very burdensome to try and add/remove functionality with elements as they are added/removed within a component.
    5. Drag and drop might be done better with hooks than components.
    6. the ability to pass around element names as strings in place of components
    1. Can this word be used to describe the property in computing where a value can be dynamic? I feel like "dynamicness" would be a better term for this.

      It seems to refer more to personality:

      1a: marked by usually continuous and productive activity or change a dynamic city b: ENERGETIC, FORCEFUL a dynamic personality

      See also the same sentiment here: https://news.ycombinator.com/item?id=4137596

    1. I considered it, but dynamism refers to personality and philosophy, while dynamicity is just the condition of being dynamic.
    1. I am curious if this is being looked at seriously or not. This is currently an issue I keep running into when trying to build highly general purpose UI Library style component sets.
    2. I keep needing this feature three times a week.
    1. They might even hate each other; the creature who already lived loathed his own deformity, and might he not conceive a greater abhorrence for it when it came before his eyes in the female form? She also might turn with disgust from him to the superior beauty of man; she might quit him, and he be again alone, exasperated by the fresh provocation of being deserted by one of his own species.

      A lot of misogyny is radiating from these lines. Victor is implying that his female creation might be so ugly that even his male creation will be offended by her existence one he sees her. But on the other hand, what if his creation isn't her type and just abandon's him? It's interesting to see how much thought Victor puts in when it comes to making a female creation...I thought he was trying to create a new species?

    2. I was now about to form another being of whose dispositions I was alike ignorant; she might become ten thousand times more malignant than her mate and delight, for its own sake, in murder and wretchedness.

      No one knows what someone will be like after they've been brought into the world, but we don't lament every single person who is born. When someone you know is having a kid you don't say to them: "remember H.H. Holmes? Are you sure you want to have kid? They might be ten thousand times worse than H.H. Holmes!" Because that would be ridiculous.

    1. Often, allowing the parents to compose elements to be passed into components can offer the flexibility needed to solve this problem. If a component wants to have direct control over every aspect of a component, then it should probably own the markup as well, not just the styles. Svelte's slot API makes this possible. You can still get the benefits of abstracting certain logic, markup, and styles into a component, but, the parent can take responsibility for some of that markup, including the styling, and pass it through. This is possible today.
    2. The problem with the export { className as class } approach is that the classes defined in the parent/calling component still have to be marked as being global otherwise they get removed.
    1. But because that final CSS file is probably minified (all whitespace removed), DevTools is likely to tell us that we’ll find the declaration we’re looking for on line 1! Unfortunate, and not helpful for development.
  5. Aug 2020
    1. future gamification research should investigate specific elements of gamification rather than as an over-arching concept so that the effectiveness of different mechanics can be parsed out.

      see Chapman and Rich (2018), which examined this very thing.

  6. Jul 2020
    1. OK is technically an acronym. It comes from the phrase "oll korrect," a humorous alteration of "all correct."

      Was "oll korrect" intended to be a humorous alteration of "all correct" or is it simply due to variations in language? (korrect looks a bit like German. What language could oll be?

    1. This isn’t an accident. OpenOffice’s sidebar code was copied and incorporated into LibreOffice. The Apache OpenOffice project uses the Apache License, while the LibreOffice uses a dual LGPLv3 / MPL license. The practical result is LibreOffice can take OpenOffice’s code and incorporate it into LibreOffice — the licenses are compatible. On the other hand, LibreOffice has some features — like font embedding — that don’t appear in OpenOffice. This is because the two different licenses only allow a one-way transfer of code. LibreOffice can incorporate OpenOffice’s code, but OpenOffice can’t incorporate LibreOffice’s code. This is the result of the different licenses the projects chose.

      What part of LGPLv3 / MPL prevents LibreOffice code from being incorporated back into OpenOffice's Apache Licensed code??

    1. Oracle didn’t seem very interested in OpenOffice.org, and the community of volunteers developing it formed The Document Foundation back in 2010. They called on Oracle to participate and donate the OpenOffice.org name and brand to the community. Oracle never did, and the resulting forked office suite has been named LibreOffice since then.
    1. Take a look at the slogans of some of the popular companies.

      Hmm, are these taglines or slogans? According to https://yourbusiness.azcentral.com/slogan-vs-tagline-12643.html:

      A tagline should represent your business, while a slogan represents a single product or is part of an advertising campaign

      it seems that these are more taglines than slogans.

    1. In the Set class we already called this - and difference, which it is ok but not really accurate because of the previous explanation, but probably not worthwhile to change it.

      Is this saying that the name difference is inaccurate?

      Why is it inaccurate? You even called it the "theoretic difference" above.

      Is that because "relative complement" would be better? Or because the full phrase "theoretic difference" [https://en.wiktionary.org/wiki/set-theoretic_difference] is required in order for it to be accurate rather than just "difference"?

    2. inaccurate

      How is the use of - for sets inaccurate?

  7. Jun 2020
    1. What would be nice is if JavaScript had a built-in way to do what I can do in Ruby with:

      > I18n.interpolate('Hi, %{name}', name: 'Fred')
      => "Hi, Fred"
      

      But to be fair, I18n comes from i18n library, so JS could just as easily (and I'm sure does) have a library that does the same thing.

      Update: Actually, you can do this in plain Ruby (so why do we even need I18n.interpolate?):

      main > "Hi, %{name}" % {name: 'Fred'}
      => "Hi, Fred"
      
      main > ? String#%
      
      From: string.c (C Method):
      Owner: String
      Visibility: public
      Signature: %(arg1)
      Number of lines: 9
      
      Format---Uses str as a format specification, and returns the result
      of applying it to arg. If the format specification contains more than
      one substitution, then arg must be an Array or Hash
      containing the values to be substituted. See Kernel::sprintf for
      details of the format string.
      
         "%05d" % 123                              #=> "00123"
         "%-5s: %016x" % [ "ID", self.object_id ]  #=> "ID   : 00002b054ec93168"
         "foo = %{foo}" % { :foo => 'bar' }        #=> "foo = bar"
      

      I guess that built-in version is fine for simple cases. You only need to use I18n.translate if you need its more advanced features like I18n.config.missing_interpolation_argument_handler.

  8. May 2020
    1. I have used this bash one-liner before set -- "${@:1:$(($#-1))}" It sets the argument list to the current argument list, less the last argument.

      Analogue of shift built-in. Too bad there isn't just a pop built-in.

    1. Related concepts in other fields are: In natural language, the coordinating conjunction "and". In programming languages, the short-circuit and control structure. In set theory, intersection. In predicate logic, universal quantification.

      Strictly speaking, are these examples of dualities (https://en.wikipedia.org/wiki/Duality_(mathematics))? Or can I only, at strongest, say they are analogous (a looser coonection)?

    1. ssh-add <(echo "$PRIVATE_KEY")

      Does this have any advantage over simply saving that key to a key file under ~/.ssh?

      Like they do on https://stackoverflow.com/a/61944004/47185:

      mv "$DEPLOY_KEY_PRIVATE" ~/.ssh/id_rsa
      
    1. deployer-token

      Where does deployer-token come from? Is this a placeholder or a well-known hard-coded value specific to __ (GitLab? my.company.com?)? Where is it documented?

    2. echo "${BASH_REMATCH[1]/:\/\//://gitlab-ci-token:${GL_TOKEN:-$GITLAB_TOKEN}@}" > $HOME/.config/git/credentials
    3. git config --global credential.helper store

      What does this do?

    1. In some contexts, "ops" refers to operators. Operators were the counterparts to Developers represented in the original coining of the term DevOps.

      I have always believed the Ops was short for Operations, not Operators.

      https://en.wikipedia.org/wiki/DevOps even confirms that belief.

    1. 1. Disabling concrete extension update. That's what I wanted! You can do this by editing the extensions manifest json-file on Windows: C:\Users\<USERNAME>\AppData\Local\Google\Chrome\User Data\Default\Extensions\<EXTENSION-ID>\<VERSION>\manifest.json (find out the extensions ID by enabling developer mode in the extension settings page) on Ubuntu for Chromium: ${HOME}/.config/chromium/Default/Preferences In this file set "update_url" property to something invalid like "https://localhost" for example. For now according to given url updating of that extension is simply impossible.
    1. of, relating to, or being a grammatical case or form expressing means or agency

      I really need an example of this!

      It seems unusual that they specifically mention "a grammatical case or form". I've never seen a definition before that is anything like this one.

      How is this different from definition 1?

    1. It seems weird to me that we are trying to enforce commit messages when they are not really visible or used in the GitLab workflow at all. This is what you see most of the time when interacting with the commit list. I've taken time to compose a nice descriptive body and it is hidden by default:
    1. quantum blockchain

      Do they really use a quantum blockchain? What exactly do they mean by that? Probably just a buzzword they're using to attract interest but aren't actually meaning literally.

    2. Did the marketing team create a new landing page that isn't searchable? Osano is aware of hidden pages and keeps you in the loop about what is loaded where – everywhere on your site.

      How would it "know" about hidden pages unless the site owner told them about their existence? (And if that is the case, how is this anything that Osano can claim as a feature or something that they do?) If it is truly hidden, then a conventional bot/spider wouldn't find it by following links.

    1. Most web browsers are set by default to protect your privacy unless you opt for tracking yourself. For example, Internet Explorer automatically enables its “Do Not Track” option and Google Chrome blocks any 3rd-party cookies by default.
    1. Disclaimer: Termly LLC is not a lawyer or a law firm and does not engage in the practice of law or provide legal advice or legal representation. All information, software, services, and comments provided on the site are for informational and self-help purposes only and are not intended to be a substitute for professional legal advice.
    1. If you update your pages and push to github, people revisiting the pages who have already got cached copies will not get the new pages without actually cleaning their browser cache. How can a script running in a page determine that it is stale and force an update?
    1. Mojofication, Onion Souping, and the Network Service.

      What is Mojofication?

      What is Onion Souping?

    1. isConsentGiven()

      So you can store consent for a specific category. But how do you check if they've given consent to a specific category??

    2. storeConsent()

      From https://www.iubenda.com/en/help/18678-cookie-solution-consents-migration:

      Per-category consent

      _iub.cs.api.storeConsent() allows to set purposes too and accepts an optional argument which can be {consent: true}, {consent: false} or {purposes: {1: true, 2: false, …}}. If no argument is specified it acts as if {consent: true} was passed.

      So you can store consent for a specific category. But how do you check if they've given consent to a specific category??

    3. The consent provided by the user is saved in some cookies within the host page’s domain. By verifying the presence or the absence of these cookies you can determine whether the user has given their consent or not.

      But how do you check if they've given consent to a specific category??

    4. Here are the purposes included in each category:
    1. Taxonomy, in a broad sense the science of classification, but more strictly the classification of living and extinct organisms—i.e., biological classification.

      I don't think the "but more strictly" part is strictly accurate.

      Wikipedia authors confirm what I already believed to be true: that the general sense of the word is just as valid/extant/used/common as the sense that is specific to biology:

      https://en.wikipedia.org/wiki/Taxonomy_(general) https://en.wikipedia.org/wiki/Taxonomy_(biology)

    1. after nearly 10 years of continuous improvement

      Not necessarily a good or favorable thing. It might actually be preferable to pick a younger software product that doesn't have the baggage of previous architectural decisions to slow them down. Newer projects can benefit from both (1) the mistakes of previously-originated projects and (2) the knowledge of what technologies/paradigms are popular today; they may therefore be more agile and better able to create something that fits with the current state of the art, as opposite to the state of the art from 10 years ago (which, as we all know, was much different: before the popularity of GraphQL, React, headless CMS, for example).

      Older projects may have more technical debt and have more legacy technologies/paradigms/integrations/decisions that they now have the burden of supporting.

    2. open source

      So open-source that there is no link to the source code and a web search for this product did not reveal where the source code is hosted.

      They're obviously using this term merely as a marketing term without respect for the actual meaning/principles of open source.

    1. Google encouraging site admins to put reCaptcha all over their sites, and then sharing the resulting risk scores with those admins is great for security, Perona thinks, because he says it “gives site owners more control and visibility over what’s going on” with potential scammer and bot attacks, and the system will give admins more accurate scores than if reCaptcha is only using data from a single webpage to analyze user behavior. But there’s the trade-off. “It makes sense and makes it more user-friendly, but it also gives Google more data,”
    2. For instance, Google’s reCaptcha cookie follows the same logic of the Facebook “like” button when it’s embedded in other websites—it gives that site some social media functionality, but it also lets Facebook know that you’re there.
    1. Make it clear that signing up is optional. Consent must be “freely given”; you may not coerce users into joining your mailing list or make it appear as if joining the list is mandatory. For this reason, you must make it clear that signing up is optional. This is especially relevant in cases where you offer free white-papers (or e-books) for download. While the user’s email address is required for the delivery of the service, signing up for your newsletter is not. In such a case, you must not make it appear as if signing-up to the newsletter list mandatory and must make it clear that it is optional.

      Question (answer below)

      Are they saying that it's not allowed to make signing up for a mailing list a precondition/requirement for anything? This was surprising to me.

      So if you have a newsletter sign-up page that sends a digital bonus gift (like an e-book) to new subscribers, are required to completely change/repurpose your "newsletter sign-up page" into a "download e-book page" (that has an optional checkbox to also sign up for the newsletter, if you want)? That seems dumb to me, since it requires completely reversing the purpose of the page — which was, in my mind, primarily about signing up for the newsletter, with a bonus (an essentially optional one) thrown in for those who do so. Are you required to either repurpose it like that or remove the free bonus offer that would be sent to new subscribers?

      The irony of this is that it requires websites that have a newsletter sign-up page like that to change it into a "newsletter sign-up page" where the newsletter sign-up part is optional. Which make you look kind of stupid, making a page that claims to be one thing but doesn't necessarily do what it says it's for.

      Does this mean, in effect, that you may not lawfully provide any sort of incentive or reward for signing up for something (like a mailing list)? As long as it's very clear that some action is required before delivery of some thing, I don't see why this sort of thing should not be permitted? Would this fall under contract law? And as such, wouldn't such a contract be allowed and valid? Are mailing lists a special class of [service] that has special requirements like this? Or is it part of a broader category to which this requirement applies more generally?

      Why is requiring the user to provide an email address before they can download a digital reward allowed but not requiring signing up to a mailing list? Why isn't it required that even the email address be optional to provide? (To answer my own question, probably because it's allowed to allow a user to request a specific thing to be sent via email, and an email address is required in order to fulfill that request. But...) It seems that the website could just provide a direct link to download it via HTTP/FTP/etc. as an option for users that chose not to provide an email address. (But should they be required to provide that option anytime they / just because they provide the option to have the same thing delivered via email?)

      Answer

      Looks like my question was answered below:

      Explicit Form (where the purpose of the sign-up mechanism is unequivocal). So for example, in a scenario where your site has a pop-up window that invites users to sign up to your newsletter using a clear phrase such as: “Subscribe to our newsletter for access to discount vouchers and product updates!“, the affirmative action that the user performs by typing in their email address would be considered valid consent.

      So the case I described, where it is made very clear that the incentive that is offered is conditional on subscribing, is listed as an exception to the general rule. That's good; it should be allowed.

    2. Generally, these laws apply to any service targeting residents of the region, which effectively means that they may apply to your business whether it’s located in the region or not.
    1. P ⇒ Q

      It may be confusing for a newcomer (or on first read-through) that the variable/predicate/condition that represents the "necessary condition" in this statement P ⇒ Q is the Q.

      One might be forgiven for incorrectly assuming that the P represents the necessary condition. That is because most of the time when one states a statement/relation/implication/etc. about a subject, the sentence/statement begins with the subject. For example, if we're explaining about a "less than" relationship, and we give x < y as an example, one would correctly assume that x is the subject here and x is the thing that is less than.

      So it may be a bit surprising to a newcomer (on first read-through) that the subject of this section — the necessary condition — is represented by the Q and not be the P.

      (Made even more confusing by the fact that the very same implication P ⇒ Q is also used to express the opposite sufficiency relationship in the very next section. I would argue that Q ⇒ P should have been used instead in exactly one of these sections to make it clearer that the subject is different and/or the relation is different, depending how you look at it.)

      Is there any reason we couldn't rewrite this to express the logical relation between P and Q with the subject first? If we let P be the subject (that is, "necessary condition" that we're illustrating/explaining), could we not rewrite this as P ⇐ Q?

      In fact, that is exactly how this relation was expressed below, in https://en.wikipedia.org/wiki/Necessity_and_sufficiency#Simultaneous_necessity_and_sufficiency !:

      that P is necessary for Q, P ⇐ Q, and that P is sufficient for Q, P ⇒ Q

  9. Apr 2020
    1. The activity carried out by iubenda does not constitute legal advice in any way and no attorney-client relationship shall be established.
    1. Any explanatory texts provided in correspondence of the available services by no means substitute a legal opinion nor replace the assistance or advice of a professional. Such texts are merely intended to facilitate use and understanding of the Service, and are not exhaustive nor may they fit any specific case.
    1. Before we get to passwords, surely you already have in mind that Google knows everything about you. It knows what websites you’ve visited, it knows where you’ve been in the real world thanks to Android and Google Maps, it knows who your friends are thanks to Google Photos. All of that information is readily available if you log in to your Google account. You already have good reason to treat the password for your Google account as if it’s a state secret.
    1. Chrome first sends an encrypted, 3-byte hash of your username to Google, where it is compared to Google's list of compromised usernames. If there's a match, your local computer is sent a database of every potentially matching username and password in the bad credentials list

      Why do they only send password matches if username also matches?? A password should be deemed compromised and never used again if the password is found in a breach/paste anywhere, even if in connection with a different username/email.

    1. It is not the browser's responsibility to auto-login to websites. This is the responsibility of the website you are accessing. The browser can remember form data and auto-fill for you, as can various extensions like LastPass.
  10. Mar 2020
    1. Using our privacy policy software implies having a third party integrate into your site. This post explains what kind of data is and is not tracked by iubenda.
    1. This difference is due to the fact that the Cookie Solution automatically excludes from the counting, the pageviews generated by bots.

      It seems that Google Analytics could/would exclude those as well.

    1. Ruby's current handling of Dates and Times is all over the map. We have Date, Time, DateTime, ParseDate, and more, not to mention all the other common extensions running around out there. Ruby needs an improved class that incorporates them all.
    1. a complete snapshot of the user's browser window at that moment in time will be captured, pixel by pixel.

      Is this even technically possible?

      If it were:

      • how are they not disclosing this better, since it seems like a privacy concern since there could be any amount of private data in that form, that would what, get sent to Google??
      • wouldn't that be a lot of pixels (a lot of data to upload), which would take a lot of time to upload, especially at high screen resolutions?
  11. Feb 2020
  12. Jan 2020
    1. a private library is not an ego-boosting appendages but a research tool. The library should contain as much of what you do not know as your financial means … allow you to put there. You will accumulate more knowledge and more books as you grow older, and the growing number of unread books on the shelves will look at you menacingly. Indeed, the more you know, the larger the rows of unread books. Let us call this collection of unread books an antilibrary.
  13. Dec 2019
    1. Since the time of Henry I, it has been used by the reigning monarch and is the longest-occupied palace in Europe

      Make an note.

  14. Nov 2019
    1. this is not intended to become a big, public thing. You're welcome to use anything and steal any code. Please do not count on us adressing feature requests or issues though.