Skip Navigation

Posts
2
Comments
379
Joined
2 yr. ago

  • Yeah.

    There's a couple of ways of looking at it; general purpose computers generally implement 'soft' real time functionality. It's usually a requirement for music and video production; if you want to keep to a steady 60fps, then you need to update the screen and the audio buffer absolutely every 16 ms. To achieve that, the AV thread runs at a higher priority than any other thread. The real-time scheduler doesn't let a lower-priority thread run until every higher-priority thread is finished. Normally that means worse performance overall, and in some cases can softlock the system - if the AV thread gets stuck in a loop, your computer won't even respond to keyboard input.

    Soft real-time is appropriate for when no-one will die if a timeslot is missed. A video stutter won't kill you. Hard real-time is for things like industrial control. If the anti-lock breaks in your car are meant to evaluate your wheels one hundred times a second, then taking 11 ms to evaluate that is a complete system failure, even if the answer is correct. Note that it doesn't matter if it gets the right answer in 1 ms or 9 ms, as long as it never ever takes more than 10. Hard real-time performance does not mean good performance, it means predictable performance.

    When we program up PLCs in industrial settings, for our 'critical sections', we'll processor interrupts, so that we know our code will absolutely run in time. We use specialised languages as well - no loops, no recursion - that don't let you do things that can't be checked for an upper time bound. Lots of finite state machines! But when we're done, we know that we've got code that won't miss a time slot in the next twenty years of operation.

    That does mean, ironically, that my old Amiga was a better music computer than my current desktop, despite being millions of times less powerful. OctaMED could take over the whole CPU whenever it liked. Whereas a modern desktop might always have to respond to a USB device or a hard drive, leading to a potential stutter at any time. Tiny probability, but not an acceptable one.

  • If having affairs outside of marriage counts as a 'straight to hell' offence, then sure. Also if pride still counts as a deadly sin, then off downstairs he goes. But he was an atheist in life.

    Heaven looks boring anyway - I'd rather be where my friends are.

  • btw

    Jump
  • I don't think that even 8 years ago, the 'business' choices would have been SUSE / Fedora / Debian. If you're paying for support, then you'd be paying for RHEL, and the second choice would have been Centos, not Fedora. Debian in third place maybe, as it was the normal choice for 'webserver' applications, and then maybe SUSE in fourth.

  • Think you're understating it there. Network call takes milliseconds at best. Function call, if the CPU has correctly predicted the indirect branch, is basically free, but even if it hasn't then you're talking nanoseconds. It's slower by millions of times.

  • That's Amaranthe you're thinking of. If you're a fan of the Swedish metal 'soprano and gravel' sound they're well worth a listen.

  • I used to work with a Greek guy called Argyros Argyros - cool guy, but suspect he was an outlier. Named after his dad, so certainly some people are named that way. Icelandic for instance would traditionally use "Given Name" "Patronym from father" - Magnus Magnusson was quite famous in the UK; Björk Guðmundsdóttir might be the most famous internationally, but she's not a "double". There's quite a few cultures - Hungarian, Chinese, Japanese, ... - that write their names as "Family Name" "Given Name" as opposed to the other way around, if that's what you mean?

  • Not that I'm the biggest fan of CMake's syntax, but they are fairly concise and standardised. The XZ backdoor hid in amongst thousands of lines of autotools jank that very few people would be able to audit. A short CMakeList that generates a Makefile is a much harder place to hide something nefarious.

  • That's because Arch is the best, so any additional comparisons are just wasting everyone's time ;-)

  • Ah, that sounds a bit unfortunate. I've run AMD CPUs on Linux desktops with Bulldozer / Piledriver / Ryzen 7, my current laptop is a Ryzen 7 as well, never run into that at all. Hopefully the Arch wiki will sort you out. If not that, the third option would be 'install Linux on an M-series Mac' - don't know how feasible it is at the moment, and paying the 'Mac premium for hardware and software integration and then overwriting the software' doesn't make a lot of sense to me.

  • Cat food is enriched with the amino acid taurine, which they can't produce themselves. Dog food is not. Feeding cats exclusively on dog food will kill them eventually, via blindness and heart disease.

    Not a disaster if they steal it from the dog once or twice, but it cannot be their long-term diet.

  • Deep frying a battery - likely to make your whole kitchen turn crispy.

  • Using LLMs for corporate communications - automatically-generated complaint responses, and the like - usually has swearing disabled, so if you want to fuck up their shit, be sure to express yourself with as many fucking swears as possible. Let's get that shit into those cunt's language models ASAP.

  • Really? If it's a big enough treatment works to warrant a SCADA, then I doubt an automation engineer with the experience to set it all up would be asking this question, but here goes. You've a couple of obstacles:

    • every contract I've ever seen for industrial automation has either specified which control plane they want directly, or they'll have a list of approved suppliers which you must use. Someone after you will have to maintain this. Those maintainers will only accept the things that they have been trained on. Those things are Windows PCs running Windows software. They will reject anything else. The people running network security on those machines will have a very short list of the acceptable operating systems for running SCADA systems. That list will be a couple of versions of Windows Server. They will also reject anything else.
    • that's not nearly enough information to make a recommendation. Which PLCs? Allen Bradley, Siemens, Mitsubishi, ...? I can't think of a job I've ever been on where the local HMI hasn't matched the PLCs. The SCADA software almost invariably matches the PLCs used in the main motor control centre, with perhaps a couple of oddball PLCs for proprietary panels and such like. Could maybe ask the supplier if they've a Linux alternative? Siemens will laugh at you and Mitsi won't understand the question, but AB just might.

    Sorry - I'm a Linux evangelist, but I don't think it's a good fit for here. SCADA performance generally isn't bad due to Windows Server - it's fine, does what it's intended to - but because eg. STEP 7 is an appallingly slow and bloated piece of software which would bring a mainframe to its knees. Which is bizarre - the over-the-wire protocol connecting the machines is generally a short binary blob described in the PLC configuration - these bits are the drive statuses, these bits are an int or a float for an instrument readout - and it shouldn't be at all slow updating it all, but slow it is.

  • Nah, it's repeating the installation process until you finally get enough stuff working to have internet, and then you can bootstrap installing every other bit of software that you need. Thank goodness for rolling release - I can't imagine having to go through that again.

  • There are, but it's complicated. Doom (2016) for instance - it doesn't handle the very large Vulkan swap chain that's possible on some modern graphics cards, crashes on start-up. Someone patched Proton around that time so that Doom would start; the patch was later reverted since it broke other games. Other games based off of that engine - couple of Wolfensteins, Doom Eternal - have the problem fixed in the binaries, and so run on up-to-date Proton, but depending on your hardware, only a few specific, old, versions of Proton, will do for Doom.

    Regressions get fixed - that's okay. Buggy behaviour which depended on regressions that got fixed - that's a problem.

  • Team unicorn, represent! I'd swear half the entrance doorways to our historic buildings have the lion and the unicorn carved above, and everyone still seems surprised by the "Scotland's national animal is a what now?" response.

  • Between 'caps lock' -> 'actual control key', 'alt gr' -> 'compose', and 'right ctrl' -> 'virtualbox functions', I'm running out of things that I actually need to remap, or have enough fingers to press without stopping touch-typing. But hey, might come in handy for something...

  • I think that Python has a bit of a 'Microsoft Word' thing on the go. You know how your own docs are completely editable and print fine, but everyone else's are a complete fucking disaster and pressing a single key will screw up the formatting of the whole document? Your own Python code is full of sensible idioms and pragmatic naming conventions, but everyone else's was plainly written while on mushrooms.