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

help-circle

  • Just do a quick search for “mushroom cloud”, and you’ll find that all this combined is nowhere near what a nuke would look like.

    The mushroom cloud formed from a small nuke like little boy (small by modern standards) reaches up to about 8 km. that’s close to cruising altitude for an airliner. The reason the cloud from a nuke “mushrooms” in a different way than conventional munitions is that the intense heat is causing enough hot air to rise to form a literal cloud when it reaches high enough that the humidity condenses. This can even cause radiative rain shortly after the bomb has gone off.

    The fireball of Little Boy is estimated to have been almost 400 m in diameter with a surface temperature approximately equal to that of the sun, and every building within about 1.6 km was instantly completely destroyed.

    It is difficult to comprehend just how much more powerful even a small “tactical” nuke is than any conventional weapon. There’s a reason soldiers that were shown blast tests of them during the Cold War have told stories of breaking down crying at the sight, because they just couldn’t fathom what they were seeing.

    There was no nuke blowing up here.


  • Awesome to see the effectiveness og the Gepard like this. It seems perfectly suited for these kinds of slow-moving low-cost targets that you really don’t to send expensive interceptors at.

    Especially when the leading drone tactic seems to mostly be “send enough to saturate the air defences”, having stuff like this that can rapidly burst down a bunch of drones at low cost, using ammunition that’s quick and easy to produce, seems perfect.



  • For someone starting out, I would say that a major advantage of Python over any compiled language is that you can just create a file and start writing/running code. With C++ (which I’m also a heavy user of) you need to get over the hurdle of setting up a build system, which is simple enough when you know it, but can quickly be a high bar for an absolute beginner. That’s before you start looking at things like including/linking other libraries, which in Python is done with a simple import, but where you have to set up your build system properly to get things working in C++.

    Honestly, I’m still kind of confused that the beginner course at my old university still insists on giving out a pre-written makefile and vscode config files for everyone instead of spending the first week just showing people how to actually write and compile hello world using cmake. I remember my major hurdle when leaving that course was that I knew how to write basic C++, I just had no idea how to compile and link it when I could no longer use the makefile that we were explicitly told to never touch…


  • it would seem crazy to sacrifice it if it wasn’t damaged

    To be fair, the best kit you’ll ever get is the right kit at the right time. If what you need is a tandem warhead that can track, hit and destroy pretty much any vehicle, or punch through a bunker, at anything from a couple hundred meters to a couple kilometres, and you have a Javelin… you’re in luck! On the other hand, if what you need is a tandem warhead to destroy a static armoured target that you can’t get line-of-sight to, and you have a Javelin… You’re carrying a very expensive but useless rocket and tracking system that just happens to also contain the exact warhead you need.

    Once a piece of equipment like a Javelin is in the field, it’s only real value is in whether it can help you achieve your objective. Its dollar value seizes to be of relevance. The only relevant questions are “Do I have a large enough supply of this munition to prioritise using it for that target?” and “Do I have another munition that I can and should use instead?” If the answer is “yes” to the first and “no” to the second, you use the munition in whatever way is most practical.










  • 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.


  • 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.