[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)