• 1 Post
  • 105 Comments
Joined 2 years ago
cake
Cake day: June 14th, 2023

help-circle
  • CMake, which is kind of the universal standard build system for C++ now, has “fetch content” since v3.11. Put the URL of a repository (which can be remote, but also local, which is handy) and optionally the branch / commit ID that you’d like, and it will pull it into your build directory automatically. So yeah, you can pull anything nefarious that you’d like. I don’t think most people would question pulling and building a library from Github as part of the build, especially if it had a sensible name for the task at hand.


  • You’ve got that a bit backwards. Integrated memory on a desktop computer is more “partitioned” than shared - there’s a chunk for the CPU and a chunk for the GPU, and it’s usually quite slow memory by the standards of graphics cards. The integrated memory on a console is completely shared, and very fast. The GPU works at its full speed, and the CPU is able to do a couple of things that are impossible to do with good performance on a desktop computer:

    • load and manipulate models which are then directly accessible by the GPU. When loading models, there’s no need to read them from disk into the CPU memory and then copy them onto the GPU - they’re just loaded and accessible.
    • manipulate the frame buffer using the CPU. Often used for tone mapping and things like that, and a nightmare for emulator writers. Something like RPCS3 emulating Dark Souls has to turn this off; a real PS3 can just read and adjust the output using the CPU with no frame hit, but a desktop would need to copy the frame from the GPU to main memory, adjust it, and copy it back, which would kill performance.


  • Money is an emotional thing. Do I believe that this coin / bit of paper / number on a website is something that I can exchange for goods and services? If not enough people believe that, that currency will collapse.

    Mind you, not using money is inefficient at scale. Sending the bag of potatoes that I’ve grown in my garden this month to my internet provider for continued shitposting privileges only goes so far.


  • If I believed that they were sincerely interested in trying to improve their product, then that would make sense. You can only improve yourself if you understand how your failings affect others.

    I suspect however that Saltman will use it to come up with some superficial bullshit about how their new 6.x model now has a 90% reduction in addiction rates; you can’t measure anything, it’s more about the feel, and that’s why it costs twice as much as any other model.


  • Does make me think about the story of Thales of Miletus; ancient Greek philosopher, got asked what use was philosophy if it doesn’t make you any money. Predicted good weather, and monopolised all the olive presses, made a fortune.

    For a modern example; shares in Rheinmetall (German firm who make, amongst other things, the turrets for tanks) have gone through the roof after the recent US debacle. I could have told you a year ago that Trump getting in would have meant the US abandoning Ukraine; obvious in hindsight that that would mean a boon for European arms manufacturers.

    I don’t think you need to be quick to take advantage. I think you need insight. If there’s a topic that you’re knowledgeable about and you can see which way the wind is blowing, then you can make your own boat.

    https://en.wikipedia.org/wiki/Thales_of_Miletus#Olive_presses



  • Man alive, all that time I wasted learning LaTeX in that case. Supports tables properly, “floats” pictures and figures about without messing up the flow of text, exceptional support for equations, beautiful printed output…

    Suffers from a completely insane macro-writing language, and its markup is more intrusive in the text than markdown’s is. Also, if you have very specific formatting output requirements (for a receiving publication, for instance) then it can be somewhat painful to whip into shape. Plain-text gang forever, though.



  • Memory safety is just a small part of infrastructure resilience. Rust doesn’t protect you from phishing attacks. Rust doesn’t protect you from weak passwords. Rust doesn’t protect you from network misconfiguration. (For that matter, Rust doesn’t protect you from some group of twenty-year old assholes installing their own servers inside your network, like you say.) Protecting your estate is not just about a programming language.

    “Infrastructure”, to me, suggests power, water, oil and food, more than some random website. For US infra, I’m thinking a lot of Allen-Bradley programmable logic controllers, but probably a lot of Siemens and Mitsubishi stuff as well - things like these: https://www.rockwellautomation.com/en-us/products/hardware/allen-bradley/programmable-controllers.html.

    Historically, the controllers for industrial infrastructure (from a single pumping station to critical electrical distribution) have been on their own separate networks, and so things like secure passwords and infrastructure updates haven’t been a priority. Some of these things have been running untouched for decades; thousands of people will have used the (often shared) credentials, which are very rarely updated or changed. The recent change is to demand more visibility and interaction; every SCADA (the main control computer used for interactive plant control) that you bring onto the public internet so that you can see what it’s up to in a central hub, the more opportunity you have to mess up the network security and allow undesirables in.

    PLCs tend to be coded up in “ladder logic” and compiled to device-specific assembly language. It isn’t a programming environment where C has made any inroads over the decades; I very much doubt there’s a Rust compiler for some random microcontroller, and “supported by manufacturer” is critical for these industries.



  • AI does give itself away over “longer” posts, and if the tool makes about an equal number of false positives to false negatives then it should even itself out in the long run. (I’d have liked more than 9K “tests” for it to average out, but even so.) If they had the edit history for the post, which they didn’t, then it’s more obvious. AI will either copy-paste the whole thing in in one go, or will generate a word at a time at a fairly constant rate. Humans will stop and think, go back and edit things, all of that.

    I was asked to do some job interviews recently; the tech test had such an “animated playback”, and the difference between a human doing it legitimately and someone using AI to copy-paste the answer was surprisingly obvious. The tech test questions were nothing to do with the job role at hand and were causing us to select for the wrong candidates completely, but that’s more a problem with our HR being blindly in love with AI and “technical solutions to human problems”.

    “Absolute certainty” is impossible, but balance of probabilities will do if you’re just wanting an estimate like they have here.


  • Kind of. It’s the Linux kernel that manages all of the controller drivers and makes them available to userspace, mostly via the evdev interface. SDL is a library for managing graphics, sounds and events in a generic way on multiple platforms and devices. It’s overwhelmingly the most common library used for Linux games - Steam used it for all of their Linux-native ports of Source engine games, for instance. But it also presents all gamepad events in a consistent way regardless of their “true source”, so generic devices tend to work with every game.

    SDL3 mostly clears out all the clutter from the previous versions of SDL. It’s a mature library and gamedev has come a long way in that time. Getting rid of all the weird stuff that the API accumulated makes it easier to use and maintain. Plus there were things like managing audio generally, and pen-and-touch gestures mobile phones and tablets, that were quite the head-scratchers before. That’s all a bit easier now.








  • Assuming you had a pretty decent monitor and graphics output in the 90s, it may have been 800x600, but more likely 640x480, and you’d have been using the standard issue bitmap font with no anti-aliasing, blitted to screen using software rendering. Probably in a single colour, too.

    Alas, the problem with that is that it doesn’t scale. On xterm a 4K monitor, I can watch Vim redrawing the screen, paging through logs is painful. Use Kitty for the same, it’s instant, I can flip through tabs and split screens too, and have niceties like anti-aliased fonts and transparency if I want them.

    Some people spend a lot of time in the terminal, so I can’t fault them for taking the time to make a nice working environment and sharing that work with others.