ashf023
ashf023 on Hacker News
DoorDash also charges a $2 "regulatory response fee" on every order in NYC. It has a little "info" icon that basically says "look at what these overzealous regulations like absolute minimum of workers rights costs you!"
> It is amazing what you can accomplish if you do not care who gets the credit.
-- Me, 2026
Jokes aside, this is a thought provoking quote. I do think it's easy to say as a well known figurehead, when the quote and other actions below you may easily be attributed to you, at least partially. But I do agree somewhat, and I think the context around Truman's time (WWII) is a good example of what humanity can accomplish when the stakes at hand supersede the considerations of workers' rights or credit/ownership. Of course this is also a very favorable phrasing for a period of enormous human suffering. I think there is an arms race analogy to be drawn here, though the current situation and stakes are much different.
Sure, but there's a big difference between going to a sketchy, malicious site vs a reputable site that does serve ads and now being at the mercy of any arbitrary crap in the ad you didn't choose to see
IMO the ad provider is fully at fault for allowing script tags and other potentially vulnerable features in ads. Why can't the ads just be static? I mean I get why they want it, but it should not be allowed, and IMO that's where the ad provider is almost fully at fault
You can still benchmark say 100 requests and time that. For JVM for example you'll have to consider the JIT effects and GC and stuff that only happens later. So 100x 1ms requests is still a very small benchmark that's probably unreliable
I'm sure we don't literally do backpropagation, but differential equations that settle toward stationary states show up a lot in biology
Being volunteered to help clean the facilities they depend on and otherwise get for free?
I think the point is just about temperature. I've experienced this out on lakes in the northern US for example. It's sunny but not like a tropical beach, and maybe even a little chilly. But you'll definitely get burnt without sunscreen
Time is definitely a killer app on watches
In addition to godbolt and reading the output, the scalable check is just benchmarks. When you write new code that you want to autovectorize, you can check it in ways mentioned already. But then IMO the biggest downside of autovectorization is that it can suddenly disappear with seemingly minor code changes. For that you want benchmarks that run in CI or on some regular schedule. Then when you see a regression you can use a profiler plus the other mentioned tools to investigate
100%. I've always used youtube on desktop (connected to the TV usually), and it seems to me they're just making all versions of youtube into a mobile app optimized for shorts type content. Recommendations are hugely influenced by what you watched very recently. What used to be related videos in the side panel of the player is now just the home page again, but vertical. Even just generating a recommendation from "Whatever (part 2)" to "Whatever (part 3)" is hit or miss now. Some of the recommendations are actually quite good, but at least for the way I like to watch, it's only getting worse over time. The category labels on the home page are also pretty telling - horrible labels (e.g. I watch some cooking/recipe videos and the label will be "Baking sheets" or something like that), plus it emphasizes the recency bias when it shows 5 categories that are basically just the same content with different labels and forgets what I've always liked watching.
Genuine question, but have you seen the popup being described? It's absolutely huge, and has a fake x button pattern. The complaint is on how disruptive it is, not the ask for donations
I don't think this applies to Python. There is a core team and there are expenses, but people do contribute code and work. Not to mention corporate sponsors. Sure, donate if you want, but it's not the same as blocking ads on purely ad-funded content (which I do, but won't defend as much)
I looked out of curiosity and on my 15 inch laptop screen it does take up probably about 40%. I'm surprised by how egregious it is. And it looks like they changed it (or there's an A/B test?) since the thread. It also now jokes about how banners are cringe, actually taking up more space!
Yes, and on one request I saw a message like "Restarting server - this won't take long", and soon after it's back up.
I mean, do it if it's worth it. But the parent seemed to imply everyone should be doing this kind of thing. Engineering is about tradeoffs, and sometimes the best tradeoff is to keep it simple.
I'm definitely in favor of not pessimizing code and assuming you can just hotspot optimize later, but I would say to avoid reusing objects and using sync.pool if it's really not necessary. Go doesn't provide any protections around this, so it does increase the chance of bugs, even if it's not too difficult to do right.
paranoid schizophrenia is an increasingly reasonable reaction to the modern world
Yeah, golang is a particular nightmare for SIMD. You have to write plan 9 assembly, look up what they renamed every instruction to, and then sometimes find that the compiler doesn't actually support that instruction, even though it's part of an ISA they broadly support. Go assembly functions are also not allowed to use the register-based calling convention, so all arguments are passed on the stack, and the compiler will never inline it. So without compiler support I don't believe there's any way to do something like intrinsics even. Fortunately compiler support for intrinsics seems to be on its way!
https://github.com/golang/go/issues/73787
> Henriks true penalty would be living in a country of 6 million people that all know his face and that he is a pedophile.
This is what I object to, not really your comment. Is this factored into the sentencing? If he weren't a public figure would he have a harsher sentence?
> You don’t have to worry about him doing anything in Politics again
Sure, if everyone in Denmark remembers this guy then he won't be popular. But really we don't have to worry about him? 4 months later is he just free to go back to collecting CP, maybe leave Denmark, etc?
What an absolutely absurd statement
JPEG is similar actually. The DCT is invertible, but the result of the DCT is quantized, which is where some of the compression happens (DCT -> quantization -> IDCT), so the end to end process is not truly invertible. Maybe an analogy to the non-linearities in between the linear steps in deep learning
Agreed it's missing that detail. I think it makes sense though that the durable queues shouldn't need strong consistency and transaction isolation, just durability, so the DBs can probably be sharded pretty arbitrarily, maybe operate in lower isolation modes, etc, whereas the DB they need to async writes to probably does need transaction isolation and all that. I'd appreciate if the article would confirm or deny my guess here!
Fair enough, I was a little too negative. It is good they're thinking about improvements
Interesting that very few people in that thread seem to understand Go's model, especially the author of this proposal. If you don't allow preemption, you still have a sort of coloring because most non async functions aren't safe to call in a virtual thread - they may block the executor. If you call C code, you need to swap out stacks and deal with blocking by potentially spawning more OS threads - that's what CGo does. Maybe preemption is harder in Python, but that's not clearly expressed - it's just rejected as obviously unwanted.
Ultimately Python already has function coloring, and libraries are forced into that. This proposal seems poorly thought out, and also too little too late.
All goroutines are async in some sense, so generally you don't need to return a channel. You can write the function as if it's synchronous, then the caller can call it in a goroutine and send to a channel if they want. This does force the caller to write some code, but the key is that you usually don't need to do this unless you're awaiting multiple results. If you're just awaiting a single result, you don't need anything explicit, and blocking on mutexes and IO will not block the OS thread running the goroutine. If you're awaiting multiple things, it's nice for the caller to handle it so they can use a single channel and an errorgroup. This is different from many async runtimes because of automatic cooperative yielding in goroutines. In many async runtimes, if you try to do this, the function that wasn't explicitly designed as async will block the executor and lead to issues, but in Go you can almost always just turn a "sync" function into explicitly async
"one obvious way to do something" describes almost none of Python. Easier said than done I guess, but I find Python particularly bad at it
If I understand it correctly, this is only catching ownership violations at runtime, so it doesn't actually prevent writing/shipping the bug? But it does seem to be able to improve the detection rate and determinism, and also help with diagnosing the bug when it's discovered. If this does let simple unit tests in CI discover concurrency bugs, that's a big improvement, even if it's not as strong as static analysis. I imagine there are still cases where the ownership violation is not deterministic though, e.g. depending on the data or the app's configuration, and maybe will not be caught until production
IMO pushing ifs up makes sense when the condition is enforceable by the type system, e.g. in the Option<Walrus> vs Walrus example, and when doing so makes the function's purpose more clear, or gives callers more flexibility. I think it's generally intuitive when writing code - can I use the type system to guard this rather than checking in my function, and should this function decide what happens in the unexpected cases?
Pushing fors down is usually not that relevant in Rust if all it achieves is inlining. The compiler can do that for you, or you can force it to, while improving reusability. It can make sense if there's more optimization potential with a loop e.g. lifting some logic outside the loop, and the compiler doesn't catch that. I also would avoid doing this in a way that doesn't work well with iterators, e.g. taking and returning a Vec.
Yeah I find this so strange. Why not take the opportunity to throw a bunch of heavily cached shorts recommendations in our faces when signed out? I don't understand how the anon home page is not both a money maker and extremely cacheable and cheap to serve