In this listener-inspired episode, Jonathan and Chris chat about Internet Relay Chat (IRC), a chat protocol that predates the World Wide Web.
Learn more about your ad-choices at https://www.iheartpodcastnetwork.com
Brought to you by the reinvented two thousand twelve Camray. It's ready. Are you get in touch with technology? With tech Stuff from how stuff works dot com. Hello again, everyone, and welcome to tech stuff. My name is Chris Poulette and I am an editor here at how stuff works dot com. Sitting across from me as he always does on Friday afternoons when we talk about tech things, is senior writer Jonathan Strickland. Remember, no matter where you go, there you are dre pithy. Thank you. So today we wanted to uh have a little chat. Yes, actually we want to have a little chat about a chat protocol or a chat system that predates the World Wide Web. And this, uh, this is a request from Charles and also from Christopher. These are two independent requests. Both Charles and Christopher wanted to hear a little more about I r C or Internet Relay Chat. Yeah. Um, actually it dates back to so this is a pretty pretty uh robust protocol to have made it, uh you know, good, almost twenty two years now. It's August of is when it started to make its appearance. And um, as a matter of fact, that's that was sort of my introduction to the Internet. And I say sort of because it wasn't exactly I r C UM. I became acquainted with using online services through a similar system uh called bitnet Relay chat um. And as a matter of fact, one of the founders of of I r C and I'm probably totally mispronouncing this, um Yarko arkin In, who has a fin Uh. He apparently took some of his direction from using bitnet chat um. And the two systems really aren't all that different, but uh, it is a has a much different system, uh, or at least it's a different protocol from what you would see for so many the other different Internet uses, right. Uh. And leading up to I r C, before that, there was a program called Talk, and Talk was really it's like what would happen if you were to phone someone and uh, it's just a regular phone line and so it's two people, one person on either end. And that's the extent of that conversation. That was the limitation of Talk and uh and really the I'm not even gonna try and say his name because my finish is terrible. I'd be finished myself at any rate. Our our intrepid inventor thought, well, why should we be limited to having two people in a single discussion. When the Internet really gives you the opportunity to connect with people all over the world, why doesn't need to be a direct connection to two We we could have a centralized connection where a connecting point where where thousands of people potentially could join in and have a conversation. Yeah, systems like talk and other early different communication protocols like y talk and x y z z Y. Remember that one, Um, we're we're seriously talking like your Your whole screen would essentially look like uh, a divided window uh and and two chats you would see what the other person was typing in. Uh. They weren't. It wasn't even integrated like AIM or h I c Q or any of the other chat services that are in use today. You know, it's like this is everything your friend has said, and this is everything you have said in reply. So you could go back and forth between the other and UM and gradually. Yeah, that the idea of of Internet relay chat actually would divide it up and divide up the service into different channels, and you know, theoretically you could be talking about you know, a whole different conversation on one channel where from the people who are talking in other channels. So it's it's basically one service where everybody goes and you can go from channel to channel and talk about whatever is the topic of the day or topics of the day are. And depending on on when you used I r C, because it did evolve over time, that's certificantly. In fact, you could occupy multiple channels at one time, depending on their client. Uh. Client is an important thing that we should talk about very quickly. UH. So you've got a server that's hosting this program, the I r C program, in order to access that information. In order to be able to participate in these conversations, you as a user would need to have a client. And there are different ways of getting clients. Uh. You could compile a client, get a sort, get source code, and compile your own client if you were using a Unix based system, um, which would require a level of of tech savvy that is beyond my own means. But just because I've never used a NEX system, if you never used Unix, well, I mean that's being that's not entirely true. But I've never got to say I thought you had. I've never I've never owned a you know any sort of machine or worked exclusively on a Unix based machine. I've worked. My time with Unix has been very limited, I understand. So, uh so I would not be able to do this. I just don't have that knowledge. I mean it's not that I couldn't learn. I just if you sat me down in front of a computer right now, I'd be like, uh, help or maybe slash help. So but once you had a client to access this, then you could go and uh and start having a conversation with other people. Now, some people have have a little difficulty grasping the whole client concept, but I'll give you a very simple analog to that. Your web browser is essentially a client. It's a client that lets you access the world Wide Web. Yeah. I think this is a good time to remind people to that, UMU, the Web is only part of the Internet. The Internet itself is is a network of networks, is more or less the Yeah, it hundreds of them. Actually, Yeah, you've got you've got your mail protocols, you have the world Wide Web. Um you can still do things like use Gopher or waste or I r C or you know all these different other things. Yeah, use net and you know we should do a podcast on that, Yeah we should. Um, but uh but yeah, I mean there are there are a number of things that that travel over the Internet and I r C is just one of those protocols um that can be used that way. So yeah, you need in order to do to actually access that service though, you need a program that can understand that traffic and make it into something useful for you. Otherwise it's just a bunch of ones and zeros. So back when I r C was was really pretty young, um, you would be using one of these client and that you would have to have installed on your computer. You would have to have either built it or had someone else build it for you. Uh. Today it's a little different. You can actually find clients that are built into web pages so that you could go to a web page and log into an I r C chat area, um, and you never have to worry. You know, it does all the work for you, all the all the coding and everything is is essentially hidden away from you and you can just log in. Now, that doesn't necessarily mean that the commands are all going to be intuitive to you, because it turns out there are lots and lots of different commands that you can use within I r C while you are having conversations, And some of them are very basic, things like being able to create a channel so that you have a separate channel that you can you can go into and have other people go into if you want to take part of a conversation away from the main room that you're in. The idea here being that perhaps maybe you and three other people you find out are all huge fans of a particular book series, let's say yes, so that the room in general doesn't have that interest. Well, the polite thing to do would be to create a room specifically for you and your three new book friends to go to and have a conversation that doesn't doesn't interrupt the flow of the general conversation. Yeah, and I r C. It's considered pretty rude to have off topic conversations. Now, there are some channels that are are generic, kind of free for all. Yeah and UM usually on what I was going to get into some more depth on this, let's let's just say usually there is something called a channel called talk or chat. These are very very generic, but if you were um and and they also often have a description that goes along with it. So you might have a channel for say Terry Pratchett. Let's go with an author, your channel would want to you'd want to do something descriptive and uh, you know, generally in the title of the h of the channel, the channel name, you would often see the topic or a topic with a little descriptive material like, you know, Terry Pratchett the greatest author ever or something like. It might just be as something as simple as hashtag Pratchett fans, Yes, exactly, um and yeah. That that's something else to remember too, is the hashtag is generally what shows you the uh that it's a channel name, which is important both for their command and to identify where you are in I r C. Yeah, because they can get kind of confusing. I mean, you also create a nickname when you go to an I r C chat rooms. You know, you might have one assigned to you, or you can always choose your own. Some of them even allow you to register your nickname. Uses a thing called nick Serf, which disappeared for a while off of I r C. It was hosted in Germany for a while, then disappeared and then came back. Um. Which it's really just an administrative system that keeps nicknames and passwords together so that you can reserve a nickname because of course, otherwise what will happen is if you log off, then anyone else could log on choose the same nickname you use, and then that can cause confusion, whether it's intentional or not. Right, right, Like if you have a like you want your nickname to be optimist, prime or something okay where it's you know, well, something where it's really identifiable, and presumably more than one person could choose it, just you know, just by chance, not necessarily by design. Um. Yeah, as a matter of fact that I've had that happen to me on different channels, and um again in the now is a good time to point that out. Um, there are actually a number of different UH servers that that take uh different I r C protocols. So um, there is not one standard I r C that is roaming around the world. And apparently in the past um twenty two years or so, there have been disputes between people who are running I r C. So you have uh, you know, the r C net, which is which is part of the original group, and then you have e F net. I remember under net also being a very very large UH group of I r C folks, and they have they also maintained multiple servers in those groups, and from what I can tell, UH, it appears that from time to time the people behind those UH services have maybe butted heads with one another, because when I started looking up commands, I noticed they were different. Some of the commands were different than what I had remembered. I imagine that's probably because they have updated that. But I understand that UM having multiple nicknames and the way to deal with those has also been an issue between the different UH server organization groups and networks of I r C servers, so they may be running slightly different versions of you know, the I r C protocol. And when you have these issues, like let's say that I logged into I r C and realized that the handle I wanted has been taken by another user, and let's say even that I've used that handle of the past on I r C, UM, there's not a whole lot you can do about it. I mean, you can message the person and say, hey, dude, that's UH, that's kind of my nickname. I'm kind of known for that nickname. Do you mind logging off so I can have it because you can't take someone's name. You can't take someone else's name if they are currently logged into the system. You could add a number at the end, so you know, I could become John Strickland one or John Strickland two or something like that, but I wouldn't be able to be John Strickland, um if someone had already taken that name on I r C, if I if I had not been able to register it. Uh. So that the same thing goes for channels. Let's say you want to create a channel and someone's already taking the channel name that you wanted. It's like the exact same sort of situation. You'd have to message that person, ask them nicely if they would relinquish that channel name for you to be able to use it. Uh, And if they say no, then you know, that's kind of tough luck for you. It's not like someone taking a nickname or taking a channel name is a bootable offense. You know someone They're not gonna get an administrator to boot that person. So there's certain basic commands that everyone has access to, more or less depending on the version of I r C or in the things like slash nick would they all have slashes that precede the command. Yeah, if you just type, if you just start typing when you're in a channel, everyone in the room is going to see the message that the words that you are typing as soon as you hit return. Yeah, it's not real time like, so if you leave that slash out instead of the command that you were hoping to execute, you're gonna it'll be as if you said, quote unquote said that in the room. Yeah, So a forward slash proceeds the command, and then any strings that you need to include after that. Of course, you would want to leave a space in between. So right, So if I wanted to create my nickname, I would do slash in I C K space John Strickland, Yes, and that would change my whatever my generic login name was to John Strickland. And then um, if you wanted to join uh the text stuff channel, you would do slash join and then a space hashtag tech stuff. Right. And there are other basic commands like quit clearly that would make you quit out of the I r C client help, which would get you more information who is, which would give you information about a particular person logged in under a handle You would do you know, the slash who is all one word w H O I S and put in the name, which may or may not give you a good amount of information. All depends on how the person's set his or her account, or who was even work if the person has recently changed the nickname or disappeared. UM, slash away lets people know that you are not paying attention to what's going on in the chat room at that time. So maybe you know, have to get up and go to the restroom, or make a cup of coffee, or put out a fire, or walk a dog, or apologize profusely to a spouse. Then that would be a good thing to put so that people know that you're not paying attention to the screen. I'm sorry what that last one happens a lot to me. Um. But then there and and I shall say, there's also a way of sending private messages to people. You can do slash msg and then a message and that sends it instead of going to the room in general, it'll send it straight to another person. Yeah, that's embarrassing because I thought that that was the way to put monet. Yeah, so you were like you were like frantically trying to poison people and it turns out you were just saying hi, yeah exactly, um um, then there and if they were rebuffing my attempts to poison them with MSG, they could be slash ignoring me. Yes, that's a very useful uh command. If you ever run into trolls them and you know you don't maybe the the administrator of that channel, the the operator that channel doesn't necessarily care if there is a trollish person in there. Ignore is your friend. And if you are a channel operator, if you're the person who owns the administrative power of that channel, you have other commands that are at your disposal, including things like you know, usually there's a kick command where you can kick people from the room if they're being really obnoxious um, and I'm along with other ones. You can even ban people from a room. And sometimes there's different settings like you can ban uh that one user or you can ban anyone from that particular users domain. You can get pretty nasty um, depending on the the the rights that the channel opp has. And also you can accidentally or well, you can give other people operator rights as well. Can and if you're not careful, you can give other people operator rights and relinquish your own rights, and the next thing you know, you're at the whim of somebody else. And they're even ways where I mean, if if people trick you into typing a certain kind of string, that's essentially what happens. You give over the right of not only of the channel, you could actually give over the ability to control the client, and the person could control your I r C client. You could you could accidentally relinquished control if you if you posted the right command in there. You know, honestly, I've never heard of that happening. Yeah, it's um, it's actually if you look at there's a couple of really good I r C Frequently asked question files out there on the on the web, and a few of them will tell you. They don't tell you specifically what the string is, but they will say, you know, do not if someone gives you a string of seemingly random commands and says you need to type this in because it'll, you know, solve your problem or whatever. You should not just automatically do that, because there are commands that can end up coming back to haunt you when you hand over. Essentially you hand the steering wheel over to a maniac and then they laugh at you and say, ha ha, we tricked you, and now you know all your base belong to us. Someone set us up the bomb. Speaking of which, should we mentioned bots? Bots? Yeah, alright, so bots are and that's an automated program and automated essentially, it's like like a script script. Yeah, and it's a script that often takes the form of what looks to be a normal I R C. Chatter. Yeah, I mean, and basically they can they can stay in the channel. Say if if you own a very popular channel, um, and you don't want to lose control of it, but everyone's going to bed, your bought could be sitting in there for you. And uh. As a matter of fact, a bot can can automatically be configured to give people operator privileges. Yeah, you can, especially you know, like certain people can you know, your buddies, your most trusted buddies when they pop in and it will automatically give them ops. And then as soon as they do that, you know they're running a channel even when you're not there. Yeah, you can script a bot to do lots of different things. It doesn't have to just uh, you know, it doesn't have to just sit there. In other words, like the reason, as Plett was pointing out, the reason why you would want to have a bot sit there would be so that you could hold on to a certain channel name and you wouldn't have to worry about someone stealing it once you logged off. You would have a squatter essentially, But you could also give a bot like I've seen. Um there's one I R C. Each chat room I occasionally go into that has a bot that what its main purpose is to scan for for any instance of foul language. So it essentially is is uh scanning everyone's lines and if words that match up to its database of naughty words pop up, it automatically boots you from the room. So if you were to say something that was you know, like if you were to to to say an obscenity, type in an obscenity and and into the main room, UH, it would notice it and kick you from the room. Um. Other things that it would kick you for are things like if you typed in all caps, because that's the equivalent of counting online I mean in text based chat rooms, all upper case is like you're yelling, and just like any other party, no one wants to be around the guy or or girl who is screaming at the top of his or her lungs uh and thinks it's funny. Yes, that is correct. I can say that specifically after working for now as the time of recording this podcast five weekends at the Renaissance Festival. The loud ones are the ones that always think they are the funniest people, and they are always wrong unless it's me right. There is that exception to the rule. So if you wanted to join I r C, you don't have to really do all that much. As long as you're on the internet, you should be able to uh, you know, choose a client. There are many many pre I r C clients or as Jonathan pointed out earlier, you can go on the web to certain sites and access from there, um you know, they are their clients. Also that you can pay for shareware clients if if you're really, uh really getting into the I r C thing, they might have special you know, especially configured windows that you can use that just make life easier. Um. And they're you know, they're pretty you can even you can even find them for smartphones now. Um. Although I wouldn't recommend I r C and driving at the same time. Actually I wouldn't recommend being on I r C on a mobile phone anyway, because teeny tiny it's so hard to keep up with, especially if you if you tend to frequent rooms that have a lot of people in them. But the one I was talking about earlier, it it often has more than a hundred and sometimes more than four hundred, and it peaked times nearly a thousand people in it on a significant for an IRC chat room. Yeah, this is a specific chat room that's a fan chat room for a technology podcast that I listened to while they're doing it live. Unlike unlike our technique where we pre record everything and no one gets to hear it while we're doing it, this other podcast they stream it live and then upload the the actual podcast. Right, I think I know the one that you're talking about, the one I got to be a guest host on. It should be a buzz out loud for seen. It might as well go ahead and say it. So anyway, occasionally I'll be in the that I r C chat room and uh, I've tried to log in through my phone before, and the problem, of course is there's two problems. One, it's really tiny, so it's hard to read. But also because the chat room is scrolling so quickly, and because my phone is just occasionally getting updates through the cell tower because I'm not I don't have the WiFi turned on necessarily. Um, you know, the the updates come in little, uh in little bursts. So not only are lots and lots of people talking, but I'm getting them, you know, all at once, and so everything scrolls off the screen and there might be something that I was trying to read that was reference to me, and then you know, I have maybe a couple of seconds to read it and process it before it's gone. And so it's kind of a frustrating experience. Another frustrating experience with I r C. Something else that can happen is net splitting. Oh yes, you know you're familiar with the net splits. Net splits are terrible. Yeah. That that that actually used to happen to me on bitnet as well. Where part of the uh, well, if you remember our podcast a little while ago on how the Internet works, essentially we went through the infornet, the internet infrastructure. Uh, you know, everything is connected to everything else and multiple redundant connections and then every once in a while, part of the net gets separated from the other part of the net, and they have to find an alternate route to move that data through. And but in the meantime, there's an interruption in service. Yes, and you're going, what happened, Yeah, net splits from the From your perspective, if you're in an I r C chat room and and a net split happens, it seems really weird. It seems like tons of people just left the room for no apparent reason. Not everybody, because the way I r C works is that there's it's actually a network each I r C. There's there're like multiple I RC networks on multiple servers. Yes, and you're not all on the same server, even if you're on the same network. So you could all be on the same channel chatting, but you're not necessarily all logged into the same server. You're logged into the same network. So there might be some people that are logged onto one server on the West coast, you're logged into another server on the East coast of I'm talking about the United States, but really this applies anywhere. And let's say that the connections between those two servers get severed for some reason. Something somewhere along the pathway fails. Uh. You would each be in your own instance of that network, that channel, and to you, it looks like half the room just disappeared. The other half still they're chatting, but you're like, where did everyone else goes? They're the same way, except they're on the other side. They're like, where did everybody? Where did all those guys go? Once the connections get um corrected, you know, once the data finds a new path to follow, everything gets reabsorbed, and suddenly the room is is what it's normal size again, there's you know, everyone's together. Uh. It can be very frustrating, particularly like I was saying, you know that that's seen that one that I go to when that splits happen. I'm always on the server that is not with the main room, but not with like the all the hosts and all the most of the people who with whom I chat. They are fine. They're all together. Me and like five other folks you know, are sitting there twiddling our thumbs and thinking, I bet there's lots of funny stuff being talked about right now, but I can't see it. Do you think they're trying to tell you something? I have no idea, but at any rate, there's no way for you to correct it on your end waiting for the Yeah, you have to wait till the data can find a new path um. And I really did not have a lot of experience with I r C until fairly recently, because as it turns out, you know, you said that I r C it was kind of your introduction to the Internet. My production was tell neet. I was using tell neet protocol tellnet into chat rooms, so you you would log in remotely to some computer that's running a chat room program. So it's different from the I r C network model. And so, uh it's a totally different set of commands as well, which was made it very confusing for me when I first started using I r C because I was thinking about the old tell net commands and uh, yeah, you can always tell a tell neet or on an I r C, or at least you used to. It doesn't happen as much now, but you can always see because they would say things like say hi there, you know, like they would actually they're typing in the command that you would normally have to tighten type and tell neet in order to say something. And all the I r crs are like, look at this bozo doesn't know he doesn't have to type say or you know, doing a quotation mark at the front of his sentence. And so yes, I was that bozo. I still am that bozo. It's just that now I know better. What does never mind the UM that's the big red nose. Yes, and the fact that every day I played the grand Prize game at my cubicle. Yes, anyhow, Yeah, it's it's uh, it's actually quite impressive. I think in a lot of ways that this, uh, this chat protocol is still as popular as it is UM. But it doesn't show any time any signs of of falling by the wayside anytime. Seene As a matter of fact, all the just about all of the major UM multi protocol chat clients offer an I r C option. And we didn't even go into the fact that you can you can use I r C to send files even if you were. We were mainly talking about the chat aspect, but there there's a lot more to it than what we're going into. We're just talking about the main use that or I think the most popular use for I r C, which is to have conversation. Uh, well, that's a good conversation right there, and we're gonna wrap it up. I do not have any listener mail to follow it up with. I've got tons of listener mail, don't get me wrong, but they're all all asking for for a podcast on a specific topic. So it's it's nothing that we could address very quickly, right, So we're just gonna wrap this up. Thanks a lot for that request. It was a fun thing to talk about. We like looking at the history of the Internet and the the early protocols that are still around um and the early uses. So keep those requests coming in and uh, Chris and I will talk to you again really soon. For more on this and thousands of other topics, visit how stuff Works dot com and be sure to check out the new tech stuff blogs now on the house Stuff Works homepage. Brought to you by the reinvented two thousand twelve camera. It's ready, are you