Hacker Newsnew | past | comments | ask | show | jobs | submit | avalys's commentslogin

How do you feel about the batteries in electric vehicles?

What about wearable devices like a smartwatch, headphones, smart glasses?

Should all these be consumer-replaceable without tools, regardless of the effect on the other things people value in these devices (waterproofing, size and weight, battery life, etc.)?

FYI I do not work for anything close to the consumer tech industry.


In software architecture, we talk about essential complexity and incidental complexity.

Essential complexity is inherent to the problem being solved; it can't be eliminated through better tools, process, or design. Incidental complexity is anything added by poor choices or flawed tools. Every line in a "hello world" program that isn't something pretty close to `print("hello world")` is incidental complexity.

To change the battery in electric vehicles that follow typical present-day design patterns, it's essential to have a way to get some clearance under the vehicles like a lift, ramps, or a pit, and it's essential to have a lift or jack to support the weight of the battery. Everything else is basic hand tools.

It is not essential to use any proprietary tools or software that isn't onboard the car or battery. Requiring anything like that is incidental, and a regulation could forbid it in the name of right to repair, reducing waste, or maintaining a healthy used car market.


For EVs you need at least a hoist/lifter/crane/other power tool to replace a battery. But sure, there's no actual engineering reason they can't be replaced by the user. Same for the smartwatch - you can replace a battery in most ordinary wristwatches that use them, why not the smart ones? IEMs are usually too small and that's where the engineering limitations might matter. Headphones, no problem.

> without tools

With commercially available tools, yes. The argument is that, given the skill, you could pull it off.

Then again, maybe cars are a different category. I really don't have enough skilll to add to this discussion


> The argument is that, given the skill, you could pull it off.

Obviously true for any iPhone battery.


In other words: IKEA-esque. Should be the goal of any so-called modular systems.

Magneto-optical drives are what I miss! The nearest thing we ever had to a durable and useable long-term storage media for normal users, as far as I know.

Don’t know who this guy is, but I’m glad I never interviewed with him. This is language-version-specific behavioral minutiae that anyone can look up in 5 minutes in the rare case it matters, and is otherwise irrelevant to engineering software at a senior level.

This article is a junior engineer’s idea of what a senior engineer should know.


This feels like an overly negative comment. language specific minutiae is interesting to a lot of developers, and this kind of stuff is exactly what you'd ask if someone claimed to be an experienced C++ developer. You're not going to decide not to hire them based on them not knowing this specific thing, but if you ask them 5 different questions about specific behaviour/edge cases/whatever and they don't know any of them it's probably a bad sign.

(Although "this is bad practice, I've never done it, I didn't care to look up details" would be a perfectly fine answer to me if I was the interviewer)


I am an experienced C++ developer, I know what happens in this particular case, but this type of minutiae are only interesting to the developers who have never had an actually hard problem to solve so it's a red flag to me as well. 10 years ago I would have thought differently but today I do not. High performance teams do not care about this stuff.


Damn. Just the new C++ syntax for this stuff makes it seem like a foreign language.

It’s no longer the C++ from 20 years ago.

Raising exceptions in a destructor sounds even more fun than a “return” statement inside a Python “finally” block of a method.

The footgun store will never go out of business!!!


It's as close as you can get to useless knowledge. It's like asking a pilot "exactly how will the aircraft break apart if you nose dive it at high speed into the ground?"


This analogy makes a lot of sense until you need to deal with an exception emanating from a destructor... then it looks a lot more like "what's the proper way to hold a chainsaw"


I want to play a game. In your hands is a chainsaw about to be destructed. Another exception is already in flight. Live, or std::terminate. Make your choice. -Jigsaw


> This is language-version-specific behavioral minutiae that anyone can look up in 5 minutes in the rare case it matters, and is otherwise irrelevant to engineering software at a senior level.

The fact that C++ programming books have entire sections about destructors (see: Effective C++) shows that this is very much not irrelevant minutiae. C++ forces you to deal with this kind of detail all the time.

Now, we can have a much more interesting discussion about whether C++ is a disaster of a language precisely because you are forced to deal with this kind of minutiae by hand. We could also have an interesting discussion about whether RAII is the "object oriented" of our time. We could even have an interesting discussion as to why so many companies ban constructors/destructors in their C++ programming guidelines.

However, irrelevant minutiae C++ destructors are not.


What book covers in depth *throwing* from destructors? Even more sane thing — throwing from constructors and function arguments — is mentioned in passing ("unwind will take care of everything, don't think too hard about it") unless you are in a language lawyer mailing list. But exceptions *during destruction*? What book discusses that? That's like covering use of NaN values as map<> keys...


