• 3 Posts
  • 63 Comments
Joined 1 year ago
cake
Cake day: June 18th, 2023

help-circle
  • Yes, it’s a field. Specifically, a field containing human-readable information about what is going on in adjacent fields, much like a comment. I see no issue with putting such information in a json file.

    As for “you don’t comment by putting information in variables”: In Python, your objects have the __doc__ attribute, which is specifically used for this purpose.





  • In general I agree: ChatGPT sucks at writing code. However, when I want to throw together some simple stuff in a language I rarely write, I find it can save me quite some time. Typical examples would be something like

    “Write a bash script to rename all the files in the current directory according to <pattern>”, “Give me a regex pattern for <…>”, or “write a JavaScript function to do <stupid simple thing, but I never bothered to learn JS>”

    Especially using it as a regex pattern generator is nice. It can also be nice when learning a new language and you just need to check the syntax for something- often quicker than swimming though some Geeks4Geeks blog about why you should know how to do what you’re trying to do.


  • My test suite takes quite a bit of time, not because the code base is huge, but because it consists of a variety of mathematical models that should work under a range of conditions.

    This makes it very quick to write a test that’s basically “check that every pair of models gives the same output for the same conditions” or “check that re-ordering the inputs in a certain way does not change the output”.

    If you have 10 models, with three inputs that can be ordered 6 ways, you now suddenly have 60 tests that take maybe 2-3 sec each.

    Scaling up: It becomes very easy to write automated testing for a lot of stuff, so even if each individual test is relatively quick, they suddenly take 10-15 min to run total.

    The test suite now is ≈2000 unit/integration tests, and I have experienced uncovering an obscure bug because a single one of them failed.





  • This is a very “yes but still no” thing in my experience. Typically, I find that if I write “naive” C++ code, where I make no effort to optimise anything, I’ll outperform python code that I’ve spent time optimising by a factor of 10-30 (given that the code is reasonably complex, this obviously isn’t true for a simple matrix-multiplication where you can use numpy). If I spend some time on optimisation, I’ll typically be outperforming python by a factor of 50+.

    In the end, I’ve found it’s mostly about what kind of data structures you’re working with, and how you’re passing them around. If you’re primarily working with arrays of some sort and doing simple math with them, using some numpy and scipy magic can get you speeds that will beat naive C++ code. On the other hand, when you have custom data structures that you want to avoid unnecessarily copying, just rewriting the exact same code in C++ and passing things by reference can give you massive speedups.

    When I choose C++ over python, it’s not only because of speed. It’s also because I want a more explicitly typed language (which is easier to maintain), overloaded functions, and to actually know the memory layout of what I’m working with to some degree.



  • I think it’s horrible to see what the Taliban government is doing to oppress the people of Afghanistan. I’m also surprised that so few people of Afghanistan showed any real will to prevent Taliban from taking power. They had 20 years to prepare, with ample support and loads of equipment from NATO and others, and when the foreign forces left they just … capitulated.

    It’s baffling to me that seemingly nobody was willing to fight to prevent this. Thousands of people were at the airport during the last evacuations, and I vividly remember videos of people holding on to cargo planes that were taking off in an effort to get out of the country. Lots of people clearly knew it was going to get bad, but seemingly nobody was willing to fight to prevent it. I honestly have a hard time understanding how that happened.


  • Of course, Li-ion batteries will never cover large-scale power demand. Not primarily because of lack of lithium, but because it’s a technology that scales far too poorly into the MWh/TWh scale, and has a far too short lifetime.

    The battery tech we need for truly large scale storage is different from what we need for small, portable storage. Stuff like redox-flow batteries are looking promising.

    There’s also hydrogen, with different storage methods being actively researched- from direct storage to using ammonia as a carrier.

    The issue with using mechanical storage (like pumped hydropower) is threefold (off the top of my head):

    1. It has ridiculously low energy density
    2. Even after > 100 years of pumps and turbines, the power loss in a pump/release cycle is very high.
    3. It’s heavily limited by geography

    I’m not saying pumped hydropower isn’t part of the solution: I believe the solution is that we need many solutions. I just think it’s important to point out that battery tech isn’t some monolithic thing, and that there are issues with pumped hydropower (and mechanical storage in general).





  • The currently most viable counter to artillery in Ukraine today appears to be either fpv drones, which have relatively short range and limited payloads, or counter-battery radar + artillery, which exposes your artillery by putting it in range of enemy artillery.

    Ukraine typically has more accurate artillery than Russia, and seems to win more artillery duels, but of course still has an issue because of Russias huge volume of guns.

    Targeting the drone operators is definitely something both sides do- they were considered priority targets last time I heard someone mention it. The issue, as someone else pointed out, is locating and hitting a small, highly mobile person or group that can operate from behind cover and concealment. That turns out to be pretty hard. Just consider that an infantryman’s primary survival strategy is “stay hidden when you can, covered when you can, and move as fast as possible when exposed”, and that drone operators are doing exactly that, while also not needing to stick their head out to be effective.



  • I’m all for age of consent, but considering that you can have graduates as old as 19-20, and teachers as young as 23-24, I have to admit it seems a bit strange to put restrictions on what they can do outside of (1) what is legal, and (2) what effects their job (like having a relationship with a current student, especially one that you teach).

    Like, I know several people in my graduating high-school class that were with someone older than our youngest teacher, a couple of which are still together with the person 10 years later.


  • No they’re not. Go read the actual article classifying them.

    Also stop moving the goalposts. Fin whale catching has been heavily regulated, even in countries that still permit whaling (go read the source you linked in your other comment). You can’t start with “Whales [in general] are endangered, and are being hunted for food” and jump to “This specific specific whale that is very heavily regulated, also by countries that permit whaling, is not quite endangered but vulnerable”, and act like you have a counter argument to anything.

    What you’re running here is a masterclass in bad faith arguing: Moving goalposts, mis-citing sources, and jumping from bastion to bastion. All while nobody has even disagreed with your major opinion (whales shouldn’t be hunted) but just pointed out that what you’re saying is factually wrong.