@AmenZwa agreed. part of The Unix Way, imo, was that any terminal provided a de facto IDE. you just have to learn the various CLI tools and shell patterns and common keystrokes etc. I think the more modern trend of ostensible IDEs made more sense in reaction to what MS Windows and early Mac gave a programmer out of the box. if you can already get what you need they appeal less

@synlogic4242
Of course, it is a bit unfair for us "moderns" to compare UNIX to the likes of NeXTSTEP, Windows, macOS, and such. This comparison came about, because UNIX, starting in the early 1980s, began competing in the PC market, and soon gave birth to the workstation OSs of the time: SunOS, IRIX, Ultrix, AIX, HP/UX, and so on, sporting the X Window System. But despite all those modern accoutrements, UNIX was still very much the 1960s time-sharing OS, not a personal OS. That heritage continues into the modern UNIXen, like FreeBSD, NetBSD, OpenBSD, and Darwin.

Looking upon UNIX in its period-correct context—during the late 1960s and the early 1970s when batch processing on mainframes over the teletype is the fashion of the day—what Thompson and Ritchie achieved in such a short time frame is, frankly, a superhuman achievement.

I do not recall the exact phrase, but I once read something like this in a Bell Labs publication: "UNIX was created by programmers for programmers to do programming". In other words, Thompson created UNIX to make his daily programming activities more efficient, effective, and enjoyable.

UNIX, therefore, is the world's first IDE. By "IDE", I do not refer to modern, surface-indicia of programming, such as buttons, scroll bars, and menus; I mean a unified, coherent system designed, ab initio, to serve as the ultimate software development environment, integrating all programming-related tools that a programmer would need.

In contrast, most popular operating systems (OS/360, VAX/VMS, Windows, macOS, etc.) are designed for non-techie business users.

@AmenZwa
> most popular operating systems (OS/360, VAX/VMS, Windows, macOS, etc.) are designed for non-techie business users.

Abbreviated like that, it is arguable. Expanding the wording:

> most popular operating systems (...) are designed for *applications* aimed at non-techie business users, not at programmers.

...is more bullet-proof, I think.

And it immediately implies the fundamental problem: the app makers are therefore largely not eating their own dogfood. This causes problems that have been widely explored.

@synlogic4242

@dougmerritt @AmenZwa @synlogic4242

> And it immediately implies the fundamental problem: the app makers are therefore largely not eating their own dogfood. This causes problems that have been widely explored.

I honestly feel like we have a reverse problem: the app makers don't actually understand computers or user interfaces, and the people who designed the original GUIs and knew the WHY behind everything have left or retired.

Like, I'm an affable guy. I don't like harping on #UIDesign all the time.
But our modern UI Design is absolute dogshit, if you'll forgive a little vulgarity (fairly rare for me).

It's bad enough that everything is created with 23-year-old eyes in mind, but even basic usability has suffered dramatically in the past fifteen years.

If I had a money tree and a fountain of youth, I'd go back to Uni (AGAIN 🤣) actually get my C.S. degree, and major on UI Design and be the most annoying forking UI Gadfly in all the nine realms.

@dougmerritt @AmenZwa @synlogic4242

Regarding modern UIs, I will say that I'm very happy that search has won over hierarchical menus in general*, particularly for launching applications. I love dmenu/rofi/wofi/fuzzel and even KRunner when I'm on my work machine.

When digging through work folders that are synced with the cloud and have hundreds of thousands of files (in well-organized, but still deeply nested directories), I have my own search menu system I came up using just simple old find, grep, and zstd which is actually faster and more reliable (and much, much less resource-intensive) than the search facilities provided by Gnome or KDE and their complicated daemons and databases.

* I don't mean "hamburger menus" vs. hierarchical menus, though. Those are for the birds. 😄

@rl_dane
I've been doing a bit of thinking out loud (very loudly), of late, about TUIs.

Half-jokingly, I have said, the modern user is so habituated to the text-based interaction with the computer, thanks to the almighty LLM, that it is high time for us oldies to sneak in the traditional TUIs into this generation of users's desktops.

The non-joking half is this. Modern TUIs have got so sophisticated that they now have their own unique aesthetics. Yet, they can be programmed in the same way that were done with the 1970s and 1980s TUIs. No remote calls, no async/await, etc. Some of them even have web browser integration.

Most line-of-business web apps today are used by a handful of in-house business experts only; there is absolutely no need for them to use React, Angular, and other massive web GUI frameworks. The only reason these web apps came into existence is the in-house coders wanted to get those frameworks on their resumes, so they can go work at the Big Tech.

@dougmerritt @synlogic4242

@AmenZwa @dougmerritt @synlogic4242

I'm impressed with what creatives can do with web apps, but when I have to use them for work, I cringe.

Like, a JS-heavy thing for creating music or procedural art? GRAVY

A JS-heavy thing for me to check my bank account? "Calgon, take me awaaayayyy..." 😂

