Actually, let me expand on that. And I hope I can say this without people reflexively seeing it as some kind of childish attack on Python.
The reason I don't like Python is twofold. The somewhat minor reason is that I'm not fond of having a lot of value tied up in a language that has weak typing and doesn't have the benefit of a compiler to at least enforce some degree of static correctness.
The biggest reason I don't like Python is that is is not a consumer-friendly language. And by consumer, I mean anyone who needs to run someone else's code. I've done a fair bit of embedded programming, and the HW-community too has this love of Python that makes Python play a key role in several toolchains. Making tooling written in Python work reliably and correctly becomes an unwanted distraction on firmware projects. Firmware development for MCUs tends to not be the most streamlined and slick development processes to begin with. People have a lot on their plates and it doesn't help when the tooling provides another layer of risk.
I've also seen a few examples of machine learning systems being developed in Python for industrial applications and then run into problem when it comes to making these solutions shippable. A couple of years ago I dealt with a company that was supposed to ship a machine learning solution for an expensive bit of industrial kit. The deadline slipped three times until they had to admit defeat and just swallow the loss. Because they had run out of budget and time. Of course, you could probably blame the software engineers, but I suspect that if they had cared about correctness, performance and reliability, they wouldn't have chosen Python to begin with.
Yes, Python is slower than a lot of other languages. But that's not really as important as reliability and predictability. I can live with things that have limited performance in a lot of cases as long as they are reliable and predictable. In a lot of cases, more powerful hardware is cheaper than the cost in time and development effort. Having systems that depend on thousands of files being arranged in just the right way and nobody being tempted to just fix things ad-hoc introduces enormous risk.
And sure, you can get more performance by implementing things in C/C++ and then wrapping them in Python libraries, but this is pretty janky.
Python is nice for prototyping and as a more flexible replacement for Matlab and the like. It is not a language you'd want to ship things in. I think Python became popular because it is more approachable for non-software engineers. I would really love if people could develop a bit more empathy for the consumers of solutions and perhaps put more of an effort into hardening and professionalizing software development. And for that Python isn't a good choice.
Yes, Rust is a lot harder to learn than Python, but I think this is addressable through good libraries. Perhaps the transition to a more sane environment could be easier if one chooses Go. Go has an astonishingly good standard library for software engineering. Imagine getting some of the low level stuff needed for AI and ML into the standard library so people could build easy to use libraries on top of that.
This is a relatively constant factor along the Norwegian coast and has been for many years. In recent years the behavior has become a bit more aggressive with communication cables at sea going missing.
This tends to not make international news as this activity isn't exceptional. It just varies in intensity and scope over time.
For those who downvote the above, yes it presents speculation as if verified fact, but what it puts forth is actually plausible when you see how Russian military efforts tend to make use of uncertainty.
If you are going to dismiss it: dismiss it with facts and arguments. Don't just lazily downvote it.
Just to be clear, you want HN users put effort into a rebuttal of the factless speculation presented as a fact? This isn't how discussions work, this is flamebait (just like the article itself) and has no place on HN. This doesn't contribute to the discussion, and should be downvoted and flagged.
The two last statements of the post are indeed speculation. What was said up until that point can be verified. However, the speculation should be seen in light of recent history. Russia does have a history of shady maritime dealings covered by deniability. For instance you have probably heard of cables that have been mysteriously cut in the northern regions.
As for you accusing me of posting flame-bait: that's not very nice. I presume you have some way of proving your speculation?
That website had three popups before I could read the article and another one that appeared across the bottom. Two cookie-related popups, and two others. I almost lost patience and just closed the tab. And MIT Technology review is kind of something you'd expect to be just a little bit more ... serious?
How can this be good design? No, forget that: how is this even acceptable design? Now I will remember the experience for at least a few weeks and avoid clicking on anything that points to that site since I already know it is probably going to be a hassle.
Can someone explain the design decisions to me?
Oh, and if this comment seems irrelevant to the subject: see what I mean how annoying it is to have to wade through a bunch of nonsense before you get to the bits you actually care about?
`technologyreview.com` is one of the many sources of my HN submissions.
Recently, after I upgraded to macOS Sequoia 15.0, I realized that my current AdBlocker was not working in Safari. This was due to a conflict between AdGuard and Apple iCloud Private Relay.
In that short window of a few hours, I realized that the Internet is an unforgiving place to browse without an AdBlocker. As I was on my usual chore of collecting and sharing interesting, weird, and strange finds for Hacker News, I was stunned to see how unusable the browsing experience had become.
Of course, I don’t hate ads. It is a legitimate business model. I’m just not too keen with the over-done ads that is everywhere, and in everything.
So, I Block Ads. And recently, I wrote an article to remind myself of how life on the Internet is today.
You might want to let the developer know that posting on the forums is absolutely not “reporting the problem to Apple”. They need to file a proper bug with Feedback Assistant, and ideally spend one of their two yearly Technical Support Incident (TSI) to get priority, seeing as it’s a paid app.
I did lose patience. This site has the most abusive “consent” form available. And they aren't even satisfied with that, they have to use multiple ones.
Just the same way that I don't get Temu. I buy a lot of stuff on Aliexpress. Mostly electronics, odd tools, materials for hobby projects etc. I would think Temu would be interested in my business. But every time I've clicked on a product link there I get this stilly spin-the-wheel nonsense. Which just represents a hurdle I have to get past to order something. After you get that a few times you grow tired of it. So now I never click on Temu links. I go on Aliexpress instead because they'll sell it to me without this whole nonsense.
Again, how does this help them make money? Is it a kind of filter that is supposed to repulse people like me and attract people who find this kind of interface attractive? Presumably because they can get more money out of people with certain traits?
I don't get it how interposing a lot of nonsense between me and the things I am trying to access or buy is supposed to boost revenue. Can someone explain this to me?
Maybe because they make so much money from the ads and unsuspecting users that subscribe to a trial and forget to cancel? Maybe because many websites are developed using similar toolsets, permeating antipatterns, and horrible UI models?
Every time I need to print something on MacOS I am reminded of how much I hate printers and any printer related software. I've been messing around with computers for 40 years now and goddamnit, every decade printers become more of a pain in the neck.
Funny how the whole FSF movement started in no small part because Stallman was irritated with the low quality of printer drivers... and how that movement for some (?) reason failed, in 40 years, to noticeably improve the quality of printer-related software.
I wrote printer code for 10+ years. I appreciate how hard the technical problems are but vendors make it so much worse. I loathe printers. Printers peaked with the LaserJet III.
Agreed, I ran several busy printers for a large department. The ljet IIIs were work houses and ran nearly forever if you used the recommended part replacement schedule.
We had a ljet III that outlasted ljet 4, ljet 5, and ljet 4000. Ljet 3 was the last with the HP print engine, afterwards they used Canon print engines.
The network interface was brittle, even a nmap would hang the printer. So we firewalled it off and used CUPS to handle postscript -> PCL. Sending only PCL to the printer (postscript memory and CPU is unbounded) made them faster and MUCH more reliable.
IIRC the Laserjet 4 had a much better warm-up time (and lower power consumption) by switching to a thin ceramic heating element rather than heating half the printer. But yeah anything after that is downhill.
do you mind lightly summarizing what technical problems make it more difficult? I'm assuming there are all sorts of things web-devs never even think about from that world.
Poor status, often a 1 line LCD says "processing..." and hangs infinitely.
Different handling of duplex, monitoring ink levels, file formats (PS? EPS? PNG? PCL? Which versions? Etc).
Issues with ink that expire by date, reduced functionality with 3rd party inks, not being able to print black even when only yellow is out of ink.
Different postscript versions and the nature of a language where CPU and memory use is unbounded means you get a nightmare of which files can print to which printers.
Most of our printer nightmares, at least the software issues, ended when we handled postscript -> PCL (a raster based format) on the server side.
I feel like printers are far better now than they were 10 years ago. At least on MacOS and iOS, I have no problems finding a printer and printing. 10 years ago it was a pain, but now - smooth sailing for me. Heck, no driver installs either!
Well, apart from printers added throug Bonjour constantly going missing and have to be re-added regularly, and (HP) printer drivers suddenly no longer working and being flagged as malware after OS upgrades.
Setting up an old RPi with CUPS helped a bit. For a while. Now I'm back to having to re-add printers to my mac workstation every time I want to print.
Yeah something like 10-15 years ago I thought for just the simple action of printing a file, it was way easier in Ubuntu than Windows, simply because they included a lot of drivers in the distro by default, while in Windows land I still had to visit the printer manufacturer's website for drivers -- or use the included CD! I try to avoid needing to do anything more complex than that. (Scanning I've always done with a USB stick plugged directly into the printer.) Things kind of got worse again in recent years with the removal of the standalone GUI for administration in favor of a web interface, and various ongoing modularization efforts, in theory cups3 will work even better and only support IPP/AirPrint: https://openprinting.github.io/current/#the-new-architecture...
I would have expected to see some examples of how the GUIs look. Clicked around for a bit and didn't see one single example. This doesn't look serious at all.
It's mainly a Qt preservation project (The fully open-source parts of Qt, but without the MOC compiler / QML / Qt Declarative) - so not that much different from it.
Or you can register as a customer if you work for a company that is deemed "worthy". I have full access to their prices and I can buy stuff directly from Siemens.
(Well, except for motor controllers that operate at higher frequencies. For that I need the approval of various government bodies as well as international organizations tasked with ensuring non-proliferation :-)).
I've spent some time (not a lot) working with Siemens PLCs and RTUs. Their target customer typically has an account manager who will help them choose the right devices, the right modules and the software that you need. Their typical customer also has a significant budget for automation systems and they usually build systems that are mission critical. Like a production line.
Getting an account at Siemens requires a bit of work. They want to know who they are dealing with because a lot of their hardware is export restricted. Some of their hardware they can't even sell you without explicit government licenses. (For instance, motor controllers are tightly regulated when you get to the high RPM stuff since that can be used in gas centrifuges - ie to enrich uranium).
If you have an account with Siemens you can get prices. Also, it isn't exactly your run of the mill shopping experience. I may misremember some things since it is a couple of years since the last time I bought something from Siemens, but you typically create a "project" and then add components to it. It will then validate the stuff you have picked and point out what additional modules you need, what software you need, if this doesn't work with that etc.
You can kind if imagine a PC shopping experience where you buy parts to build a PC and it will automatically ensure that all the components will work together and help you figure out what choices you can make.
Once you think you have pieced together what you want, you typically talk to a solution engineer at Siemens and you go over it together. I bought various components for a small system, and still, I got excellent service. You get to talk to a person who can look over your order and make recommendations within a day or two. I was really impressed.
If you spend millions on automation gear (which one of my consulting customers do) this is the kind of relationship you want with a vendor. You want both the help from the website itself and a solution engineer who can help you make the right choices. And you want it in a timely manner.
Also note that I'm essentially an amateur in industrial automation. People who do this for a living often have many years of experience with this equipment. If, like me, you come from the outside, the website is rather daunting. Just picking the right PLC is going to take a couple of weeks of learning about them before you know what you are looking for. Then you need to figure out what software tools you will be needing to program, operate and maintain your installation.
That being said, their website could do with a makeover. It is unnecessarily hard to find things, the design and use of tiny fonts is ugly and annoying and it is slower than it needs to be. The software is also a bit clunky to use. But it helps understanding what audience it is aimed at. If you are trying to automate your hobbyist beer brewing setup, this isn't for you unless you are prepared to spend a pretty penny and invest time in learning how to program these things. It isn't that hard (it took me a couple of days to cobble together a PLC, a HMI a (third party) motor controller and make 40kg industrial motor do what I wanted), but it is completely overkill for a hobby project.
Yes, there is the LOGO line, but after playing with it a bit, I don't actually understand the point of it. It is too separate from their Simatic S7 line to work as a useful learning tool if you want to ease into the professional stuff, it is too limited to be much fun and it is too expensive. Of course, if you are controlling high power systems you do want equipment that is built to high quality standards.
Yes, the Arduino world has nothing in common with industrial automation hardware. For one, the amount of effort that has gone into delivering guarantees and meet certification criteria in automation hardware is miles beyond what you'll find in hobbyist MCU systems. (A good way to understand this is actually to look at the writeups of the Stuxnet attack. This gives you a good background in how Siemens industrial systems are engineered and what it takes to break them).
But I wouldn't shit on Arduino for doing this. Think of it as a somewhat cheaper entry level into teaching industrial automation and help people use it in hobbyist projects, prototyping on tight budgets or even doing small hobbyist setups. The professional stuff exists. There are lots of vendors. But it requires a lot of training and it costs a lot of money. There is a legitimate place for lower spec systems.
It can also play an important role in helping the industrial automation giants improve their products. It can, and will, generate ideas that, if the giants are smart, they can learn from. As in most of these professional/amateur interfaces between people, the professionals will scoff at this. But that doesn't matter. They're likely myopic and wrong.
I can remember back when Oracle wasn't ported to Linux and the database professionals scoffed at the idea of Oracle offering their database for Linux. (Yes, there was a time when that was the case). They were wrong. Not because they knew what they were talking about, but because they were snobs. And as it later turned out (after I spent a few years designing database schemas and optimizing databases) most of them weren't even particularly good at their jobs.
I think the same thing is going on here. Seasoned professionals with perhaps decades of experience with industrial automation, tend to not have the necessary perspective, which can lead to stagnation. I see this in, for instance, integration beyond traditional SCADA systems. Providers like Siemens have to adapt to new requirements of faster, cheaper, more open, more accessible integrations and a lot of the "old guard" simply have no frame of reference for understanding these things. For instance they have no idea how software engineers work, how fast processes need to be, and how much "self service" is expected. This is frightening and confusing and thus, from where we stand, it looks like silly snobbery.
I hope that my observations as an outsider getting tangled up in industrial automation and dipping my toe into that world might help people make sense of things.
Sure, the Arduino stuff is amateur hour, but it is still immensely valuable because it provides opportunities to advance the industrial automation, MCU and software worlds by exposing people to ideas, problems and solutions from outside their own bubble.
When I've bought Siemens gear in recent years the panel builder buys it for me, at prices I could never get, and deals with all the returns, late deliveries etc etc, they hold the Siemens account.
If you know what you are doing there are ways to make it easier and cheaper.
reply