Looking through the feeds of content looking for good stuff to stick right into my brain, I fell into @jesta's mention of the latest release of Vessel, but as importantly @lavater opened discussion of a decentralized application for interacting with the blockchain as a proper forum.
Which led to me feeling as if I need to tell a little story which has a significant point. Of sorts.
Gather round, the fire is warm as is the food.
So I'll begin…
Once upon a time, way back in what is now considered the prehistory of the Internet (circa 1988 or so), I was still in high school. I know that's hard to imagine, that civilization had even developed public education at that point, but I assure you it was true. In the Internet circa 1988 had no real web as you know it. The web had not been made capable of distributing cat pictures or porn easily.
In fact, the graphical user interface was still pretty much in its infancy. At least for home computer users, two things ruled the roost: DOS and early Linux. I mean early Linux, old-school Slackware.
Even back then I was a complete geek. My parents had scrimped and saved to get me a computer in the days when a 10 MB hard drive was an impressive thing to have. I'm pretty sure that the thing had fallen off the back of some business's truck given that the first thing that I found when I started poking around having had it in my possession for all of 20 minutes was some Lotus 1-2-3 spreadsheets… But I digress.
The important thing is that I had this computer, and I had a 1200 baud modem – and that opened up the entirety of the world to me. That was the tool. It wasn't long until I was co-sysop on a couple of nationwide BBSs, spent time arguing on FidoNet, and it wasn't long before I discovered that there was an entire even bigger, even better world out there
It was called USENET.
Back in the day, you could connect to university computer systems via dial-up, and if you are clever and understood how things worked you didn't actually need a login to get the system to perform some basic activities for you, including giving you access to Lynx, which you can think of as a precursor to modern web browsers if the web was made up of 80 column wide non-proportional font lines.
Frankly, it was awesome.
Once you could get into Lynx, you could go anywhere on the Internet that had telnet access – and lots of things had telnet access.
One of the most important things that you could get access to was USENET, which in modern parlance might actually be thought of as a vast, federated, message board forum with tight knit communities, really effective search, content sorting, properly indented threaded presentation, the ability to track content that was likely to be of interest to you, topic-based communities built in from the ground up – essentially everything that the last 10 years of social networks have been trying to re-implement from the ground up while pretending that USENET never existed.
Key to USENET was UUCP, the UNIX-to-UNIX copy. What started as just a way to copy files from one system to another effectively became a program that could keep a hierarchical file system in sync across an arbitrary number of computers connected asynchronously one to another, this being the era of dial-up and systems not being continuously online. Servers would have users which used front ends to read and present these hierarchical filesystems as messages with references to one another, subject lines, authors, and allow those users to write content, write responses, and interact with one another. Once or twice a day, the server would call another server up or down the map of all those involved that the server would keep in sync. It was usually only two or three others, who would talk to two or three more, who would talk to two or three more each, and so on.
Inhabitants of Steemit would probably think of this synchronized, asynchronous file hierarchy as a primitive blockchain. People who were involved with USENET think of the blockchain as a primitive USENET.
Eventually, as computers became cheaper and network access became easier to get, people like myself who had been accessing USENET through university computers instead realized that we could run Linux on our own boxes, find someone who would provide us a feed, and rather than deal with the threats and dangers of someone else running a server that you depend on – run our own as well as the front and software that translated this hierarchy of flat text files into a multithreaded, multi-community text messaging system.
Which effectively means that given nearly 30 years and continuous increases in Moore's Law, Steemit is almost ready to be as usable as USENET was in 1990 when I graduated high school.
One of the good things about the Steemit interface (and I'll bet you never expected to hear those words come out in that order) is that it presents comments in a properly threaded, indented way. How this is a thing that was lost from web communication for so long, I'll simply never know – but it is vital for actually being able to carry on a conversation with people rather than just a series of comments. It's one of the things that Steemit gets mostly right.
Another thing that @lavater says is absolutely unquestionably true runs so:
Steem really needs a decentralized application from which to post, comment , vote etc.
Even if text only that would be extremely useful.
Websites are centralized entities and can't be relied on.
These are all true points. To achieve what the developers of Steemit claim to want, there absolutely has to be a decentralized way to access the content of the blockchain, both for reading and writing. It's not really enough for the witnesses to essentially be decentralized storage nodes for the database because a devoted attacker only needs to disable a few front ends, as things currently stand, and the blockchain itself won't matter a bit. Right now you could drop a DDoS on three websites and nobody will be doing anything meaningful with the steem blockchain.
It doesn't matter how redundant your backend is if your front and doesn't work.
When USENET started moving from heavy, seriously multiuser computers as the core nodes from which people could communicate, to a more decentralized, more individualized access pattern, things became surprisingly much more robust for us independent users. We had already largely been synchronizing with the big servers and only occasionally horizontally because this was back in the day when most of the maps had to be designed by hand (and pathalias was eventually a godsend), but as it became easier to manage larger maps, they became deeper and had many more cross connections. When a machine two hops up the hierarchy went down and you couldn't connect to it, it didn't matter that much. You were already talking to other machines that were routing around that damage.
Not only were more people really able to access all the communities available, but they became more commonly and frequently available.
That's not to say that there was no lag between the time when a message was posted and the time you might receive it. Depending on where you were in the hierarchy, and how often the links you talked to pulled content, that could be anywhere from hours to days – but it would get there. And your response would get back.
(Unsurprisingly, the email system that you are quite familiar with the day was built on the same technology, with the same kind of routing. Except back then before DNS, you might have to address an email with what was known as a "bang path," where you specified all the nodes that the email would need to pass through and then the user on the last note where it was to be received. When guy@address became the norm because there were roadmaps being automatically generated from pathalias and DNS servers, we were all quite relieved.)
I would love to see a rebirth of many of the ideas which were pioneered by USENET back in the day on Steemit.
Communities were easy. We had "newsgroups." Essentially, there were two major hierarchies, the Big 8 which were centrally determined by some of the core servers, and the alt group – which pretty much anybody could create a newsgroup within and get conversation going inside, but would only be distributed as far as they could convince any of their neighbors to carry it.
These days there's no reason not to have as many Communities as anybody wants to have; we're not limited by worrying about the limitations of the file hierarchy (because every newsgroup was a literal file directory).
I really miss GNUS, which was my USENET reader of choice and ran inside of Emacs. Sure, it was an ancient 80 column character cell largely black and white interface – but because it was individualized to me, running under my account in Emacs, I could configure it to display the content within USENET in ways that were particular to my desires.
The key technology was the fact that the system had score files, which were basically just a series of regex, a straight up text matching engine which allowed you to give things that matched "the rule" a weight, positive or negative. (I simplify significantly here in terms of syntax, but the ideas are solid.)
Because all the metadata about a particular message was just as much simple text as the rest of the message, matching on metadata was pretty trivial.
Interested in a particular user's posts and would like things that they're involved in to float to the top?
"From: thantos@runic.org" +100
Tired of reading about BattleTech and prefer to read other things first?
"Subject:.*BattleTech.*" -10
Want to read everything in a particular thread involving a post, absolutely first? Luckily for you, every single post had a unique hash identifier and one of the metadata fields was literally a list of all the IDs that were previously up a reply chain.
"ReplyIDs:.* abcde5775abde565 .*" +1000
Tired of that one jerk who never has anything good to say, and in fact you'd prefer never to see anything that he writes? Set a minimum score to view, say -5000, and plonk that guy good and hard in the head.
"From: thatGuy@somewhere.org" -10000
Extra hard, just to be sure.
Because GNUS did good sorting, making good use of default orders (reverse chronological, by reply/threaded, etc.), the top layer could always be "additionally, sort by score" and everything just worked. And because scores were applied cumulatively (every rule was applied independently, both positively and negatively), in short order you built up a series of useful rules which made the presentation customized to your personal wants and desires.
All of that without any particular help from the underlying architecture of USENET. It could all be implemented on top of that decentralized, asynchronous text-based database.
It's possible that with the advent of decentralized standalone applications which can speak directly to the blockchain, we could see the flexibility of this kind of tool come into being and perhaps even work around some of the limitations that have been holding back Steemit from being a better social media network and set it up to better compete with the big players in the field by offering individualization and customization that they can't.
If @jesta hasn't been exposed to the ancient wonder that was USENET and the great tools we had to use in concert with it, I'd earnestly encourage it. There's a lot to learn from systems and interfaces that have worked.