"Effective C++" ?

  Chapter 2: Constructors, Destructors, and Assignment Operators
      Item 5: Know what functions C++ silently writes and calls.
      Item 6: Explicitly disallow the use of compiler generated functions you do not want.
      Item 7: Declare destructors virtual in polymorphic base classes.
      Item 8: Prevent exceptions from leaving destructors.
      Item 9: Never call virtual functions during construction or destruction.
      Item 10: Have assignment operators return a reference to *this.
      Item 11: Handle assignment to self in operator=.
      Item 12: Copy all parts of an object.
This stuff is bread and butter of C++ (or at least it used to be; perhaps this is different in "modern" C++) and lots and lots of grist for people like Scott Meyers and Herb Sutter.


"Prevent exceptions from leaving destructors." — thank you for providing well known sources that support my point! Although sadly we all have to eat Sutter Meyers bread, at least it explicitly tells you to not worry about the way exceptions are handled during object destruction — by simply avoiding such exceptions.

No C++ "bread and butter" I have seen so far goes into depth on this subject.


Ban constructors? Though I don't agree with the practice, I could imagine a reason for banning destructors. But constructors? Why?


Because the two go together. If you have to ban one, you pretty much have to ban both.

Although, I guess if you only statically allocated everything once at startup, you could use constructors without destructors? Presumably using the placement versions would also let you use constructors without destructors.

I'm generally talking about systems that are <64KB. You basically don't get heap and determinism is really important.


I see, thank you. I have never done embedded.


If you noticed, the article did not actually tell you what happens when destructor throws. It was only about double-exception case and throwing in nothrow() function (both perfectly valid things to know when jobbing).

What state are members left in when destructor throws? If exception happens in virtual base? If member destructor throws, what other class members have they destructor executed? will delete[] be called?

The author possibly does not care to know themselves! As you say, totally irrelevant to any normal programming. Unless you are writing clang or gdb


“The camera is the least important element in photography.”


Well, now those who will go to look it up in 5 minutes may end up reading this guy’s article.


It’s not that they can’t afford it, it’s that Android users aren’t worth the investment.


Like others here, I don’t have this problem. I often leave them in my backpack for weeks between airplane flights, etc.


Up 30% is not “nearly doubles”.


Where are you pulling this number from? I see a clear change from 350 to 585


350 was late last year. The text at the top of the linked page says prices are up about 30% over the past month. Directly prior to the war starting the price was about 470


Yeah, if you haven't used a social network for years, and nor do your friends, and you log in to the social network, you get pretty trash content. This shouldn't be surprising.


This looks like the controls for a very stylish Italian delivery van. Not an exotic sports car.


What is an example of such a condition?


Pacemaker, pregnancy, probably others.


Studies have all come out clean on pacemakers and mmWave. No detectable interference in the hardware or on an EKG while in a mmWave scanner.

I could imagine other conditions potentially but pacemakers have been ruled a non issue for mmWave by academic studies (albeit I can understand still exercising caution despite that).


Have they done thorough, decades-long studies on millimeter-wave machines to ensure they have absolutely no long-term adverse health effects?


Tbh I'm not sure but they've done accelerated dosage testing to simulate long term use by repeatedly exposing people to use of the machine over a more frequent period of time.

But mmWave really just is not dangerous. Current generation 5G cellular and WiFi standards are mmWave and they are just as harmless.

Molecular damage just starts showing up with THF/terahertz emissions band but mmWave is in the EHF and is has more than 10x the wavelength of THF (i.e. it is far wider/more gentle than THF). In a very real sense mmWave can't even interact with most of the molecules in your body.

mmWave can interact with the water in your body but at the levels it's being used it's only really useful for seeing the water. You'd needs orders of magnitude more powerful emissions than what these scanners use to actually cause damage at that frequency.

i.e. It's the difference between using the flashlight on your phone to see in the dark and using the concentrated light from solar-thermal heliostats to boil water or heat molten salt. No matter how hard you try, your flashlight is never gonna boil water.


Mass hysteria.


Ridiculous nonsense. Boycott Fedex because of a $2.3M delivery contract with ICE? Cancel Spectrum internet because there is an ICE field office in Texas that uses them? Cancel Comcast because they provide cable TV? Unsubscribe from Netflix because...no reason?

No wonder it is organized by a professor of marketing who has been building a personal brand of hating the tech companies for a decade.

Boycott this performative nonsense.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: