*** mulbah has quit (Read error: No route to host) | 04:44 | |
*** mulbah has quit (Ping timeout: 480 seconds) | 06:31 | |
scooper | Good morning Jeff | 10:50 |
---|---|---|
sysadmin_ | good morning Jeff | 10:53 |
*** fkoikoi_ has quit (Remote host closed the connection) | 10:54 | |
*** fkoikoi has quit (Read error: Connection reset by peer) | 10:55 | |
jelkner | scooper, can i ask you a favor? | 10:56 |
scooper | +1 | 10:57 |
scooper | Jeff, can I ask you a favor too?? | 10:57 |
*** scooper has quit (Quit: Leaving) | 10:59 | |
scooper | Are you still there Jeff | 11:00 |
*** fkoikoi_ has quit (Remote host closed the connection) | 11:00 | |
*** fkoikoi_ has quit (Remote host closed the connection) | 11:04 | |
jelkner | scooper, i'm in the other channel with dcammue | 11:07 |
scooper | ok let me get there | 11:07 |
jelkner | no | 11:07 |
jelkner | here is good | 11:07 |
scooper | ok | 11:07 |
scooper | can click this link | 11:07 |
scooper | to see what I was talking about yesterday | 11:07 |
scooper | http://students.mcssliberia.org:8000/ | 11:07 |
jelkner | my favor is to ask you to figure out how to give tmickelson all the access he needs to the git.mcssliberia.org server | 11:08 |
scooper | ok considerate it done | 11:08 |
jelkner | nice, scooper, you have a Django application running | 11:08 |
scooper | Thanks | 11:08 |
jelkner | we are making steady progress on all fronts | 11:08 |
jelkner | very exciting | 11:08 |
jelkner | makes me start thinking about my visit next Summer | 11:09 |
scooper | I m thinking of updating every week | 11:09 |
scooper | Thanks Jeff | 11:09 |
jelkner | ok, i gotta go | 11:09 |
scooper | ok Jeff | 11:09 |
jelkner | i need to message Sahnun that i can't have breakfast with him tomorrow | 11:09 |
jelkner | my wife is using her car | 11:09 |
scooper | ok my regards to him | 11:10 |
jelkner | i'll be at our meeting from home | 11:10 |
scooper | ok Jeff | 11:10 |
scooper | the supe promise to be with us too | 11:10 |
jelkner | nice! | 11:10 |
scooper | I talked with him yesterday | 11:10 |
jelkner | until tomorrow then... | 11:10 |
jelkner | ACTION signs off | 11:10 |
scooper | ok Jeff | 11:10 |
*** jelkner has quit (Quit: Leaving) | 11:10 | |
*** dcammue has quit (Quit: Leaving) | 11:10 | |
*** fkoikoi_ has quit (None) | 11:11 | |
*** scooper has quit (Quit: Leaving) | 11:15 | |
mulbah | hello shmohamud | 12:59 |
mulbah | how are you doing | 12:59 |
shmohamud | Hi Mulbah | 13:00 |
shmohamud | I'm doing well, how are you? | 13:00 |
mulbah | I'm good | 13:00 |
mulbah | long time | 13:00 |
shmohamud | what are you studying now? | 13:00 |
shmohamud | I know, I've been tied up between work and my father passing | 13:01 |
ubuntourist | tboimah, mulbah, hi | 13:01 |
mulbah | linux sysadmin | 13:01 |
mulbah | Hello Mr. Cole | 13:01 |
shmohamud | sounds good | 13:01 |
mulbah | Thanks shmohamud | 13:01 |
tboimah | Good morning ubuntourist | 13:01 |
shmohamud | I won't interrupt. You can always email your questions to sahnunhm@gmail.com | 13:01 |
ubuntourist | Any thoughts about the files I've sent? Any experiments to share? | 13:02 |
mulbah | Okay shmohamud thanks | 13:02 |
shmohamud | of course @mulbah | 13:02 |
mulbah | sure Mr. cole | 13:03 |
mulbah | I can explain the command | 13:03 |
ubuntourist | mulbah, go ahead, please. | 13:03 |
mulbah | I read of regural expression which you use in the command | 13:04 |
mulbah | let me start | 13:04 |
ubuntourist | mulbah, wait. Before that: | 13:04 |
mulbah | okay | 13:04 |
mulbah | ACTION waiting | 13:05 |
ubuntourist | mulbah, were you able to open both of the files I sent in e-mail? ( tboimah wrote and said he didn't know what to do with the two files, but I never heard from you) | 13:05 |
ubuntourist | mulbah, were you able to watch the movie and read the README files that were included? | 13:05 |
mulbah | yeah | 13:06 |
mulbah | the both of us did | 13:06 |
mulbah | I and tboimah | 13:06 |
mulbah | a | 13:06 |
ubuntourist | mulbah, Great! Excellent! I was pretty confident you would both figure it out. | 13:06 |
ubuntourist | Okay, continue | 13:07 |
mulbah | okay | 13:07 |
mulbah | should I post the questions and the command and them explain it | 13:08 |
mulbah | or just explain the command | 13:08 |
ubuntourist | I guess just explain -- mostly to optimize our time and network connectivity. Save time. | 13:09 |
mulbah | okay | 13:10 |
*** tboimah has quit (Ping timeout: 480 seconds) | 13:10 | |
mulbah | locate ly | grep "\.ly$" | wc -l | 13:10 |
mulbah | This command locate all files that have ly inside of it and pass the result to wc -l which count the number of lines or files that have ly inside of it and the most is use to viwe it. | 13:11 |
ubuntourist | "ly" in the file name. Not the file contents. (If you're explaining to future sys admins, you will want to be precise.) | 13:12 |
mulbah | okay | 13:13 |
mulbah | the \ in the command is an regular expression that represents a group of characters | 13:13 |
ubuntourist | The locate by itself would find filenames like "plymoth" which has an "ly" in the name. Using the pipe and passing the list of found files to grep allows us to filter a bit more. | 13:13 |
ubuntourist | We will spend a lot of time on filtering using regular expressions. It is a complex topic. | 13:14 |
mulbah | I'm explaining base on the solution which say Find all LilyPond files on the system using locate and grep | 13:15 |
ubuntourist | The regular expression "\.ly$" says "Search for an actual period (period without the slash has a different meaning) followed by "ly" followed by the end of a line. "$" means "end of line" in a regular expression. | 13:15 |
ubuntourist | Right. I'm just trying to add a bit more detail as you explain. (If you want, I can wait until you finish.) | 13:16 |
mulbah | it's okay | 13:16 |
mulbah | I love that | 13:16 |
mulbah | that what i understood from the first command | 13:18 |
mulbah | the second command | 13:18 |
mulbah | which is | 13:18 |
mulbah | locate ly | grep "\.ly$" | grep kjcole | wc -l | 13:18 |
mulbah | grep "\.ly$" tell it to search for all the files that end with the extention .ly and "grep kjcole" tell it to search in kjcole | 13:19 |
mulbah | which is your home directoris | 13:20 |
ubuntourist | The second grep has no weird punctuation in the regular expression. It's just simple alphabet. So, in this situation nothing special. If the line contains "kjcole" anywhere, it is included. If it does not, it is excluded. | 13:20 |
ubuntourist | Right. Looking for files I own I don't want to screw up systems files or files owned by other users. | 13:21 |
mulbah | the command Narrow the list to files owned by you using grep | 13:22 |
mulbah | locate ly | grep "\.ly$" | grep kjcole | grep -v "/\." | wc -l | 13:23 |
mulbah | this command eliminate files that were auto-generated | 13:23 |
mulbah | the grep -v means don't print matching linse do the opposite and print all of the lines that don't match expression "/\." . | 13:24 |
mulbah | Because Directories and files that start with a period are hiding so grep -v "/\." eliminate them. | 13:24 |
ubuntourist | Well... sort of... | 13:24 |
ubuntourist | Right. | 13:24 |
ubuntourist | There are other files that are auto-generated too. But I know I don't want files in hidden directories. Those are usually auto-generated or in some other way "special" | 13:25 |
mulbah | what I think is that files that are hadding are files which was auto-generated by some application | 13:25 |
ubuntourist | "grep kjcole" would find lines containing "kjcole". Adding the "-v" reverses the meaning: "grep -v kjcole" would find all lines that do NOT contain kjcole. | 13:26 |
ubuntourist | So here, grep "/\." would find all lines that contain a slash followed by a period -- like "/.config/" | 13:27 |
ubuntourist | Adding the "-v" says DON'T show me any files in directories like "/.config" or "/.local" or several other "/.something..." directories. | 13:28 |
mulbah | Hello tmickelson | 13:29 |
tmickelson | hello mulbah | 13:29 |
ubuntourist | mulbah, The "~/.config/" directory contains configurations (settings, preferences, etc) for many applications. Often, the first time you start an application, it will | 13:30 |
ubuntourist | add basic settings for that application to a file in ~/.config -- so, auto-generated. And, some programs need to create temporary data while they work. That stuff is often placed in "~/.local/" directories and files. | 13:31 |
ubuntourist | There are others too, but yes, you have the right idea. | 13:32 |
ubuntourist | continue | 13:32 |
mulbah | okay | 13:32 |
mulbah | Mr. Cole i really don't understand what the FrayedKnotArts means in this command locate ly | grep "\.ly$" | grep kjcole | grep -v "/\." | grep -v FrayedKnotArts | wc -l but I know what the grep -v means | 13:32 |
ubuntourist | crank up tmate | 13:32 |
mulbah | okay | 13:33 |
ubuntourist | On a machine with both taballs expanded. | 13:34 |
mulbah | what you means by taballs expanded | 13:35 |
mulbah | I'm not understanding | 13:35 |
ubuntourist | I sent two tarballs. One with the README and the movie -- which is what you're explaining, | 13:35 |
ubuntourist | and one with sample data so that you could run the code and experiment. | 13:36 |
ubuntourist | If you don't have both, we can work from my machine. | 13:36 |
mulbah | ssh GE6nEdygrr9Cspm3rTTQucYRT@lon1.tmate.io | 13:37 |
mulbah | take a look all the command you type doing the recoding is on my screen | 13:37 |
ubuntourist | (the tbz and tgz are "tarball" files and when you use tar you "expand" or "explode" or "unpack" them. | 13:38 |
ubuntourist | I'm going to type for a second in your terminal. | 13:39 |
tmickelson | just a reminder that this is a public irc channel so be carful with sending things that give access to your computer | 13:39 |
mulbah | okay | 13:39 |
ubuntourist | tmickelson, Yeah... I'm pretty cautious there. But good advice. | 13:40 |
ubuntourist | mulbah, So "locate ly | most" is showing us all the files with "ly" in the name somewhere. | 13:40 |
mulbah | sure | 13:41 |
ubuntourist | Hmmm. I just searched the list for "FrayedKnot" and came up empty.... | 13:41 |
ubuntourist | I want you to update your locate database to see if it is out of date. | 13:42 |
ubuntourist | sudo updatedb | 13:42 |
mulbah | sudo apt update | 13:42 |
ubuntourist | Nope. | 13:42 |
ubuntourist | sudo updatedb | 13:42 |
mulbah | okay | 13:42 |
mulbah | Permission denied | 13:43 |
ubuntourist | (apt update will go out to the Internet and update the list of Debian packages available for you to install or upgrade. | 13:44 |
ubuntourist | updatedb updates a database on your computer that contains the file names of most files on your computer. | 13:44 |
ubuntourist | A few are specially protected because they aren't really files exactly. Those give you "permission denied".) | 13:45 |
ubuntourist | Hmmm... Hold a sec. I want to examine my copy of the file I sent you... | 13:46 |
ubuntourist | Well... It's in my file... | 13:47 |
ubuntourist | Ah. Yoy did not expand the second tarball | 13:47 |
ubuntourist | do that now. | 13:47 |
ubuntourist | (Look at what is on your screen now. It shows a tarball that you can expand.) | 13:49 |
ubuntourist | I started by using the locate with most to get a list of files that contain "ly" in the name. While still running most, | 13:49 |
ubuntourist | I searched the list for "FrayedKnot" and it said it could not find anything in the list. | 13:50 |
ubuntourist | I thought maybe the list -- the database -- has not been updated recently. So I had you update it. And I tried again. | 13:51 |
ubuntourist | Still no luck on the second try. So, I looked to make sure my TestData file had FrayedKnotArts in it. It did. | 13:52 |
ubuntourist | So I used locate on your machine to see if you had any files with "TestData" in the name. There was only one. A tarball. | 13:53 |
ubuntourist | zip won't unzip or unpack a tarball... | 13:53 |
mulbah | okay | 13:54 |
ubuntourist | (I keep calling it a "tarball" for a reason...) | 13:54 |
ubuntourist | (You do the same thing you did for the file with the movie...) | 13:56 |
ubuntourist | You can check your history... "history | grep tbz" | 13:57 |
ubuntourist | and see if that gives you a clue... | 13:57 |
ubuntourist | Hmmm.... Nothing in the history file with tbz except today's experiments??? | 13:58 |
ubuntourist | Maybe you expanded my original file using the GUI instead of the command line? | 13:59 |
ubuntourist | (I was hoping you would use the command line to expand the original tarball. That's why we worked with them last time.) | 14:00 |
ubuntourist | But if you used some GUI application to expand the file then then there would be nothing in the history. | 14:00 |
ubuntourist | "tarballs" are manipulated with "tar" not "zip". | 14:01 |
mulbah | Mr. Cole can I use this command scriptreplay -t timecodes scripting > reading.txt to save all what you type in the movie doing the scripterplay | 14:01 |
*** tmickelson has quit (Ping timeout: 480 seconds) | 14:01 | |
ubuntourist | The movie doesn't contain the part where I created the test data. I created that after I sent the movie. | 14:02 |
ubuntourist | (And the movie is too slow to watch right now.) | 14:02 |
ubuntourist | tar xjvf TestData.tbz | 14:03 |
ubuntourist | (and then "sudo updatedb" because there will be new files to catalog in the database. It will need an update.) | 14:03 |
ubuntourist | There are a LOT of files in the test data, but I made most of them zero bytes in length. So they will not occupy much space on your computer.) | 14:05 |
ubuntourist | The list is the list of files that were actually on my computer.. It's all the filenames that contain "ly" somewhere in the filename. | 14:06 |
ubuntourist | sudo updatedb | 14:06 |
ubuntourist | (It will give you the two "Permission denied" again.) | 14:06 |
*** tmickels1n has quit (Ping timeout: 480 seconds) | 14:06 | |
ubuntourist | And eventually, will finish, with all the new file names added to the database. | 14:07 |
ubuntourist | In 23 minutes, I need to take a 5-second break. I promised I would remind my wife when it was 10:30 our time. It will only take a few seconds. | 14:08 |
mulbah | okay | 14:08 |
ubuntourist | Great. Now | 14:09 |
ubuntourist | locate FrayedKnotArts | 14:09 |
ubuntourist | locate FrayedKnotArts | most | 14:09 |
ubuntourist | So. To answer your question: | 14:10 |
mulbah | wow thanks | 14:11 |
ubuntourist | I said at the beginning of the README that I only wanted files that I created. The files you are looking at now weren't | 14:11 |
ubuntourist | auto-generated, but I downloaded them from a company called Frayed Knot Arts. I didn't create them myself. | 14:11 |
ubuntourist | So I don't want them in the list. | 14:12 |
ubuntourist | ("q" to quit.) | 14:12 |
ubuntourist | You now have a huge list of empty files, plus a few that have a little bit of text in them. | 14:13 |
ubuntourist | You should be able to experiment with all of the commands in the movie and README and they should work: | 14:13 |
mulbah | okay | 14:14 |
ubuntourist | You can see on the screen now that you have a directory named "kjcole" in a directory named "home". | 14:14 |
ubuntourist | You have lots of files with "ly" somewhere in the name. | 14:14 |
ubuntourist | You have the FrayedKnotArts directory, etc. | 14:15 |
*** shmohamud has quit (Remote host closed the connection) | 14:15 | |
ubuntourist | If I've done everything right, all of the commands in the README and movie should do what they are supposed to do. | 14:16 |
ubuntourist | (I might have made a mistake. I did not do extensive testing. But I think it's all working.) | 14:16 |
ubuntourist | So you can continue with your explanation now that your question about FrayedKnotArts is answered. | 14:17 |
*** tmickelson has quit (Ping timeout: 480 seconds) | 14:19 | |
mulbah | locate ly | grep "\.ly$" | grep kjcole |grep -v "/_lilypond" | egrep -vi "(cache|/\.)" | most | 14:21 |
mulbah | this command eliminate any lines with "/." directories or cached files | 14:23 |
ubuntourist | When you want to ignore case so that ABC, abc, AbC, ABc, all match a regular expression like "abc", using "-i" works. | 14:23 |
ubuntourist | So the part "cache" will match "Cache", "CACHE", "cache" etc. | 14:24 |
ubuntourist | When you want to include or exclude more than one pattern at the same time, you can use "egrep" and parenthesis and the pipe: | 14:24 |
ubuntourist | "(cache|/\.)" splits apart like this ( cache | /\. ) and means either "cache" or "/." | 14:26 |
ubuntourist | the -vi means "exclude and ignore case. | 14:27 |
mulbah | the egrep -vi say don't print matching lines and ignores matching lines | 14:27 |
ubuntourist | I could have shortened the whole thing this way: | 14:27 |
mulbah | sure the -i means Ignores, case for matching | 14:28 |
ubuntourist | locate ly | grep "\.ly$" | grep kjcole | egrep -vi "(/_lilypond|cache|/\.)" | most | 14:28 |
ubuntourist | Because I want to exclude "/_lilypond" and "cache" and "/." I could combine one of the "grep" with the "egrep" | 14:30 |
ubuntourist | Time for me to remind my wife about the time... Back in a few seconds... | 14:30 |
mulbah | the () is a regural expression which group thing | 14:30 |
mulbah | right | 14:30 |
ubuntourist | Back again. Right: Parenthesis create a regular expression group. | 14:31 |
ubuntourist | continue. | 14:32 |
mulbah | the egrep -vi "(/_lilypond|cache|/\.) in this locate ly | grep "\.ly$" | grep kjcole | egrep -vi "(/_lilypond|cache|/\.)" | most command say: | 14:34 |
mulbah | exclude and ignore all files that is hadding or cached files or in _lilypond | 14:38 |
ubuntourist | Right. | 14:39 |
ubuntourist | (You don't have to type the whole command each time. You can just type the new parts in your explanations.) | 14:39 |
ubuntourist | I think this is a good place to stop for today. | 14:39 |
ubuntourist | We are approaching the part of the script that gets more complicated. | 14:39 |
mulbah | I will read more on it and practice it | 14:39 |
ubuntourist | Now you have data to practice with. | 14:40 |
ubuntourist | Remember: If you add lots of new files or delete lots of files -- including "apt install" which will add new files to your system -- | 14:41 |
ubuntourist | you should "sudo updatedb" | 14:41 |
ubuntourist | You don't have to do it EVERY time you add or delete or move files, but it is a way to keep your list of files on your system | 14:42 |
ubuntourist | up-to-date. | 14:42 |
mulbah | okay | 14:42 |
mulbah | Mr. Cole I was practicing on the regural expression should I should you it is the terminal | 14:42 |
ubuntourist | You can always use "find" and it will find all your files -- though sometimes you will need to use "sudo find" | 14:43 |
ubuntourist | for files that you do not have permission to see. But "find" can be very, very, slow if you tell it to search for everything | 14:43 |
ubuntourist | I mean if you use "find / ..." you are searching from the root directory and it will take a long time to find files. | 14:44 |
ubuntourist | Compare: | 14:44 |
ubuntourist | Compare the time taken for: | 14:45 |
ubuntourist | locakte ly | 14:45 |
*** tmickelson has quit (Remote host closed the connection) | 14:45 | |
ubuntourist | sudo find / -name "*ly*" | 14:45 |
ubuntourist | locate ly and sudo find / -name "*ly*" | 14:46 |
ubuntourist | will do basically the same thing, but one will be a LOT faster than the other.. The disadvantage is that | 14:47 |
ubuntourist | "locate" only finds files since your last "updatedb" while "find" does not have that limitation. | 14:47 |
ubuntourist | Questions? | 14:47 |
ubuntourist | Sorry. I see you had a question about regex. But I don't understand the question. | 14:49 |
mulbah | what is the different b/w find and locate command because they function almost the same and which one is more preside to use | 14:49 |
ubuntourist | find is more powerful but slower: fiind knows about file names, permissions, owners, creation time, size, etc. | 14:50 |
ubuntourist | find checks every file for all of that information. | 14:51 |
mulbah | no I wanted to show you what I learn of the regular expression doing my research | 14:51 |
ubuntourist | updatedb makes a special file that contains only the names of all the files on your computer. It does not store | 14:51 |
*** tmickelson has quit (Quit: leaving) | 14:52 | |
ubuntourist | file size, ownership information, permissions, etc. It stores only the file names. locate uses that special file | 14:52 |
ubuntourist | and because it does not have all that extra data in it, it is very fast to search. | 14:52 |
ubuntourist | Try this | 14:52 |
ubuntourist | sudo find / -size +500M | 14:53 |
ubuntourist | That's a dash not a tilde | 14:54 |
mulbah | permission denied | 14:54 |
ubuntourist | Instead of using "-name" which is what locate uses too, "-size +500M" says "Find all files on the system that are 500 megabytes or larger" | 14:55 |
ubuntourist | There aren't many. And, find also tries to examine "weird" stufff which is why there are more error messages. | 14:56 |
ubuntourist | But I can see that the Linux System Adminstration Course video is larger than 500 MB... | 14:56 |
mulbah | yeah | 14:57 |
ubuntourist | And the ubuntu-22.04 ISO file... So when you're running out of disk space, searching for large files that maybe you don't need | 14:58 |
ubuntourist | any more, can be helpful. | 14:58 |
ubuntourist | Go ahead and show off your regex skills. | 14:58 |
mulbah | Alright! | 14:58 |
ubuntourist | For now, don't worry too much about typing mistakes in the comments. | 15:00 |
ubuntourist | OK, be careful -- wildcards and regexes are similar but not the same: | 15:02 |
ubuntourist | for example, in a wildcard expression "*" means "any character, any number of times". | 15:03 |
ubuntourist | in a regex, you would need to say ".*" with a period. | 15:03 |
ubuntourist | so "ls *.py" would be written "ls | grep ".*\.py$" | 15:04 |
ubuntourist | ls | grep ".*\.py$" | 15:04 |
ubuntourist | Think of wildcards as a much simpler system of regex. You can do a lot more with regex, but it | 15:05 |
ubuntourist | is very hard to remember all of that. Wildcards are easier to remember, and you will use them a little more frequently. | 15:06 |
ubuntourist | The expression you just wrote means: | 15:06 |
ubuntourist | "any number of the s character, including none, and a t character" | 15:07 |
mulbah | search for file that have s and t | 15:07 |
ubuntourist | This instead: | 15:07 |
ubuntourist | ls | grep "s.*t" | 15:08 |
ubuntourist | That means "find an s followed by any number of ANY character followed by a t" | 15:08 |
ubuntourist | Addiing the "." makes the difference here. | 15:09 |
mulbah | . is an regular expression which replaces any characters | 15:09 |
mulbah | right? | 15:10 |
ubuntourist | Right. And "*" means zero or more of the character that comes before it. | 15:10 |
ubuntourist | So "s*" means zero or more "s" characters, but ".*" means zero or more of ANY character. | 15:11 |
mulbah | ? means matches exactly one character | 15:11 |
ubuntourist | Right again. | 15:11 |
ubuntourist | OOPS. Wrong. | 15:11 |
ubuntourist | ? means exactly ZERO or ONE character. | 15:12 |
ubuntourist | + means at least one. One or more. | 15:12 |
mulbah | so if you use ???? it means match 0 or 4 character | 15:12 |
ubuntourist | * mean zero or more | 15:12 |
ubuntourist | Nope. The "*", "+" or "?" are only couters. they do not tell you WHAT. They only tell you HOW MANY. | 15:14 |
ubuntourist | It is what comes before them that answers WHAT | 15:14 |
ubuntourist | So ".?.?.?.?" would be "zero to four" of any character. | 15:15 |
mulbah | ^ means matches start of string and and represents characters not in the string | 15:15 |
ubuntourist | I really need to go | 15:15 |
mulbah | Okay Mr. Cole | 15:15 |
ubuntourist | Yes. "^" is for start of a string and "$" is for end of a string. | 15:15 |
mulbah | Thanks for today | 15:16 |
ubuntourist | But like I've said regular expressions (regex) are very complicated to learn. We'll work with them a lot, but they can be very confusing. | 15:16 |
ubuntourist | Also very important to know about. | 15:16 |
ubuntourist | Bye! | 15:16 |
mulbah | I will email you questions on regular expression this coming week | 15:16 |
mulbah | Bye! | 15:16 |
*** ubuntourist has quit (Quit: Leaving) | 15:16 | |
mulbah | Wow today was great | 15:17 |
mulbah | hello tboimah | 15:20 |
*** tboimah has quit (None) | 15:21 | |
*** shmohamud has quit (Remote host closed the connection) | 15:23 | |
*** shmohamud has quit (Remote host closed the connection) | 15:48 | |
*** mulbah has quit (Quit: Leaving) | 15:52 | |
*** shmohamud has quit (Remote host closed the connection) | 17:26 | |
*** shmohamud has quit (Remote host closed the connection) | 17:41 | |
*** shmohamud has quit (Ping timeout: 480 seconds) | 17:53 | |
*** shmohamud has quit (Ping timeout: 480 seconds) | 19:36 | |
*** shmohamud has quit (Remote host closed the connection) | 20:38 | |
*** shmohamud has quit (Remote host closed the connection) | 21:00 | |
*** shmohamud has quit (Ping timeout: 480 seconds) | 21:12 | |
*** shmohamud has quit (Remote host closed the connection) | 21:30 | |
*** shmohamud has quit (Ping timeout: 480 seconds) | 21:49 | |
*** shmohamud has quit (Remote host closed the connection) | 22:24 | |
*** shmohamud has quit (Remote host closed the connection) | 22:44 | |
*** shmohamud has quit (Remote host closed the connection) | 22:46 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!