• 0 Posts
  • 230 Comments
Joined 2 years ago
cake
Cake day: June 25th, 2023

help-circle
  • I don’t think OOP’s nature makes them necessary, so much so as it enables them and popular programming principles encourage them. I think they’re a good thing, especially if there’s a way around them in case you can’t get the public interface changed and it doesn’t work for you, especially for performance reasons, but that should be done with care.

    Funny story, when modding Unity games using external modloaders you’re writing C# code that references the game’s assemblies. And with modding you often need to access something that the developers made private/protected/internal. Now, you can use reflection for that, but a different trick you can use is to publicize the game’s assemblies for referencing in your code, and add an attribute to your assembly that tells the runtime to just… Let you ignore the access checks. And then you can just access everything as public.


  • If it was a single question, that does sound lame, my other thought was that those “online polling tools” might not be viable because you can’t put internal company communications into them… But if it’s stuff like food choices or something, then that might also not be a problem.

    That said, my point still stands - what you describe does sound like what I’m saying. If you make a sheet with a dedicated field to put the answer into, it should be possible to reliably automate pulling out answers from all the files with excel-level knowledge, and without any additional sites or servers, just spreadsheet editing software and email.






  • Both java and go seem excessively complex at runtime for fundamental system utilities, featuring garbage collection. Rust, on the other hand, keeps the complexity in the compiler and source, keeping the runtime code simpler. And of course it’s doing that while trying to make it easier to manage memory and harder to make mistakes, without forcing extra runtime logic on you.


  • I think most of the work is in the fact that there often isn’t an “equivalent call”, and it can be quite a lot of code to make it work. One funny thing is the whole esync-fsync-ntsync issue, where synchronization is done differently on Linux and on windows, and translating it was a big performance hit, and difficult to do accurately. If I understood correctly, esync, fsync and ntsync were a series of kernel patches implementing additional synchronization code in the kernel, with ntsync actually replicating the windows style.






  • Yeah, in history we’ve really been ignoring the experiences of the sunwalkers, but thankfully society is leaving those prejudices in the past now.

    It’s all arbitrary one way or another, but the meter was (seemingly) chosen for a specific purpose, creating a unit based on a good and verifiable frame of reference (though probably not as absolute as people thought back then), while also having 1 meter be a convenient and useful measure on a human scale.






  • Now it seems every tutorial I see is really just clicking around in a gui. Very little actual typing of code, which is the part I actually find cool and interesting.

    Not sure where you’re seeing “just clicking around in a gui”, but if you like computer games, there’s some fun gameplay you can have while coding. Some of those very much contributed to my experience.

    BitBurner is a free idle incremental programming game, where you write scripts to hack things to make money to begin with, progressing onto both progressively more complex mechanics (how about automating a manufacturing corporation with a script?) and utility scripts to automate things you’ve been doing manually.

    If you like Minecraft, there’s fun to be had with ComputerCraft, scripting things in Lua. With some add-ons (Plethora IIRC) you can access chest inventories via cable and transfer items between them, and set up your own fully automated storage system with recursive autocrafting, as just one example.

    Or how about modding games - if there’s a Unity game you enjoy that doesn’t use IL2CPP, like Risk of Rain 2, it’s very moddable using C# and interacting with Unity APIs, and for advanced stuff modifying the underlying IL that C# compiles to. Quite a lot you can learn, and if you stick to pure code mods to begin with, not that hard to get started - though code mod means nothing like new items, new enemies, new characters, buildings etc. since adding models/textures/sounds tends to be more involved.



  • This is certainly an odd suggestion, and not what you’re really asking for, but makes me think of Space Station 13. It’s a janky round-based multiplayer roleplay/social intrigue game. It’s free, and the game is opensource (though not the engine), which also leads to there being many servers with unique variations. It’s cheating to suggest a multiplayer game when talking about single player natural language processing games, but using actual players is probably the easiest way to pull it off.

    The reason it reminds me is because on a roleplay server, you’ve got something like 20 people, each with their job to do, talking to each other, talking on common radio, etc. - and if you’re lucky, a player playing as the station AI, complete with a (modifiable) lawset they have to follow, Asimov’s laws style. And of course, a few antagonists that have objectives to do.

    If you’re curious, I personally recommend BeeStation, though there are a lot of fine choices for the server, just maybe stay away from the 18+ ones.