I remember using TUI-and TUI-like GUIs (very, very text-heavy GUI database applications where there really wasn't enough room on a 640x480 or even 800x600 screen to waste space on much of anything but TEXT) in the 90s, and they were so efficient.

To this day, I'm still running a nearly decade-old version of an accounting application at work, because I just will NOT muck with the horrid web apps. If you see me using this old desktop program (via VNC, 'cause boyo ain't running windows on his own machine!! 😆), I'm absolutely flying through screens and menus; I have every major screen memorized and know exactly how many times to hit TAB to move from the addressee to the date field, to amount, category, memo, class, then enter, enter and on to the next thing.

If I had to use a web application for that, you'd have to put me on suicide watch. 😂

But I've actually been learning and using ed recently. For all its limitations, there s a very Zen feeling when editing text in ed, which isn't even a TUI. It is (as I'm sure all here know) an editor that would work on a terminal as dumb as the Apple I.

My only complaint with TUIs is that they lack the shared keybinds and consistency of early GUIs. Some are very vi-like or even less-like, but others are more bespoke. Going from vi to less is easy, then less to a web browser like lynx, w3m, or cha. But links/links2? Totally different keybinds, and not configurable. urgh.

Some kind of committee thing to come up with interaction standards for TUIs would be golden. Some are very intuitive, like the fedi client I use, @[email protected]. Others require a bit more learning to get comfortable with, like iamb, the Matrix client.

I often think back to the Apple Macintosh project, and Jef Raskin, who wanted to make it a text-based, and keyboard-driven system. I would have liked to see what his ideas were like, because I think it would've been a neat midpoint between the user-friendliness of modern-ish GUIs, and the sheer power of a nicely-designed interactive Unix program (TUI and not-quite-TUI).

@rl_dane I work with the kind of internal web apps you are talking about, and I'm not sure a TUI framework (the Borland one was recently open sourced and ported to Linux, right?) Is better than plain HTML. As said earlier, you dont need JS frameworks like React or Angular, those are really only appropriate for a very narrow use case, but simple HTML forms and CGIs are dead easy to understand the whole stack and pretty easy to make usable/accessible just using the built in elements with a light smattering of plain JS and CSS for interactivity and style.

There was (is) a very influential IBM TUI HIG that most TUI DOS apps comform to, as well as Windows and Motif, but which has largely fallen by the wayside as it isn't taught to new devs and isn't part of the web platform, the web just has raw tools that you can do anything with, but doesn't enforce much. I'm pretty sure you could make a webapp with the same kind of interaction as your TUI, but there isn't a sufficiently influenced force encouraging good, standard UI.

I'm not sure what those guidelines might be or how to encourage it to exist and be adopted..

@AmenZwa @dougmerritt @[email protected]

@raven667 @AmenZwa @dougmerritt

Honestly, using firefox extensions like "Vimium C" makes plain HTML a delight to use from just the keyboard.

The thing that's driving me nuts lately is that some framework-built buttons can't be searched for, and some can't be activated by vimium. They have to be found visually, and clicked on with the mouse alone.

It's so ridiculous.

@rl_dane @raven667 @dougmerritt
I once complained bitterly against the misuse of XML as a programming language (with Turing-complete extensions, of course). Then, the father of XML (Jon, who's on Mastodon), politely chimed in, saying XML was never designed to be a programming language. It most certainly was not. The original designers, like Jon, took inspiration from TeX, SGML, HTML, etc., and made something that was perfect for typed data exchange for the web era. But what do web kids do with it? They use it to store a couple of lines of configuration settings, or to create a full-fledged programming language that no human could read.

Then, there is HTML. Just like TeX and SGML before it, it is a marvellous little declarative markup. Tim designed it to share pre-print peer-reviewed papers with his colleagues. The OG arXiv, as it were. What do web kids do? They turned it into a quagmire of a GUI that culminated in Angular, React, Svelte, Elm, Ember, ..., the list that never ends, with at least three or four more JavaScript frameworks coming out every night.

Back in the 1980s, we had two-year major release, one-year minor release, and quarterly fix releases—on just about everything, from compilers to OSs to applications. That was a sustainable release engineering practice. Today's AI-infused CI/CD pipeline is inhumane (and inhuman).

I kept coaching these kids to be simple, short, sweet, and silent (as in think, don't talk; if you must talk, be sweet, short, and simple), when they design systems, both hardware and software. But the first thing they do is get on LinkedIn and either bragged about their work or ask for help. My goodness!🤦‍♂️

@AmenZwa @raven667 @dougmerritt

When weekly system updates reach into the gigabytes (compressed) download size, something is seriously fubar.

@rl_dane
I say, aren’t we well past weekly patches, what with AI-driven CI/CD pipelines and such?😆

@raven667 @dougmerritt

@AmenZwa
I don't know about *you*, chum, but *my* software knows how to patch *itself*. While it's running.

@rl_dane @raven667

At 20 W of power consumption.

@dougmerritt @AmenZwa @rl_dane @raven667

@vnikolov @dougmerritt
We can’t have the AI data centres consume all the electrical power; the real-time embedded community has to rise up and take back some of that power. We may well be consuming sub-mW individually, but we are hundreds of billions strong and we’re everywhere.

Come to think of it, if the embedded engineers were to follow the practices of the web world, each “embedded” device would now be the size of a refrigerator, and would consume 100 W or thereabouts.

@rl_dane @raven667

@AmenZwa
You can still get PDP-8s with a hefty 4 KB core memory on the used market.

@vnikolov @rl_dane @raven667

@dougmerritt
😆👍Maverick move—again!

By the way, I heard, years ago, an apocryphal story: it is said that the CSRC staff gave Ken’s old PDP-7 a fitting burial at sea (in the pond in front of the Holmdel HQ building), instead of sending it to the scrap yard. But I didn’t see that in Brian’s UNIX memoir, so it’s probably just that, a legend.

I tell ya mate, I was this close to getting that PiDP-11 replica kits, were it not for my wife’s meaningful look….

@vnikolov @rl_dane @raven667

@AmenZwa
Tell your wife she's beautiful, rub her tired feet, and order away!

I hope that PDP-7 story is apocryphal, it would be a great museum piece.

Circa 1980 a friend of mine had some random PDP-8 he used as a footrest, occasionally kicking it to break off some more of those whatchamacallit nifty DEC toggle switches.

I had no particular love (nor experience) of the PDP-8, but I was still shocked. 😱

However others I've told that story said that it was no more than the PDP-8 deserved, that it had brought it on itself. 😝

@vnikolov @rl_dane @raven667

Right!

You all have surely seen this definition:

hardware:
that part of a computer system which can be kicked.

***

Barely tangential, the following doesn't seem apocryphal to me:
at Los Alamos during the Manhattan project they had the most expensive doorstop in the world.

They measured neutron absorption of several different materials.
That included a large piece of gold, which became a doorstop, as it wasn't needed for other scientific or engineering purposes afterwards.

@dougmerritt @AmenZwa @rl_dane @raven667

@vnikolov @dougmerritt @AmenZwa @raven667

> hardware:
> that part of a computer system which can be kicked.

That definition would have helped me a lot as a kid. I asked my dad what the difference between hardware and software was, and he said, "hardware is hard, software is soft." 😂

👍🙂

From the same fortune file:

Lizzie Borden took an axe
And plunged it deep into the VAX.
Don't you envy people who
Do the things you want to do?

And to end on a positive note:

A Unix saleslady, Lenore,
Likes to work, but she likes to play more.
So she found a good way
To combine work and play
And she sells C-shells by the shore.

#Limerick

@rl_dane @dougmerritt @AmenZwa @raven667

@vnikolov @dougmerritt @AmenZwa @raven667

Haha, that last one is fantastic.

I did technically start my unix journey in csh, but I didn't really know what I was doing then.
When I started really learning shell scripting, it was with ksh, which translated easily into bash. I've now taken to writing POSIX shell more quite recently, as it can target both Linux and the BSDs without requiring an extra install on either.

But I do wonder what csh would have been like. I never did mess around with it, except as a very, very beginning unix user of SunOS in the early 90s. ;)

I used to use csh a lot, many years ago.
Like many others, I suppose, I was particularly happy with its history manipulation features.
They are all in bash now, of course, perhaps in other shells as well.
For example,
$ !?foo?:gs/bar/baz/
(I often prefer to enter a change to a previous command, rather than re-edit the command line, but that is a separate topic.)

As the documentation itself noted, the syntax of csh has "unexpected quirks"¹; for a while I put up with them.
In any case, in those days it offered significantly more than the Bourne shell _in some respects_, if I recall correctly, like expansion of variants in braces.
These features, too, have long been added to bash.

(I never used tcsh.)

_________
¹ This is a quote.
Checking it just now yielded:
csh programming considered harmful
<https://web.mit.edu/ghudson/info/csh.whynot>.
So, yes...

@rl_dane @dougmerritt @AmenZwa @raven667

@vnikolov
The C Shell was indeed lightyears ahead of Bourne Shell. Korn Shell did try, but it just couldn't quite get there. But Bourne Again Shell is where it's at. It was amusing and frightening, at once, to have learned that bash had a massive security hole, for years.

@rl_dane @dougmerritt @raven667

@AmenZwa @vnikolov @dougmerritt @raven667

You should check out mksh some time. It has some very interesting improvements.

@rl_dane
Will do. Much obliged.🙏

@vnikolov @dougmerritt @raven667

@AmenZwa @vnikolov @dougmerritt @raven667

The creator is on fedi: @mirabilos

Expect very spicy takes on Unix and shell scripting (and anything else ;)... he's one of us 🤣

@rl_dane @AmenZwa @vnikolov @dougmerritt @raven667 @mirabilos
mksh is way to mainstream :)

Since IceCreamSandwich Android has used mksh as its shell.
source

@rl_dane
> mksh

Thanks, I'll check it out.

Amen:
> The C Shell was indeed lightyears ahead of Bourne Shell.

Especially interactively; even Stephen Bourne agrees, I've heard him.

Bill Joy was, as usual, very creative about both thinking up *and* adding new features. Some of the rest of us tried our hand at writing shells from scratch, but it was as an exercise that was hard enough in itself, let alone adding features. :)

For some years I used csh quite religiously. It took me a long time to see that it was less ideal for scripting. (Religion blinds one to other paths.)

Not that anything but csh and Bourne shell were available for years.

@kabel42 @AmenZwa @vnikolov @raven667 @mirabilos

@dougmerritt

I've heard similar first-hand stories about Bill, like yours, by those who were at Berkeley at the same time. I faintly recall Kurt recounting how Bill fixed and improved the buggy BBN TCP/IP stack, pretty much overnight. Am I mistaken?

I've also heard Kernighan described how Thompson wrote, or rewrote, complex pieces of software, like compilers and OS algorithms, essentially overnight.

Some guys have all the "Joy", I guess....

Were the folks at Berkeley CS, in those days, mostly cordial or corrosive?

@rl_dane @kabel42 @vnikolov @raven667 @mirabilos

@AmenZwa
Wait, you knew Kurt Schoens, really? He married my ex-girlfriend Polly.

I didn't see Bill "read the spec and implement what it said", but everyone agrees that it was fast, just not literally overnight.

Bill was superhuman, though, so I don't really see a problem with the common story.

Everyone was friendly, except a few exceptions. Eric Schmidt was standoffish and didn't seem to really socialize with anyone, although he was active. There were no remote filesystems in that era, of course, but he still hacked up some code to remote mount a disk in a different building. Over a 300 baud dialup.

At the time it somehow escaped me that he was the Bell Labs author of Lex(1), even though I used it.

@rl_dane @kabel42 @vnikolov @raven667 @mirabilos

@dougmerritt
Oh no, so sorry; I mean Kirk (McKusick). My old age....😀

I don't know Kurt Schoens.

Ah, Schmidty....

Using a VT100 over a 300 baud line made me feel good: it gave me the illusion that, when I programmed in a screen-editor, I was thinking and working at the speed of a computer.🤣

@rl_dane @kabel42 @vnikolov @raven667 @mirabilos

Myself, I reached the conclusion once that unpredictable response time hurts more than low connection speed.

I have been spared from using a bidirectional connection (to a computer) at 300 Baud.
I think the worst that has happened to me was a 1200 Baud synchronous connection for a 3270 emulator on a PC.

@AmenZwa @dougmerritt @rl_dane @kabel42 @raven667 @mirabilos

@vnikolov
I’ve only used the 3270 in the computer centre, and very briefly at that. But I guess it would have been a demanding diva, compared to the basic VT100.

@dougmerritt @rl_dane @kabel42 @raven667 @mirabilos

@AmenZwa
Y'all are casually taking this in stride, as if a remote mount at 300 baud was basically the same thing as a human terminal connection at 300 baud.

It was an impressive tour de force in an era when very few, if any, were doing such things even at vastly higher speeds.

@vnikolov @rl_dane @kabel42 @raven667 @mirabilos

@dougmerritt
I am still reading your post, over a 300 baud modem. I just got to the remote-mounting bit. Hang on.

You're absolutely right; remote mounting protocol that works over a 300 baud line, using the ideas and tools of the era, was indeed a Berkeley-worthy feat.

@vnikolov @rl_dane @kabel42 @raven667 @mirabilos

@AmenZwa @dougmerritt @vnikolov @kabel42 @raven667 @mirabilos

Oh man... I'm using @tut limited to certain baud rates using trickle, and it's completely unusable at less than anything but 9600 baud. It redraws every character onscreen several times per refresh. Infuriating. XD

Ed, of course, is a gem, even at 300 baud. XD

#TUI application developers, please test your programs at forced (low) baud rates!

cc: @sjmulder

GitHub - sjmulder/trickle: 600 baud pipe and terminal.

600 baud pipe and terminal. Contribute to sjmulder/trickle development by creating an account on GitHub.

GitHub
@rl_dane @AmenZwa @dougmerritt @vnikolov @kabel42 @raven667 @tut @sjmulder yeah, jupp has optimisations for low baudrates (especially if you disable “fast status line” or the status line entirely), but nōn-ed is not fun at 300 bps (use bps, not baud… 300 baud can easily be 1200 bps or more)

@mirabilos @AmenZwa @dougmerritt @vnikolov @kabel42 @raven667 @tut @sjmulder

yeah, jupp has optimisations for low baudrates (especially if you disable “fast status line” or the status line entirely), but nōn-ed is not fun at 300 bps (use bps, not baud… 300 baud can easily be 1200 bps or more)

nvi was actually quite usable at 300 baud once the various statusline options were disabled.

You're right, bps, not baud.

@rl_dane
Could be, but wasn't. At the time the *common* usage was firmly and unquestionably "300 baud", not "300 bps".

The two terms were, at the time, pragmatically synonyms. People used "300 baud modems", and those were always "300 bps".

People were forced to change their habits to say "bps" some years later, but that was after faster modems became affordable and widespread.

@mirabilos @AmenZwa @vnikolov @kabel42 @raven667 @tut @sjmulder

Right.

***

In any case, it's more important for me to ask people to say "mass" for gram, kilogram, or tonne quantities (rather than "weight").

I still pretend not to notice when people say "kilo" instead of "kilogram".

Etc...

@dougmerritt @rl_dane @mirabilos @AmenZwa @kabel42 @raven667 @tut @sjmulder

@dougmerritt @mirabilos @AmenZwa @vnikolov @kabel42 @raven667 @tut @sjmulder

My understanding is that baud was "symbols per second," where each symbol wasn't necessarily a bit.

@rl_dane
That's true.

If you look closely, you'll see that I used scare quotes, terms like "common usage", and more, to clearly say I was talking about common parlance, not of strict correctness.

In the era of 300 baud modems being the common ones. And I said that that changed not long after. When common modems got faster.

"Baud" went from theoretically possibly maybe conceivably being "symbols per second" but that being the same in common practice as "bits per second" to "no kidding around, that modem you're using RIGHT NOW is more symbols per second than the bit rate".

@mirabilos @AmenZwa @vnikolov @kabel42 @raven667 @tut @sjmulder

Right.
Let me add that this isn't just about modems, though perhaps their case is the most familiar one.

Aside, watching the spectrum of a telegraphy channel over time is rather instructive, even on a plain vanilla oscilloscope.
At low transmission rates, of course, otherwise it's just a blur.
With a teletype providing a soundtrack.

Naturally, watching any spectrum is very instructive.
(It is not for nothing that good spectrum analyzers are expensive.)
These days, there ought to be plenty of video recordings, but it hadn't occurred to me to look for them.

I don't know whether the strict definition of _baud_ should be about symbols per second or state changes per second.
I suppose it might depend on the layer of abstraction of the Discourse.

_________
Exploring phase modulation, pulse code modulation, and then the interesting types of modulation etc. (whose names I forget) is left as an exercise for the proverbial reader thirsting for knowledge.
Warning: it is a rabbit cave, not merely a hole, with multiple branches connected to other large rabbit caves.
But you would be in the good company of giants.

#Baud
#Baudot
#ContinuousWave
#Modulation
#Telegraphy

@dougmerritt @rl_dane @mirabilos @AmenZwa @kabel42 @raven667 @tut @sjmulder

@vnikolov
Right on! In college, I was so fascinated with quadrature amplitude modulation. Before that, I was obsessed with superhetrodyne, even to this day.

I take it you are a radio operator (I’m not). What kind of advanced kits are available today, I wonder.

@dougmerritt
@rl_dane @mirabilos @kabel42 @raven667 @tut @sjmulder

I _was_ a radio operator.
Now I am an interested observer.

I love radio.

I don't know enough to be able to tell about it properly,
but it is my impression that HF radio hasn't changed drastically during the past several decades.
However, there are completely new games.
I forget the terms and the acronyms, but one of them is setting up large networks of UHF radios that do automatic repeating, so if the crowd is sufficiently numerous, great distances can be covered (way beyond line of sight).

@AmenZwa @dougmerritt @rl_dane @mirabilos @kabel42 @raven667 @tut @sjmulder

P.S.
Conference calls over the Internet invariably remind me of The Most Frequently Asked Question in radio communication.

"Do you read me?"
🙂

(QRK; QSA)

@AmenZwa @dougmerritt @rl_dane @mirabilos @kabel42 @raven667 @tut @sjmulder

@vnikolov @AmenZwa @dougmerritt @mirabilos @kabel42 @raven667 @tut @sjmulder

I think you're talking about LoRA/Meshtastic, and related technologies. Yeah, those are interesting to me.

I'm licensed, but haven't been on the air in years.

I find the low-power digital modes, CW/Morse low power, mesh, and things like that pretty interesting.

Spending 2,000+ USD/EUR on HF equipment to talk to Bubba in South Carolina bout his baluns? Not as interesting. 😄

Balun - Wikipedia

@rl_dane

Yes, thank you, LoRA and Meshtastic are two of them I didn't manage to remember.

@AmenZwa @dougmerritt @mirabilos @kabel42 @raven667 @tut @sjmulder

@vnikolov
Meshing up small, low-cost, low-power, community UHF stations is an eminently sensible path. The hardware, the protocol, and solar power are already available, all over the world.

Besides, we need a backup communications infrastructure, in case the Internet were to be taken down by one of the “X”-ed companies in order to replace it with their own satellite network.😀

@dougmerritt @rl_dane @mirabilos @kabel42 @raven667 @tut @sjmulder

@vnikolov @dougmerritt @mirabilos @AmenZwa @kabel42 @raven667 @tut @sjmulder

I'll add that watching various types of digital and quasi-digital transmissions on the "waterfall" (x=freq, y=time, color=amplitude) display of a cheap $30 software-defined radio dongle is hella fun. XD

I really need to get off my bum and set mine up again. The last time I had it running, I was able to hear #WSPR beacons from Japan on the dinky little "rabbit ears" antenna that came with the dongle. :D

@rl_dane wrote:
«I was able to hear #WSPR beacons from Japan on the dinky little "rabbit ears" antenna that came with the dongle.»

Nice.
A comparable feat is listening in on the US Coast Guard (East Coast) from Bulgaria.
The distance is smaller than to Japan, but a public broadcaster would transmit at higher power (I presume WSPR is one).
Perhaps your achievement is greater, because of the antenna.

@dougmerritt @mirabilos @AmenZwa @kabel42 @raven667 @tut @sjmulder

@vnikolov @dougmerritt @mirabilos @AmenZwa @kabel42 @raven667 @tut @sjmulder

#WSPR beacons are usually private, and not terribly high-powered, but the WSPR protocol itself is immensely fault-tolerant. I can't remember the specifics, but the "packet" time is something like five minutes long. Also (according to Wikipedia), it's 1.5 baud. XD

https://en.wikipedia.org/wiki/WSPR_(amateur_radio_software)

WSPR (amateur radio software) - Wikipedia

@rl_dane

Thank you.
I should have looked it up, rather than misreading it as the call sign of a public broadcaster.
Then it is more impressive than I thought.
What was the sensitivity of your receiver?

In those days we had Soviet R-250M2 receivers and the sensitivity was roughly about 10 microvolt, if I recall correctly.
I'll refresh my memory later.

@dougmerritt @mirabilos @AmenZwa @kabel42 @raven667 @tut @sjmulder

@vnikolov @dougmerritt @mirabilos @AmenZwa @kabel42 @raven667 @tut @sjmulder

Actually, I don't know the specifics, but it's just the RTL-SDR USB dongle that can be had very cheaply online, which came with a "rabbit ears" antenna, like what we used to use with television sets in the 1970s-80s. :)

