• 0 Posts
  • 83 Comments
Joined 3 years ago
cake
Cake day: June 29th, 2023

help-circle

  • There’s a couple big reasons, sometimes you only have to deal with one or two, other times you’re hit with all of them.

    The data source for the algorithms often comes from arbitrary memory addresses that live outside the context of the C, C++, or Rust runtime. If I want to read CPU core temp I send magic numbers to one address to configure ADC channel conversion, another magic number somewhere else to do the conversion, wait a few dozen microseconds, then read a third new address that I squint one eye, spin around 10 times, and do a handstand and I’ll get a number that looks like temperature.

    If I’m running on the microcontroller, I’m essentially in production environment and I can’t control what the data is. If I recompile for a different system (say x86 Linux) then I’m almost certainly going to segfault. I could abstract out the reading of the data, but then on my tiny 8MHz microcontroller that has to run it’s main loop at 1000Hz, I only have a few thousand clock cycles to get everything done, calling functions, pushing/popping the stack takes a lot of time.

    Adding to the pile-on most microcontrollers have <1MB of RAM, many in the tens of kilobytes range so I don’t have much of a stack to work with and I need to keep even the number of instructions down.

    Even if you do all the abstractions, you then have extra logic you have to write to simulate what is happening and subtle behaviors that are timing dependant. It frequently is extremely difficult to do that as the documentation rarely fully describes everything, so you can lull yourself into a false sense of security that you’ve tested the code and it’s correct, but then you get stuck on a register value that never changes and a watchdog timer comes along and resets the hardware on you.

    And that’s not the getting into the runtime or build environments, flashing procedures, limited flash cycles, and a million other business constraints that technically you can do it, but at that point your dev team has all taken the month off to go play Half Life 3



  • I’d argue that Monte Carlo is a bad example here, and is an example of a deterministic tool.

    You use a tool to create an outcome, you’re looking for an answer or a solution that you can trust.

    If you want to examine behavior of a system that has input variables across some known range, you could brute force it, try every single possible combination and wait a millennia. Or you use a monte carlo strategy, let randomness enter the simulation to build out a basic characterization. You want more detail? More confidence? Increase the number of runs. I can trust that if I increase the number of runs I gain higher fidelity, if the tool/strategy was non deterministic I couldn’t do that


  • Not parent commenter, but no, not to the same degree.

    The level of trust I have in a source greatly changes how I review it. If I know that I’m reviewing code from a competent developer, I’m going to see a for loop and look for why is this here, how does it play into the larger objective and if I’m happy with it, I move on. But if I don’t trust the developer as much, I’m looking at far more like what data type is being used in the indexing, what’s the break condition, can go off the rails into random memory.


  • Relatable I don’t think is the right word. Intuitive in its use and measurement, in specific scenarios.

    Measurements always have a scaling and a precision problem. Humans are bad at math and scale, and really struggle mentally with numbers more than a few digits. If the number is too big, someone will either just accept it or ignore it. We like our nice round numbers, and funnily enough like our small prime numbers (1, 2, 3, and 5) and first few multiples of primes (4, 6, 10, 12, 15, 20) and numbers that just shift the decimal point around (10, 100, 1000)

    Reference frames are also incredibly useful to us, especially when communicating.

    The metric system jumps straight to moving the decimal place around, where imperial let’s you play around with other divisors. Let’s say I have a single digit of some unit and I want to half it. Generally in metric this is fine, doesn’t really add to the mental cognitive load. Half it again, or divide by one of the other primes, and the number of digits starts to explode (or is infinitely repeating). For the scalers within the imperial system, they naturally let you divide down and even re-express the same measurement in a different unit with fewer integer numbers and no precision loss

    Edit: Another example. Computer scientist don’t use metric, we bastardized parts of it and then invented extra units that fit the need and intuitiveness of working with them. We don’t use deci/deca or centi/centa, we bastardized kilo into 2^10 since 1024 is close to a thousand keeping it a nice power of two, a byte is 8 bits for the same reason and a nibble is 4 bits because halving bytes occasionally is useful. A word typically is 16 except when it is 32 bits, in which case 16 is a half word. Then we have dwords and qwords being twice and four times the size of a words, and then a page historically has been 4096 bytes since 1024 is kinda small, but newer systems sometime say a page is 64KB since 2^16 = 65536






  • Oof, I always wondered if there were more things of his that were inaccurate.

    What I caught was the hexagon video and his claim about triangles (combined to make hexagon) being the best for building rockets. I worked in the launch side of aerospace at the time, and true Atlas V and Delta IV were built with triangles… But only on their booster tanks. Their upper stages had a completely different design structure, as do Vulcan, Falcon 9, Starship, New Glenn, Electron, etc etc

    Triangles were only used on Atlas V and Delta IV because CAD in the 90s didn’t do rectangles very well. That’s not a problem anymore, so triangles don’t get used



  • Current defense worker here:

    Was talking with a coworker recently about how ITAR/EAR rules are hilariously out of date. Basic IMUs coming from China these days are good enough that you can establish a reasonable dead reckoning nav to where those parts of the munitions list are just defunct. Shit I did that in college ten years ago with high power rockets and things have only gotten better.

    The new proposed regulations over AI chips are also wildly misguided and demonstrate how Congress/Executive branch have no idea what the tech even is. The top of the line chips today are needed for LLMs, fast fixture acquisition and tracking can be done on a way less powerful piece of hardware that new regulations will fail to stop (that’s even assuming that the bans would have worked in the first place, which they won’t)


  • I mostly listen to just LTTs podcast WAN show and on there Linus has said several times over the years that he doesn’t like having his kids in videos, he finds it grimy and takes a real issue with family YouTube channels since the kids don’t have a say.

    His family only appears in videos when they ask to be in a video, and even then he makes the kids do the pitch so they have a real vested interest in wanting to be in the video.

    That’s why his one son has been in several videos, one daughter has been in a couple, and the third I think was just in one video years ago. The videos can be a bit clunky because while the adults in the room try to make a video engaging and interesting there’s only so much they can do. Linus has also stated that he’d sooner let LMG as a company fold than just hand the reigns to his kids.

    The clunky pool and yard video iirc was a case of the business development team signing a brand deal and the video production team not knowing what else to do


  • I’m a gun owner, I enjoy shooting, and I agree that carrying a rifle is more terrifying than a hand gun here.

    It’s a power play, and a fantasy attempting to become reality.

    You carry a rifle like that because you want to be seen with it. You want others to fear you because they see that you have the power of death in your hands. You want to feel like you’re the big man in the situation, and if that’s your line of thinking, I’m more inclined to think that you’re the type to escalate a situation where you’ll feel justified to use that power of death and and actually shoot someone.

    If you were actually concerned about defense you’d carry a small pistol that you can grab in a moments notice, action it to put one in the camber, aim, and pull the trigger. A rifle like that you’re not carrying loaded, maybe you have a loaded magazine in your pocket but you’re still several seconds away from me able to actually shoot it. It’s bad theater



  • Carrying forward technical knowledge is definitely a big help. I suspect that’s why Atlas V was able to pay for itself because the booster was so similar to Atlas III which itself was similar to Atlas II.

    The satellites I work on play this game constantly. Mission A and B both use the same underlying tech that needs to be developed, but mission A is first. So we charge mission A with all of the cost and then mission B looks a lot cheaper on the books


  • I work in the aerospace industry, mainly to satellites these days but I’ve worked in launch in the past and have plenty of friends who have as well.

    That 450 figure is probably all of Falcon 9s development which has gone through several design iteration cycles. Industry rumors point to a new Falcon 9 booster being around $50 to build and a million or two to refurbish on average. The re-use is saving them a significant amount, but the upfront design cost was just so stupid high.

    It’s also worth noting that Starlink supposedly launches at near cost meaning little profit for each of those, but then SpaceX turns around and prices Falcon 9 close to Atlas V for government contracts (90-150m total price so probably 60m profit) and gouges people on Transporter (they’re almost certainly pulling in 150-200m on each of those)



  • Senior embedded C developer here in the US. I can speak first hand experience at people applying to be on my team that have reasonable sounding experience and then collapse under interview questions.

    Everything else you said applies here too, legally we don’t have repercussions for firing someone quickly (once had a team member for two months), but a healthy org will try very hard to get hiring right because it can cause pretty bad morale to see a revolving door and there is a massive brain and resource drain having to constantly be training new people.