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

help-circle
  • For me, I view Apollo as the highschool quarterback winning the homecoming game.

    In the context, its a great achievement. A lot of time, effort, and luck all came together at just the right moment to create an entertaining spectacle. The school is all happy and celebrating, students will remember that moment for years to come. But in the grand scheme of things, it’s not that big of an achievement since everyone there will move on to bigger and greater things, except they won’t have a student body cheering them on.

    I think saying the Apollo program is one of the greatest achievements of mankind falsely puts it on a pedestal and forever sets up all other achievements as being lesser. Makes us all feel like anything that isn’t chasing that glory isn’t worth it. It’s an achievement for sure, but not the biggest. If I had to give the greatest achievement in space technology to anything, I’d give it to either GPS or GOES.


  • Short answer: it’s not that we don’t have the technology, its that we don’t have a reason to. With very few exceptions, if you can do it on the moon you can do it on earth or in Earth orbit

    Long answer: in the space industry/field the moon is incredibly boring, relatively expensive to get to, and adds an extra step of logistics to an already complicated mission profile. Most space related technology advancement efforts have gone into doing things in orbit and there is more to do there than on the moon, it’s logistically simpler, and cost is orders of magnitude less. Stuff is still advancing there, think Hubble vs James Web, GPS 1 vs GPS 3, the entire GOES system. In terms of technical challenges, they’re far more interesting than anything on the moon, but it’s not as flashy/headline grabbing so it’s not talked about much.

    The US going to the moon in the 60/70s was a rare combination of a win for scientists, politicians, and the people. The political incentive went away since as the USSR space program collapsed so too did political pressure to continue to put men on the moon and “prove 'Murica is better than those damn commies”.

    In modern times the political incentive is returning with the continued efforts by China to do more stuff in space so we get the Artemis program, but the incentives aren’t that strong which is why the program has moved so slowly.



  • For graphics, the problem to be solved is that the N64 compiled code is expecting that if it puts value X at memory address Y it will draw a particular pixel in a particular way.

    Emulators solve this problem by having a virtual CPU execute the game code (kinda difficult), and then emulator code reads the virtual memory space the game code is interacting with (easy), interprets those values (stupid crazy hard), and replicates the graphical effects using custom code/modern graphics API (kinda difficult).

    This program is decompiling the N64 code (easy), searches for known function calls that interact with the N64 GPU (easy), swaps them with known valid modern graphics API calls (easy), then compiles for local machine (easy). Knowing what function signatures to look for and what to replace them with in the general case is basically downright impossible, but because a lot of N64 games used common code, if you go through the laborious process for one game, you get a bunch extra for free or way less effort.

    As one of my favorite engineering phrases goes: the devil is in the details


  • Having grown up and still have the majority of my family live in rural areas, you’re correct in that there’s a mentality that animals are tools, a means to an end. But I don’t think many with that mentality will be forgiving of her for this.

    With that mentality there is also a general understanding that these are “dumb animals” who can and will fuck up and especially hunting dogs need a lot of training. A dog who fails the training isn’t usually put down, just either given some less strict job, kept as a pet or put up for adoption. Taking her at her word, it sounds like the dog had killed some chickens and had turned towards her and tried biting. But being the dog was only 14 months old, sounds like it had an excited temperament and hadn’t learned just how much bigger than other animals it truly is. Hardly a reason to kill an animal, even if it was just raised as a tool.


  • MajorasMaskForever@lemmy.worldtoProgramming@programming.dev...
    link
    fedilink
    English
    arrow-up
    14
    arrow-down
    2
    ·
    7 months ago

    Ada

    It has a lot of really nice features for creating data types and has amazing static analysis during compile time.

    But all the tooling around it is absolute crap making using the language unbearable and truly awful. If it had better tooling I could see that it would have taken a decent chunk of development away from C and C++



  • As someone who is in the aerospace industry and has dealt with safety critical code with NASA oversight, it’s a little disingenuous to pin NASA’s coding standards entirely on attempting to make things memory safe. It’s part of it, yeah, but it’s a very small part. There are a ton of other things that NASA is trying to protect for.

    Plus, Rust doesn’t solve the underlying problem that NASA is looking to prevent in banning the C++ standard library. Part of it is DO-178 compliance (or lack thereof) the other part is that dynamic memory has the potential to cause all sorts of problems on resource constrained embedded systems. Statically analyzing dynamic memory usage is virtually impossible, testing for it gets cost prohibitive real quick, it’s just easier to blanket statement ban the STL.

    Also, writing memory safe code honestly isn’t that hard. It just requires a different approach to problem solving, that just like any other design pattern, once you learn and get used to it, is easy.


  • Whenever I replay OOT I never have a problem with Navi. She rarely hard interrupts, usually just a short tone and flashing C button that goes away after a few seconds. The voice lines only trigger if you press the button to call her, in most cases the hints she gives are genuinely helpful, and stays out of your way for the vast majority of the game.

    Fi from skyward sword though… Far worse because she does interrupt gameplay, often repeats what the last dialogue box just fucking told you, and takes several dialogue boxes to tell you what Navi would have taken one to do. I’m glad they significantly overhauled her interactions in the HD release but I’m still going to be hesitant to play that game again


  • I think part of the “what do I do with this” factor for the iPad was that Apple (and other companies still to this day) were so hell bent on making everything smaller and more compact that releasing a larger product was marketing whiplash. Not to mention that smartphones were being pitched as this “do everything device” so why would you need anything else?

    After you get over that marketing sugarcoating, it becomes pretty obvious what you’d use an iPad for. Internet and media consumption at a larger scale than your phone, easier on your eyes than a phone, but retains at least some of the lightweight smaller form factor that separates it from a regular laptop. Sure you didn’t have the stick it in your pocket advantage of a phone or the full keyboard and computational power of a laptop, but there was this in-between that for a modest fee, you could have the conveniences if you can live with/ignore the sacrifices.


  • I don’t think the MacBook Airs launch is a good comparison.

    Sure there was an early adopter tax on being one of the first “thin and light” laptops, but people already know what you can use a MacBook for, there was already a large value proposition in having a MacBook, the extra cost was entirely being more portable than it’s full size counterparts. Everything you can do on a Mac, just way easier to take on the go.

    I’ve read a few reviews on it, watched MKBHD’s initial review, and outside of a few demo apps they point to the vision pro having no real point to it. Which if true, then it falls in line with existing VR headsets that are a fraction of it’s cost and in a niche market, being three times the cost of your competitors is not a good position to be


  • In pure C things are a bit different from what you describe.

    Declaration has (annoyingly) multiple definitions depending on the context. The most basic one is when you are creating an instance of a variable, you are telling the compiler that you want a variable with symbol name X, data type Y, and qualifiers A,B and C. During compilation the compiler will read that and start reserving memory for the linker to assign later. These statements are always in the form of “qualifiers data_type symbol;”

    Function declaration is a bit different, here you’re telling the compiler “hey you’re going to see this function show up later. Here are the types for arguments and return. I pinky swear promise you’ll get a definition somewhere else”. You can compile without the definition but the linker will get real unhappy if you don’t have the definition when it’s trying to run. Here you’re looking at a statement of “qualifiers return_data_type symbol(arg_1_data_type arg_1_symbol,…);” Technically in function declarations you don’t need argument symbols, just the types, but it’s better to just have them for readability.

    Structs are different still. Here you’re telling the compiler that you’re going to have this struct definition somewhere else in the same translation unit, but the data type symbol will show up before the definition. So whenever the compiler sees that data type show up in a variable instance declaration it won’t reserve space right away but it has to have the struct definition before compilation ends. This is pretty straightforward syntax wise, “struct struct_name;” (Typedefs throw a syntax wrench into this that I won’t get into, it’s functionally the same though)

    One more thing you can do with variables during declaration is to “extern” them. This is more similar to function declaration, where you’re telling the compiler “hey you’re gonna see this symbol pop up, here’s how you use it, but it actually lives somewhere else k thx bye”. I personally don’t like calling this declaration since it behaves differently than normal declaration. This is the same as a normal variable declaration syntax with “extern” tossed in the front of the qualifiers.

    Definitions have two types: Function definitions contain the actual code that gets translated into instructions, Enum, struct, typedef definitions all describe memory requirements when they get used.

    Structs and enums will have syntax like “struct struct_name {blah,blah,blah};”, typedefs are just “typedef new_name old_name;”, and function definition “qualifiers return_data_type symbol(arg_1_data_type arg_1_symbol,…) {Blah,blah,blah}” (note that function definitions don’t need a ; at the end and here you do need argument symbols)

    Lastly, when you create a variable instance, if you say that you want that symbol to have value X all in one statement, by the standard that’s initialization. So “int foo = 5;” is declaration and initialization. Structs and arrays have special initialization syntax, “struct foo bar = {5, 6, 7};” where the numbers you write out in the list gets applied in order of the element names in the struct definition. You can also use named initialization for structs where it would look like “struct foo bar = {. element_one = 5, .e_two = 6, .e_three = 7};” This style syntax is only available for initialization, you cannot use that syntax for any other assignment. In other words you can’t change elements in bulk, you have to do it one at a time.

    C lets you get real wild and combine struct definition, struct instance declaration and initialization all into one! Though if I was your code reviewer I’d reject that for readability.

    <\wall-o-text>


  • I’m also curious how many people in this thread have ever been involved in product development and are actual trained/professional software devs. Because not only are some of these comments absolutely ridiculous from a business perspective, they make zero sense in a technical perspective too.

    Proprietary file formats show up because often times the needs of the system don’t line up with CSV, JSON, raw text or they hit some performance problem where you literally can’t write that much data to the disk so you have come to come up with something different.

    There’s also that a computer program in the last 50 years is, except for extreme circumstances, never truly on its own. That microscope control software is completely dependent on how Win95 works, is almost certainly reliant on some old DOS kernel behavior that was left over in early Windows, which Microsoft later completely ripped out starting with Win Vista (tossed back in for Win7 cause so many people complained, then ripped it back out in 8 which no one seemed to care about)

    And it’s not just Microsoft that pulls this, even Lemmy’s darling Linux has deprecated things over the years because even in open source projects it’s unmaintainable to keep everything working for forever.



  • needed to add a mechanic to slow time down

    The devs actually thought of that. There are two auxiliary time control songs. One slows down time by ~50%, the other jumps ahead to the next dawn/dusk. MM3D revised the latter to allow to jump to any top of the hour across the next 12 hours.

    Any of the scarecrows around town teach it to you just by talking to them, but they do so by describing the songs, not teaching you the notes


  • The way I think about Majora’s Mask as a Zelda game is that in addition to exploring the physical world, you’re also exploring time. That does necessitate “backtracking” by forcing time resets and a lot of waiting around if you don’t immediately know what you can be doing in parallel (though the two time control songs make that part easier).

    With the exception of the dungeons themselves, the game typically fast tracks getting you back to where you were when you just reset. Some mechanics like that the game forces on you pretty quickly (song of soaring fast travel), others it lets you figure out on your own (dungeon boss instant warp after beating them the first time).

    Side quests can be a bit more troublesome to deal with if you have to reset part way through, but each interaction point that you have to go through offers you another way to handle things (or to not and let another sequence of events happen).

    To your last point, the game really throws refillable items at you in the overworld, so a lot of times you can skip that (I’m not saying stocking up doesn’t take forever on reset, it does. You just don’t always have to)

    All in all I really love the time mechanic of the game and that let’s me forgive some of the other flaws of the game. If it fell flat, then yeah I can see how the game quickly becomes a chore. But I adore the game, hence the username


  • In Enterprise definitely, but even then the crew would occasionally come across a “lesser” species and then debate about what to do about them.

    In TNG era shows most of the other species encountered were portrayed as equal or lesser to humans/federation. Voyager plays with this a little bit since that crew of mostly humans, while almost always more advanced than the people they encounter, they are a lone federation ship with zero support, which knocks down their capabilities a bit.

    There’s a great throwaway line by Seven of Nine in voyager where the kazon weren’t even worth the Borg’s time to assimilate, but they were the main antagonist to Voyager those first few seasons because there were so many of them


  • I feel like Win 10 default apps just waste so much screen real estate. I’ve been using Thunderbird for years and while 5 years ago I would agree the user interface is obtuse the refresh that happened a few years back really improved things. I’ve also never had stability problems and I have thunderbird tracking 7 email accounts with hundreds of thousands of emails total (I’m a data hoarder)

    Evolution on the other hand, hoo boy, I have to use it at work and despise it lol. That program gives me stability problems and frequently fails to interact with Exchange. Gives me a great excuse for missing meetings haha

    All said, Outlook desktop I think is superior to both Thunderbird and Evolution, I just don’t wanna pay for it