HNHacker News
TopNewBestAskShowJobs

notriddle

2,413 karma · joined July 3, 2015

https://www.accountkiller.com/
submissionscomments
notriddle··on Why do people not notice our enormous, prominent, clear and contrasting banner?
The Black Death sucked.

Most of the middle ages probably wasn't that bad, but the civilization-destroying plague destroyed civilization, and Renaissance-era propagandists exploited the living memory of the plague to make themselves look better.

notriddle··on Apple previews Lockdown Mode
Text rendering is more complex than decoding a PNG.
notriddle··on Why isn't the internet more fun and weird? (2019)
Firefox’s Pocket recommendations took a good approach. The browser downloads a big daily file with “potential recommendations”, then filters it at the client side.

The big downside was that, because it was turned on by default, a whole bunch of people who didn’t actually want it had it foisted upon them, so it got a very bad reputation right out the gate. Right algorithm, bad execution.

notriddle··on The Swerve
Getting thrown in jail doesn't seem like a useful path towards accomplishing anything.
notriddle··on Windows' Undocumented “Emergency Restart”
That's what Ctrl-Alt-Del is for.

They aren't exactly the same thing, I suppose, but there's enough functional overlap that if you already have one, it's hard to justify adding another. You don't want too many of these "escape sequences", because every kernel-side keyboard interrupt becomes a thing that:

* Userland doesn't get to use that keyboard shortcut any more.

* Someone might accidentally trigger, and if they don't know what's going on, they become stuck.

* It's another thing that anyone building a captive kiosk has to know how to disable.

notriddle··on Vets today are like doctors yesterday
> As it stands, people are afraid to completely deregulate healthcare.

The countries that America is compared to and found wanting aren't running completely deregulated healthcare. What makes them different?

notriddle··on 40% of Google users now connect via IPv6
It’s stateful.

Specifically, if a plain router stops working, BGP will route around it, and all you did was drop packets. If NAT stops working, you don’t just drop packets, you drop whole connections. Applications don’t tend to tolerate dropped connections as well as they tolerate dropped packets.

notriddle··on Pirate Library Mirror: Preserving 7TB of books (that are not in Libgen)
The same thing you always get. Assurance that your free Wi-Fi hotspot isn’t tampering with the page.
notriddle··on What do lawyers do?
Also forgot midwifing, babysitting, and education. No professional lives forever, so a civilization must constantly grow and train replacements.
notriddle··on In defence of garlic in a jar
Keep it in the fridge.
notriddle··on Give up GitHub: The time has come
That is a design flaw that cannot be fixed without breaking the API: https://devblogs.microsoft.com/oldnewthing/20190528-00/?p=10...

I'm pretty sure there are a lot of those.

notriddle··on GitHub incident – now resolved
This is axe grinding. Please stop. HN has already had several threads related to Copilot. Take your grievances there, instead.
notriddle··on Thunderbird 102
Because I don’t think it’s unreasonable to want:

* A desktop package that isn’t a vehicle for ads (like Windows and ChromeOS).

* A desktop package that doesn’t require you to write your own one-off scripts to work around stupid deficiencies (like GNU/Linux).

* A desktop package that doesn’t constantly throw away all its “legacy” and break a bunch of stuff (like Mac).

notriddle··on Thunderbird 102
That's exactly what the problem is. The diffusion of responsibility makes it a decades-long problem and nobody has the responsibility or the power to fix it.
notriddle··on The Last Thing Rust Needs (2019)
This isn't really true.

If you ever need to debug code in a dependency, then you'll probably need to read code that targets a different edition than your home project does. Over a long enough time frame, you're going to need to at least be able to understand all of the editions.

notriddle··on The Last Thing Rust Needs (2019)
How are you planning to limit the rate at which new features are added?

* Restricting the rate of new releases doesn't necessarily mean you're reducing the average feature development rate. It might instead mean that you're releasing hundreds of new features per release, which is definitely worse than releasing a hundred versions with one feature each, because it can force people to rush things out to meet a release window instead of releasing them when they're actually ready.

* Restricting the number of feature bullet points per release doesn't necessarily mean you're reducing the amount of functionality being developed. It might instead mean that people try to develop huge "super-features" that technically count as one bullet point but actually gets used in dozens of different ways. Super-features are an easy way to wind up with a system where everything is possible, but the stuff you do every day is more difficult than it needs to be.

notriddle··on Basement Fertility
Or most people need to die before they get old.
notriddle··on What happened to the lab-leak hypothesis?
A zoonotic jump that happened to occur inside of a wildlife research facility due to bad lab technique is not that scary. If it's proven true, it's pretty likely that the lab operators will fix it. Could you imagine being the guy who caused the COVID-19 pandemic by forgetting to sanitize some tool? I bet whoever did it would be the single most careful and clean research scientist in the entire world after that kind of episode.

