• 0 Posts
  • 73 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.




  • You probably can’t find it because you’re mixing mutually exclusive terminology.

    A stack is a First-In Last-Out data structure. If your entry criteria is time, the oldest files will persist and the newer ones will get purged first.

    If you want to remove oldest files first, you want a First In First Out queue.

    Both of these will permanently delete the original file.

    Caches are just a copy of real data, sitting somewhere that ideally has faster access times but smaller storage space. The real original file does not get modified. A cache will typically hold onto as much data as it can until it hits some cap, at which point a replacement algorithm is used to select which entry or entries to make space for the newly requested item. Very rarely will a cache delete entries on its own to minimize actively used space, but if they do they will likely just run the replacement algorithm without backfilling the space


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




  • Smaller businesses or privately owned businesses with a smart owner do.

    Large publicly traded companies are sustained by a perception that an investment in or loan to that company will pay off in a higher dollar amount in the future, so if the perception becomes the company is shrinking then the investments and loans slow down which makes the perception worse, you get that feedback loop which turns into the death spiral.

    So the bigwigs at the top of these companies have to be professional liars and gamblers to change the perception and make it look like everything isn’t just fine, they’re doing great! The line must go up.



  • Yup, sometimes it’s too easy for me to just slip into work mode when talking about this kind of stuff and I don’t elaborate enough. Thanks for stepping in.

    Based on industry rumors I believe the Orion capsule control computers are running VxWorks (I’ve heard that maybe a few boxes are using RTEMS?) All of that source code would have been reviewed, audited, and tested to hell and back.

    The day-in-the-life stuff for the astronauts is entirely believable to be Windows. The risk of it failing is so low (medium probability, low impact), it’s what they’d be familiar with, and it’s part of daily life at NASA anyways. Linux is no better when it comes to safety critical components and the astronauts almost certainly wouldn’t want to be dealing with Gnome’s… uniqueness…