HNHacker News
TopNewBestAskShowJobs

TheCapn

2,207 karma · joined August 17, 2011

P.Eng/B. ASc - Software Systems Engineering

Occupation: PLC/HMI/Web/DB/C++/.NET/VB6 Programmer - AKA The Software guy at an industrial controls/automation company.

submissionscomments
TheCapn··on The systems that no one will test
I have, off and on, for years written diatribes about how if people in our industry want to run around with the "Engineer" moniker at some point they should start acting like it. That means respecting all aspects of what it means to be an Engineer and holding public well-being paramount is part of that. Licensure is part of that. Accountability and Responsibility is part of that.

I'm usually downvoted. The move fast and break things group seems to be blind (or willfully ignorant) to the harm that software systems can carry on a person's life. I don't know if its fear of regulation, or self-serving interests or some sort of disdain for the idea that we need to slow down and be more accountable to the public or what. At times the people I've engaged with lament on how they're capable but would be barred for lack of formal education or some such and its a distraction from the overall point: we need to be doing better and if we can't self-regulate then at some point we're going to be forced to act in a way that probably cuffs us more than necessary.

And yes, I understand how Software doesn't exactly fit into the mold of other engineering disciplines cleanly. But I think the idea that if we're going to have systems that can ruin a person's life in a second for a bug or oversight we need to start considering that accountability for those releasing software to the public matters. We lament about the difficulty of holding corporations to account for their harm, but it would be far more difficult for a company's negligence to hurt people if those turning the knobs were held to a higher standard.

I think that reckoning is coming soon. AI is going to create "an event" that we can't ignore and we're going to be pointing fingers in a lot of directions asking "how" we could prevent this from happening again. I'd argue "the event" has already occurred a few times over but we're purposely ignoring the severity of it to keep a diseased economy running roughshod. There's parallels with many historic events forcing regulation and the path forward won't be clean and easy.

TheCapn··on 'We hacked the FBI:' Hackers say they have data on all FBI employees
Just go dumber

Set up a monitor with the data values you need to monitor

Point a camera at that monitor.

Camera feed is remote accessible. Control software is not.

Want alarming? There's systems designed specifically to send texts or make phone calls when signaled electronically.

TheCapn··on I don't want to read what you didn't write
I like your analogy.

Because while I dislike AI writing, it matters in context. If someone is trying to formulate a coherent thought of work tasks required of me then I don't really care if it reads like AI as long as the point they're trying to get to me is clear.

If there's an attempt at something human, or emotionally important I will quickly balk at anything spat out through an LLM. If you're trying to communicate at the human level with me I want your input, flaws warts and all.

A card with just...nothing personal on it has as much value as machine text. I understand that you took the effort to think of me, but that's the bare minimum. If trying to express yourself isn't worth the time to make it personal then I'd almost appreciate if you didn't try at all because it hurts more to believe I'm not worth the effort.

TheCapn··on Everybody's Lost Their Minds
I made mention on a reply to the other commentator but I feel the issue is due to lack of training data in the PLC/SCADA space. If an AI engine with the appropriate amount of training data was available to me I'm sure it could do the work just fine, but at the current state we have partial knowledge which is too similar to other languages. The result is agents which quickly hallucinate capabilities of the SCADA or PLC hardware and write out code that fundamentally won't work. The result of this is that I distrust AI to get it right enough that I won't kill an operator or blow up a production line. The automation world is too closed source and until the push for open standards that have begun to gain traction really takes off we're sort of stuck.

But then at the same time the code of an industrial system typically isn't the bottleneck in development. Selecting the hardware and waiting for the physical installation is a far bigger bottleneck on a project than what I do. As a result, in the end it isn't the "Correctness" of code in the sense of it is doing what it was instructed to do properly, but the correctness of matching software to hardware and that's where I've seen several failures in AI. If I tell it I have a Schneider Altavar VFD and I get code to interface with an Allen Bradley PowerFlex that's one issue. But if I get code to interface with a Altavar that expects specific parameter adjustments on the drive that haven't been set that's a separate issue and more typical for the faults I've seen within AI. If 99% of drives are configured to operate pumps and that's what AI learns for training, the moment I need it for a mill, aeration fan, or conveyor belt (which have distinct physical requirements) then we have the issues I've been seeing and it takes a trained eye to spot those deficiencies in my experience.

TheCapn··on Everybody's Lost Their Minds
The biggest part of that is how there's a lot more community involvement for IoT and things like Home Assistant than there are for the proprietary PLC systems.

In the PLC/SCADA space a lot of the development and resources are closed source. There's been a big push in the last few years for Open standards but that's slow to adopt and I'm sure in time we'll see the Controls space catch up (it is notoriously dated compared to the rest of the software world).

But in the meantime its like the perfect storm of terrible-ness for AI. The vast majority of my SCADA work is in AVEVA products, mainly Wonderware and Edge. Wonderware's scripting language is something called QuickScript.NET which is like 80% of VB.NET. The issue with AI is that being a statistical engine it very quickly starts on the right path, then veers into what is very obvious VB.NET training data and starts doing things that are impossible in Wonderware. Edge uses VBScript, but a limited subset of it. So querying AI for help mostly just spits out useless code in the same way; confidently declaring what it gave is possible when it only results in runtime exceptions.

In the PLC space you can get AI to do pretty mundane things with ease. Writing ladder logic or structured text is pretty okay, but like most things that was never the bottleneck in project development: you're not saving a lot of time for the cost of an AI subscription license. As mentioned, Open standards are starting to be adopted pretty quickly and a lot of PLC systems allow import/export of the proprietary formats into XML now which is going to be beneficial in the long run, but we're not quite there yet.

The problem is always that time it messes up, and it can be very subtle. Off by one errors which would be perfect fine in one environment can be catastrophic totally depending on how your I/O Comms were configured. I was trying to interface with some hardware that I asked AI to see if I could solve the pain points of remote enable/disable via network comms. It very eagerly told me I could use OPC-UA Methods to achieve what I'm after, but I was working a platform that didn't support Methods. It even fabricated a path to fake call a method which obviously did not work when applied to a real world scenario. So I asked it how to use Modbus which requires use of FC16 to act on the hardware. Again AI very eager to tell me how to do that, but hallucinated what could be done. Lastly I went for the TCP route which again had AI giving incorrect information - it was far closer this time, having instructed me to send a command in a format which doesn't work out of box, but could be manually configured in the hardware to work. Fortunately I was testing to see if it could save me time, not trying to see if it could do something I was unable to do, but I try to imagine what would happen if I allowed it to do that type of work on a VFD, or PID loop. That tiny little bit of misunderstanding by the agent could be catastrophic.

Each time I share this type of experience (and I have others) with the AI community I'm told I'm doing it wrong. That if I was using better models or different configurations that wouldn't be an issue. Telling me that I need to pay for models - as though I want to fork over cash when their demos are wildly underwhelming. It gives me a lot of overall distrust in the AI community because of this. It feels a lot like interacting with Linux fanatics who are unable to accept that it has faults that aren't tolerable by the layperson. That these people cannot see the faults because it works great in their narrow needs.

But at the same time, using AI to give little tips. How can I speed up this SQL Stored Proc? Why is my DataBinding failing to update? What is causing this OS upgrade to fail? Its done pretty good work. I see it as a tool that works along with me and an IDE, not as a human replacement like so many feel it is ready to be.

TheCapn··on Everybody's Lost Their Minds
The one thing that poisons the entire online discourse regarding LLMs to me is just simply not knowing who you're dealing with and what their problems are. This, like all things, is complex and nuanced.

For all my efforts to get LLMs to work for me, they've failed. I figure it is because the tech space I work in (Industrial Automation) simply doesn't have the training data that someone building webapps does. The few times I've put LLM to the test its failed horribly, and since my job has me existing in safety critical scenarios I don't humor what AI gives me at all.

So when I bitch about LLMs and their useless nature, its because of how I've experienced them in my craft. They get 95% of the information right, but that 5% it gets wrong can have very serious repercussions.

