When I see an AI-generated hero image, I close the tab. It’s an excellent heuristic for quality.
HN user
dmart
Thanks for the recommendation! I'd heard of fish but didn't realize that was a feature. It seems quite nice.
I’m not a huge fan of Warp, but I would love for any other terminal to copy its text editor-style input field.
It’s so much nicer for 90% of my terminal usage (long multi-line commands, etc.) And when you do need TUI behavior that 10% of the time, just toggle it off.
The new one also doesn’t consistently snap to a specific line in the URL fragment if the diff is too large, which makes sharing links problematic.
Wow, reordering workspaces with the mouse! This is a small thing that has been driving me insane on GNOME coming from macOS.
VPC endpoints in general should be free and enabled by default. That you need to pay extra to reach AWS' own API endpoints from your VPC feels egregious.
Just offloading the analysis to the phone is extremely funny. It also seems like a pretty obvious solution, so I wonder if it was delayed by legal analysis and they only just decided it was likely to hold up in court.
Ah, that may be the case - I’ll edit my comment. I was primarily using macOS before this so I may have misremembered the Windows behavior.
As a recent Linux (and Wayland) switcher, I love this behavior. It has always felt insane to me that macOS will just let some random auto-updater steal focus and eat your keystrokes while trying to work on something.
I like Nix but I think the current model of reinventing a new set of declarative configuration settings for each package is fundamentally misguided and will not scale in the long term (look at the number of program-specific options in Home Manager for example).
The nice thing about container-based systems is that all the existing documentation for configuring a given program continues to apply as expected. Of course the tricky part is figuring out how to compose them together.
I don’t know what you mean by this, unless there’s a personal reason. LGA has a free shuttle bus from the subway, JFK and EWR have AirTrains connected to the subway, and SFO has a direct BART connection. I use public transit exclusively to get to all of those airports.
My guess would be that this is in support of the preview hover feature. For a while now, you can watch an entire video just by hovering over it, complete with captions, scrubbing and audio. This wouldn't be very useful if the thumbnails were still tiny like in the past. Personally, I like this feature and don't often need to look at tons of thumbnails at once, but to each their own.
Abandoning traditional constructors and all their strange special-cased rules in favor of regular old class methods that return Self was one of Rust’s best design decisions, I think. Super easy to reason about. Glad to see similar techniques being advocated for other languages.
I used Direct File this year. Super fast and simple, no upsells or bullshit. Feels like every little thing just gets worse and worse lately.
Would be interested in any impressions of this vs. TLPI. Seems like it covers a lot of similar topics.
Gross. The slow intrusion of ads into more and more places might raise revenue a little bit, but tarnishes Apple's brand image. Apple News is already a revolting app, only somewhat saved by the fact that Google News is even worse.
I've already decided that my personal line in the sand is when they replace the scenic screensavers on Apple TV with ads, something they're already toeing the line with in the newly added Peanuts screensavers. At that point Apple has lost the plot and I want nothing to do with their products anymore.
Wow, I really, really like this! A couple points of feedback (based on testing out Japanese -> English translation):
- It took me a second to find auto-pause. Maybe some of those things in the settings menu could be more accessible, similar to how Spotify puts shuffle/repeat icons near the play button.
- I would really like the arrow keys to move back and forth between auto-pause points.
- Regarding auto-pause, it seems to clip off a little early, maybe consider extending the duration or adding a little bit of overlap?
- When clicking to define a word, "Define in Context" is a nice feature to have but is maybe a little slow (and possibly expensive on your end?) to have as a default. I think just opening a static dictionary lookup by default would be nice. With Japanese, I am able to work around this with the Yomitan browser extension though.
- I probably wouldn't use the spoken translation feature, but when I tried it, the voice sounded very robotic considering the high standards for AI-generated voices these days. Though I imagine a better voice might be a cost barrier.
Please don't take this as harsh criticism, just some initial impressions. Overall I really like the idea and will likely continue to use it for listening practice.
Using #[from] in a thiserror enum is an antipattern, IMO. I kind of wish it wasn't included at all because it leads people to this design pattern where errors are just propagated upwards without any type differentiation or additional context.
You can absolutely have two different enum variants from the same source type. It would look something like:
#[derive(Debug, Error)]
pub(crate) enum MyErrorType {
#[error("failed to create staging directory at {}", path.display())]
CreateStagingDirectory{
source: std::io::Error,
path: std::path::PathBuf,
},
#[error("failed to copy files to staging directory")]
CopyFiles{
source: std::io::Error,
}
}
This does mean that you need to manually specify which error variant you are returning rather than just using ?: create_dir(path).map_err(|err| MyErrorType::CreateStagingDirectory {
source: err, path: path.clone()
})?;
but I would argue that that is the entire point of defining a specific error type. If you don't care about the context and only that an io::Error occurred, then just return that directly or use a type-erased error.No. Screen Time (their parental controls implementation) is easily circumventable, includes a “One More Minute” feature that can’t be disabled, doesn’t sync properly, manages to crash Safari in mysterious ways… I could go on. It’s disastrous, like an intern-level project that was shipped and never improved upon. And these are the only parental controls APIs available, so competing apps aren’t even possible, they ultimately just serve as alternate frontends for Screen Time.
Venvs are so clunky and probably the biggest stumbling block for beginners. There was a proposal for a directory-based node_modules analogue which was unfortunately rejected.
I think that would have been the single biggest improvement to the Python onboarding experience ever.
I would have liked to see a comparison in the fold() section that functions the same way as the original for loop:
list_of_lists.into_iter().fold(Vec::new(),
|mut accumulator, list| {
accumulator.extend(list);
accumulator
}
)I’m assuming they mean stuff like Quaker oatmeal packets which are half sugar.
I’ve been hearing about access to DOM APIs from WASM for years now. Does anyone know why this is such a difficult problem?
I don’t see how container tabs “get you halfway there”? I think they’re far superior to needing to switch your entire browser context to a different profile.
How dare they add undocumented APIs to a product they pay to develop and give away for free.
I fully expect that an exception will be made to effectively treat it as a tech-related gTLD, which is how it has been used in practice all along anyway.
If ICANN really chooses to break every GitHub Pages, crates.io, gcr.io, quay.io, etc. URL just to blindly follow a policy, then they will have proven themselves an incompetent arbiter of the domain name system. This feels so unlikely that I'm not worried about it all.
Yup this drives me crazy. I've been bitten by urllib3 or SSL exceptions being bubbled up by random libraries so many times that now I always include an except Exception: block just in case.
With safe concurrency and typed throws, Swift is starting to look a lot like a friendlier Rust to me. Honestly pretty excited to take a look at it again, though I doubt it will become my daily driver due to the smaller package ecosystem. Hopefully cross-platform Foundation is a step towards improving that though.
I have to admit that at first glance I don’t like this. These seem to be essentially normal str -> Any functions, with some naming limitations due to the existing string prefixes special-cased in the language. I don’t feel like adding this additional complexity is worth being able to save two parentheses per function call.
It’s a shame, because it has some of the most well-done commentary I’ve seen in a game. Worth a look if you’re into discussions about game design.