The bioweapon theory, however, is politically useful. If you want to start a war, or at least trade sanctions, a villain is a good place to start. Someone violating international law and gene splicing themselves a pandemic in a bottle is exactly the right kind of comic book supervillainy, without being technically impossible.

notriddle··on How safe is Zig?
It's not a difficult bug to fix, but it is a very difficult bug to detect, since miri won't think anything is wrong.
notriddle··on How safe is Zig?
It's actually not very hard to cause. It would happen if your system reuses buffers without actually going through the allocator. Something like this:

    let mut buf = vec![0; DEFAULT_BUFFER_SIZE];
    let database_frame_len = database_socket.read(&mut buf)?; // use 1
    let database_result = Database::parse(&buf[..database_frame_len])?;
    let html_template = HtmlTemplate::new(database_result);
    let html_len = html_template.write(&mut buf)?; // use 2
    socket.write(&buf[..html_len]);
The above code makes the tenuous assumption that HtmlTemplate::write actually clobbers everything it's supposed to write. But it doesn't even require unsafe code for it to not do that, because the underlying buffer is entirely initialized according to the type system.

The only advice I can really give to avoid this kind of bug is: don't reuse buffers unless it's actually a bottleneck.

notriddle··on How safe is Zig?
Then you don't want Zig or Rust. Use a language with a GC. Exploratory programming is a lot more pleasant when you don't have to worry about calling free() at the right time. I've had success with PHP and Elixir for productive, exploratory programming, not just because of their GCs, but also because they both support REPL-driven development and hot code reloading.
notriddle··on How safe is Zig?
The headline feature of rustc memory management is the use of arenas: https://github.com/rust-lang/rust/blob/10f4ce324baf7cfb7ce2b...

    //! The arena, a fast but limited type of allocator.
    //!
    //! Arenas are a type of allocator that destroy the objects within, all at
    //! once, once the arena itself is destroyed. They do not support deallocation
    //! of individual objects while the arena itself is still alive. The benefit
    //! of an arena is very fast allocation; just a pointer bump.
The other thing (not specifically mentioned in this comment, but mentioned elsewhere, and important to understanding why it work the way it does) is that if everything in the arena gets freed at once, it implies that you can soundly treat everything in the arena as having exactly the same lifetime.

You can see an example of how every ty::Ty<'tcx> in rustc winds up with the same lifetime, and an entry point for understanding it more, here in the dev guide: https://rustc-dev-guide.rust-lang.org/memory.html

However, arena allocation doesn't cover all of the dynamic allocation in rustc. Rustc uses a mixed strategy: there's both RAII and lots of arena allocated context that only gets destroyed at the end of a particular phase.

notriddle··on Why is Apache clinging to OpenOffice?
How many documents do you actually own, but still write them in a full-out word processor? Personally, if it's just for me, I use .txt files. Word processors are too much friction for personal notes.

The only cases where I want sophisticated formatting features are for other people's documents, which means it's their business to pick the format. They don't always pick Office 365. Sometimes it's Confluence, or a company-branded tool that I don't even know what it actually is, or Zoho, or G Suite.

Between running some random word processor that someone else picked for me in my browser, and giving it unrestricted access to my home folder (or having to fiddle around to get it running in a container of some sort), I prefer the browser.

I definitely prefer the browser over imposing a monoculture on word processors. Not so much because I think there's much room to innovate in text editing itself (I often enough copy-and-paste between web-based word processors and Sublime Text), but because of the opportunity to innovate in the data model.

notriddle··on Stop using app icons for political activism
I don't think FOSS protects you from political activism.

Here's what comes up on my (Fedora, obviously) machine when I run VIM with no filename specified:

                  VIM - Vi IMproved                                
                                                                   
                   version 8.2.5052                                
               by Bram Moolenaar et al.                            
          Modified by <bugzilla@redhat.com>                        
     Vim is open source and freely distributable                   
                                                                   
            Help poor children in Uganda!                          
    type  :help iccf<Enter>       for information                  
                                                                   
    type  :q<Enter>               to exit                          
    type  :help<Enter>  or  <F1>  for on-line help                 
    type  :help version8<Enter>   for version info                 
According to their git history, VIM has carried uganda.txt since at least 2004.