Sorry, WSPR is also a call sign, I forgot. XD

@rl_dane @vnikolov @dougmerritt @mirabilos @AmenZwa @raven667 @tut @sjmulder
wow, thats extreme :)
lora is seconds for tens of Bytes :)

@kabel42 @vnikolov @dougmerritt @mirabilos @AmenZwa @raven667 @tut @sjmulder

Looked it up, the transmission time is two minutes long. :D

https://www.sigidwiki.com/wiki/WSPR

Yeah, the guys that come up with stuff like #WSPR and #FT8 are scary smart. XD

Also, IIRC, it's written in #FORTRAN?!? XD XD XD

WSPR - Signal Identification Wiki

Weak Signal Propagation Reporter.

@rl_dane @vnikolov @dougmerritt @mirabilos @AmenZwa @raven667 @tut @sjmulder
I'd love to understand the black magic used to "decode signals with a signal-to-noise ratio as low as −28 dB", but I'd need someone with a lot of patience to explain it to me :)

@kabel42 @vnikolov @dougmerritt @mirabilos @AmenZwa @raven667 @tut @sjmulder

This is the guy that initially developed it, maybe he as some writings on it? ;)

https://en.wikipedia.org/wiki/Joseph_Hooton_Taylor_Jr.

This is the software that encodes/decodes #WSPR and other groovy ham protocols:

