In my case, it's literally free money. I travel a lot for work. I pay for everything with my card, and I'm reimbursed by the company. I rack up points, and whenever I travel for pleasure or as an independent contractor, hotels are free. I'd get free airfare like my coworkers do if I didn't avoid flying and drive everywhere.
The system is broken. No one with the power to fix it has any incentive to do so. Might as well get what you can.
DMV is a state level agency and varies a lot depending on where you are. It's partially privatized here in Oklahoma and mostly painless (you only need the actual DMV for driver's tests, CDL background checks, etc.) but when I lived on the Illinois side of St. Louis I routinely heard of people spending hours in line.
Normally I'm not a huge fan of privatization but the way it's done here works great. The fees are set by the state and the agency gets a percentage, so if an area is underserved someone just opens another one.
Depends on what you need. Software compatibility is mostly good, as long as it doesn't have a dependency on systemd or some other Linux-specific feature. Driver support varies, but FreeBSD in particular is pretty decent there.
FreeBSD has a Linux compatibility feature that lets you run native Linux binaries. I've never used it so I can't say how good it is, though - all the stuff I use runs fine natively.
The major BSDs have decent package management and sizeable repositories, with the option to build software (and customize compile-time options) using the ports or pkgsrc systems. You can also rebuild and customize the kernel and base system (aka "make world") but that's strictly optional these days.
I seem to remember there was some GNOME stuff that had a hard systemd dependency and wouldn't run on the BSDs. That was a while back though and I don't run GNOME so I don't know whatever happened there or what the status is.
FreeBSD does, but I haven't tried it. It has its own chapter in the handbook. No idea about the others. I rarely need to run Windows binaries so I'm not the best person to ask.
The term "PLC" is a lot more specific than "computer with some GPIO ports." No one that works with PLCs would consider a Raspberry Pi to be one.
These things are walled gardens. You never see the operating system. You can only change their behavior using the vendor's software. They generally run a single program (that you write using the vendor's software) on a fixed scan cycle. They read the inputs, run your program, write the outputs, then repeat.
While you're giving up the nearly infinite possibilities that an SBC gives you, the benefits more than make up for the lack of flexibility. They run (and have parts and support available) for decades. Modules are easy to diagnose and replace. An electrician who isn't a programmer can follow ladder logic and troubleshoot problems. Integrators can quickly come up to speed and understand your code.
There's a reason companies will pay tens or even hundreds of thousands of dollars for these things.
A microcontroller based solution is rarely a good replacement for a PLC. You can find integrators willing to come out and troubleshoot your device in the field a lot more easily than embedded progammers and vendor support is usually excellent. When your plant is down, that sort of thing matters. PLCs handle harsh environments for decades, whereas with a microcontroller all the thermal issues and power conditioning are all on you. When something fails, it's usually just a matter of pulling a spare module off the shelf and plugging it in.
If that's an old GE 90-30 (a common FANUC system), it's time to replace it. You're currently in that period when the CPU has reached end of life but the modules are still supported and the vendor has an easy upgrade path. Emerson owns the brand now, and can sell you a new unit that'll run your old program with minimal changes. You can call them and get a list of integrators in your area. It'll be pricey, but you won't need to do it again for another quarter century.
This system barely deserves a PLC. The modules are only a couple of extremely basic analog inputs and outputs, plus a wildly outdated and unsupported HMI. And the entire plant could possibly be replaced with something more modern for less money than upgrading the PLC. (Or I could get something cheap from AutomationDirect - I have no idea how good their PLCs are.)
I worked at a manufacturing plant that had originally been setup in ~2003 or so and they had a bunch of servers and desktops still hanging on by a fingernail when started there. It took me about a year of but I was able to clone and virtualize them all and they all ran fine on a 6 core Proxmox server with 32GB of RAM. Really drove home the realization of how far technology has progressed and how commoditized manufacturing/enterprise tools have become.
"but you won't need to do it again for another quarter century."
Hmm, so how do they handle the new cyber threats, since most of these are connected? It seems upgrades would need to be performed to address new threats. And just because something is not internet connected doesn't make it immune (eg stuxnet).
They shouldn't be connected is the point of the article. All PLC and DCS manufacturers are constantly working on threat mitigation and pushing out updates to address vulnerabilities. It's on the Process Controls team to decide what is an actual threat that requires patching.
I ran it diskless for years with read-only NFS mounts. Set up syslog and a pflog daemon to send logs elsewhere, and you don't need write access most of the time.
I'll add another recommendation for Scheme. The concepts in SICP map very well into Scheme, whereas I can only imagine them being awkward and non-idiomatic in JS. There's lots of passing around first class functions and use of recursion.
One of the two professors (Dr. Sussman) that give the lectures in this series is a co-creator of Scheme.
> I can only imagine them being awkward and non-idiomatic in JS
You don't have to imagine, you can look at the code used in the JS version and it goes through some fun contortions to get around the fact that JS is not expression oriented (like Scheme). This is from page 35 (PDF: https://sicp.sourceacademy.org/sicpjs.pdf):
The JS code has to use the ternary ?: to get around the fact that it does not have a good equivalent to `cond`. You can see that they've gone through a literal translation of Scheme to JS that results in very unidiomatic JS code.
I agree that the characterization was uncalled for in the post you replied to. But I don't agree with your statement that most people who generally oppose regulation have good reasons for doing so. Conservative media outlets have pushed that stance for decades now and it gets regurgitated all the time. Ask most of them what specific regulations they want to see gone and you'll get a blank stare.
The system is broken. No one with the power to fix it has any incentive to do so. Might as well get what you can.
reply