But when I'm talking with individuals online who see them as revolutionary? I don't know if their job is editing templates or formatting data or any other host of problems that AI can be revolutionary for. I don't know if they're full of themselves, having drank the AI koolaid. I don't know if they're just really deep into the LLM world and figured out things I have yet to learn (or am unwilling to pay for). But from a HN or Reddit discussion, they're all one in the same and without trying to figure out who they are, their opinions all carry the same weight.

TheCapn··on Canada welcomes EU proposal to become 'associate member'
As a Canadian I've had pretty shit experiences with the land crossings coming back to Canada from the US. They seem to be total grumpy shitheads all around.

But at the same time I've had the absolute worst experiences crossing borders from Canada to US too. Seems like agents at the land crossings both ways just hate life or something.

And lastly, as a Prairie resident, I've felt that general unease in Ontario/Quebec as well. I think people there are just generally more bitter.

So I'd say don't take it personally, but that's only worth what you make of it I suppose.

TheCapn··on Canada welcomes EU proposal to become 'associate member'
This is Conservative playbook 101.

It doesn't matter what the truth of the matter is. What Dear Leader says is used as a scare tactic and marching orders for the underlings to believe and repeat. If you live/interact with conservative people long enough you see the pattern. There's absolute trust in what their leadership says, but skepticism for any criticism of those same talking points.

So all this tweet is doing is seeding doubt, and distrust among the electorate. It doesn't have to be true, but if the goal is to maintain control it looks like this. The Canadian Conservatives are still extremely pro-USA but have learned to keep their opinions close to the chest because they're currently politically unpoular.

TheCapn··on I moved my digital stack to Europe
As a Canadian who has been listening to the "51st state" wordvomit coming out of US administration your comment is very apt.

For some reason I can't fully grasp, a LOT of US citizens are ignorant to how the rest of the world is perceiving them at the current moment. There's countless US articles talking about US/Canada relations as if it is a trade dispute and that they think Canadians are eager to re-unite and go back to the way things were without ever addressing the threats to our sovereignty. Then you have comments like the parent to your post who is....wildly off the mark thinking that in a point of contention we'd prefer to keep our data on US controlled systems because their government would need to follow their own legal processes to acquire data of a foreign/hostile state??????

TheCapn··on Today I've made the difficult decision to reduce the size of Coinbase by ~14%
You're discussing layoffs.

OP is discussing firings.

And yeah, there's crossover but they're not 1 to 1. At the same time, if a company is taking two people of equal position and firing one, or keeping the other, the honesty in how they came to that conclusion through transparency has value. Was the decision one of seniority? Performance? Geographical relevance? Was it favoritism masked in another reason? The person receiving the pink slip deserves to know the truth, especially in cases where legal matters could be of question where a company may say one thing, but be acting on another.

TheCapn··on Can I run AI locally?
@OP are you the creator? Could you add my GPU to the list?

Radeon VII

https://www.amd.com/en/support/downloads/drivers.html/graphi...

TheCapn··on you should probably have a kid
Not the OP you're replying to, but a parent nonetheless.

From basically the very moment you realize you're having a kid you essentially become the #2 person in your own life. Its more so for the mother, but even the father likely needs to do some maturing in preparation to being a good dad.

If you're hoping to be a good parent you need to start weighing every decision on a basis of where it leads to. There's simple things like affordability: deciding to make smarter financial decisions because you're going to be supporting another human for the next couple decades at least. There's more complex things like suddenly seeing your own health as a liability and needing to straighten yourself out if you want to set a good example. Things get way easier if your life has structure honestly. Having good habits about food prep, cleaning, chores makes things way easier and bad habits really make life more difficult than it needs to be.

You also need to adapt quickly. You realize that you don't define your schedule any longer. Whether you sleep at night is up to the kid. As they grow from baby to toddler you start to see how the fundamental things like routine have impacted your child and you can begin to make connections to how you did things 6 months ago impacts how things are going now. Self reflection is huge, knowing how your emotions, your reactions, your behavior is a template this person learns from humbles you.