No technical measures exist to stop you from removing this call for donations, but it's more work to patch it out then it is to just ignore it. This makes FOSS software a pretty good vehicle for political activism. Not just the fact that organizing a hostile fork to remove a message like this one is too much trouble and makes you look like a jerk, but also because political activism is a good way to motivate people to write and release software for free in the first place, making up for how difficult it is to really monetize FOSS software.

notriddle··on Breaking our Latin-1 assumptions (2017)
(2017)
notriddle··on The most satisfying checkbox
I'm a little surprised that this uses a long-press instead of having the user draw a checkbox with their finger. It seems like the natural way to handle a simple shape like this one that came into popularity because of how easy it is to draw.

Was this idea considered? If so, why wasn't it done this way?

notriddle··on The computers are fast, but you don't know it
By this reasoning, though, there is no such thing as localized harm. The reason I can't abide by the idea that "there's no such thing as localized harm" is that, when you actually try to analyze nonlocal harms caused by personal decisions, you get swallowed up by the butterfly of doom.

It's the butterfly effect. For example, a lot of software that actually gets written is a net negative to society, even if it functions perfectly. So does making it more efficient actually benefit anybody? And a lot of other software is embedded in organizations that will add features to the software until it fails, expanding like an ideal gas to fill whatever space it's given, so even if you make it more efficient and less failure-prone, you're only really delaying the inevitable anyway. However, making a bureaucratic organization less efficient might not actually stop it; consider, for example, how the Social Security Card was originally engineered to be unusable as a national ID, but got used as one anyway, so now the United States not only has a national ID that most citizens didn't want, but we're stuck with a bad one. However, identity theft might actually be considered just another case of externalities, and if the bureaucrats had to eat the cost of easy-to-forge national IDs, this problem might have gotten fixed.

I think you can analyze nonlocal harms, but not using informal reasoning in a chatroom. There are too many possible interactions in the real world to fit them all in your head. You end up with an impossible-to-analyze infinite regress.

Instead, nonlocal harms should probably expect real-world measurements to prove that they actually exist and aren't entirely being washed out by the much larger effect sizes of unrelated phenomena.

notriddle··on Amazon builds property empire, quietly buying land across the US
> If you're trying to discover new products of unknown quality and reputation, then it's not so good. For whatever reason, that seems to be the use case people focus on when criticizing Amazon on Hacker News, but I don't see how that can possibly be the dominant use case. Most of what people ever buy is not something brand new to them that they know nothing about.

First of all, HN is full of entrepreneurs and wannabe entrepreneurs. A storefront that can't sell anything that doesn't have a good reputation outside the storefront is bad for small businesses, because nobody is willing to try anything new. A major part of the value proposition of a storefront is that the owners will vet the products they sell for a minimum standard of quality: it's not necessarily great, because greatness is subjective, but the food shouldn't poison you[1] and the AC/DC power converters shouldn't catch fire.

The second problem is that sellers will pass off counterfeit goods as being from major manufacturers when they aren't. I know I'm falling for selection bias, since I've probably bought counterfeit goods without knowing it, but that's not even really the point. The point is that I've bought stuff on Amazon that just didn't work, sold in packaging that's identical to stuff I've bought before that did work. I knew they were counterfeit and not just duds because the actual product didn't have the branding on it that genuine ones always have.

[1]: Well, okay, it might poison you if you have a special allergy. But anything with the common allergens like gluten or lactose will have labels.

notriddle··on Firefox rolls out Total Cookie Protection by default to all users
Subdomains shouldn't be a problem unless your base domain is in the Public Suffix List.

According to MDN:

> More specifically, Firefox double-keys all client-side state by the origin of the resource being loaded and by the top-level site. [1]

They linked the definition of a "site" to the HTML5 spec, which says this:

> To obtain a site, given an origin origin, run these steps: [2]

> 1. If origin is an opaque origin, then return origin.

> 2. If origin's host's registrable domain is null, then return (origin's scheme, origin's host).

> 3. Return (origin's scheme, origin's host's registrable domain).

The HTML5 spec refers to the site's registrable domain according to the URL spec:

> A host’s registrable domain is a domain formed by the most specific public suffix, along with the domain label immediately preceding it, if any. [3]

Public Suffixes are defined according to a database that you have to explicitly register in [4]. If you aren't sure whether your base domain is registered as a public suffix, then it probably isn't.

[1]: https://developer.mozilla.org/en-US/docs/Web/Privacy/State_P...

[2]: https://html.spec.whatwg.org/multipage/origin.html#site

[3]: https://url.spec.whatwg.org/#host-registrable-domain

[4]: https://publicsuffix.org/

notriddle··on Firefox rolls out Total Cookie Protection by default to all users
So use a 301 redirect.
← PreviousPage 4 of 31Next →