https://en.wikipedia.org/wiki/WSJT_(amateur_radio_software)

Joseph Hooton Taylor Jr. - Wikipedia

@rl_dane @vnikolov @dougmerritt @mirabilos @AmenZwa @raven667 @tut @sjmulder
I've tried to understand some FEC codes but I'm missing some basic math for those I think

@kabel42
This question wasn't addressed to me, but in the spirit of the "old geezers community", I'll jump in. I'm assumption that "FEC" means "forward error correction". If not, apologies.

What I'm saying here is from the perspective of an EE+CS bloke. Doug @dougmerritt has deep insights into both EE and CS. Vassil @vnikolov can take the maths side.

In EE, the study of error correcting codes (ECCs) fall under the umbrella of communications theory. Shannon's 1948 seminal paper defined "information", "noise", "error", "rate", and loads of other concepts and wove them into what latter generations study as communications theory (or a more advanced information theory).

I was never a CS undergrad, so I can't be certain, but CS grad studies already assume that the student is familiar with implementation of basic "coding" (encoding) techniques, such as Hamming coding. My guess is that CS undergrad curricula do include basic coding theory, just like EE undergrad curricula.

But in both EE and CS, an in-depth information theory is a grad level course, taken by upper-level undergrads and beginning grad students.

Much of the maths involved are undie-level set theory, discrete maths, probability, statistics, and Boolean algebra.

EE:
https://isl.stanford.edu/~gill/ee387-spr06/

CS:
https://homes.cs.washington.edu/~anuprao/pubs/codingtheory/lecture1.pdf

CS folks don't touch ECCs, since they are buried deeply in the substrate of computing: networking, disc controllers, CPU-peripheral communications, memory chips, bus protocols, etc. But ECCs are front and centre in communications aspect of EE.

PS—ECC is especially important to the emerging (hype?) areas of quantum communications and quantum computing.

@rl_dane @vnikolov @dougmerritt @mirabilos @raven667 @tut @sjmulder

EE 387: Error-Correcting Codes

Thanks. I've done CS with a focus on microcontrollers. We did some coding for transmission and compression and CRC for error detection and I've tried error correction with CRC (most can correct 1 bit and detect 2 bits of error) but all the more complex codes are quiet difficult to get into and understand why they work.

@AmenZwa @vnikolov @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

@kabel42
Ah, I see. So, CS undergrad curricula do cover basic coding theory. Good to know; thanks.

And you're right; the practical (real-life) coding and correcting protocols are quit knotty. That's why they're covered only in grad courses.

The easy way to start digging into this area would be to read an undergrad EE textbook on communications. A harder approach would be to start with a software implementation and work backwards into the underlying theory. It depends on one's preferred mode of study, I suppose.

@vnikolov @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

That might also depend on university and chosen specialization and courses.
I've TAd (the lab part of) a course on computer graphics where we implemented (simplified version of) all the parts of jpeg compression, which happened to sneak in Nyquist theorem :)
also, 2D Fourier transforms look interesting:)

@AmenZwa @vnikolov @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

@kabel42
Ah, ya ma brutha, then! Whatever else one does, Fourier-related studies (Fourier series, Fourier transform, Laplace transform, z-transform, DFT, FFT, etc.) are one of the most fundamental (and interesting) subjects. And even after decades of learning and using, one never seem to run out of more nuances to pick up, in this area.😀

If you want to dig deeper into the MCU side of things, I recommend studying the use of CMSIS-DSP API on a Cortex-M4F microcontroller. The BBC micro:bit v2 is built around the Cortex-M4F processor, which is equipped with FPU and DSP paraphernalia ("mac", SIMD, etc.). The other good, cheap board is STM32F4 Discovery. There are several open-source toolchains, too.

@vnikolov @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

That's right, the mathematics is hardly basic (and a lot of it is fairly recent).

@AmenZwa @kabel42 @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

@vnikolov Maybe I'm bad at english :)
I meant basic as in base used by all the other stuff, not simple

@AmenZwa @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

@AmenZwa

P.S.
Thanks, now that you mention it, yes, of course, Shannon's theorem.
You can transmit and receive over an arbitrarily bad channel, but you lose speed.

@kabel42 @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

@vnikolov
Faint Morse Code signal from a weak faraway source, heard against heavy background noise, yet human radio operators get by. Take that, SNR!

@kabel42 @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

@AmenZwa @vnikolov @kabel42 @dougmerritt @mirabilos @raven667 @tut @sjmulder

Just for the sake of all here, if you're at all interested in learning Morse Code in a fun and collaborative environment, the Long Island CW Club sounds like a fun group of folks.

Obviously not sponsored, and I'm not even a member or anything, I just recall some of those guys talking to "hoshnasi" about it on YT years ago, and made a mental bookmark to check them out later.

They have a bunch of zoom (lol yeah sorry) classes every week for learning CW/Morse.

Still in my mental bookmarks pile! XD

Learn Morse Code - CW with The Long Island CW Club

Learn Morse Code - CW with the Long Island CW Club. We teach via internet video conference classes. The Club has 'brick and mortar' cw related activities

Long Island CW Club

@rl_dane
Much obliged, RL. I was a slow-keyed in my childhood (my Superheterodyne days). I drifted away from it, when I left Burma, decades ago. Perhaps I might drive up to LICW, when I become a pensioner.😀 But I'll look them up, now.

@vnikolov @kabel42 @dougmerritt @mirabilos @raven667 @tut @sjmulder

@AmenZwa @vnikolov @kabel42 @dougmerritt @mirabilos @raven667 @tut @sjmulder

Yeah, the geographic name confuses a lot of people, I'd surmise. You don't have to be there in person, it's all online (or at least mostly so? ;)

Yes, it's magic.
A human radio operator (continuous wave, i.e. Morse code) can receive at a very bad signal-to-noise ratio (low speed, of course), when dots and dashes aren't discernible, but the human ear can detect a sort of a "tune".

@kabel42 @rl_dane @dougmerritt @mirabilos @AmenZwa @raven667 @tut @sjmulder

@vnikolov
It's "AI", mate—actual intelligence.😍

@kabel42 @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

But without lots of black magic you still need a signal to noise ratio > 1 or > 0dB
@AmenZwa @vnikolov @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

@kabel42
Alas, not even human intelligence and natural talent can sieve out information from a "random" noise.

But there is a branch of information theory and DSP that focus on picking out extremely low SNR signals. Some even applied RNN and 1D version of CNN to the problem. This is where true "black magic" lives. In a typical radar unit, if 1 MW is transmitted, it is expected to receive no stronger than 1 mW return. But I'm talking about things far blacker than this common scenario.

@vnikolov @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

@AmenZwa best I've used was Lora that went down to -7 dB, and then all the magic is in the transceiver IC. The TX side makes some sense but the RX side is beyond me

@vnikolov @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

Do the capabilities of this magic depend on the precise kind of signal and precise kind of noise?
Statistical characteristics and all that.
I don't know the answer and I can't work it out in my head.

@AmenZwa @kabel42 @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

@vnikolov
It depends on the precise kind of magic! 😆

An awful lot of it comes from Information Theory. On top of that, the initial magic of decoding a signal whose strength is below the noise floor depends on separating the signal and noise by a means other than amplitude: frequency.

Iff your signal's amplitude is above the amplitude *in the frequency region containing information*, then Bob's your uncle and Fourier Analysis is your friend.

I don't know about today, but decades ago I had long talks with people who specialized in RF and antenna design and stuff, and they said it starts with what's taught in school (the above) and then gets into some really serious black magic from there.

@AmenZwa @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@vnikolov
Timely:

"AI Is Designing Radio Chips That Humans Couldn’t Even Imagine"
24 Jun 2026
https://spectrum.ieee.org/ai-radio-chip-design

Don't you worry your pretty little heads, humans, we AIs will learn all that hard stuff and make it work so you don't have to.

On the bright side, the article helps explain why RF ICs (and to some extent the whole subject) is a very difficult topic.

Plus it's actually breaking new ground:

> One unexpected insight revealed by this prototype, and our research generally, is that there’s no evidence that the templates we’ve historically relied on are even close to optimal for modern design goals.

@AmenZwa @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

AI Learns the “Dark Art” of RFIC Design

Freed from intelligibility and aesthetics, AI designs faster

IEEE Spectrum

@dougmerritt
I’m going to be flipping burgers soon, with the way AI keeps dominating all human endeavours—provided I demand a salary that would be lower than the cost of operating an AI-controlled burger-flipping robot.

@vnikolov @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@AmenZwa
Good news, I've designed a burger-flipping robot!

It was a student job of mine, so I know just what to do.

@vnikolov @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@dougmerritt
😆Curse you, Doug. Knowing you as I do, your robot is bound to work flawlessly and be inexpensive to operate and maintain. Now, I’m out of my only remaining gig.

@vnikolov @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

«On the bright side, the article helps explain why RF ICs (and to some extent the whole subject) is a very difficult topic.»

Yes, it is difficult, on many counts, so explaining that is indeed beneficial, regardless of the rest.

«> One unexpected insight revealed by this prototype, and our research generally, is that there’s no evidence that the templates we’ve historically relied on are even close to optimal for modern design goals.»

Is the phrase "there's no evidence that" a weasel phrase?

Then the Last Seven Words sound tempting, but do the authors have a strict definition of modern design goals and a strict optimality criterion?

@dougmerritt @AmenZwa @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@vnikolov
Traditionally, RF work, especially the higher end of the spectrum, is a narrow subfield of radio engineering, which in turn is a narrow subfield within electronics engineering, which in turn—well you get the picture.

Most EE grads don’t choose (nor dare they) this area, where an average practitioner is one of those who believe “PhD-level maths” is child’s play (to paraphrase John Baez), and the career opportunities are spotty, always tied to the ebb and flow of billion-dollar military contracts. And it was only a little over a decade ago that the THz Divide was crossed.

Today, things have changed somewhat, with the widespread 5G deployment, TS/s oscilloscopes, mm wave medical devices, and the like. The mathematical sophistication requirements haven’t come down though, LLM or no.😀

@dougmerritt @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

Yes.

To switch the view, one Big Change happens when classical electrodynamics is no longer sufficient.
I can't really say when that happened in microelectronics, but it must have been a couple of decades ago.
Has that happened in radioelectronics yet (apart from the microelectronics part of it)?
Is it happening in any subfield of electrical engineering?

@AmenZwa @dougmerritt @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@vnikolov
I don't work in the electronics design and manufacturing sector, but I look in that direction, from time to time, just to learn what's going on.

I can't offer an insightful comments, for I have none, in this particular field. But this field does appear to be going through a small reawakening of sort, especially in processes, materials, applications, and investments. Sadly, much of the surge in research and commercial activities are in China and Taiwan, not in the US.

In terms of EE, the current push amongst the run-of-the-mill undergrad curricula is towards Python and PyTorch.🤦‍♂️

@dougmerritt @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@vnikolov
I'm no expert in this dark art. And you can guess what sort of people would be experts in this and in what environments this practice thrives.

The basic premise is that the interested signal is regular (not random communications variety). These signals can be modelled accurately enough, and there exist tonnes of known, good samples, on hand. The background noise, of course, is what it always is, given that everything jumbles up into Gaussian.

I can't find much on the subject in the literature, and for good reasons, too, I suppose.

@kabel42 @rl_dane @dougmerritt @mirabilos @raven667 @tut @sjmulder

@AmenZwa
Do you mean not in the literature because it's classified, or because it's such pure pragma that it's never written up?

I doubt the latter, but although there's sure to be classified stuff, things tend to be declassified after not too many decades, since after all, whoever the enemy is, they'll have developed or stolen that stuff by now.

@vnikolov @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@dougmerritt
Oh, believe me; loads of folks are keen to publish, I'm sure;. But they're permitted.

Talk about "declass": we found not too long ago that GCHQ created what RSA "invented", at least a decade ahead. Such is the case, in these areas.

@vnikolov @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@AmenZwa
I just remembered a juicy factoid. Supposedly Shanon regarded his seminal paper as being about syntax of signals, and so naturally wrote a second paper about the same general stuff but in regards to *semantics*.

That paper was then classified and never declassified.

If true, that's a lot of food for thought!

@vnikolov @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@dougmerritt
The world is fortunate, then, that the first paper wasn't nabbed by the govies.😀

@vnikolov @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@AmenZwa
But it *was* initially classified, look it up.

That's part of what makes the claim more believable.

@vnikolov @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

If the syntactic level is the ciphertext and the semantic level is the plaintext...

@dougmerritt @AmenZwa @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder

@vnikolov
Never thought about it in that way, but me like dis!😍

@dougmerritt @kabel42 @rl_dane @mirabilos @raven667 @tut @sjmulder