TheCapn··on you should probably have a kid
I really enjoyed the write up. As father to a 2y/o as well I relate so hard to much of it.

This line sticks out to me:

    you see life as a collection of experiences to be sampled
...because I feel like that was my hardest adjustment to becoming a parent while the vast majority of my friend circles are either single or DINKs. You very quickly become a sideline to many people. You get invitations to join the pint after work, to go hit up the trails each weekend, to travel, to do frivolous things on a whim but you just...can't anymore. I think I struggled with that transition for a long time. Partially worried I would lose my friends and become isolated, partially the FOMO of no longer being able to partake on all the things that were most enjoyable to me.

But thinking about it at this point? I've lost a few friends (not in a breakup sort of way, they just slowly faded out) but the ones who stick around were always those I was closest to. I do miss out on a lot more of the hobbies I once loved but at the same time I've traded those for experiences that are new, different, and fulfilling in their own ways. I've truly been a believer that the best reward always comes after a period of suffering or struggle. In the same way that cold glass of water feels like heaven after a strenuous workout that immense feeling of reward when your kid takes first steps, first words, first sentence just crush all other emotions and swell you with joy and love. Is 2 years of hard work worth that immense wash of emotion? Arguably yes. And I hope to keep getting hit with those experiences.

I've never been shy to say it isn't something for everyone. You sacrifice a lot to have kids. Financially, physically, emotionally, mentally, it all takes a toll, but the rewards are also so much deeper than anything else.

TheCapn··on 00Key a 75% Keyboard
I could never get used to ergonomic keyboards. I actually spend a considerable amount of my day typing single handed across the entire QWERTY so I don't have to remove my hand from the mouse. I developed the habit working on far too many apps with bad/missing keyboard shortcuts or broken tab ordering.

For me I wanted a smaller keyboard, but one that still included the numpad and ended up with this custom build:

https://i.imgur.com/H2sddCI.jpg

I use a fullsize board at work, but at home I prefer the slightly smaller footprint that I got in that design.

TheCapn··on Covid Test Data Breach: 1.3M Patient Records Exposed Online
And accessing a computer system without proper authorization is often illegal. So I'm not sure what point you're making.
TheCapn··on 23andMe tells victims it's their fault that their data was breached
Would be interesting to know how they were testing authentication. Were they using a botnet of any sort? Otherwise for every "valid" user/pass combo from an external leak they tested there'd be several failures. A single (or multiple) hosts smashing auth attempts should raise flags. They didn't "Brute force" one user account at a time, but they did brute force the authentication system in general.
TheCapn··on AMD's Anti-Lag feature is getting gamers banned from Counter-Strike 2
It isn't just CS2. Apex Legends has players affected by this. Respawn Entertainment has addressed it and said is reverting bans. I guess part of the issue is an AMD update made it default on, so players who didn't even know it got included were affected.
TheCapn··on Show HN: PC Builder AI
Yeah... I randomly punched in $40,000 for Gaming and got

(1) Parts that total $9,980, but claims it totals $33,950 (2) Recommendations for parts that are both years out of date, and vastly inferior to other options (CPU = AMD Ryzen Threadripper 3990X, GPU = RTX3090)

So I'm guessing the AI data isn't trained enough and is going off some poor metrics like sorting by price, perhaps recommending multiples without indicating (was it asking me to double up on RAM or Stroage?)

TheCapn··on Accidentally Load Bearing
This is a discussion that is much larger than what's available in a comment section like this. But I agree with you wholeheartedly.

I think part of the thing is Software Engineers haven't been a thing for as long in the industry. I'm the only Software Engineer I've met doing controls. My supervisor has a CS degree and an Electrical Technician diploma, but never another SE.

Second is I think up until recently, the work done by Control Systems has been what's capable of an EE or ME so having a SE hasn't been necessary. I've been with my company for 10 years now, and in that time I've watched the evolution of what my clients are seeking in terms of requirements to their systems.

