41 Matching Annotations
  1. Jun 2021
    1. In mutations, when errors happen, the other fields may return nil. So, if those other fields have null: false, but they return nil, the GraphQL will panic and remove the whole mutation from the response, including the errors!
  2. May 2021
    1. Of course, if you're too successful with migrating all your clients and friends to your friendly small provider it grows into a big provider and needs to hire cheap first level support to deal with all the customers ;-)
  3. Apr 2021
    1. As of Jan 1, 2021 many countries now require KS creators to show Shipping AND VAT/Fees/Taxes on Kickstarter Rewards - not just 1 price for "shipping". So we will do that in our Pledge Manager, after the campaign. Yea, we know...this sucks and is against everything Kickstarter used to be about (the world now views KS as a store, not as a creative platform sending rewards to backers for helping bring the vision to life)
  4. Mar 2021
    1. A Low Bar to Entry, and then What?There is an interesting tension between making something accessible and making it boring. Lowering the barrier of entry is a good thing, but if all you do is low-bar stuff, you end up losing the people again that you managed to attract. There needs to be a path forward beyond the entry level.
  5. Feb 2021
    1. Unfortunately the widespread adoption of this practice led to a huge number of orphaned gems that usually have only a single or at most a handful of releases. Additionally these forked gems often retained their upstream github source code url, so on the Ruby Toolbox these forks receive a high popularity ranking.
    1. The JavaBean spec designers threw the getter/setter idiom into the picture because they thought it would be an easy way to quickly make a bean—something you can do while you're learning how to do it right. Unfortunately, nobody did that.Accessors were created solely as a way to tag certain properties so a UI-builder program or equivalent could identify them. You aren't supposed to call these methods yourself. They exist for an automated tool to use.
    1. These two mistakes, especially the second one, plant worries in your customers mind before they’ve even had time to think of them.
    2. Stop warning people – no contract, no obligations, cancel anytime – companies can’t resist saying this on every pricing page but by using negative words they’re just putting ideas into people’s heads.
  6. Jan 2021
    1. Situation: you have a single line of text in a flex child element. You don’t want that text to wrap, you want it truncated with ellipsis (or fall back to just hiding the overflow). But the worst happens. The unthinkable! The layout breaks and forces the entire flex parent element too wide. Flexbox is supposed to be helping make layout easier!
    1. I found that snap can cause lots of issues. I installed keepass using snap, and it installed as a sandboxed app. Very nice for security you would think. Well, a short while later, after 3 upgrades to keepass, it deleted the oldest snap container, which just happened to contain my password file. So secure that even you can't use your passwords now!
    2. Why did I put the kdb in the snap file system? Because the app is sandboxed, so I had no choice.
  7. Oct 2020
    1. We have identified some of the specific software causing this excessive traffic and have been in contact with the parties responsible to explain how their product or service is essentially creating a Distributed Denial of Service (DDoS) attack against W3C.
    1. One of the primary tasks of engineers is to minimize complexity. JSX changes such a fundamental part (syntax and semantics of the language) that the complexity bubbles up to everything it touches. Pretty much every pipeline tool I've had to work with has become far more complex than necessary because of JSX. It affects AST parsers, it affects linters, it affects code coverage, it affects build systems. That tons and tons of additional code that I now need to wade through and mentally parse and ignore whenever I need to debug or want to contribute to a library that adds JSX support.
  8. Sep 2020
    1. Unfortunately, this only worked because of a feature called import elision. When TypeScript outputs JavaScript files, it sees that Options is only used as a type, and it automatically drops its import. The resulting output looks kind of like this:
    1. There'll be no more warnings. But if you open bundle.js, you'll see something shocking: it contains the entirety of React and React DOM. That's 7000 LoC!
    2. This occurs because, with the configuration above, React is no longer an external dependency: you've directed Rollup to bundle it alongside your application's local JavaScript. But there are critical differences between your application's JS and React's.
  9. Aug 2020
  10. May 2020
    1. Meanwhile, ObamaCare penalties and onerous rules have forced many companies to lay off workers or cut hours to turn full-time employees into part-timers. Small-business owners should not have to make their hiring decisions based upon tens of thousands of pages of regulations in the Affordable Care Act.
    1. Although working together towards a common goal tends to cause an increased feeling of agency, the inflation of control could have many unforeseen consequences.
    1. This advertising system is designed to enable hyper-targeting, which has many unintended consequences that have dominated the headlines in recent years, such as the ability for bad actors to use the system to influence elections, to exclude groups in a way that facilitates discrimination, and to expose your personal data to companies you’ve never even heard of.
    1. make it as easy to withdraw consent as to give it. The latter gets particularly interesting when considering that in some contexts, consent may be obtained “through only one mouse-click, swipe or keystroke” and therefore “data subjects must, in practice, be able to withdraw that consent equally as easily” per the WP29.

      It seems, then, that one should be careful to not make it too easy to opt in to something unless you are prepared to accept the liability for making it just as easy to opt out (which may be technically challenging).

    1. While this is illegal and can result in criminal and civil penalties, your cooperation may make you eligible for up to a US$50,000 reward.

      Might not this motivate someone to conspire with someone else, one to commit the crime and one to collect the reward? Probably mitigated by a contingency that the reward may only be collected if criminal is successfully charged and prosecuted?

    1. This is it. I'm done with Page Translator, but you don't have to be. Fork the repo. Distribute the code yourself. This is now a cat-and-mouse game with Mozilla. Users will have to jump from one extension to another until language translation is a standard feature or the extension policy changes.
    2. The other pressing issue is that users have lost the right to run private extensions in the release version of Firefox, without needing to hand over their source code to Mozilla.
    3. That's what I find hilarious in all this. All workarounds involve using extensions that Mozilla doesn't approve of or disabling barriers that Mozilla doesn't advocate. And to top it all of, all extensions use the same JavaScript from Google and send the same information to google. But some were blocked completely whereas others were just removed from AMO. It just goes to prove that Mozilla themselves have lost sight of what they were trying to achieve when they put forth their policies. If their goal was to protect user's privacy and prevent data from going to Google, they've done a terrible job of it.
    4. Mozilla will never publicly ask users to circumvent their own blocklist. But it's their actions that are forcing people to do so.
    5. So to me, it seems like they want to keep their users safer by... making them use Google Chrome or... exposing themselves to even greater danger by disabling the whole blocklist.
  11. Apr 2020
    1. The notices were meant as a jumping-off point where people could begin the journey of understanding how each of their applications and the websites they visit use their data. But, they have probably had the opposite effect
    2. Europe’s sweeping privacy rule was supposed to change the internet, but so far it’s mostly created frustration for users, companies, and regulators
    1. The key change here is the removal of an intent to defraud and replacing it with willfully; it will be illegal to share this information as long as you have any reason to know someone else might use it for unauthorized computer access.It is troublesome to consider the unintended consequences resulting from this small change.
    2. it reminds me of IT security best practices. Based on experience and the lessons we have learned in the history of IT security, we have come up with some basic rules that, when followed, go a long way to preventing serious problems later.
    3. So many of us security professionals have made recommendations to software companies about potential security threats and often the response is that they don’t see why that particular threat is a big deal. For example, a bug might reveal the physical path to a web content directory. The software company might just say “so what?” because they cannot see how that would result in a compromise. Unfortunately, many companies have learned “so what” the hard way.
    1. Beauty-based discrimination is rarely addressed, but one such instance was the fuss about Facebook's "feeling fat" emoji. It was framed that Facebook was the guilty party here, but I would argue that the offended people were the guilty party, as they're the ones who made the leap from "fat" to "sub-human". In some cultures, being fat is acceptable or even desirable.
    2. Saying for instance that someone's good deed makes them a "beautiful person"; or saying that a "beautiful 8-year-old girl is missing" encourages the idea that their beauty is some kind of symbol of their innocence or perhaps their status as a human