• 0 Posts
  • 68 Comments
Joined 1 year ago
cake
Cake day: July 14th, 2023

help-circle



  • They aren’t. From a comment on https://www.reddit.com/r/ublock/comments/32mos6/ublock_vs_ublock_origin/ by u/tehdang:

    For people who have stumbled into this thread while googling “ublock vs origin”. Take a look at this link:

    http://tuxdiary.com/2015/06/14/ublock-origin/

    "Chris AlJoudi [current owner of uBlock] is under fire on Reddit due to several actions in recent past:

    • In a Wikipedia edit for uBlock, Chris removed all credits to Raymond [Hill, original author and owner of uBlock Origin] and added his name without any mention of the original author’s contribution.
    • Chris pledged a donation with overblown details on expenses like $25 per week for web hosting.
    • The activities of Chris since he took over the project are more business and advertisement oriented than development driven."

    So I would recommend that you go with uBlock Origin and not uBlock. I hope this helps!

    Edit: Also got this bit of information from here:

    https://www.reddit.com/r/chrome/comments/32ory7/ublock_is_back_under_a_new_name/

    TL;DR:

    • gorhill [Raymond Hill] got tired of dozens of “my facebook isnt working plz help” issues.
    • he handed the repository to chrismatic [Chris Aljioudi] while maintaining control of the extension in the Chrome webstore (by forking chrismatic’s version back to himself).
    • chrismatic promptly added donate buttons and a “made with love by Chris” note.
    • gorhill took exception to this and asked chrismatic to change the name so people didn’t confuse uBlock (the original, now called uBlock Origin) and uBlock (chrismatic’s version).
    • Google took down gorhill’s extension. Apparently this was because of the naming issue (since technically chrismatic has control of the repo).
    • gorhill renamed and rebranded his version of ublock to uBlock Origin.

  • That’s still a single point of failure.

    So is TLS or the compromise of a major root certificate authority, and those have no bearing on whether an approach qualifies as using 2FA.

    The question is “How vulnerable is your authentication approach to attack?” If an approach is especially vulnerable, like using SMS or push notifications (where you tap to confirm vs receiving a code that you enter in the app) for 2FA, then it should be discouraged. So the question becomes “Is storing your TOTP secrets in your password manager an especially vulnerable approach to authentication?” I don’t believe it is, and further, I don’t believe it’s any more vulnerable than using a separate app on your mobile device (which is the generally recommended alternative).

    What happens if someone finds an exploit that bypasses the login process entirely?

    Then they get a copy of your encrypted vault. If your vault password is weak, they’ll be able to crack it and get access to everything. This is a great argument for making sure you have a good vault password, but there are a lot of great arguments for that.

    Or do you mean that they get access to your logged in vault by compromising your device? That’s the most likely worst case scenario, and in such a scenario:

    • all of your logged in accounts can be compromised by stealing your sessions
    • even if you use a different app for your 2FA, those TOTP secrets and passkeys can be stolen - they have to be on a different device
    • you’re also likely to be subject to a ransomware attack

    In other words, your only accounts that are not vulnerable in this situation solely because their TOTP secret is on a different device are the ones you don’t use on that device in the first place. This is mostly relevant if your computer is compromised - if your phone is compromised, then it doesn’t matter that you use a separate password manager and authenticator app.

    If you use an account on your computer, since it can be compromised without having the credentials on device, you might as well have the credentials on device. If you’re concerned about the device being compromised and want to protect an account that you don’t use on that device, then you can store the credentials in a different vault that isn’t stored on your device.

    Even more common, though? MITM phishing attacks. If your password manager verifies the url, fills the password, and fills your TOTP, then that can help against those. Start using a different device and those protections fall away. If your vault has been compromised and your passwords are known to an attacker, but they don’t have your TOTP secrets, you’re at higher risk of erroneously entering them into a phishing site.

    Either approach (same app vs different app) has trade-offs and both approaches are vulnerable to different sorts of attacks. It doesn’t make sense to say that one counts as 2FA but the other doesn’t. They’re differently resilient - that’s it. Consider your individual threat model and one may be a better option than the other.

    That said, if you’re concerned about the resiliency of your 2FA approach, then look into using dedicated security keys. U2F / WebAuthn both give better phishing resistance than a browser extension filling a password or TOTP can, and having the private key inaccessible can help mitigate device compromise concerns.




  • The list of instances you shared was updated recently, but I tried the one url in it (the rest are onion links or i2p, and are older versions of libreddit to boot) and the page didn’t even load.

    Libreddit has been discontinued for nearly a year due to not working thanks to Reddit’s API changes, though about a month ago they updated their repo to direct people to RedLib, which allegedly does work. That said, I tried the official instance and got an error. However, it’s being actively developed and looks easy to self-host. I don’t know if there’s a list of unofficial public instances.


  • It first showed up on Netflix in mid-2023, in the middle of the writer’s guild strike (meaning there was a dearth of new content). So basically the Netflix effect. It had been on other streaming platforms before - Prime Video and Hulu - but Netflix is still a juggernaut compared to them - it has 5 times as many subscribers as Hulu, for example, and many of the subscribers to Prime Video are incidental and don’t stream as much on average as Netflix users.

    I assume Netflix funded off-platform advertising, but the on-platform advertising has a big effect, too. And given that Suits broke a record in the first week it was on Netflix and they have a spinoff coming, it makes sense that they would keep advertising.


  • I can’t speak to Android as a whole, but here’s how often Samsung Face Unlock will require you to re-auth with your phone’s passcode:

    • after 4 hours of not using the phone
    • after restarting
    • at least once every 24 hours

    iPhones do something similar, but it’s after 48 hours of non-use (instead of 4) and at least weekly instead of daily. Having to enter your password daily should help most people keep it memorized pretty well, but weekly - maybe not. So you definitely have a good point there.

    One thing that can make it easier to remember - and just as secure - is to use a longer pass phrase instead of random characters.

    If you using the diceware approach (“correct horse battery staple”), then 5 words has 32 times / 5 bits more entropy than a 10 character mixed-case alphanumeric password (64 vs 59 bits of entropy) (4 word passphrases aren’t random enough to be recommended - they have fewer bits of entropy (51) than even 9 character mixed-case alphanumeric passwords (53), though notably 10 same-case alphanumeric characters also have only 51 bits of entropy).

    The EFF has a word list that’s been improved for usability. They also have a short list, comprised of words with at most 5 characters each, where you roll 4 dice instead of 5. With 6 words from that list you get 62 bits of entropy, which is good enough to be able to recommend.



  • I had a pocket TV back in 2007 or so. It had an antenna and everything. It was a bit bulky and not at all power efficient, though. IIRC it went through 8 AA batteries in about 3 hours.

    I’m not sure why you’d want that over a smartphone or even just a small tablet, though.

    Also, we have flying skateboards, they’re just prohibitively expensive or not yet being sold. Look up the ArcaBoard (was $20k back in 2015, doesn’t seem to be sold anymore), the Lexus Hoverboard, and the Flyboard Air. Unfortunately if you try to buy a “hoverboard” you’re just gonna end up with an electric scooter



  • This is a very surface level overview of the frameworks it covers. The title is a bit of a reach, as it wouldn’t give anyone enough information to make a more educated decision about which framework to use.

    Are you the author? I think it could be improved by including:

    • metrics - number of apps that use each, number of job offerings, github stars
    • who backs each project, and how much can we trust them to continue developing it in a way that’s friendly to developers
    • for React specifically, a bit more info on the prominent frameworks - Next.js, Vite, Gatsby, CRA/CRACO, or ejected CRA - since the difference between them is substantial
    • a high level description of the use case that the framework is designed for, as well as use cases where it isn’t well suited or has drawbacks.
    • how does the development experience differ? Is there a lengthy build step? Does it offer hot reloading? Does it come with a built-in linter or integrate easily with one?
    • Does it have a bundled testing framework, and how does that compare to other offerings? For example, CRA comes with jest and it can be a pain to configure jest to properly handle all of your dependencies - it doesn’t use the same build pipeline as your app and will fail if you’re using newer dependencies that use import statements instead of module.exports and you don’t individually configure each one. Vitest, by contrast, uses the same build pipeline as Vite.
    • Ease of writing unit tests, component tests, and e2e tests (even if that means pulling in another library)
    • ease of use with or without typescript
    • some more substantial example apps per framework, like a to-do list that uses a simple API (preferably the same API in all cases). Currently the examples don’t even show what the code looks like with basic styling

    If you are the author, I saw your article on Typescript and would also like to say that you can configure your linter to not warn about using any. There’s even a no-implicit-any rule that you can use if you only want explicit any types but don’t want, for example, responses from API calls to have that type by default.






  • I don’t believe that we perceive luminance in a linear fashion, but the systems of measurement aren’t straightforward coming at it as a layperson.

    With sound, a 10 dB increase is 10 times more intense, but it doesn’t sound 10 times louder to the human ear - it sounds (roughly) twice as loud. So if something was 6 dB quieter (1/4th as energetic), it would sound maybe 2/3rds as loud.

    The next things to ask are:

    • does an obstruction of 80% of the sun result in reducing the light we receive to 20% of what we’d otherwise receive?
    • how does a change in light energy affect our perception of brightness?

  • I’m Hedgehog, the poor senior dev who was assigned to review Hal’s code.

    Panel 1: ✅ (PR Approved) LGTM but you’re missing the styling from the mock-ups, should be easy to add.

    Panel 2: ❌ (Changes requested)

    Nit: Hal, your PR failed in CI. You should have used const instead of let. Did you forget to run the linter before pushing?

    Also, the useState hook isn’t doing anything. If it doesn’t need to, just leave it as an uncontrolled component. I didn’t look at the surrounding code but this is part of a form, right? If not then it should be receiving the setter/value as props.

    Panel 3: ✅ LGTM, ship it.

    ❌ Actually wait, you still have that do-nothing state code in there. Either get rid of it or do something with it.

    Panel 4: ❌ Hal, I don’t like where this is going.

    Panel 5: (during stand-up) I reviewed Hal’s PR and just had a couple pieces of feedback. Shouldn’t take long, right, Hal?

    Panel 6: ❌ WTF, Hal. <InputField /> is literally just passing through props to input, so you don’t need it.

    Also, Hal, I recommend you look into the Styled Components library. It might better fit your needs here. You could rewrite the LoginComponent as a styled input. Of course, if you do that you should refactor the existing places where you’re using style sheets to use styled components and themes instead.

    You also still have the do-nothing useState hook for some reason. Seriously, Hal, get rid of it.

    This is how I’d write this without bringing in Styled Components, but if you use it make sure to test it first:

    import React from ‘react’;
    export const LoginForm = (props: React.ComponentPropsWithoutRef<‘input’>) => (
      <input
        {...props}
        className={`border rounded-md p-2 focus:outline-none focus:border-blue-500 ${props.className || ‘‘}`}
      />
    );