I primarily work in Agriculture or Food Production. 10 years ago my projects were assembling plants and getting their motors to start, with the required protections then some rudimentary automation to align paths and ensure flow.

Today? I'm building traceability systems to report on exactly which truck load was the origin of contamination for a railcar shipped months later. Or integrating production data to ERP systems. Adding MES capabilities to track downtimes and optimize production usage. Generating tools to do root cause analysis on events... It's a different world and the skills of a Software Engineer haven't really been a super important role for quite a while.

I think the mindset is shifting, but it is slow.

TheCapn··on Accidentally Load Bearing
oooboy is it. That's what I get for not proofreading.
TheCapn··on Accidentally Load Bearing
You're not wrong. It shows in the state of PLC/HMI Development tools. Even simple things like Revision Control is decades behind in some cases.

I've basically found my niche in the industry as a Software Engineer though I can't say I see myself staying in the industry much longer. The amount of time's I've gotten my hands on code published by my EE coworkers only to rewrite it to work 10x faster at half the size with less bugs? Yikes. HMI/PLC work is almost like working in C++ at times, there's so many potential pitfalls for people that don't really understand the entire system, but the mentality by EE/ME types in the industry is to treat the software as a second class citizen.

Even the clients treat their IT/OT systems that way. A production mill has super strict service intervals with very defined procedures to make sure there is NO downtime to production. But get the very same management team to build a redundant SCADA server? Or even have them schedule regular reboots? God no.

TheCapn··on Accidentally Load Bearing
My company is generally good about that. We have lots of overlapping documentation that answers questions like that in different ways. From Electrical schemas to QA docs, picture archives of panels and wiring, ticketing systems, spreadsheets over I/O, etc. etc.

I hate PLC work for other reasons. I'm starting to look at going back to more traditional software role. I'm a bit tired of the road work and find the compensation for the amount asked of you to be drastically underwhelming. This meme is very much relevant:

https://i.redd.it/rawo5uki1v9b1.jpg

TheCapn··on Accidentally Load Bearing
All my comment is adding a software anecdote to the story. It really is just regular Chesterton's Fence, a term I've never heard until now but dealt with for the last several years.

You're not wrong, but in the context of a PLC controlling a motor or gate it is far more segregated than the code you're probably thinking of. Having a timer override on a single gate's position limit sensor would have no effect on a separate sensor/gate/motor.

If the gate's function block had specific code built into it that affected all gates then what you're talking about would be more applicable.

TheCapn··on Accidentally Load Bearing
Huh. Finally a name for it.

I do a lot of support work for Control Systems. It isn't unheard to find a chunk of PLC code that treats some sort of physical equipment in a unique way that unintentionally creates problems. I like to parrot a line I heard elsewhere: "Every time Software is used to fix a [Electrical/Mechanical] problem, a Gremlin is born".

But often enough when I find a root cause of a bug, or some sort of programmed limitation, the client wants removed. I always refuse until I can find out why that code exists. Nobody puts code in there for no reason, so I need to know why we have a timer, or an override in the first place. Often the answer is the problem it was solving no longer exists, and that's excellent, but for all the times where that code was put there to prevent something from happening and the client had a bunch of staff turnover, the original purpose is lost. Without documentation telling me why it was done that way I'm very cautious to immediately undo someone else's work.

I suppose the other aspect is knowing that I trust my coworkers. They don't (typically) do something for no good reason. If it is in there, it is there for a purpose and I must trust my coworkers to have done their due diligence in the first place. If that trust breaks down then everything becomes more difficult to make decisions on.

TheCapn··on Ask HN: What boosted your confidence as a new programmer?
For personal development, it was merely shipping things. The more I published, the better I felt about myself. The more I published, the more I had learned and had to refer to. Now when I'm taking on tasks I can instantly recall how each of the pieces of the problem can be stitched together from things I did previously (or at least know where to look for foundations to build from)

For the confidence? It was working with others. The first job I had I got to sit down with one of the company's programmers as part of my on boarding and watch him work through tickets. After I saw just how flawed everyone was I felt a lot better about myself. I suppose that's a weird thing to say: Oh he was pretty shit, so I shouldn't feel bad about my poor performance...but that's not the point I want to make really. More that, it is wrong to compare your efforts to learn and grow against the final product of others. Once you sit down with the experienced devs and see how they shape and form the product and all the bumps along the way it doesn't feel so bad to struggle on your own.

Ultimately the skills that I honed that gave me the best boost in confidence were not really the direct programming parts where I put letters and numbers in files. It is the debugging. Understanding how things move and where to look for problems makes me feel like I can solve any problem with the right tools.

TheCapn··on Companies must stop using Google Analytics
Perhaps you're using a broad/generic example to try and make the point but I'll say this:

If a seasoned mechanic is unable to figure out how to reset the Maintenance Reminder or look up how to sync Tire Pressure sensors, run away.

In the same way that one can use knowledge of one programming language as a means to leapfrog into other languages, other skilled trades are similar. Perhaps there's something that could be said about an ICE mechanic trying to dabble on Electric but that's not the point you're making. So yeah. I know you're trying to make a point about lock in, but when I think of people I want to hire for tasks who might say "Oh, sorry, you have a Volkswagen and I only know how to work on GMC" I wouldn't take my GMC to them either. It shows a fundamental lack of skill in that they don't understand the broader concepts and their universal applications. If I, a programmer, can figure out my Volkswagen, my GMC, my Mazda, my Nissan, certainly a mechanic can. If my appliance repair specialist can only do Whirlpool when I ask for help on a Bosch that's red flags.

One might specialize. Sure. But to refuse? Weird. But I fear I might be getting lost in the weeds here because its all about the approach. "Sorry, too busy to take on work on things that aren't my specialty": yep, understood. "Sorry, I don't know <model> I only know <other model>" bad.

TheCapn··on We are wasting up to 20% of our time on computer problems, says study
>Then again how much time do computers save?

This is honestly a good question to ask at times. I remember back when I was trying to get into weight lifting. I was searching for apps and tools that would help me track milestones and progress, setting up routines and all that. I remember going through some options, then making a spreadsheet, and refining the spreadsheet and just hating the whole process.

So then I opened a notebook and just wrote down my lifts for the day. At the top I wrote my 1 rep maximums for the big 4 lifts and had a page for my program that denoted the rep#/set#/1RM% and done.

What did it lack? Maybe some categorizing or search tools. Maybe some graphing to visualize progress over large spans of time? Well I don't need any of that. What matters is what I'm doing now.

There's probably several examples of things like that. I can't count the number of times I've tried using organizers for things like groceries or maintenance that have me spending more time fiddling with settings and formats than just doing the task. At my job I create a new text file daily to note what I worked on and shit that came up. I date it and save it to a directory and just use grep to recall info when I need to look back over large spans. No awkward TODO lists or planner apps. No updates or UI changes. No subscription fees or "Share" buttons.

Sometimes, asking how much time you save with a computer/app/whatever is the right thing.

TheCapn··on Canada plans brain drain of H-1B visa holders, with no-job, no-worries permits
>sexual fertility

You think our government respects people taking time to rear offspring? Of course not! They're not contributing their labour to our economy while being parents so we've structured the incentives to start families in such a way that they're driven back to work ASAP. Strictly speaking: having children is bad for our labour force and should be avoided.

TheCapn··on Profits are driving inflation. When will politicians and the BoE admit it?
Depends on what timeframe you consider the OP sees as "new thing". Reaganomics really was the start of this trend though I'm sure it is easy to find examples prior to then looking back until the Great Depression.
TheCapn··on Google Store gave me a locked device as warranty replacement
I actually had a decent experience with their support on my Pixel 1 with shoddy bluetooth. It was one call to tech support and they basically just said it isn't worth troubleshooting and arranged the entire replacement on the spot. It was a big reason why I went with a Pixel 3 and Pixel 6 on my upgrades.

Why we got the run-around treatment with my wife's device? Unsure. But I'm not willing to play those games down the line so we're going to find other devices on next replacement.

Page 1 of 21Next →