HNHacker News
TopNewBestAskShowJobs

roelschroeven

1,800 karma · joined January 17, 2019

[ my public key: https://keybase.io/roelschroeven; my proof: https://keybase.io/roelschroeven/sigs/Nz0IX54-mcSFTECmlPQdnSc7uQmAIDijnfOugQ4B5xk ]
submissionscomments
roelschroeven··on iPhone Air
> [...] the same 27 hours as the 16Pro. That’s pretty good for such a thin device.

Maybe pretty good for a thin device that they made so thin for no good reason at all. Making it so thin is not something to be proud of, and we certainly shouldn't let it slide as an excuse for bad battery life.

I mean, when did "remarkable all‑day battery life" become something to be proud of? I consider a phone that doesn't last a full day defective. All-day battery life is the bare minimum, not something to be proud of.

roelschroeven··on A love letter to the CSV format (2024)
It still can't properly deal with CSVs that use different decimal separators than the UI setting in Excel / Windows. It's still too stupid to understand that UI localization and interoperation should never be mixed.
roelschroeven··on YouTube is a mysterious monopoly
I think this network effect and the discoverability aspect are the main reasons why it's extremely hard to compete with YouTube. Why would people use another site if the content they want to see is not there, or is too difficult to find? Why would creators put videos there if they can't find a large audience?

The YouTube algorithm is problematic in many ways but it does succeed in viewers being suggested videos they want to see, even if the signal-to-noise ratio is not very good. That's hard to replicate when starting a new service.

roelschroeven··on Ex-WhatsApp cybersecurity head says Meta endangered billions of users
We don't really know that messages really are end-to-end encrypted though, do we? Is there a way to actually check that the messages in transit are encrypted in a way that only the other end can decrypt them? If not, we have to take Meta's word for it, which frankly doesn't carry much weight.
roelschroeven··on Submarine Cable Map
Both Russia and the USA have cables there though, they're just not connected.
roelschroeven··on Python: The Documentary [video]
Python's queue is for communication between threads. What's the use of such a thing if it's not thread safe?
roelschroeven··on I Don't Have Spotify
Once upon a time they did, but I've been buying DRM-free music from iTunes for a long time now. The songs might have a watermark though? I don't really think so, but even if they did, I don't really have a problem with that.
roelschroeven··on Why do people keep writing about the imaginary compound Cr2Gr2Te6?
How would the reader know the writer intended Ge instead of Ga? More importantly: why should the burden of figuring that out fall on the reader instead of the writer? Especially when considering that every publication normally has a lot more readers than writers.
roelschroeven··on Will Smith's concert crowds are real, but AI is blurring the lines
I value old photographs of my and my family not because they look good or whatever but because they show where we've been and what we've been doing etc. They're documented history. Once you start heavily editing, making them showing things that weren't there, you loose that history. I think that's a loss.
roelschroeven··on YouTube made AI enhancements to videos without warning or permission
Those translations are not only unwanted but also ridiculously bad (which is part of the reason why they're unwanted, I guess). I have to translate back to the original English, as far as that's even possible, to get an idea of what the video might be about.

Who in his right mind thought this was a good idea??

I have a Firefox extension which tries to suppress the translations, but it only works for the main view, not for videos in the sidebar. It's better than nothing.

roelschroeven··on Why you can’t grow cool-climate plants in hot climates
If you think the rise in global temperature that's going on now is going to lead to the golden ages of civilization, you're deeply confused about how the world works.

Go to the Wikipedia page on the Little Ice Age, have a look at the graph Global Average Temperature Change, and explain to us how current climate change is at all comparable to the Little Ice Age, or the Medieval Warm Period for that matter.

Or have a look at https://xkcd.com/1732/ (scroll all the way down) to get an idea of the rate and scale of temperature changes throughout human history.

roelschroeven··on GitHub is no longer independent at Microsoft after CEO resignation
What EGreg is saying is that most development environments and UX used to be based on Atom, while they are now based on VS Code.

EGreg didn't mean to say that VS Code used to be Atom, or is based on Atom, though I agree his wording was a bit ambiguous and it could be interpreted that way.

roelschroeven··on Emailing a one-time code is worse than passwords
How do you know the email comes from that website? There are known cases of phishing mails being sent when people expect a legitimate mail.
roelschroeven··on Emailing a one-time code is worse than passwords
> “Click a link in the email” is a tiny bit better because it takes the user straight to the GOOD website, and passing that link to BAD is more tedious and therefore more suspicious.

"Click a link in the email" is really bad because it's very difficult to know the mail and the link in it are legitimate. Trusting links in emails opens to door to phishing attacks.

roelschroeven··on Major rule about cooking meat turns out to be wrong
Or "On Food And Cooking: The Science And Lore Of The Kitchen" by Harold McGee.
roelschroeven··on Electric cars produce less brake dust pollution than combustion-engine cars
The manual recommends putting the car in neutral and then braking every once in a while to keep the brakes in good working order. Putting the car in neutral disables the recuperation and makes sure you really use the friction brakes.

(When I say "the manual", I mean both the manual of my previous car which was a hybrid Toyota Auris, and my current car which is a fully electric Volvo XC40.)

roelschroeven··on Electric cars produce less brake dust pollution than combustion-engine cars
The post you commented on was talking about Toyota hybrids though, who don't use a CVT in the sense you're talking about.

They use a series-parallel hybrid transmission which is sometimes called eCVT, but works completely different from a classic CVT. There are no pullies, belts, chains, none of that. What they do have is a couple of motor-generators and a differential to link the system up with the engine and the drive shaft. No friction losses like CTVs have.

See https://prius.ecrostech.com/original/PriusFrames.htm, or look up "Hybrid Synergy Drive" on Wikipedia or Youtube or your favorite search engine.

roelschroeven··on Staying cool without refrigerants: Next-generation Peltier cooling
It seems to me that if you have a heat pump, you don't need the Peltier anymore.
roelschroeven··on Why JPEGs still rule the web (2024)
It depends on the use case.

For archival purposes, where you care about not losing details is more important than image size, PNG is better (though often TIFF is used for that use case). For images with large blocks of solid colors and sharp edges (text, line drawings), PNG is arguable better (though JPEG can be acceptable if you're careful with quality settings). If you need alpha support, go for PNG since JPEG doesn't support that.

For photograph-like images, where image size is important, JPEG is preferred over PNG.

roelschroeven··on How the BIC Cristal ballpoint pen became ubiquitous
And for rewinding cassette tapes.
roelschroeven··on Practical SDR: Getting started with software-defined radio
I could be wrong but I think that only works for AM, not for FM.
roelschroeven··on 32 bits that changed microprocessor design
For right shifts, yes, instruction sets commonly have the distinction between arithmetic and logic.

Findecanor was talking about left shifts though.

roelschroeven··on Does Earth have two high-tide bulges on opposite sides? (2014)
The Bernoulli principle is not bullshit -- it is very valid physics.

You might be thinking the way it's often used to wrongly explain how airplane wings generate lift. Yeah, that's bullshit. I mean, the principle still applies, if applied correctly. The equal transit bullshit that it's often associated with, well yes, that's complete and utter bullshit.

roelschroeven··on Ratatoi is a C libary that wraps stdlib's strtol (as atoi does), but it's evil.
The bug is in the spec, but as the other pointer also points out:

> However, current implementations are not safe from that bug, so it is not recommended to use them. Instead, programs should use functions such as strtol(3) to parse numeric input. This manual page deprecates use of the numeric conversion specifiers until they are fixed by ISO C.

In other words, sscanf itself is not safe to use for numeric conversions.

Why should you care? Depends. Do you care about writing correct programs? If not, there's no need to care.

roelschroeven··on The scientific “unit” we call the decibel
> If you use dB to describe the power of a signal that is slightly different (you use 10 instead of 20 as multiplier/divisor)

This is the part I don't get. This is the part where "dB is just a multiplier" falls short. It's there to "so that the related power and root-power levels change by the same value in linear systems" (that's how Wikipedia formulates it). Why is that even something you would want? Isn't it much more logical, intuitive, consistent and useful to reflect the fact of power being proportional to the square of the signal in it having double the dB value?

roelschroeven··on Ratatoi is a C libary that wraps stdlib's strtol (as atoi does), but it's evil.
No, that's very much not what undefined behavior means. Undefined Behavior (the man page on my system actually capitalizes both words) means that there are no guarantees at all about the behavior of the whole program. It can very much wipe out whole chunks of memory, or crash (not necessarily in or around the sscanf call), or get stuck in an infinite loop, or whatever.
roelschroeven··on Ratatoi is a C libary that wraps stdlib's strtol (as atoi does), but it's evil.
> conventional, consistent[1], and documented--semantics of only setting errno on error.

From that man page:

> The implementation may also set errno to EINVAL in case no conversion was performed (no digits seen, and 0 returned).

There are error cases where the implementation may set errno to EINVAL. There's not even a guarantee. I did a quick test. errno is only set if you pass an invalid base, or if the string does contain a number but it is out of range. If you pass a string which doesn't even remotely look like a number, errno is not set. You have to check endptr.

  #include <errno.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>

  int main(void)
  {
    const char *s = "this is not a number";
    printf("strtol(\"%s\")\n", s);
    errno = 0;
    long a = strtol(s, NULL, 10);
    printf("errno: %d; strerror: %s\n", errno, strerror(errno));
    printf("result: %d\n", a);
    return 0;
  }
Output:

  strtol("this is not a number")
  errno: 0; strerror: Success
  result: 0
https://godbolt.org/z/TbEKss8zM

That's just rubbish design. In what is in my opinion the most common error case, namely that the string doesn't represent a number while you expect that it does, errno is not set.

roelschroeven··on Don't guess my language
Glad to hear how the other side of the country experiences things -- that happens not nearly enough, we (and our media) tend to focus too much on our part of the country (in my opinion).

Not glad to hear you have the same problems (only different).

I wasn't really talking about French companies though; I've seen it with large American or Korean companies. I'm gonna say companies like Nvidia or Samsung; I'm not sure about these two exactly, but I've certainly seen it with companies of that caliber.

roelschroeven··on Don't guess my language
This drives me nuts.

Once upon a time French was used even in the Dutch speaking parts, in government, economy, high society. That was long before the internet got popular though. We've had a long fight to get rid of French in Flanders. Dutch is the only official language in Flanders, and it's the language people speak (except expats, or migrants who haven't learned the language yet).

So when companies still assume Belgium == French, it's not only wrong, but it comes across as very condescending. It feels like they haven't outgrown the times where Dutch was suppressed in favor of French.

And why? If a company wants to use only one language for the whole country, it's better of choosing Dutch (as we indeed account for about 60% of the population). Many of those companies do have a perfectly good Dutch translation, which they use for their site when viewed from the Netherlands. Even if they don't, I much prefer English over French.

roelschroeven··on Matt Godbolt sold me on Rust by showing me C++
I guess there's a place for functions that extract or parse partially, but IMO there is a real need for an actual conversion function like Rust's parse() or Python's int() or float(). I think it's a real shame C++ (and C as well) only offers the first and not the second.
← PreviousPage 4 of 23Next →