Fascinating read, I had no idea they had digitized radar systems in the 1960's. Even though we look back on older systems as "outdated", "obsolete", "primitive", etc. the engineering behind them remains fresh and feels as clever as anything.
I assume you are comparing to SAM development (Surface to AirMissile).
I had a longer response, but it was rude, particularly to someone interestedin historical systems.
Many, many, many years ago (before 9/11 and before cell phones were commonplace) I used to carry my ham radio HT and call on simplex (146.52 for those that know) and make contacts. Those were fun times.
Often times it is ECU engine timings. See the many ECU tune kits available for many cars.
More aggressive tunings can also be harder on the engine. Factory tunes work a bit like binning and overclocking - the higher clocked CPUs are often selected for better quality control, and lower clocked CPUs are the same part, but with less rigorous quality control (or at least they don't have to pass at the same extreme high level).
So just like you can overclock a CPU, you can often overclock an engine... but if there are mild defects in the engine block the results can be disastrous.
This also affects fuel economy, which is regulated, and also affects consumer buying decisions. So optimizing the ECU tune for performance and for fuel economy are often somewhat different optimization points. For instance, BMWs have a button for "Eco/Comfort/Sport" mode, which among other things, can sometimes change the engine timings from a button in the cabin.
Just like underclocking a GPU can get 80% of the performance for a fraction of the power, and overclocking by 10% can use 20% more power, the same is true of the ECU timings.
OpenWRT is VERY sensitive to firmware size. I developed for a device with 16 MB flash that had both a normal (~11 MB) and recovery firmware (~3MB) on flash. The rest of flash was used for persistent storage, bootloaders, and calibration data. This is very common for older routers and APs which is the whole reason that OpenWRT exists.
> So you couldn't spare around 1Mb of compressed flash or 2Mb of uncompressed flash for systemd?
Absolutely not.
> That hasn't been the case in quite some while
These routers and APs still exist and are in use. Yes, they are 10+ years old, but they're still out there. One of the main goals of OpenWRT is to support legacy networking hardware that vendors abandoned.
So basically, you're dealing with devices that use obsolete hardware and are designed to be extra-brittle (no safety margin), with a built-in planned obsolescence (what if the new update requires just a bit more space for "calibration data"?). Got it.
sysvinit indeed fits perfectly. Make the system extra unreliable, to provide a stimulus to buy a newer version.
> One of the main goals of OpenWRT is to support legacy networking hardware that vendors abandoned.
And OpenWRT abandoned this goal. OpenWRT also can do nothing about firmware vulnerabilities in the old WiFi chipsets.
Moreover, 10 years ago, systems with 32Mb were already common.
OpenWRT doesn't use sysv init, it has something called procd (~120KB compressed). Its very reliable, and they have a large install base on mission critical devices.
> And OpenWRT abandoned this goal.
They have not. Individual devices get too old to be supported, but there are plenty of 16 MB devices they still support. Its true that basically every device now has 32MB or more of flash, but there are still plenty out there that don't.
> with a built-in planned obsolescence (what if the new update requires just a bit more space for "calibration data"?). Got it.
The calibration data is from the factory to tune the wifi radios, it doesn't change since its specific to that individual device. I really hate to reply like this on HN, but you don't seem to know what you're talking about. The kinds of constraints you deal with in embedded networking are different than that in general computing. There's a reason systemd wasn't used, and there's a reason OpenWRT devs went through the trouble of developing their own init system. Just because you can't fathom those reasons doesn't mean they don't exist.
> OpenWRT doesn't use sysv init, it has something called procd (~120KB compressed). Its very reliable, and they have a large install base on mission critical devices.
procd is only slightly better than sysvinit, it has the same ideas, and only adds simple and incorrectly implemented event triggers. And yes, I spent days debugging issues that it caused.
E.g. a USB drive for the logs becomes slow and changes the startup order, so now openvpn starts before the interface acquires the IPv6 address. Boom, broken IPv6 routing.
> They have not. Individual devices get too old to be supported, but there are plenty of 16 MB devices they still support. Its true that basically every device now has 32MB or more of flash, but there are still plenty out there that don't.
And systemd can live just fine at 16MB. I ran it on RouterBoards with 32MB (the smallest ones available) in 2014. It has grown a bit since then, but it can be slimmed down (remove compressors, auditing, SELinux/AppArmor, etc.).
> The calibration data is from the factory to tune the wifi radios, it doesn't change since its specific to that individual device. I really hate to reply like this on HN, but you don't seem to know what you're talking about.
The entire firmware for WiFi chips that were available during 16MB era is around 500KB-1MB. So it must be some other mysterious "calibration" data.
So you're thinking about more and more corner cases, that require the stars to be just right for the size of systemd to matter.
> So you're thinking about more and more corner cases, that require the stars to be just right for the size of systemd to matter.
These weren't corner cases, they were everyday reality. We had to intentionally slim down the firmware size to get it to fit comfortably since we added quite a bit of application code. Like I said before, we got a recovery firmware down to ~3MB, and the normal firmware (without our application) was ~8MB. Every megabyte counts at that point, so having a 1MB init system would be a non-starter. We were buying commodity hardware, so we did lots of shopping and there were still plenty of 16MB APs on the market 10 years ago.
You're right its not a problem if you buy new hardware, but OpenWRT is used to support older devices with limited hardware specs. Its one of the reasons people install it, to give new life to old hardware (rather than being forced to buy a new device).
By the way, I use and like systemd on full size computers. I actually know of a product that runs a full rpm based distro (with systemd) on an embedded device and it works great. But systemd isn't one size fits all.
I wonder if there's anyone here that would know what would happen if this same ad were played on broadcast television? The public backlash would of course be bad, but I'm curious about FCC stuff. Seems like there's different rules for that and internet based communications are ignored by traditional regulators. Does Section 230 cover advertisers too?
How does Netflix make money? HBO Max? Apple TV? Amazon Prime Video?
Google wants to have their cake and eat it too by having a "free" platform but also controlling exactly how people view it in their browser. If you want to actually control content you need to have a real paywall. There are ways they could implement ads that would not be blockable (with a logged in user), but they don't want to do that for some reason.
Well, Netflix DOES control how you view video in your browser, however. Open a video in Firefox? No 4K for you. Hardware DRM is also used. Don’t have an HDCP-enabled display/GPU/Driver? Low bitrate welcomes you.
I could see the writing on the wall. Offerup I think does this. If you click through an item in a search the URL has a UID in it. Then if you click on the seller and find the item from there, its an integer (which is likely a database index).
> modal editing doesn’t really fit my mental model of how an editor should work
The whole point of vim is that you change your mental model to become faster at editing text. People don't come into programming with a blank slate about editors, they were introduced to wysiwyg editors from an early age because of Microsoft Word, web based text input, and now phones (with emojis too). A mental model had been impressed already, but that doesn't make it the "default" or the best.
I used notpad++ in college, then switched to vim after I saw my boss edit some code while I was looking over his shoulder. He could do complex editing tasks with just a couple keystrokes and doing them so fast that I couldn't keep up just watching. It seemed like he was editing at the same speed as he was thinking which didn't seem possible to me at the time.
> The whole point of vim is that you change your mental model to become faster at editing text.
The whole point of vi and vim was to edit text visually, instead of as lines.
Bill Joy reflecting on vi in 1984:[1]
"REVIEW: What would you do differently?
JOY: I wish we hadn't used all the keys on the keyboard. I think one of the interesting things is that vi is really a mode-based editor. I think as mode-based editors go, it (is) pretty good. One of the good things about EMACS, though, is its programmability and the modelessness. Those are two ideas which never occurred to me. ... The fundamental problem with vi is that it doesn't have a mouse and therefore you've got all these commands. In some sense, its backwards from the kind of thing you'd get from a mouse-oriented thing. I think multiple levels of undo would be wonderful, too. But fundamentally, vi is still ed inside. You can't really fool it.
Its like one of those pinatas - things that have candy inside but has layer after layer of paper mache on top. It doesn't really have a unified concept. I think if I were going to go back - I wouldn't go back, but start over again.
I think the wonderful thing about vi is that it has such a good market share because we gave it away. Everybody has it now. So it actually had a chance to become part of what is perceived as basic UNIX. EMACS is a nice editor too, but because it costs hundreds of dollars, there will always be people who won't buy it."
...
"REVIEW: What is it that (WYSIWYG document processor) Interleaf offers you that EMACS doesn't?
JOY: I can just look at my screen, and when I print it off, it's the same as it looks on the screen. It is formatted, and I'm tired of using vi. I get really bored. There have been many nights when I've fallen asleep at the keyboard trying to make a release. At least now I can fall asleep with a mouse in my hand. I use the Xerox optica mouse instead of the other one because it is color coordinated with my office. Did you notice? I prefer the white mouse to the black mouse. You've got to have some fun, right?
This business of using the same editor for 10 years - it's like living in the same place for 10 years. None of us does it. Everyone moves once a year, right?"
>> The whole point of vim is that you change your mental model to become faster at editing text.
> The whole point of vi and vim was to edit text visually, instead of as lines.
My language was very imprecise here, I should know better when commenting on Hacker News. I didn't mean the original motivation for creating vi, but the main reason why someone in 2022 would learn vim with all the other text editors out there now. The main feature of vim at this point is the modal editing that requires you to change how you think about text editing. If you aren't going to accept this new paradigm, then there's no point learning vim in the first place beyond how to enter and exit insert mode, save, and quit.
vimtutor. It comes with the full vim install, at least in ubuntu. It will give you the basics, then afterward you can run :h <command> to see what the less used commands do.