• 0 Posts
  • 37 Comments
Joined 1 year ago
cake
Cake day: July 5th, 2023

help-circle
  • It’s not a really big thing, but it is a pet peeve of mine (and some others); the name of the series isn’t “Dues Ex” but “Deus Ex” (day-us ex), as in “deus ex machina” (day-us ex mack-in-a).

    “Deus ex machina” literally translates as “God from (the) machine”, and originally referred to a type of stage prop used in ancient plays, then in more modern times the term came to refer more generally to the sort of plot device that used that prop, which is a previously unmentioned person or thing that suddenly appears to save the heroes from an otherwise inescapable threat. At some time in the 60s or 70s it started to become popular to use it in a more literal sense in sci-fi stories about machine intelligence or cyborgs.




  • Let me know if you find one that uses AI to find groupings of my search terms in its catalogues instead of using AI to reduce my search to the nearest common searches made by others, over some arbitrary popularity threshold.

    Theoretical search: “slip banana peel 1980s comedy movie”
    Expected results in 2010: Pages about people slipping on banana peels, mostly in comedy movies, mostly from the 80s.
    Expected results in 2024: More than I ever wanted to know about buying bananas online, the health impacts of eating too many or not enough bananas, and whatever “celebrities” have recently said something about them. Nothing about movies from the 80s.



  • Back in the olden days, when we used kerosene-powered computers and it took a three day round trip to get IP packets via the local stagecoach mail delivery, we still had games even though Steam didn’t exist yet. :b

    We used to transfer software on these things called disks. Some of them were magnetic, and some of them used lasers (you could tell them apart because for the laser ones it was usually spelled “disc” with a “c”).

    Anyway, those dis(k/c)s mostly still work, and we still have working drives that can read them, and because the brilliant idea of making software contact the publisher to ask if it was OK to run had only just been invented, we can generally still play games from the period that way. Some people kept their old games, but others sell them secondhand, which I believe the publishers still haven’t managed to lobby successfully to be made illegal, unless I missed a news report.

    Even if you can’t get the original physical media for a game, sites like GOG sell legal digital downloads of many old games, which are almost always just the actual old software wrapped in a compatibility layer of some kind that is easy to remove, so you can usually get the games running natively on period hardware/software. Finally, some nicer developers and publishers have officially declared some of their old games as free for everyone to play.

    There are still legal options for playing old games on old systems.


  • The Steam Deck is a handheld Linux-based PC with a built-in game controller. The special Steam version of Linux (SteamOS) comes with software (Proton) that lets you run a lot of Windows games, and Valve have put some effort into helping/encouraging developers to get their games working with it.

    The Nintendo Switch is a closed system that can only play official Nintendo-licensed software. Even if you “jailbreak” a Switch, I don’t think that there’s any realistic way to get modern Windows games running on one.


  • I bought this back in the day, and played it through to the end. I vaguely recall somewhat enjoying it overall, but the strongest impression that I have now is of frequently being bombarded with unrepeatable, dense, plot-critical dialogue (usually from teammates via radio) during intense action scenes when I was busy trying to sneak around, evade, beat up, or have a shootout with multiple enemies simultaneously. This often seemed to be by design, with enemies spawning at the same time the dialogue begins. As a passive viewer watching a show, it’s cool when the characters have intense philosophical debates during fights, but as an active player I found it extremely difficult to follow both at the same time. I don’t even remember what the story of the game actually was, because I missed so much vital information that I gave up trying to follow it. That was a real disappoment for a big GitS fan.

    Also, many of the missions can seem very open initially in terms of how the player can approach them, but quite soon I got the feeling that there’s exactly one “right” way through each challenge, and it’s up to the player to find it, sometimes with very few hints.

    I’ve tried several times over the years to give it another go, but somehow I never seem to make it past even the first mission before I put it away again.


  • It is available on mobile BUT I encourage you to get the PC version on Steam because the mobile one doesn’t include the pretty decent voice acting

    That’s odd; I was sure that I played some of this on Android with voice acting, so I searched my records and discovered that I also got it from Humble Bundle. I just downloaded and installed it to check, and aside from a warning that it was written for an older version of Android, it seems to be working fine, full voice acting included. There’s an option to turn it off, but it was on by default for me.

    Maybe there was an issue with your specific device?


  • Perhaps similar to OP, I gravitate toward whatever’s handiest. That’s usually my smartphone or one of a number of old-ish Linux laptops. I have a handful of smartphone games that I play pretty much every day, and I’ve got controllers for both, so there’s also lots of emulation of older games, and also some newer indie games on the laptops. After that I have a “gaming” PC (nothing amazing but it does enough for me) for more current games, although I’m finding that I don’t turn that on as much as I’d like to, lately. Then I have a handful of less-old consoles that my other devices can’t emulate well, but I can’t even remember the last time I used one of those.



  • That XKCD reminds me of the case a year or three ago where some solo dev that no-one had ever heard of was maintaining a library that a couple of other very popular and major libraries depended on. Something somewhere broke for some reason, and normally this guy would’ve been all over it before most people even realized there had been a problem, but he was in hospital or jail or something, so dozens of huge projects that indirectly relied on his library came crashing down.

    What upset me most was reading the community discussion. I didn’t see a single person saying, “How can we make sure that some money gets to this guy and not just the more visible libraries that rely so heavily on his work?”, even though the issue was obliquely raised in several places, but I did see quite a few saying, “How can we wrest this code out of this guy’s hands against his will and make multiple other people maintain it (but not me, I’m too busy) so we don’t have a single point of failure?”


  • I played this on the PS2 and it’s s fantastic experience.

    Interestingly, the PAL version (and probably the Japanese version, too) has content that wasn’t in the NA version. There’s an extra puzzle, a semi-hidden alternative “funny/happy” coda after the main ending if you play through a second time, and some extra in-game options that are unlocked after you finish the game for the first time, including understandable subtitles for ALL characters, even ones that are normally speaking an unknown language. I’m not sure if the hidden weapon you can get in the middle of the game becomes a light saber on the second playthrough in the NA version as it does in the PAL version, but it may.

    This was before video streaming sites, so there were many arguments on forums about how these things are in the game, no they aren’t you trolls, yes they are here’s a picture, that’s obviously fake… and so on. It was interesting that once people figured out that the NA and PAL versions were different, there was a vocal core of NA players still insisting that it was all fake for quite a long time afterward.





  • I tend to agree. I think this attitude is something of a holdover from the early days of computer science, when of academics from all the other, existing fields, mathematicians were usually the best fit. Now that we have formal computer scientists, computer engineers, and software engineers, this is no longer the case.

    In my experience, when someone from a purely mathematical background tries to program or explain something for programmers, they often (but not always, to be fair) insist vehemently on sticking to methods and algorithms that at best confuse the issue in a programming setting, and sometimes even run counter to how the computing hardware works, reducing performance. In these situations the rationale given is usually something along the lines of, “Listen, we mathematicians have been doing it this way for X hundred years, so that’s the way it should be done!”


  • I love low-level stuff and this still took me a little while to break down, so I’d like to share some notes on the author’s code snippet that might help someone else.

    The function morse_decode is meant to be called iteratively by another routine, once per morse “character” c (dot, dash, or null) in a stream, while feeding its own output back into it as state. As long as the function returns a negative value, that value represents the next state of the machine, and the morse stream hasn’t yet been resolved into an output symbol. When the return value is positive, that represents the decoded letter, and the next call to morse_decode should use a state of 0. If the return value is 0, something has gone wrong with the decoding.

    state is just a negated index into the array t, which is actually two arrays squeezed into one. The first 64 bytes are a binary heap of bytes in the format nnnnnnlr, each corresponding to one node in the morse code trie. l and r are single bits that represent the existence of a left or right child of the current node (i.e. reading a dot or dash in the current state leading to another valid state). nnnnnn is a 6-bit value that, when shifted appropriately and added to 63, becomes an index into the second part of the array, which is a list of UTF-8/ASCII codes for letters and numbers for the final output.



  • Assuming C/C++, dare we even ask what this teacher uses instead of switch statements? Or are her switch statements unreadable rat’s nests of extra conditions?

    This is a good life lesson. We’re all idiots about certain things. Your teacher, me, and even you. It’s even possible to be a recognized expert in a field yet still be an idiot about some particular thing in that field.

    Just because some people use a screwdriver as a hammer and risk injuring themselves and damaging their work, that’s not a good reason to insist that no-one should ever use a screwdriver under any circumstances, is it?

    Use break statements when they’re appropriate. Don’t use them when they’re not. Learn the difference from code that many other people recommend, like popular open-source libraries and tutorials. If there’s a preponderance of break statements in your code, you may be using a suboptimal approach.

    But unfortunately, for this course, your best bet is to nod, smile, and not use any break statements. Look at it as a personal learning experience; by forcing yourself sit down and reason out how you can do something without using break statements, you might find some situations where they weren’t actually the best solution. And when you can honestly look back and say that the solution with break statements is objectively better, you’ll be able to use that approach with greater confidence in the future.