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

My issue is that a large share of what he tests are Amazon products with alphabet soup brand names, where QA is likely nonexistent and the conclusions are often based on a sample size of N=1. Even if you wanted to buy the "winner", the exact same product may be sold under a different name a week later.

I also find his testing methodology inconsistent. In some cases he takes manufacturer specs at face value without actually verifying them, in others he goes out of his way to comprehensively measure things that don’t matter much (to me anyways), while skipping things that seem genuinely important (self-discharge of jump starter packs for example).

That said, he's doing this with his own time and money, and makes it available for free to anyone. A lot of this also comes down to personal preference in what you value in a test.


I’m honestly curious what drives this kind of response. You’re aiming a lot of negativity at someone who’s voluntarily spending his own time and money to do something that, until recently, simply didn’t exist at this level of detail. Yes, there are scientific limitations and fair critiques to be made—but the tone here feels less like constructive criticism and more like punishing the effort itself. That pattern is exactly what drains the internet of anything generous or experimental: people stop sharing when every imperfect attempt is met with hostility. It’s a bit like being stranded in the desert, dying of thirst, finally offered water, and rejecting it because it isn’t cold enough. You don’t have to call the work perfect to acknowledge that it’s valuable, imperfect progress rather than something deserving of contempt.


I don't know if the parent comment has been edited, but in its current form I read it much differently from you! It seems like fair criticism without any added snark or contempt. I don't want hostility or gratuitous negativity, but IMHO it's just not present here in the way you describe.

(Also the guy has millions of subscribers and a consistent weekly posting schedule, and this video is on the front page of HN, so I don't think his channel falls into the category of obscure hobby projects where it might be rude to criticise them at all rather than just ignoring them.)


The last time I worked with them there also was basically no way to render them into any other format easily, and all the available tools I found basically just launched a Chromium instance to copy each frame, messing up transparency in the process


Even with AOT compilation, as someone who loves C# and also does embedded development in C I would personally say a garbage collected language like C# has no place there.


not everything running on a 20-mips 32-bit microcontroller with 2 kibibytes of sram needs to be hard real time and failure-free, and of course the esp32 has hundreds of kibibytes

and, correct me if i'm wrong here, but doesn't c# allow you to statically allocate structs just as much as c does? i'd think you'd be able to avoid garbage collection about as much as you want, but i've never written much beyond 'hello, world' in c#


c# has the concept of value types (which structs are), which are stack allocated. Generics have seen more and more instance of getting a Value type like Value Task for stack allocated async objects. But if you add a class as a member of the struct that is going straight to the heap with all the GC stuff that entails


what about global or static variables of value types? i mean in theory you could stack-allocate whatever you want in your main() method and pass pointers to everything, but that sounds unusably clumsy. but with global variables and/or class variables there would be no problem except for things that inherently require heap allocation by the nature of the problem


Static fields may be placed on Frozen Object Heap. The values of static readonly fields may not exist at all if the ILC's static constructor interpreter can pre-initialize it at compile-time and bake the value into binary or codegen. Tiered Compilation does a similar optimization but for all cases. This is with JIT though which is not usable in such environment.

Otherwise, statics are placed in a static values array "rooted" by a respective assembly. I believe each value will be contained by a respective box if it's not an object. This will be usually located in Gen2 GC heap. My memory is a bit hazy on this specific part.

There is no concept of globals in .NET the way you describe it - you simply access static properties and fields.

In practice, you will not be running .NET on microcontrollers with existing mainline runtime flavours - very different tradeoffs, much like no-std in Rust. As mentioned, there is NanoFramework. Another one is Meadow: https://www.wildernesslabs.co which my friend is using for an automated lab for his PhD thesis.

Last mention goes to https://github.com/bflattened/bflat which supports a few interesting targets like UEFI. From the same author there's an example of completely runtime-less C# as well: https://github.com/MichalStrehovsky/zerosharp. It remains a usable language because C# has a large subset of C and features for manual memory management so writing code that completely bypasses allocations is very doable, unlike with other GC-based alternatives.


i see, thanks! that's exactly the information i was looking for


there are ways (byref I think?) to pass references to stack variables around. And Statics depends. Static const even with stuff like strings would just compile directly into the binary, regular static still has to end up on the Heap.


GC is fine for many (most?) applications there. For example sensor stuff, display, networking, turning your lights on and off, etc.


Every time it has happened to me the airline paid out quickly without any fuss. Once with KLM the plane broke over Siberia, they flew back and put me on a flight the next day. I got my 600 eur compensation and also the cost of two train tickets for the extra trip between home/airport and they didn't even ask for receipts.

For the longest time Ryanair actually gave me more money than I spent with them on tickets.


What happens when software is at 0%, your slider is at 100% and you want to raise the volume?


You must move your slider down, and then up. It becomes reasonably intuitive with a small amount of practice :)


Could have feedback with a LED ramp next to slider, showing the discrepancy...


Down then up wouldn't be too bad, but up then down could very much be, in certain situations.


I would put a safety routine to let the software update only when the hardware is within a certain amount from the actual value, also giving visual feedback of the difference, so that the user could align hardware position to software position without any sudden changes.


You put the slider all the way down to 0, which is then mapped the the range from 0-0 and then you move it back up?!


Once the fader matches software, software follows the fader.


That doesn't seem unusual to me, given that to get to this page you either have to be searching for the specific terms already (and know what they are) or come from the homepage -> RP2040 (Raspberry Pi Pico) projects -> Custom serial bootloader for the RP2040 -> Preliminary reading RP2040 boot sequence


I came to that page directly from the front page of HN. I think it's reasonable to assume a significant portion of their traffic today directly to this page didn't already know what RP2040 is. Missed opportunity to educate readers.


It might be nice, but most web pages aren't written with Hacker News in mind. We share them anyway.

You should expect to sometimes encounter documents where you aren't the target audience and you have to look up terms.


Do you want every single subpage in the world to reexplain its context again?

Do you expect every SF Chronicle article to explain to you what SF is?


That link (https://cdec.water.ca.gov/resapp/RescondMain) just times out for me, might be yet another American site that just geoblocks all European IP addresses. Here's an archive copy for those who need it: https://archive.is/oZodo


My ISP gives me both an IPv4 address and a heap of IPv6, most browsers will use what is called Happy Eyeballs to try both IPv4 and IPv6 at the same time and use the one that connects the fastest.


At least in Europe I've seen plenty of thermostats/boilers that support OpenTherm which allows the thermostat to set the boiler temperature instead of only switching on/off


They are if you have anything else that needs to be done at the same time. I would say they're fine if you have nothing else to do while waiting, or you need microsecond delays to generate a signal like in this case.


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

Search: