[HN Gopher] Simplicity of IRC
       ___________________________________________________________________
        
       Simplicity of IRC
        
       Author : susam
       Score  : 296 points
       Date   : 2022-01-09 12:06 UTC (10 hours ago)
        
 (HTM) web link (susam.net)
 (TXT) w3m dump (susam.net)
        
       | pkulak wrote:
       | I've never really played around with IRC, but I've definitely had
       | the experience the author talks about with Matrix. The server
       | (like mentioned about IRC) is complicated, but interfacing with
       | it as a user or a bot is mostly a few REST endpoints. I've
       | started using Matrix as my go-to interface for new projects. You
       | get IO for free, plus auth, user accounts, and multi-device;
       | leaving just the fun stuff.
        
       | bullen wrote:
       | If you want an even simpler and more scalable chat you can use my
       | multiplayer online system:
       | 
       | http://github.com/tinspin/fuse
       | 
       | The HTTP server is written in Java with a custom JSON database
       | and it has clients in C++, C# and HTML5.
        
       | dan-robertson wrote:
       | It's a real shame how difficult programming is. I don't mean that
       | it is difficult to write difficult things, but that it is
       | difficult to write simple things. Once upon a time, one could
       | download visual studio, click about to make a new project in
       | (e.g.) Visual Basic, draw a gui in the gui editor, and click the
       | run button. One could then start adding simple functionality
       | (e.g. working through a book). Or even longer ago when a computer
       | might dump you practically straight into BASIC when you turned it
       | on or you might get access to a mainframe/minicomputer with
       | programming tools already set up. Nowadays, an 'easy'
       | introduction could involve the horrific process of installing and
       | setting up python on windows (where it is hard to do things other
       | than input/output text) or editing some html/JavaScript files
       | where there are more easily possible interactive things but lots
       | of things are difficult like 'just drawing things' or anything
       | that requires a server side.
       | 
       | P.S. if you, like me, were wondering what Libera Chat is, it's
       | the moral successor of Freenode with Freenode now being a shell
       | of its former self.
        
         | 323 wrote:
         | Rose tinted glasses?
         | 
         | Visual Basic (classic) that you mentioned, discontinued in
         | 2008, was not free, unless you pirated it.
         | 
         | > _'just drawing things'_
         | 
         | For that you have much more amazing things today, like
         | Shadertoy, or various artistic programming languages like
         | Processing, ...
         | 
         | Programming is easier than ever, computers are extremely cheap,
         | software is free, documentation on the internet is free,
         | YouTube is full of tutorials, there are literally no obstacles
         | if you want to do it.
         | 
         | Back in my day I had to pay for computers, for programming
         | software, for books, Internet cost a fortune, ...
        
           | layer8 wrote:
           | However, today there is no VB-like experience for modern
           | development regardless how much you'd be willing to pay for
           | it.
        
             | rahen wrote:
             | Have you tried Lazarus?
             | 
             | https://www.lazarus-ide.org
        
             | 323 wrote:
             | Delphi still exists:
             | 
             | > _Build Native Apps 5x Faster With One Codebase. For
             | Windows, Android, iOS, macOS, and Linux_
             | 
             | https://www.embarcadero.com/products/delphi
             | 
             | And it's free if you don't make a lot of money of what you
             | build.
        
               | gavinray wrote:
               | And if you don't need/want to compile to x64 bit
               | 
               | Delphi Community Edition only allows x32 compilation
               | 
               | I downloaded it to try. It's not a huge limitation for
               | most usecases I would imagine.
        
               | Nextgrid wrote:
               | Do they make an exception for Mac, considering recent
               | macOS no longer supports 32-bit binaries?
        
             | Mister_Snuggles wrote:
             | I remember Delphi being pretty close back in the day, and
             | it's still around[0] if you're willing to pay for it.
             | Lazarus[1] is another option.
             | 
             | Apart from the underlying language, the experience is
             | pretty close.
             | 
             | [0] https://www.embarcadero.com/
             | 
             | [1] https://www.lazarus-ide.org/
        
           | boondaburrah wrote:
           | I believe there were some visual basic books you could get
           | that would have a CD-ROM with a limited version in the back,
           | but I may not be remembering correctly. Of course, you could
           | also check those books out of the library and online
           | activation wasn't really a thing then, so that's how I
           | remember starting.
        
           | denton-scratch wrote:
           | > Programming is easier than ever
           | 
           | Really, it's not. This trade has got much, much harder since
           | I started. The languages are harder, because the targets are
           | both more complicated and more various. Computers were mainly
           | used to do sums (I worked on accounting systems written in
           | COBOL).
           | 
           | I mean, it's easier if you take into account the complexity
           | and richness of the modern computing environment, USB, PCI,
           | caches, what have you. You are producing more powerful
           | programs. But the onboarding ramp for modern programming is
           | steep.
        
         | Iv wrote:
         | > on windows
         | 
         | This is the mistake. Linux and, I believe, OSX come with
         | several tools pre-installed including python.
        
           | AnIdiotOnTheNet wrote:
           | Windows comes with PowerShell, which is a pretty fully
           | featured programming language that can interface directly
           | with the .NET ecosystem.
        
             | fivea wrote:
             | > Windows comes with PowerShell (...)
             | 
             | It might be just me, but PowerShell feels outright
             | developer-hostile even when compared to Bash. Perhaps it's
             | their approach to rely primarily on .NET stuff which makes
             | things so arcane, but when given the option it's far
             | simpler and better to go with, say, python than PowerShell.
        
               | AnIdiotOnTheNet wrote:
               | I couldn't disagree more, I think bash is a
               | _horrifically_ bad programming language. Honestly I 'm
               | incredibly surprised anyone could compare PowerShell and
               | bash and think that PowerShell is the arcane one.
        
               | williamtwild wrote:
               | The problem is that you think bash is a programming
               | language.
        
               | majkinetor wrote:
               | Its bad even for one liners.
        
               | cxr wrote:
               | The person who you're responding to is engaging with the
               | person who _they 're_ responding to in the terms chosen
               | by the latter. If the original commenter hadn't written,
               | "PowerShell feels outright developer-hostile even when
               | compared to Bash", then we might have some reason to find
               | fault with the person who replied. Considering that's
               | what did happen, however, this comment of yours--which is
               | both snarky and implicitly demands the wrong person to
               | take responsibility for the comparison--just comes across
               | as annoying.
        
               | fivea wrote:
               | > I couldn't disagree more, I think bash is a
               | horrifically bad programming language.
               | 
               | Bash is described as a "command language" and not a
               | programming language per se.
               | 
               | Bash is what you use to type in commands, and automate
               | said commands if you need to whip out a quick script that
               | runs what you would otherwise run manually. Bash,
               | scripting-wise, is command line glue.
               | 
               | If all you want to do is run commands with some logic,
               | PowerShell is simply dreadful and outright developer-
               | hostile. I doubt there is a single person on earth who
               | uses PowerShell as a command shell like Bash is used.
        
               | AnIdiotOnTheNet wrote:
               | Again, I disagree and regularly use PowerShell as a
               | command language --as do many Windows admins-- and _much_
               | prefer its object-based pipelining and relatively
               | sensible and consistent command and argument naming to
               | bash 's error-prone text pipeline and mixture of 2-letter
               | abbreviations and complete nonsense names. But whatever,
               | to each their own.
               | 
               | This subthread was specifically about programming
               | languages being available out of the box in OSs, so when
               | you brought up bash my natural assumption was that meant
               | as a programming language.
        
               | majkinetor wrote:
        
               | chungy wrote:
               | PowerShell is the worst of bash and perl combined. It's
               | like Microsoft took a look at each of those, "We can do
               | that!" and implemented them.... worse.
        
               | majkinetor wrote:
               | Totally. Bash is such nonsense. Its little better then
               | batch on Windows.
               | 
               | PowerShell is such joy that it should be there on any
               | Linux as default interactive shell.
        
           | enumjorge wrote:
           | A tool shouldn't need to come preinstalled with the OS in
           | order to be useable. And "switch to a different OS" is not a
           | good solution especially for cases where you don't control
           | the OS you run.
           | 
           | For a long time MacOS came with only Python 2.x installed. I
           | looked up what the latest version of MacOS comes with and
           | came across an Apple support forum post with several
           | responses posting conflicting answers [0]. One person got an
           | Xcode related error. Having to install a heavyweight IDE just
           | to get a language to run correctly is the type of needless
           | complication the parent comment is talking about.
           | 
           | [0] https://developer.apple.com/forums/thread/691403
        
             | lloeki wrote:
             | > Having to install a heavyweight IDE
             | 
             | xcode-select --install pulls in the CLT, which is a fairly
             | reasonably sized download given that it includes various
             | essential dev tools including python3 but without Xcode.
             | 
             | This is hinted at by attempting to run python3 before any
             | install, which calls a stub prompting you to do just that.
             | 
             | py2/ruby/perl/etc... are part of the base OS for backwards
             | compatibility/expectations (because they were so before
             | Xcode/CLT were even a thing) but have been marked as due
             | for removal from base for something like half a decade. My
             | bet is that at some point they will move to the CLT (or
             | some other optional download) as well.
        
           | young_unixer wrote:
           | Which creates more problems than solutions.
           | 
           | If the Python version that comes with your OS is not the one
           | you want (e.g. it's outdated), then you'll have to:
           | 
           | 1. Install the version you want anyway, and all the tools
           | required (that usually don't come preinstalled in the OS)
           | 
           | 2. Try to not make them collide, which, last time I tried,
           | was a PITA, because the OS depends on original version of
           | Python being in the the $PATH or something.
           | 
           | Python on Ubuntu is notoriously misleading for newbies,
           | because even if you apt install python3 and it tells you that
           | it's already installed, it's not fully installed. For
           | example, venv is not installed, you have to `sudo apt install
           | python3-venv` and do that for every Python module that's not
           | installed by default.
           | 
           | It would be easier if Linux didn't come with Python, and then
           | people simply installed the actual, full version of Python
           | they wanted.
        
           | emeth wrote:
           | > Scripting language runtimes such as Python, Ruby, and Perl
           | are included in macOS for compatibility with legacy software.
           | Future versions of macOS won't include scripting language
           | runtimes by default, and might require you to install
           | additional packages.
           | 
           | https://apple.stackexchange.com/questions/406244/will-
           | macos-...
        
             | pmarreck wrote:
             | That's probably for the best, as the ones that ship are
             | often old and buggy, and Apple doesn't seem to care for
             | maintaining them (even if they pretend to care about
             | developers). As long as there's a way for actual developers
             | to install these tools themselves (such as Homebrew),
             | things will work out fine.
        
           | dan-robertson wrote:
           | I wanted to focus on a 'first introduction to programming'
           | which on average means windows. Obviously installing and
           | running python can be easier on Linux but you still have
           | problems with anything not-just-text.
        
           | throwhauser wrote:
           | Anytime I do anything with python on Linux or MacOS I
           | encounter python, python3, pip, pip3, venv, virtualenv,
           | conda, poetry... so much machinery around the code. Throw in
           | your platform-specifc package manager of choice as well (apt,
           | brew, etc)
           | 
           | EDIT: Oh and pipenv!
        
         | magpi3 wrote:
         | > Once upon a time, one could download visual studio, click
         | about to make a new project in (e.g.) Visual Basic, draw a gui
         | in the gui editor, and click the run button
         | 
         | The world that lived behind that experience - COM & Active X
         | Controls - was extremely complex. If you needed to build a new
         | active x control for your app, god save you.
         | 
         | It's been said a million times, but in programming there is
         | always complexity. Sometimes it is just well hidden.
        
           | qsort wrote:
           | I think there's a difference between intrinsic complexity and
           | accidental complexity, though.
           | 
           | You're right to observe that programming involves irreducible
           | complexity (one of the reasons why so many low code/no code
           | tools fail is the refusal to accept this, imo), on the other
           | hand modern toolchains are extremely complicated and could be
           | a little more streamlined.
           | 
           | It's a meme at this point, but there's no way having six
           | different pythons on your machine or whatever the hell modern
           | JS toolchains do -- just to pick two examples -- is the
           | simplest it can possibly be.
           | 
           | Older machines and toolchains certainly had their problems
           | (arguably even worse ones), but I completely understand the
           | complaints.
        
           | ok123456 wrote:
           | >If you needed to build a new active x control for your app,
           | god save you.
           | 
           | regsvr32 coolcontrol.ocx
        
         | erwincoumans wrote:
         | Python is just one installer on Windows and there are tons of
         | pip installable packages, for 2d or 3d graphics, GUI,
         | sound/midi, math/data and whatever you can think of. Tons of
         | docs and tutorials or colabs.
         | 
         | How is that not easy?
        
           | gbear605 wrote:
           | A friend of mine was recently taking a course on machine
           | learning and she had to use Python with some packages for the
           | homework assignments. She downloaded VSCode and installed
           | Python on her machine and then attempted to get the packages
           | installed with pip. They weren't showing up in the VSCode
           | terminal though. Somehow she had six different installations
           | of Python, one of Python 3 living inside of a VSCode
           | namespace, one each of Python 2 and 3 living in a global
           | location, and one each of Python 2 and 3 living in a user-
           | specific location, and a Python installed by Anaconda.
           | Calling python, python3, pip, and pip3 in all went to
           | different Python installations. The VSCode installation
           | didn't seem to have pip at all, even with python -m pip. I
           | managed to eventually sort it all out for her, but it took me
           | over two hours to figure it out, and I'm a professional
           | programmer who uses Python in my daily job. I admittedly
           | don't use Windows everyday, but it was a huge mess and I have
           | no idea how it happened.
           | 
           | Computers are complex, and people who don't work closely with
           | them daily can easily get very confused.
        
             | erwincoumans wrote:
             | In such cases, it maybe better to just use Google Colab.
        
         | einpoklum wrote:
         | > ... difficult to write simple things...
         | 
         | and
         | 
         | > Once upon a time, one could download visual studio,
         | 
         | don't seem to agree very well. Visual Studio is a behemoth and
         | usually results in stuff that's non-standard, non-portable and
         | with lots of dependencies.
        
           | layer8 wrote:
           | That certainly wasn't the case with Visual Studio VB6 (or
           | earlier) that the GP alluded to.
        
           | dan-robertson wrote:
           | Visual studio won at the zero-to-interactive-program metric.
           | People who have never programmed are not going to care so
           | much about portability as they are about not getting stuck
           | trying to figure out how to install/make things work properly
           | on their systems. The modern 'getting started' choice is
           | often python which doesn't give you such an easy path to
           | interactivity and has its own portability problems.
        
         | lambdaba wrote:
         | Bash is the Basic of our era, the fact that it's so easy to do
         | simple things explains why people are so often ready to use it
         | despite its perceived and real shortcomings. Hopefully one of
         | the new shells gains enough popularity to "flip" usage and give
         | us a renaissance of powerful scripting interfaces.
        
           | cout wrote:
           | Why bash over the browser javascript console? It is
           | everywhere and allows interactive editing of a "program",
           | much like the BASIC interpreters of old.
        
             | lambdaba wrote:
             | Yeah but how do I pipe to other programs? How do I schedule
             | something and integrate it with my filesystem? Also the
             | syntax is complicated (don't underestimate this, for many
             | of us trouble parsing syntax is a distant memory). Also
             | easy interop between many programming languages.
             | 
             | Maybe when the browser fully swallows the OS but I hope it
             | won't be JavaScript or it would have morphed into something
             | else.
        
         | ripe wrote:
         | Yes! I learned BASIC on the BBC Micro. You turned it on, and
         | you got a BASIC interpreter. It was the most painless, most fun
         | experience. Graphics, sound,, etc., were all available by
         | reading the User Guide.
         | 
         | I couldn't have afforded buying one, but my university had half
         | a dozen.
         | 
         | I wish kids today could get that.
        
           | akkartik wrote:
           | This was my attempt at providing easy graphics to kids
           | inspired by the BBC Micro:
           | https://github.com/akkartik/mu/tree/main/shell
           | 
           | Here's a 6-minute demo: https://archive.org/details/akkartik-
           | mu-2021-06-09
           | 
           | Requires Qemu, though. And no sound yet, unfortunately. I'd
           | love contributions there or elsewhere.
        
           | Sophira wrote:
           | The closest I've found to having a modern experience to
           | programming in that manner is DragonRuby Game Toolkit [0].
           | It's not free (with some exceptions for eligible users and
           | indie game developers), but it does offer a standard version
           | for a one-off payment, which is the version I have. It's sold
           | as a game dev toolkit but it brings back those same memories
           | of BASIC for me. I firmly believe that it could be a very
           | viable method of introducing programming as well.
           | 
           | If you bought either of the two itch.io bundles "Bundle for
           | Racial Justice and Equality" or "Indie bundle for Palestinian
           | Aid", then you have the Standard license already included in
           | that bundle. It's well worth a look IMO.
           | 
           | (Not affiliated other than a very happy user.)
           | 
           | [0] https://dragonruby.org/toolkit/game
        
         | ryandrake wrote:
         | Reminds me of this visualization[1]. The amount of code it
         | takes to simply draw a triangle in OpenGL 1.x, OpenGL 3+, and
         | Vulcan
         | 
         | The learning curve has been sacrificed. It's now a learning
         | cliff for everything. We've used to have computers that make it
         | simple to do simple things and hard to do complex things. Now,
         | just so it can be slightly less hard to do complex things,
         | we've made it hard to learn and do simple things.
         | 
         | 1: https://twitter.com/sol_hsa/status/1174233868536356866
        
           | anthk wrote:
           | TBH GLIDE was the Vulkan of its era.
        
           | surajrmal wrote:
           | In the case of graphics, the only thing that's changed is the
           | abstraction layer which is stable. Most folks won't use
           | Vulkan directly, but rather through a layer which they have
           | control to optimize or fix bugs in if they need to. Learning
           | graphics programming will never start directly with Vulkan
           | programming. I suppose there are benefits to make the
           | standard, stable API easy to work with as a beginner, but
           | there are plenty of great open source projects that fill that
           | niche.
        
           | mdoms wrote:
           | I have never written for Vulkan and have only done bits and
           | pieces of OpenGL but this can't possibly be an honest
           | representation can it?
        
             | 323 wrote:
             | Even conceptually using Vulkan is much more complicated.
             | 
             | In old GL it's basically glClear, glBegin, glVertex,
             | glVertex, glVertex, glEnd and a bit of window setup.
             | 
             | In Vulkan you need to know what these things are: queues,
             | command buffers, image/geometry buffers, memory locations
             | (constant, uniform, varying), resources, bindings, shader
             | programs, fences, swap chains, and how they all coordinate
             | together.
             | 
             | And until they are all properly coordinated together,
             | you'll just be staring at a black image or just get errors.
        
             | seoaeu wrote:
             | No, not entirely. Each version does progressively more
             | error checking / debug output. Also the first two output a
             | static single color triangle, while the Vulkan sample
             | outputs a _rotating_ triangle with different colors for
             | each vertex.
        
         | anthk wrote:
         | TCL/TK >>>>>> VB. By a huge margin. VB would work great under
         | Windows, but TCL/TK kits would work everywhere.
        
           | rahen wrote:
           | Indeed, just like VB6, tcl/tk is a great reminder of the late
           | 90s.
           | 
           | Tcl was such an expressive yet minimalist language. Probably
           | the only fast and easy way back then to create GUI
           | applications on *nix systems. I guess Python + QT has killed
           | it now, but with a massively larger footprint and resource
           | usage obviously.
        
           | denton-scratch wrote:
           | I liked VB6 when I first tried it. You drew a UI, then you
           | double-clicked the components to get a menu of stub code-
           | blocks. It was good for making UIs.
           | 
           | Then suddenly there were masses of weird, undocumented APIs,
           | including APIs from any application installed on the machine.
           | Unfortunately I was making my living from VB6 at the time, so
           | I had to learn it all. (And then MS withdrew support for VB6,
           | forcing me to learn a new trade, which is only one driver of
           | my animus against MS)
           | 
           | Long ago I owned a Sinclair QL. That toy had a rather nice
           | BASIC editor. I think their dialect was called QBasic. You
           | selected a function in the left pane, and it appeared for
           | editing in the right pane. (I also loved that it used a 68K
           | processor; that chip had a sweet instruction set)
        
       | locusofself wrote:
       | IRC was fun. I do miss that period of time (and being a teenager
       | who could learn things very quickly). I'm not particularly
       | nostalgic about the protocol or the user experience though. Maybe
       | we will find a good middle ground some day, fast native clients
       | with media rich experience and great searchability. I use Teams
       | every day and find it to be just fine for most things.
        
       | almogbaku wrote:
        
       | Stampo00 wrote:
       | I've been forced to use Slack for the past 5 or 6 years in my
       | professional life and I despise it. It gives me absolutely no
       | ability to customize or automate my workflow without my employer
       | giving me the keys to the kingdom, which they rightly won't do.
       | Slack's service is where the value is. The client is only a means
       | to an end. And yet they guard it with such zeal, threatening
       | those who develop augments or alternatives.
       | 
       | I have the skills. Just let me automate my own machine without
       | making me have to fight you tooth and nail!
        
       | mycodepedia wrote:
        
       | andrewmcwatters wrote:
       | I never used IRC growing up, to my knowledge, though I'm sure I
       | used it by proxy in software that used it under the hood.
       | 
       | Instead, I grew up with AOL Instant Messenger, and then MSN
       | Messenger which later became Windows Live Messenger, then Skype,
       | Xfire, Pidgin and Trillian as clients, then back to Skype again,
       | and now Discord, which is where I still reside most of the time
       | today.
       | 
       | When I thought about existing chat protocols I wanted to use in
       | game engines and websites that would allow one to connect through
       | existing clients without having to join the game or navigate to
       | the website in question directly, I thought about IRC.
       | 
       | But it seems like people use Matrix now, and it just hasn't
       | caught on to my circle of friends. If I'm not mistaken, it almost
       | seems like FOSS Discord.
       | 
       | I was recently introduced to it by a member of a community of
       | very friendly Quake Mappers. I wonder if there is primarily first
       | a cultural barrier to these technologies and not a technical one.
       | As usually I find more technical people on IRC than on Discord.
        
       | mycodepedia wrote:
        
       | yetihehe wrote:
       | In the beginning was the command line. Then work of bright people
       | of Xerox PARC was used to hide from users the reality that
       | underneath their beloved GUI, computers are just passing around
       | strings of text. Now we yearn for a time when you were just one
       | INT and several MOV away from putting a pixel on a screen,
       | instead of downloading multi-GB IDE to fiddle for a weekend
       | before you can show a simple window.
        
         | davisr wrote:
         | You don't understand what happened at Xerox PARC or what their
         | "GUI" was. Smalltalk wasn't a language, it wasn't a GUI, it was
         | an _environment_, and its whole point was that it didn't hide
         | anything! It was a completely different paradigm to how
         | computers and their programs are architected today. A Smalltalk
         | system was always meant to be so simple that one could
         | understand, and change, everything about it.
        
           | yetihehe wrote:
           | That's why I've said that their work was used, not that they
           | did it.
        
       | userbinator wrote:
       | Everyone should write an IRC client as an exercise in network
       | programming due to its simplicity. The other IM protocol for
       | which I've written a client is early MSNP, which is also text-
       | based and not immensely more complicated than IRC. IMHO all the
       | newer web-based stuff is a horrible mess of abstraction bloat.
       | TCP, and TLS if you want encryption, should be a sufficient base
       | to build upon.
        
       | pmarreck wrote:
       | Somehow I never heard of Matrix until now. I'm now running
       | Element with a bridge to the Libera IRC network. Thanks!
        
       | Ntrails wrote:
       | Could someone with more insight summarise how this compares to
       | xmpp as an open chat protocol?
        
       | h2odragon wrote:
       | Prior to IRC becoming an accepted protocol, the "talker BBS
       | systems" tried to avoid the need for a user to have a "client
       | application." I'd say it was AOL that put an interface on chat
       | and sold (a) the idea of a chat client and (b) the idea of
       | _online chat_ to less technical users.
        
       | open-source-ux wrote:
       | IRC might be designed around a simple protocol, but it is not
       | simple in operation. The plethora of command line options
       | explains why IRC is only loved by (some) developers and nobody
       | else.
       | 
       | I suspect some IRC users like the high barrier to entry (but
       | would never admit to it): it keeps out all those clueless 'non-
       | technical' users.
        
         | janc_ wrote:
         | There are GUI clients for IRC that don't need any "command line
         | options" (some don't even support them).
         | 
         | And there are (and certainly were) plenty of people on IRC who
         | aren't very technical. Seriously, around 20 years ago it was
         | often used as a "dating app" by regular users, or for radio
         | listeners & DJs to chat, etc.
        
       | c0l0 wrote:
       | A number of moons ago, I switched from a company that used IRC
       | for its internal, real-time, ephemeral communication needs to an
       | enterprise shop that used Microsoft Teams to do that (and of
       | course other communication stuff, as the boundaries for what was
       | better kept in Sharepoint, Confluence, Email/Exchange, the legacy
       | Wiki, and/or Teams were never quite clear :)) there.
       | 
       | In the old shop, we eventually had all kinds of important
       | subsystems hooked up to our internal IRC server: Monitoring and
       | alerting. Source control and Wiki activity. The deployment
       | pipeline. Ticket activity reports. All these services were pretty
       | much effortlessly set up to provide useful, real-time status
       | information broadcast to topic-specific channels users could idle
       | in. Everyone could stay informed on topics of their interest, in
       | real time, with no barrier to entry. It was really good, and the
       | implementation completed in a few hours total, for all use-cases,
       | due to irc's incredible simplicity.
       | 
       | Due to the benefits I had reaped from that setup before, I tried
       | to implement parts of it on/for the MS Teams platform at the
       | then-new job. Getting the Teams Python SDK to implement a bot-
       | like entity running alone proved to be a days-long ordeal, and
       | whatever followed wasn't much more pleasant.
       | 
       | In the end, we let someone set up two email-to-teams-channel-
       | forwards which kinda worked, but suffered from obnoxious, multi-
       | minute relay delays.
       | 
       | As a consequence of the tedious bringup and the latency
       | shortcoming, the "effortless notification" initiative never
       | really got traction.
       | 
       | Not only because of this particular experience I am a firm
       | believer that software/system simplicity is a virtue that can
       | neither be overstated in importance, nor substituted by anything
       | else.
        
         | badrabbit wrote:
         | Modern apps have modern requirements like better security.
         | Better UX, quality and security beats dev convenience every
         | time.
        
         | Nemi wrote:
         | I tend to agree. I have the same reservations with HTTP2 to a
         | lesser degree. I won't deny that the complexity added by HTTP2
         | will greatly improve speeds in certain cases, and this may very
         | well be needed to keep the greater interwebs working at
         | comfortable speeds moving forward, but a part of me is greatly
         | saddened by losing the sheer simplicity that is HTTP1.1.
        
           | littlecranky67 wrote:
           | the problem is that HTTP2 mostly does _not_ bring the
           | expected advantages that connection multiplexing promised, as
           | HTTP /1.1 connection multiplexing over multiple tcp sockets
           | are in many cases better performance wise. Only HTTP/3 with
           | QUIC addresses this, so I have mixed feelings about HTTP/2.
        
           | tomsmeding wrote:
           | Are we going to _lose_ the simplicity of HTTP /1.1? I think
           | that would only happen when we get servers that support
           | _only_ HTTP /2, and I hope those will be limited to hobbyist
           | use for a while yet.
        
             | spenczar5 wrote:
             | gRPC servers, which are increasingly common and certainly
             | not a hobbyist thing, are http/2 only.
        
         | littlecranky67 wrote:
         | I think it is unfair / nonsensical to compare Teams (or Slack
         | or Discord) to IRC. IRC is an open protocol for creating chat
         | networks, not a desktop client. The user expierence from IRC
         | could differ vastly depending on which client you use (mIRC,
         | xchat, irssi...). But it shows how in todays world we create
         | this silos/islands of proprietary solutions that are not inter-
         | operable.
        
           | harikb wrote:
           | GP is comparing the integration experience and API layer.
        
         | erikbye wrote:
         | I find Matrix a fine substitute for IRC. Very simple to write
         | clients and bots for. And you get modern features IRC either
         | lack or does not do well.
        
         | tarkin2 wrote:
         | With your IRC system, how did you deal with channel history,
         | i.e. seeing messages that were delivered to the channel while
         | the user wasn't there, something that slack and teams does
         | well?
        
           | Fuzzwah wrote:
           | I'm not the OP, but the usual method is that everyone runs an
           | irc client in a screen on a server that they SSH into from
           | their workstation.
        
             | pmarreck wrote:
             | I did this years ago and this was indeed one way to do it
             | (apparently still is)
        
           | c0l0 wrote:
           | We had an internal instance of ZNC for human users to connect
           | their clients to (at their option - but that was the
           | documented and preferred way of getting onto the IRC
           | network). Creating ZNC user profiles was part of the semi-
           | automated onboarding/setup procedure, whilst ZNC
           | authentication was done against the dovecot IMAP/SASL server
           | we had for email. More casual IRC users in the company
           | (marketing etc.) usually preferred to use an intranet-hosted
           | web application (The Lounge) to access it from their browser,
           | while most IT people had native clients of their choice set
           | up (hexchat, irssi, etc.). Worked well.
        
             | tarkin2 wrote:
             | Thanks, I was inspired by your post and looked at irc
             | servers. The main problem, vis-a-vis slack, was the channel
             | history. There are modules but they have timestamp and
             | limit problems. And irssi in gnu screen would only work
             | while screen is running and would only work for those happy
             | with the setup. ZNC, although sadly adding more complexity,
             | seems to be the way to go.
        
               | progval wrote:
               | > There are modules but they have timestamp
               | 
               | You need a client and bouncer (or server, if you connect
               | directly) that supports this extension:
               | https://ircv3.net/specs/extensions/server-time
               | 
               | > and limit problems.
               | 
               | ditto, but https://ircv3.net/specs/extensions/chathistory
               | if I understand you correctly.
        
             | zacmps wrote:
             | ZNC has its own issues. We had a repeatable crash that
             | happened every time a particular user connected (it took us
             | a while to figure that out).
        
               | c0l0 wrote:
               | Sure, most software projects and products have their
               | share of flaws and bugs :)
               | 
               | I do not claim ZNC or our whole IRC setup was perfect,
               | but for me and many others, it did a very decent job of
               | providing effective, no-frills, getting-things-done means
               | of communicating, all while consuming little resources on
               | both server and clients, and being simple,
               | underestandable, and easy to hook other software into.
               | 
               | I really miss it, and personally dislike (especially the
               | client UX of) most trendy/recent alternatives.
        
           | jethro_tell wrote:
           | We had a similar thing going, people could set up a packages
           | znc bouncer but the general rule was to assume everything was
           | pretty much ephemeral to anyone not there. the best part to
           | me about irc rooms is that they are allowed to be considered
           | ephemeral, just like hallway talk and coffee breaks.
           | 
           | If something comes of the discussion. Update docs, post the
           | chat log in the wiki, send an email with cliff notes and ask
           | if others care to discuss, halt and get the right people in
           | the room.
           | 
           | When you decide, 'hey, we have an idea, or a change in
           | direction' you'd then document or make the case in a way that
           | is more clear and user friendly than a mile of ephemeral
           | chat. This is the same reason people send out meeting
           | summaries instead of transcripts.
           | 
           | We've moved to this point where nothing is ephemeral. But a
           | random chat isn't a good way to understand why things are
           | being done. It's just too much to parse. And at some point
           | new people are looking for a needle in a haystack and they
           | just kinda checkout.
           | 
           | I thing documentation should be intentional, the why should
           | be clear in a doc that doesn't waste time and is formated in
           | a way that we have come to understand as the best practices
           | of technical documentation. You'd start with a quick overview
           | of both the problem and proposed or adopted solution and the
           | reader can decide if they need more info.
           | 
           | Especially with remote work, I think it's important to have
           | ephemeral areas for discussion without expectations that
           | everyone keeps up on the whole chat. Thinking every team
           | member needs to know every word of discussion is ludicrous.
        
         | lambdaba wrote:
         | 100%, the fact that you can literally pipe some data in a
         | command-line IRC client is 1000x more conducive to such
         | tweaking than using custom APIs/SDKs
         | 
         | long live the Unix model!
        
           | michaelt wrote:
           | Doesn't that mean you get a channel join/leave for almost
           | every message?
        
             | lifthrasiir wrote:
             | It is possible to post a message without joining if the
             | channel has -n set (not the default for the obvious
             | reason).
        
             | crest wrote:
             | So clients can read lines from a pipe as stdin.
        
           | ferdowsi wrote:
           | I don't see why you couldn't do the same in a Slack command-
           | line program as well? Not hard to find simple examples of
           | that.
           | 
           | https://github.com/csabapalfi/slackcat
        
             | littlecranky67 wrote:
             | I think the op meant on the protocol level, not client. You
             | can literally do `cat mycommands.txt > /dev/tcp/...`. IRC
             | is pretty simple, I remember using telnet just for fun to
             | connect (also the PING message replies are annoying to type
             | yourself) and at one time, (ab)used an FXPable FTP server
             | data port trickery in ASCII mode to send a message to a
             | channel.
             | 
             | Due to its simplicity I could see its application as a
             | falback for global communication downtime/outages (as we
             | had with FB/Insta recently).
        
               | userbinator wrote:
               | _Due to its simplicity I could see its application as a
               | falback for global communication downtime /outages_
               | 
               | I remember when the solution to this, when everyone was
               | still working in an office, was "pair of netcats".
        
             | codys wrote:
             | Slack has made using their API much trickier over time:
             | getting a token to post these days (officially) is under
             | the control of the server admin (as one needs to add a
             | "slack app" to get one). One can extract a token and some
             | cookies from a web browser slack session still, but it's
             | not as clean as it used to be (where one could just
             | generate account associated tokens that didn't randomly
             | expire).
             | 
             | In other words:
             | 
             | - to use the slack APIs, you probably need company level
             | buy in _before_ any code is written against the API from IT
             | folks
             | 
             | - in contrast, with IRC one could just try something out
             | and at some point in the future _maybe_ create a seperate
             | IRC account for it, if your IRC server even has logins
             | enabled. If it doesn't, which when I worked for IBM was the
             | case, one can just pick a new username for the IRC bot.
        
           | jacobolus wrote:
           | Beyond that, (a) implementing enough of the IRC protocol to
           | support simple bots isn't that hard, and (b) there are
           | already IRC protocol implementations everywhere.
        
         | alufers wrote:
         | I once needed to create a bot that sent notification and I just
         | used the webhook feature in a Team channel. Not defending Teams
         | though, it is a horrendous piece of software.
        
           | c0l0 wrote:
           | Maybe that wasn't possible/enabled for our particular
           | deployment (that was in the IT dept. of a big European bank),
           | as we had what I've been told was a strange bastardization of
           | O365 and other MSFT services - a mix of on-prem and cloud
           | services unlikely to be found elsewhere.
           | 
           | At any rate, for the IRC server at the shop I was at
           | previously, I had "webhook" support/a http(s)->irc gateway
           | implemented on my own in much less than an hour via CGI ;)
        
             | arbaal wrote:
             | Isn't your comment then very specifiy for that installation
             | of yours? When you use MS Teams in a "normal" O365
             | environment, then every feature you described for IRC is
             | possible with weebhooks and the cards API. Simple CURL
             | based integration.
        
               | 41b696ef1113 wrote:
               | I will second with another anecdote at mega corporation -
               | Teams is entirely locked down and any of the useful
               | integration points are disabled.
        
           | flatiron wrote:
           | Same with slack webhooks. I make custom software and everyone
           | wants slack webhooks and they are pretty easy to implement
           | and people love them.
        
         | mcfedr wrote:
         | I've not used teams, but both slack and Google chat make it
         | very easy to post messages, a simple curl call has often been
         | more than enough in lots of scripts
        
           | lloeki wrote:
           | That is, unless the enterprise has policies to abide by
           | disallowing API calls, in which case you're stuck with the
           | official client and vetted integrations.
           | 
           | Same for mobile, the advantage vanishes once enterprise
           | requires your (usually personal) phone to be surrendered to
           | corp IT via MDM (which I sure as hell won't do).
           | 
           | The whole value proposition of Slack and Teams for their
           | customers is control.
        
             | deberon wrote:
             | Would IRC even work in that nameless enterprise?
        
               | singron wrote:
               | IRC might be run by engineering there for themselves. 3rd
               | party chat would got through procurement and be provided
               | by IT for the whole company, and after the last SOC2
               | audit, they had to lock it down.
        
               | lloeki wrote:
               | Technically, yes. In real life, no.
               | 
               | I don't even blame such enterprises because most of the
               | time it comes from regulations or outside policies that
               | customers mandate, something like all enterprise data
               | (and thus communication) has to be firmly under control
               | of the enterprise with hard guarantees, otherwise you
               | just don't get to work with those customers. So you get a
               | locked down Slack/Teams, and the email+calendar system
               | disallows any native app unless the device is MDM'd, and
               | even that is only with first party clients such as the
               | Gmail app or Outlook.
               | 
               | TBH I think most companies are trying to do their best
               | there, but they're stuck with some kafkaesque liability
               | system.
        
               | franga2000 wrote:
               | What's more "under control of the enterprise" than a
               | self-hosted IRC server?
        
               | u801e wrote:
               | It doesn't prevent clients from logging communications in
               | that server. I know the same is possible in slack or
               | teams, but they don't consider that from a legal
               | perspective.
        
               | lloeki wrote:
               | Also legal: doing it in house it's on you vs being a
               | Slack feature means it's on them. CYA by outsourcing.
               | 
               | And consider this also: "hey we're quite sure pur
               | homegrown system is as leak proof as it can be, trust us
               | or fire up an audit team for 5 sprints to asses
               | compliance" vs "Slack has the box checked already"
               | 
               | The fact that folks can e.g technically fire up a
               | headless browser and programmatically interact with the
               | app via capybara or whatever to rebuild a makeshift API,
               | or just take pictures with their phones because the
               | compliant system is inconveniencing them daily is
               | immaterial.
        
               | deknos wrote:
               | that's really funny. because i did this for CYA reasons..
               | with different methods, but mostly with screenshotting or
               | autohotkey stuff.
        
               | franga2000 wrote:
               | From a legal, practical and technical perspective, any
               | window displayed on any screen is equally succeptible to
               | logging. I can't imagine the fact that the company
               | disabled ctrl+c in the policy settings making any
               | difference in a liability case.
        
               | jethro_tell wrote:
               | *print screen and phone cameras.
        
               | oarsinsync wrote:
               | > I can't imagine the fact that the company disabled
               | ctrl+c in the policy settings making any difference in a
               | liability case.
               | 
               | Taking reasonable measures absolutely does absolve the
               | company. At that point, it becomes a rogue employee who's
               | deliberately circumvented policies and technical
               | enforcements, who is now potentially personally liable.
               | 
               | It's garbage, but hey ho.
        
             | efdee wrote:
             | > That is, unless the enterprise has policies to abide by
             | disallowing API calls
             | 
             | ...What?
        
               | tl wrote:
               | Welcome to enterprise, where breaking things is a feature
               | so commonly used Microsoft has documentation for it [1]
               | and things are often deployed by people whose sole
               | concern is "minimize attack surfaces". Our Teams
               | installation not only disables API calls (official Teams
               | client only), chat sessions are deleted if no one posts
               | to them meaning most chat history is lost every weekend.
               | 
               | [1] https://docs.microsoft.com/en-
               | us/office365/troubleshoot/acce...
               | 
               | Microsoft uses these anti-features as a selling point,
               | and in a large enough organization, it's not immediately
               | clear who turned them on or who can turn them off.
        
               | tomrod wrote:
               | What a perfect way to describe the situation.
               | 
               | Imagine an enterprise disallowing all VCS service
               | providers -- whether hosted on-prem or cloud -- because
               | they use SSH instead of HTTP.
        
               | lloeki wrote:
               | You think you're joking but I've lived through exactly
               | that. Reason: SSH cannot be examined by a HTTP proxy. The
               | moment we raised that HTTP CONNECT is a TCP passthrough
               | thus equivalent we got to install a bespoke root
               | certificate on our machines for the proxy to MITM every
               | single connection.
        
               | tomrod wrote:
               | Yep. Sounds like a common-enough pattern then. (I wasn't
               | joking in my post).
        
               | userbinator wrote:
               | If the official client can still post and receive
               | messages, what's preventing anyone else from doing it in
               | the exact same way...?
               | 
               | Or is this something stupid like a user-agent check?
        
             | tptacek wrote:
             | It's self-evidently false that the whole value proposition
             | of Slack is control. The value proposition is, obviously,
             | "IRC but more stuff, with searchable, durable messages".
             | Which is why all sorts of groups that don't care about
             | control at all still use Slack, rather than IRC, to
             | coordinate.
        
         | miked85 wrote:
         | In my experience, Teams has been a terrible alternative to most
         | every option out there, including IRC. The entire UI/UX seems
         | like an afterthought at best.
        
           | folkhack wrote:
           | Agree - it's just Microsoft buy-in at this point. Every
           | product from Office 365 to Teams to just Windows itself is
           | suffering.
           | 
           | To think people build their businesses on this is mind
           | boggling.
        
         | trixie_ wrote:
         | The integrations are a neat trick, but often end up spamming a
         | channel where people are trying to communicate.
         | 
         | Teams seamlessly works across platforms, and mobile with video
         | chat, files, outlook integration, and screen sharing. Maybe IRC
         | could of been that, but it never happened.
        
           | laumars wrote:
           | Teams is by far and away the worst UI of any chat system I've
           | used.
           | 
           | I get why it's designed the way it is, it's trying to be
           | Sharepoint, Slack, Zoom and Outlook. And as a result it does
           | every single one of them worse.
           | 
           | Sometimes integration is better left as event handlers rather
           | than trying to make IRC behave like a Wiki.
        
             | trixie_ wrote:
             | Yea, but it works cross platform and on mobile. With the
             | ability to carry voice connections from one to the other.
             | Or even switch from wifi to mobile data without dropping.
             | Even view people sharing their screen from mobile. For
             | large teams and businesses I haven't used anything better
             | yet and we've gone through a lot over the years. Also Teams
             | has met some strict Infosec reqs we need for mobile.
        
               | laumars wrote:
               | I cannot comment on the switching between WiFi and data
               | aspect because I've not tried that myself (though it
               | didn't work on my MBP switching between Ethernet and
               | WiFi) but everything else you've described is pretty
               | standard features for video conferencing solutions these
               | days.
               | 
               | I'd like Teams more if it just focused on the video
               | conferencing side of things. It's chat and Sharepoint
               | integration just adds more frustration than anything.
        
               | trixie_ wrote:
               | Seamlessly going from a chat about a problem, to a video
               | meeting, to screen sharing, to sharing files, and then
               | continuing the conversation on mobile, to scheduling a
               | teams meeting later in the week to follow up and fully
               | integrated into outlook is what I'm talking about.
        
               | laumars wrote:
               | Which is fine if your chat UI doesn't totally suck for
               | 99.9% of the other use cases. I'd readily take the
               | additional pain of switching applications if it means I
               | don't have to deal with Teams for chat.
               | 
               | Also all video conferencing and chat applications support
               | sharing files. This isn't some unheard of feature that
               | Microsoft have pioneered. It's been possible since the
               | BBS days. It's possible in XMPP and IRC. It's possible in
               | every other commercial service I've used. And I happen to
               | think Teams does it the worst out of everyone of them
               | because of the weird UI decisions and Sharepoint
               | integration. Compare Slack to Teams and you see what I
               | mean. Files are in lined in Slack and it's easy to
               | preview and work with them. It's a pain in the arse in
               | Teams. Slack also has all the other features of Teams
               | that you're boasting about. And Slack isn't even perfect
               | itself yet it still runs circulars around Teams in terms
               | of usability.
               | 
               | Literally the only thing Teams gets right is the way of
               | marking the confidentiality of shared content. But that
               | doesn't justify the mess Microsoft have made of Teams UI.
               | 
               | I'm not one of these FOSS evangelists who throws their
               | toys out of the pram if we don't use IRC. But Teams UI is
               | really just a clusterfuck of bad design decisions. It's
               | easily the worst designed solution out there. Except
               | maybe WebEx - which is a pretty fucking low bar, scraping
               | the barrel really.
               | 
               | Microsoft know they automatically win the enterprise
               | because of AD and Office integration. So they don't need
               | to compete on quality. They just need to be present.
        
           | lambdaba wrote:
           | There are nice IRC clients out there. I don't use them and I
           | haven't used them in a group, because even in programming
           | language communities many have moved to Discord/Slack, but I
           | would prefer working with multiple simple tools than a
           | monolith, different tools for different uses, and glue them
           | together when needed (it doesn't need to be complicated, and
           | if it is, than some additional effort is justified)
        
             | hiptobecubic wrote:
             | If you look at these communities, there is basically only
             | one feature of Discord/Slack that they use that IRC does
             | not easily provide and that's ephemeral/mobile. If I go
             | offline for an hour in IRC, I lose a bunch of messages
             | unless I've done some backflips to set up some kind of
             | archiving/replay in a separate failure domain (e.g. znc
             | running on gcp). With chat services, the service is
             | essentially znc for free.
             | 
             | The rest of the shift is explained by discord being popular
             | for other use cases (e.g. as a twitch companion),
             | overwhelmingly dominated by younger users. IRC isn't
             | getting _new_ users and over time, this means the community
             | will migrate due to turnover. Thank god we at least have
             | things like matrix bridges, but discord is a lost cause.
        
               | lambdaba wrote:
               | I think the latter argument is 90% of the reason. Too bad
               | this new generation doesn't have an opensource base of
               | software to work with, or rather somehow didn't get
               | acculturated to the existing one. Actually, that's
               | probably because there were those few "killer features"
               | such as offline messages that the existing systems didn't
               | have.
        
               | LinuxBender wrote:
               | There are web front-ends to IRC that can mitigate message
               | loss without having to run bouncers. Convos [1] and
               | TheLounge [2] come to mind but there are others [3]
               | 
               | [1] - https://convos.chat/
               | 
               | [2] - https://thelounge.chat/
               | 
               | [3] - https://www.ilmarilauhakangas.fi/irc_technology_new
               | s_from_th...
        
           | hiptobecubic wrote:
           | It did happen, though. Just not in the same way. When it gets
           | to the point where notifications are too spammy, it's very
           | _very_ easy to direct things to use a different channel and
           | it works at huge scale. Anyone who uses IRC more than
           | casually via some web portal is capable of being in more than
           | one channel at a time. Google SRE still uses IRC internally
           | specifically because it always just works and does what
           | people need it to do.
           | 
           | One of the downfalls of IRC is the notion that everything
           | should happen _in_ the chat. There 's no reason you can't
           | have a pastebin and a file server and screenshot sharing
           | service, most of which don't matter anymore after 5 minutes
           | anyway. It works really well and in fact, we _kept_ using
           | them after switching to fat chat because it was a better
           | experience. There are reasons to want a fat chat client
           | (primarily mobile, imo), but having used both for many years,
           | the featureful chat client ends up being worse than just
           | sharing links most of the time.
        
             | igetspam wrote:
             | I find that the "fat" clients encourage bad behavior that
             | IRC used to allow people to handle independently. Examples:
             | 
             | * bot spam that I can't /ignore
             | 
             | * "inviting" people to channels tht you can't opt out of
             | (invite is slack terms is yank. there is not option to say
             | no)
             | 
             | * inline sharing of screenshots of article snippets that
             | support an argument but not sharing links to the source
             | material
             | 
             | * so... many... channels...
        
               | giantrobot wrote:
               | > so... many... channels...
               | 
               | To compound the problem of many channels the UI uses an
               | insipid three column layout. I like to arrange chat
               | windows, tail -f terminal windows, and other monitoring
               | things in a "dashboard" layout in a workspace. That way
               | it can update in the background and if I am curious about
               | the state of something I can decide to context switch and
               | bring up that workspace to get an update. I can then deal
               | with an issue or go back to the task at hand.
               | 
               | Slack and HipChat and all the other Electron-based
               | attention siphons do not let me arrange their UI in a way
               | that works for me. I _hate_ notifications with the heat
               | of a thousand suns and turn just about all of them off on
               | all my devices. Slack et all hide the state of all but
               | one channel by default and want to use notifications or
               | stupid icons to show there 's unread activity. It's the
               | worst UI on the dumbest system but animated emojis!
        
       | evilhackerdude wrote:
       | Are netsplits still a thing in modern IRC network deployments?
        
       | TekMol wrote:
       | IRC is great!
       | 
       | I like the interface way more than Discord.
       | 
       | And it seems to attract more knowledgeable people.
       | 
       | If you are into startups, check out #startups on Libera!
        
       | jokoon wrote:
       | I love IRC, unfortunately it doesn't work properly with
       | smartphones because they have a "loose" connectivity (4G towers
       | data etc). I'm not sure IRC apps can deal with this already. It
       | would be nice to have some update to the IRC RFC.
       | 
       | If it was well supported for smartphones, I'm still wondering if
       | it would cause some bandwidth costs to servers.
       | 
       | EDIT: I know about bouncers, but I would prefer to do without.
        
         | raydev wrote:
         | I just pay $5/month for IRCCloud. The iOS app could be a lot
         | better, but not only does it make IRC work like any standard
         | chat app that allows messages while you're away, it also offers
         | some modern bare minimum UX like inline images and link cards.
        
         | progval wrote:
         | > I'm not sure IRC apps can deal with this already. It would be
         | nice to have some update to the IRC RFC.
         | 
         | They can do it with some help from the IRC server:
         | https://ircv3.net/specs/extensions/chathistory +
         | https://github.com/ergochat/ergo/blob/master/docs/USERGUIDE....
         | 
         | If the server itself doesn't support it, you'll need to add a
         | bouncer inbetween, which is still very common, unfortunately.
        
         | superkuh wrote:
         | It'd be nice if as a society we stopped making all software
         | worse in order to make up for smartphone's many limitations.
        
           | Ekaros wrote:
           | IRC clearly had same problems already back in the day when
           | many users were still on dial-up connections...
        
         | YetAnotherNick wrote:
         | You can use IRC bouncer for that. e.g. https://wiki.znc.in/ZNC
        
           | jokoon wrote:
           | It's not free, and it add hardware and software and
           | bandwidth.
        
         | petschge wrote:
         | It works well for me by using screen and irssi on a server and
         | then using mosh on the smartphone to connect there, as well as
         | irssi-notifier for notifications. Has worked well around the
         | work, including traveling in africa, from high speed trains in
         | Europa and airplanes above the Atlantic. And before you say
         | "but that needs a server". Yes it does. A little VM as a shell
         | host that is cheaper be month than the cheapest nitro package
         | on Discord. Not even one coffee per month. If you don't think
         | it's worth to have control over your communication for that
         | price, I can't help you.
        
         | tenebrisalietum wrote:
         | If you are into self-hosting, thelounge is a great web-based
         | IRC client that works well on my iPhone. It does its magic by
         | staying connected to servers on the backend, similar to a
         | bouncer.
        
       | DogLover_ wrote:
       | I used IRC for gaming around 2004 - fond memories!
       | 
       | I recently tried Discord to find programming communities but I
       | just don't get it. When you join a server you are automatically
       | subscribed to all the channels. And apparently you can't leave
       | them, you can only 'silence' them by manually doing that for each
       | channel. After a few days I just gave up as I could not keep up
       | with all the notifications.
        
         | grishka wrote:
         | Discord is horrible and I don't understand why so many people
         | like it so much.
         | 
         | First thing I do when joining a new "server" is to mute all and
         | any broadcast (@everyone/@here/roles) mentions. Broadcast
         | mentions should have never been invented.
        
           | EamonnMR wrote:
           | People like it because people enjoy ownership and power. That
           | and it's way more user friendly for newcomers. Also before
           | Zoom got popular, it was the best voice chat for a while.
        
         | cout wrote:
         | An IRC network can have thousands of channels; a discord server
         | typically has dozens.
         | 
         | Think of a discord channel as a permanent thread or a topic and
         | a discord server like an irc channel. I find discord's model
         | more manageable than irc for a large number of users; irc
         | channels become a mess around 50-100 active users. Dividing the
         | conversations into topics helps a lot.
         | 
         | (I have been using irc since around 1994 and am still somewhat
         | active.)
        
           | LinuxBender wrote:
           | I would imagine one could tweak the web frontends like Convos
           | or TheLounge to make IRC look and behave like Discord at
           | least in terms of text chat and channel/user visibility. I
           | theorize that's what they are doing behind the scenes.
        
         | akpa1 wrote:
         | Discord does allow you to set notifications across an entire
         | community to "all messages" (which is the default), "only
         | mentions" or "nothing" if you right-click on the community
         | icon.
        
           | DogLover_ wrote:
           | I was not precise when I said notifications. I already set it
           | to "only mentions". My problem was that each channel will
           | "light-up" when anyone is commenting in them. I have to mute
           | each channel or mark all as read for the whole server to
           | avoid this. On IRC you opt in to channels.
        
         | Minor49er wrote:
         | If you think about it like this, it makes more sense:
         | 
         | A server is to IRC what Discord is in its entirety
         | 
         | A channel is to IRC what a server is to Discord
         | 
         | If IRC let you subsection a channel, those would be channels to
         | Discord
         | 
         | And instead of obnoxious netsplits, you get annoyed with popups
         | to buy Nitro or whatever other crap whenever you log in
        
       | tiffanyh wrote:
       | Speaking of 'simplicity', this blog has a fantastic design. The
       | CSS is only ~30 lines and is largely just applying
       | spacing/padding.
       | 
       | No JS, no custom font, etc.
       | 
       | https://susam.net/css/main.css
        
         | lambdaba wrote:
         | It's pretty nice indeed. I like the use of keywords for sizes
         | "thin", "large", and the shorthand hex for colors, and the fact
         | that there's zero boilerplate and only styling what's actually
         | used.
        
           | hiptobecubic wrote:
           | Agreed, but I _hate_ this:
           | 
           | a:link, a:visited { color: #00e; }
           | 
           | Why do this?
        
             | lambdaba wrote:
             | Oh, yeah, that should be illegal.
        
               | Mezzie wrote:
               | Right to jail.
               | 
               | Also to a mandatory review of WCAG standards.
        
             | janc_ wrote:
             | Fortunately that's easy to override with some custom CSS,
             | but I also don't understand the reasoning behind that...
        
             | susam wrote:
             | Thank you for pointing this out. I have fixed it now. You
             | should no longer see this issue after a hard refresh.
        
       | nine_k wrote:
       | I'd say it's in the same general box as the simplicity of 8-bit
       | computers booting into Basic interpreter, and the simplicity of
       | Legos.
       | 
       | It's wonderful when you can have your toys in a sandbox where you
       | use and develop them mostly for fun, and for scratching your own
       | itch, away from well-moneyed interests. No need to carefully
       | identify participants. No need to encrypt, or otherwise
       | complicate the implementation. No need to efficiently serve
       | millions of users. No need to add bling to attract more of those
       | who barely cares. (The latter is not the case with Legos lately,
       | though.)
       | 
       | This is why I think that a lot of innovation starts in the
       | fringe, and looks like mostly useless toys, until one of these
       | toys proves very useful for "real world" needs.
        
       | hammyhavoc wrote:
       | I use Matrix and bridge in IRC, and third-party platforms
       | whenever necessary. So much less cognitive load having it all in
       | one place.
        
       | bitwize wrote:
       | Have we learned nothing from the iPod and Dropbox? Simplicity
       | doesn't matter. What matters are:
       | 
       | 1) How easy is it to use?
       | 
       | 2) What features does it offer me?
       | 
       | 3) How well does it integrate into my lifestyle?
       | 
       | 4) Do my family and friends use it? Can I get them to?
       | 
       | Slack and Discord win on ALL FOUR of the above points vs. IRC.
       | IRC is a dead horse... stop beating it, please.
       | 
       | "The only thing that matters in software is the experience of the
       | user." --Ryan Dahl
        
       | agumonkey wrote:
       | I still have discord somewhere.. but I don't use it. I think the
       | technical simplicity of IRC also leads to chiller chans (and I
       | know there are toxic people on IRC but it feels like an open
       | garden unlike tiny realms with a lot of efforts put in setting up
       | servers and rules by the original team)
        
       | remram wrote:
       | I don't know if a snippet of IRC shows it being simple. The
       | colons are quite mysterious, especially to anyone who's seen
       | HTTP/POP/SMTP. They look out of place with whitespace _before_
       | rather than _after_ , and are used for two separate things...
        
       | lambdaba wrote:
       | Write programs that do one thing and do it well.
       | 
       | Write programs to work together.
       | 
       | Write programs to handle text streams, because that is a
       | universal interface.
       | 
       | ; basically.
       | 
       | (https://en.wikipedia.org/wiki/Unix_philosophy)
        
         | alkonaut wrote:
         | While some of those guidelines offer some value still, end-user
         | programs dealing with text just aren't ever going to be a
         | thing.
         | 
         | People expect to be able to paste a photo or screenshot just as
         | easily as they post a sentence. Requiring a second app to do it
         | (posting a link) isn't nearly as good a UX as simply pasting in
         | pictures.
        
           | lambdaba wrote:
           | Well, in practice you can have binary input, as many programs
           | do, but human-readable free-form text is the simplest
           | interface there is.
           | 
           | We just need more modern terminals that can handle that.
        
             | alkonaut wrote:
             | > We just need more modern terminals
             | 
             | Yeah like smartphone apps , webapps, and desktop guis...
        
               | lambdaba wrote:
               | Those are apps, I mean a glue / universal interface layer
               | that's 100% owned by the user
        
           | yjftsjthsd-h wrote:
           | Then have the chat client automatically upload to a service
           | and generate a link behind the scenes.
        
             | alkonaut wrote:
             | That's what any client does of course. But the default
             | should be to also display the images (or clickable
             | miniatures). Nothing that can't be solved in any protocol -
             | but you are both having to duct tape several services (a
             | poor UX for the maintainer of the service) and what you are
             | creating is basically converging on any of the modern
             | alternatives.
        
           | u801e wrote:
           | > Requiring a second app to do it (posting a link) isn't
           | nearly as good a UX as simply pasting in pictures.
           | 
           | But what about the UX of other people in the channel? Someone
           | posts an image and the previous text is moved off screen. Now
           | they have to scroll up to read what they were just reading.
           | What about the case where someone posts an animated gif which
           | becomes a distraction that requires you to stop the animation
           | or hide it? What about the case where multiple animated
           | images are posted which forces your client to use a lot of
           | CPU resources to render them[1]?
           | 
           | [1]
           | https://mobile.twitter.com/slackhq/status/879755518843252736
        
             | alkonaut wrote:
             | Auto playing animation can be a client setting. As can
             | rendering pictures at all.
             | 
             | Regardless, the UX of slack, discord, teams etc. is
             | different from IRC because it's what people expect from an
             | IM client
        
               | u801e wrote:
               | That may be true for personal use, but not necessarily
               | true for business related use. That's because the former
               | case is limited to users who want to use the product
               | precisely because of its features. In the latter case,
               | users are required to use the product as part of their
               | job. Given that, the ideal case would be to not introduce
               | features that lead to a negative user experience.
        
       | Blikkentrekker wrote:
       | The simplicity also comes with problems, such as nickname
       | registration in practice being implemented with bots that have
       | administrative rights, which can lead to social engineering
       | exploits and poor standardization of their interfaces, or the
       | fact that the protocol does not seem to support sending an
       | encoding so it relies on the gentleman's agreement that everyone
       | use UTF-8, which works until that one user using latin-1 enters
       | and starts sending characters that appear strange to everyone
       | else.
       | 
       | It could be a little bit more complex in my opinion. Perhaps it
       | is time for servers to start supporting an i.r.c. 2.0 protocol
       | but otherwise allow 1.0 and 2.0 users to still communicate with
       | each other to facilitate the migration.
        
         | janc_ wrote:
         | You mean IRCv3? It's not all ready/implemented yet, but some of
         | it is already in daily use.
         | 
         | https://ircv3.net/
         | 
         | For example a server can tell the client that it only accepts
         | UTF-8: https://ircv3.net/specs/extensions/utf8-only
        
           | Blikkentrekker wrote:
           | Well I am still sometimes seeing this user that is sending
           | latin-1, confusing everyone else.
           | 
           | I also wish that nicknames would not be handled via the hack
           | of bots, as this sysem allows one to take a nickname one does
           | not own, at least for a short while, but simply no identify
           | it and ignore that message, and thus impersonate another
           | user.
        
       | tenebrisalietum wrote:
       | IRC, the protocol, is really simple. It's so simple it's almost
       | the most minimal chat protocol you could possibly layer on top of
       | TCP - it's literally a live message routing protocol with the
       | least support for the notion of persistent users possible.
       | 
       | There was a joke on bash.org that IRC is basically multiplayer
       | Telnet and ... they aren't really too far off.
       | 
       | This has good and bad things about it:
       | 
       | Good: it's extremely flexible.
       | 
       | Good: it's extremely efficient - your major IRC servers at there
       | peak were probably one machine, possibly single core, and handled
       | 20,000+ active connections. Protocol is extremely proxyable and
       | tunnelable.
       | 
       | Good: It works well over dialup. If you can get .002Mbit/sec
       | between you and the server you can use IRC.
       | 
       | Bad: no real concept of identity - everything is based on IP
       | addresses and current connections. Connection drops, you're gone.
       | Things have arisen to address this (NickServ, etc.) and using a
       | bouncer has always been a thing.
       | 
       | Good: no real concept of identity - if your IP is cloaked or
       | you're not accessing from your home IP, you're very anonymous.
       | 
       | Bad: First user on a channel is it's op and it's owner and can
       | control the channel. If all ops connections drop, someone can
       | take it over. DoSes/DDoSes to disrupt channels have been a thing.
       | Things have arisen to address this on modern IRC (ChanServ) but
       | before then, any really serious channel had to have a network of
       | bots with out-of-band coordination to protect it (eggdrop).
       | 
       | Bad: Doesn't support file transfer directly. This is done with
       | another protocol DCC which is hard to work with over firewalls,
       | etc.
       | 
       | Bad: Media and link support is up to clients and requires non-IRC
       | protocols to be effective. You're not posting pictures in IRC
       | channels unless you are using a client that supports it such as
       | thelounge, and even then what thelounge does is upload your
       | pictures to a local server.
       | 
       | Good: Mature IRC clients give you a lot of control.
       | 
       | Bad: Mature IRC clients are complicated.
       | 
       | Bad: IRC is one of those protocols that arose before encryption
       | was considered a basic need. Modern IRC supports SSL but all it
       | takes is one client connecting non-SSL to ruin it like email,
       | unless the server is SSL only.
       | 
       | Bad: Mature IRC servers tend to be from the age where the
       | Internet was ruled by universities. So, DNS is relied on for
       | security and identity far more than it should be. Configuration
       | of mature IRC server daemons I find somewhat complex and
       | difficult.
        
       | epalm wrote:
       | As an aside, can I just say how refreshing this website is? It's
       | 100% content, just text. Now view the html source, and be amazed.
       | I daresay the author actually wrote the html by hand. I suppose
       | it could be a very conservative and conscientious site generator
       | that even respects line length, but I'd be surprised. Short css
       | file for minimal style tweaks, and readable markup. Fitting that
       | the article is about simplicity. When I first learned html (late
       | 90s) this is what it looked like. Very nice.
        
         | Iv wrote:
         | Possibly a pandoc generated html from markdown. My favorite way
         | of doing things.
        
         | Jorengarenar wrote:
         | Source code [0] is available on GitHub; looks like they wrote
         | their own simple site generator.
         | 
         | I've been thinking about something similar (maybe even simpler)
         | for my blog too.
         | 
         | [0]: https://github.com/susam/susam.net
        
           | susam wrote:
           | Thank you for sharing the link to the source code. My simple
           | site generator is based on my wife's project makesite.py[1].
           | In fact, I used her site generator for a few years. Later I
           | reimplemented makesite.py in Common Lisp. As a result, it
           | inherits the design, layout, minimalism, and simplicity of
           | makesite.py.
           | 
           | [1] https://github.com/sunainapai/makesite/
        
         | signal11 wrote:
         | It does appear to be handcrafted HTML, generated using [1].
         | 
         | > This is a static website generated using a Common Lisp
         | program. See github.com/susam/maze for the source code of this
         | website[2]
         | 
         | > Just like the original website, every line of HTML and CSS
         | that appears in the website is handcrafted.[3]
         | 
         | [1] https://github.com/susam/maze/blob/main/site.lisp
         | 
         | [2] https://susam.net/maze/about.html
         | 
         | [3] https://github.com/susam/maze
        
         | Zababa wrote:
         | It seems like the CSS used is shared under the MIT license by
         | the author here: https://github.com/susam/spcss.
        
         | pxeger1 wrote:
         | Unfortunately, the inline code is dark blue, unreadable in dark
         | mode.
        
           | susam wrote:
           | Thanks for commenting about this issue here. I had
           | accidentally removed the CSS code for pre, code, etc. in a
           | recent commit. Fixed it now.[1] You should no longer see this
           | issue after a hard refresh.
           | 
           | [1] https://github.com/susam/maze/commit/1d58e13
        
       | badrabbit wrote:
       | I am if the opinion that IRCv3 is horrid and has taken the email
       | route of (forgive the language) "polishing turd". You cannot have
       | a secure irc that is backwards compatible, you can have separate
       | default ports and uri schemes like http vs https, but you can't
       | connect to http and opportunistically redirect 301 to https and
       | call that an improvement of securiry because it is actually
       | worsening security by introducing false assurances of securiry.
       | 
       | I also believe it is possible to have a protocol that has proper
       | E2EE and simple enough to where you can use netcant and one other
       | tool to use IRC.
       | 
       | Trust-on-first-use authentication (like signal or ssh) is also
       | terrible in practice on its own. Keep it simple. Let the servers
       | handle public key distribution and certification so that
       | compromise of the server/mesaaging infrastructure is required to
       | mount identity attacks, then do the normal TOFU authentication so
       | users won't have to trust middleware. Have a commandline tool
       | that "connects" to the other user (like ssh or sendmail) and
       | opens a socket/fd you can use with a proper frontend or just
       | echo/netcat to it.
        
       | hoyd wrote:
       | Nice article, thanks :-) I grew up with IRC and realize that it
       | isn't the same any longer. It isn't the place where everyone is,
       | which some social networks seem to be today. The local
       | communities on IRC, a channel for a town used to be the place to
       | be and meet others.
        
         | erk__ wrote:
         | IRC is probably used by more people now than ever before,
         | though in a very different way than before. The whole of
         | Twitch's chat infrastructure is running on it and it have
         | hundreds of thousands of concurrent users. Though for most
         | people it is running though a websocket instead of a raw
         | socket, but the commands are the same a long way
        
           | Jasper_ wrote:
           | The IRC protocol is for the bot API only. The chat on the
           | website uses a custom protocol, and the IRC daemon has always
           | been a custom implementation with weird quirks.
        
             | erk__ wrote:
             | It is a custom protocol that follows IRC very closely, they
             | just have a lot of extensions on it to add support for the
             | things on twitch. to start a connection you send PASS,
             | NICK, USER and then JOIN, over the websocket so I would not
             | really call it a custom protocol. The url it uses is
             | wss://irc-ws.chat.twitch.tv/ as well.
        
         | prox wrote:
         | I think Discord took over the role of IRC. It has a lot of same
         | functions and terminology.
        
           | mnd999 wrote:
           | Discord is internet relay meme.
        
       | stavros wrote:
       | Same with SMTP and POP, I would routinely send or get email via
       | telnet when I wanted to debug or delete some messages. They're
       | all very simple protocols.
        
         | anthk wrote:
         | Usenet too. Getting news and discuss stuff "offline" and
         | fetching/sending the messages once a week it's magical and
         | resting.
        
           | mrweasel wrote:
           | The fall of Usenet more and more looks like a mistake. I'd
           | love to have hyper-localized newsgroups, in place of
           | Facebook.
           | 
           | Often local stuff like: "Why does is smell like somethings on
           | fire", "Has the water been turned of" or is "Is soccer
           | cancelled this week?" is only posted on Facebook. So if you
           | don't have Facebook, you can't get those information. Then
           | again the Facebook algorithm will hide it for three weeks
           | before deciding that you need to know that the hot water will
           | be turned of for quarter of the town at three o'clock.
           | 
           | I feel that Usenet would be ideal for this.
        
             | anthk wrote:
             | On Usenet, MUDs, and IRC, look what could be achieved back
             | in the day by tweaking the source code of a MUD: they
             | converted it into a full groupware tool thanks to TCL/TK
             | and some glue here and there.
             | 
             | https://paparisa.unpatti.ac.id/linux_journal_archive_1994_2
             | 0...
        
             | u801e wrote:
             | Some newsgroup messages have a distribution header. But I
             | don't really recall that feature being used at all during
             | the time I was on Usenet (late '90s till about 7 years
             | ago).
        
               | mrweasel wrote:
               | I was just suggesting having a group or two for your
               | town, rather than just having them for major cities.
        
         | apples_oranges wrote:
         | In my experience, email protocols are anything but simple as
         | soon as some security or authentication comes into play.
        
           | fulafel wrote:
           | Depends on the auth mechanisms in use, the simplest ones are
           | still still pretty straightforward. Nowadays you just use the
           | TLS equivalent of telnet (openssl s_client).
           | 
           | POP3:                 1. run openssl s_client -connect
           | myserver.example.com:995       2. enter two commands: "user
           | myusername" "pass mypassword"       3. profit
           | 
           | SMTP & AUTH PLAIN is only slightly more complicated but
           | similarly just an additional protocol command, connecting
           | with s_client. (You need to generate the auth string in
           | another shell window with: echo -ne
           | "\0username\0password"|openssl base64)
        
       | thenerdhead wrote:
       | I miss IRC. The simplicity in design is one thing. I think the
       | other part I miss is the pseudonyms and having an identity not be
       | directly attached is another.
       | 
       | I remember joining so many IRC channels to learn about everything
       | in college. You'd get help and be humbled by the many regular
       | names in each channel. There was more of a human element to it as
       | most people simply acted as extensions of themselves.
       | 
       | You think about Slack, Discord, and Teams today and there's a
       | whole corporate or personal identity attached behind each name.
       | You can't always act like you would in IRC. You can't always be
       | blunt and to the point. You can't call someone an idiot or to
       | RTFM in the most sincere way possible.
       | 
       | When things were simple with a single pseudonym and a message,
       | things were great. Now things are much more complex. Threads,
       | DMs, notifications of mentions, bots, gifs, etc. It's definitely
       | been changing quickly, but it was nice when everyone's attention
       | was in one place instead of fragmented in each of these new apps
       | that are just glorified IRC.
        
         | jjulius wrote:
         | Totally agree! Just one ever-so-minor nitpick...
         | 
         | >When things were simple with a single pseudonym and a message,
         | things were great. Now things are much more complex. Threads,
         | DMs...
         | 
         | IRC has DMs too, /msg
        
       | beanjuiceII wrote:
       | I've finally migrated away from the last of my irc channels the
       | last remaining people except for one holdout agreed it's time to
       | move on. Things have been way better since the switch..I wouldn't
       | go back, a new bar has been set
        
         | Rendello wrote:
         | Preferred chat notwithstanding, at least the holdout didn't go
         | the xkcd route: https://xkcd.com/1782/
        
       | iqanq wrote:
       | >I often remark how simple the Internet Relay Chat (IRC) protocol
       | is and how that has fostered creativity in the lives of young
       | programmers growing up in the late 90s and early 2000s. For many
       | of us who were introduced to the Internet during that time,
       | writing an IRC bot turned out to be our first non-trivial hobby
       | programming project that involved network sockets, did something
       | meaningful, and served actual users.
       | 
       | While that is true, most of those who wrote bots did not
       | meaningfully interact with the protocol because they used
       | abstractions (eggdrops, mirc scripts, etc). The simplicity of the
       | protocol was unrelated, as a well abstracted library for any
       | other protocol or even service (such as twitter) can be as
       | simple.
        
         | corobo wrote:
         | Admittedly my first bot was indeed in mIRCScript and its
         | abstractions but it wasn't long before I had a !spawn command
         | that was a function that connected sub-bots directly to IRC as
         | a protocol because why not I guess
         | 
         | Also wrote a script that sent email directly for tinkering
         | purposes, later used that protocol knowledge to get my first
         | tech job haha "how does email work?" "how in-depth do you
         | want?"
        
         | FemmeAndroid wrote:
         | Is this true? It's not my experience. My first meaningful
         | programs were raw socket IRC clients as a teenager explicitly
         | because they were simpler to figure out than using things like
         | egg drop.
         | 
         | That isn't to say that most fully featured tools were written
         | from scratch -- I can't speak to that one way or another. But I
         | know a lot of people who were learning about internet protocols
         | by using telnet to interact directly with IRC servers then
         | transferring that knowledge into a socket-level
         | reimplementation of the protocol.
         | 
         | RFC1459 certainly proved to me that RFCs can be simple and
         | worth reading. And the whole experience taught me early that a
         | simple enough, well documented protocol could be easier to use
         | than a wrapper library in a foreign language. I certainly use a
         | lot of libraries these days, but those lessons have served me
         | extremely well.
        
           | anthk wrote:
           | With ii you can write a bot today with any language reading
           | and writting to files. Even with sh.
        
           | [deleted]
        
         | lewiscollard wrote:
         | I dunno, I was there in the very early 2000s and as I remember
         | it, for the subset of programmers I knew on IRC at the time, it
         | was as Susam says: writing a shitty IRC bot - not a script,
         | something from "scratch" that actually spoke the IRC protocol -
         | was almost a rite of passage back then. From rose-tinted me-
         | tinted glasses, I seem to remember that IRC-bot-related
         | questions were a plurality of the questions asked in #vb on
         | Dalnet back in the day!
         | 
         | You are also right to some extent as well; I wonder how much
         | mIRC scripting has been underestimated as the gateway drug to
         | programming for thousands.
         | 
         | (Rose-tinted/me-tinted disclaimer: the first non-trivial
         | program I wrote was an IRC quote bot, in Visual Basic. I later
         | rewrote it into Python, because I wanted to learn Python, which
         | eventually led to my day job today...)
        
           | littlecranky67 wrote:
           | Equally rose-tinted user here. My first unix service ever
           | configured and started, was eggdrop (and it took me hours to
           | get it running on a shell account).
        
       ___________________________________________________________________
       (page generated 2022-01-09 23:00 UTC)