> Dollar stores are private equity with a checkout lane.
Dollar Tree and Dollar General are publicly traded.
So Family Dollar might be the result of PE tactics, but the other two aren't, and Dollar Tree sold Family Dollar because they saw it as under-performing.
It's actually sort of weird Dollar Tree couldn't make it work. I know the dollar stores all have somewhat different businesses, but you'd think that Dollar Tree could have either turned Family Dollar around or knew it was selling a loser (see the market for lemons) to PE.
Not charging the best-advertised price is dishonest. It might also be in customers' best interest if the cost of keeping consistent price data on low-margin items costs more than whatever the inconsistency is. Or the answer might be that dollar stores sell too wide of a variety too cheaply on too low-margin product to play supermarket-style pricing games effectively.
The real answer is that you either rename the product right around version 10 (because 17 is too big for iPhone versions) or you use the year like sports video games.
Back in the Apple ][ days, the timing for writing to the cassette port and to the speaker were identical (just poking different addresses), so you could load audio from cassette using the ROM routines to read a program from tape, then use a modified routine that wrote to the speaker address instead of the cassette port address to play back the audio at 1-bit quality. It kind of sounded like something recorded off AM radio.
I also remember a lot of experimenting with timing to try to get a simulation of polyphonic sound by trying to toggle the speaker at the zeros of sin aθ + sin bθ.
Shell had to do this because of shell reasons, like how you need spaces where you shouldn't. Perl post-dated C by over a decade, so there was no reason for goofy argument unpacking.
Yes there was a reason as Perl took inspiration from Lisp - everything is a list- and everyone knows how quick C's variadic arguments get nasty.
So @_ was a response to that issue, given Perl was about being dynamic and not typed and there were no IDEs or linters that would type-check and refactor code based on function signatures.
JS had the same issue forever and finally implemented a rest/spread operator in ES6. Python had variadic from the start but no rest operator until Python3. Perl had spread/rest for vargs in the late 80s already. For familiarity, Perl chose the @ operator that meant vargs in bourne shell in the 70s.
Not only normal arguments like we get in C or Pascal, but there's keyword arguments, you can have optional arguments, and a rest argument, which is most like Perl's @_. And that's not even getting into destructuring lambda lists which are available for macros or typed lambda lists for methods.
Isn't that the state with license plates that say "live free or die?" Unless, of course, you have a moral objection to that statement, cf. Wooley v. Maynard.
Do you see anyone claiming the opposite? The point is that they will not write the motto on your license plate if you object.
I get that HN attracts a certain amount of pedantry, but I can't figure out what exactly you're even trying to be pedantic about. There's not single comment here that could be reasonably interpreted as suggesting that "live free or die" isn't their motto
His pedantic point is that due to the way the original question was written, the answer is “yes” regardless if you object or not.
The question was “isn’t that the state with license plates that say ‘live free or die’?” And even if you get a license plate that doesn’t say it, NH is still the state with those plates
They're not that free about beer. Though, more free about beer than liquor. That's only allowed to be sold in state run liquor stores. It was a real head scratcher when I first encountered it.
That means they engineered their systems incorrectly then? Precisely because they are much bigger, they should be more resilient. You know who's bigger than Cloudflare? tier-1 ISPs, if they had an outage the whole internet would know about it, and they do have outages except they don't cascade into a global mess like this.
Just speculating based on my experience: It's more likely than not that they likely refused to invest in fail-safe architectures for cost reasons. Control-plane and data-plane should be separate, a react patch shouldn't affect traffic forwarding.
Forget manual rollbacks, there should be automated reversion to a known working state.
> a react patch shouldn't affect traffic forwarding.
If you can’t even bother to read the blog post maybe you shouldn’t be so confident in your own analysis of what should and shouldn’t have happened?
This was a configuration change to change the buffered size of a body from 256kb to 1mib.
The ability to be so wrong in so few words with such confidence is impressive but you may want to take more of a curiosity first approach rather than reaction first.
> Instead, it was triggered by changes being made to our body parsing logic while attempting to detect and mitigate an industry-wide vulnerability disclosed this week in React Server Components.
> Unfortunately, in our FL1 version of our proxy, under certain circumstances, the second change of turning off our WAF rule testing tool caused an error state that resulted in 500 HTTP error codes to be served from our network.
The body parsing logic is in react or nextjs, that's my takeaway, is it that incorrect? and the WAF rule testing tool (control plane) was interdependent with the WAF's body parsing logic, is that also incorrect?
> This was a configuration change to change the buffered size of a body from 256kb to 1mib.
Yes, and if it was resilient,the body parsing is done on a discrete forwarding plane. Any config changes should be auto-tested for forwarding failures by the separate control plane and auto-revered when there are errors. If the waf rule testing tool was part of that test then it being down shouldn't have affected data-plane because it would be a separate system.
data/control plane separate means the run time of the two and any dependencies they have are separate. It isn't cheap to do this right, that's why I speculated (I made clear i was speculating) that it was because they wanted to save costs.
> The ability to be so wrong in so few words with such confidence is impressive but you may want to take more of a curiosity first approach rather than reaction first.
Please tone down the rage a bit and leave room for some discussion. You should take your own pill and be curious about what I meant instead of taking a rage-first approach.
1. There is an active vulnerability unrelated to Cloudflare where React/Next.JS can be abused via a malicious payload. The payload could be up to 1MB.
2. Cloudflare had buffer size that wasn't enough to prevent that payload from being sent to the Customer of the Cloudflare.
3. Cloudflare to protect their customers wanted to increase the buffer size to 1MB.
4. Internal Testing Tool wasn't able to handle change to 1MB and started failing.
5. They wanted to stop Internal Testing Tool from failing, but the Internal Testing Tool required disabling a ruleset which an existing system was depending on (due to a long existing bug). This caused the wider incident.
It does seem to be like a mess in the sense that in order to stop internal testing tool from failing they had to endanger things globally in production, yes. It looks like legacy, tech debt mess.
It seems like bad decisions done in the past though.
Maybe they should have focused on fixing the "legacy tech debt mess", rather than pushing out more and more services and trying to be like AWS or Azure.
that makes better sense now, thanks. I feel dumb now that I re-read it, in my mind they patched nextjs/react and the new patch somehow required more buffer size.
Dollar Tree and Dollar General are publicly traded.
So Family Dollar might be the result of PE tactics, but the other two aren't, and Dollar Tree sold Family Dollar because they saw it as under-performing.
It's actually sort of weird Dollar Tree couldn't make it work. I know the dollar stores all have somewhat different businesses, but you'd think that Dollar Tree could have either turned Family Dollar around or knew it was selling a loser (see the market for lemons) to PE.
reply