←2018-09-03 2018-09-04 2018-09-05→ ↑2018 ↑all
00:00:42 <wob_jonas> I know the code for many non-(ascii-printable) characters that I often write, and know some of the arrangement of blocks so I can guess the approximate code of some of the others.
00:00:52 <ais523> maybe people should learn the asciibet like they do the alphabet
00:00:54 -!- heroux has quit (Read error: Connection reset by peer).
00:01:01 <ais523> I don't think I could even get as far as 0 though
00:01:08 -!- heroux has joined.
00:01:29 <ais523> there are probably people who have memorised Latin-1, but I doubt there are many of them
00:01:50 <ais523> I can't even remember which order the line-drawing characters in codepage 437 are in
00:02:30 <wob_jonas> ais523: yeah, all but the control chars are easy once you know the English alphabet and the US-ascii keyboard layout or any keyboard layout close to that.
00:03:18 -!- heroux_ has quit (Read error: Connection reset by peer).
00:03:23 <wob_jonas> ais523: I tried to memorize the last 64 characters (mostly letters) of Latin-1, but so far failed, mostly because it largely depends on which characters Italian and Spanish and Portugese use, and I'm very ignorant at that.
00:03:25 -!- heroux has quit (Read error: Connection reset by peer).
00:03:27 -!- heroux_ has joined.
00:03:41 <ais523> as long as you remember which control character corresponds to which button sequence
00:03:41 <ais523> even the basics like "newline is Ctrl-J" aren't widely known
00:03:41 -!- ais523 has quit (Remote host closed the connection).
00:03:46 <wob_jonas> I mean, that's part of the useful mnemonic.
00:03:51 -!- heroux_ has changed nick to heroux.
00:03:54 -!- ais523 has joined.
00:03:57 <ais523> <ais523> probably Ctrl-H for backspace and Ctrl-L for formfeed are the most famous
00:04:28 <wob_jonas> ais523: yeah, sure, I know the common ones. but do you even know the set of names of those ascii control characters?
00:04:33 <ais523> (Emacs displays formfeed as a red ^L, and manual formfeeds are fairly common in older text files)
00:04:36 <wob_jonas> I mean, do you approximately know every single name?
00:04:45 <wob_jonas> Because I don't.
00:05:01 <ais523> hmm, I quite possibly don't know all 32 but I know a fairly large proportion of them, just not necessarily what order they're in
00:05:02 <wob_jonas> I know what I use each control character for in many applications, but not the original ASCII control intentions.
00:05:18 -!- heroux has quit (Read error: Connection reset by peer).
00:06:08 -!- heroux has joined.
00:06:38 <wob_jonas> I know how many of them are used in ecma/vt102-like terminal escapes, know how they're used by the PC and DOS in text (except when keyboard scan codes get into text because of that strange DOS interface), and much of how they're used in wordstar, emacs, and vim,
00:07:30 <wob_jonas> which are together the ancestors of most modern control schemes that are based on a terminal character stream rather than an X11 keyboard or scan code or key code stream or anything like that.
00:07:38 <wob_jonas> I also know most of the nethack bindings.
00:07:46 -!- heroux has quit (Read error: Connection reset by peer).
00:07:54 <ais523> the whole ecma-48 terminal set seems to be loosely based on ASCII? but not really
00:08:25 <ais523> it's based on ecma-35 which supports ASCII compatibility for printable characters, but I'm not sure if the change-encoding characters are consistent with the ASCII control codes
00:08:26 -!- heroux has joined.
00:08:55 <ais523> (I learned ecma-35 to write a re-encoder that converted ttyrecs to Unicode, it was interesting)
00:09:03 -!- heroux has quit (Read error: Connection reset by peer).
00:09:04 <wob_jonas> ais523: the actual terminal control sequences, as used today, only use half of the control characters. most of those are based on the ascii or latin-1 control meaning (I think the latin-1 control meanings actually have a shared origin and were produced by ecma for use in terminals)
00:09:14 <ais523> I also learned about UTF-1 while doing this
00:09:57 <ais523> wob_jonas: do you mean "half" as in half of 0-31 or as in half of 0-31 + 128-159?
00:10:33 <wob_jonas> ais523: half of ascii, only one from latin1 actually used I think
00:10:53 <ais523> well CSI is by far the most famous C1 control character
00:11:08 -!- heroux has joined.
00:11:35 <ais523> (Ecma-35 supports ESC [ as a synonym for it, in case you're using a 7-bit connection, and this is the code that typically gets used in practice because Ecma-35-incompatible encodings have an annoying tendency to use the C1 region for printable characters)
00:11:59 <wob_jonas> and I think the only one that's not used according to the ascii meaning is \x1A, which cancels a partial control sequence, but it has \x18 as the synonym which makes more sense
00:12:29 <wob_jonas> ais523: and \x0E is the most infamous control character, as far as ecma/vt102-like terminals are concerened
00:13:18 <ais523> ctrl-n? which one is that? the C1 shift? (ASCII name either shift in or shift out, I forget which)
00:13:24 <ais523> err, the G1 shift, sorry
00:13:27 -!- heroux_ has joined.
00:13:28 <wob_jonas> hmm, actually much more of latin-1 controls are interpreted by terminals. but they all have ascii aliases.
00:13:30 <ais523> C1 shift is ESC
00:13:53 <ais523> and yes, Ecma-35 gives 7-bit-safe sequences for everything
00:14:06 <ais523> so that you can reconfigure an 8-bit device to 7-bit mode over a 7-bit connection
00:14:40 <wob_jonas> ais523: yes, SO, in terminal, shift to secondary character set. you can define which character set, but most of the time the primary one is what you use most of the time, and the secondary one is a line drawing ancient pre-unicode extension
00:15:08 <ais523> it's an Ecma-35 code, it specifically causes 7-bit codes to use G1
00:15:27 <ais523> no idea offhand what it uses for codes which would /naturally/ fall in the G1 region (I think I knew this once, maybe they're G1 too?)
00:15:38 <wob_jonas> ais523: if you cat the wrong file to a termianl, and it isn't malicious but isn't text, then the easiest thing that can mess up your terminal is if it has a \x0E and no \x0F later
00:15:49 -!- sebbu2 has changed nick to sebbu.
00:15:53 <ais523> also, as I learned with libuncursed, making assumptions about the current content of G1 when you haven't set it yourself tends to be a bad idea
00:16:03 <ais523> although it often is the DEC line drawing characters, this is far from certain
00:16:18 <wob_jonas> the second easiest way it can mess up your terminal is lots of \x05 or \x07, but in modern terminals those cause less serious effects
00:16:42 <wob_jonas> there are ways to mess up terminals in ways that are much harder to reverse, but they have longer and less likely control sequences
00:16:43 <ais523> when I was younger I used to use cat /dev/random to fix terminals messed up by a G1 shift
00:16:47 <ais523> because I didn't know the exact cause
00:16:57 <ais523> (I know it nowadays)
00:19:29 -!- tromp has joined.
00:21:36 <wob_jonas> a nice way to mess up your terminal in a way that's hard to reverse is one that only works in linux terminal AFAIK: "\x1B[12m"
00:22:32 <wob_jonas> about the only ways to fix it are"\x1B[10m" which is hard to guess and "\x1Bc" which resets _almost_ everything you can change with terminal control sequences
00:23:10 <wob_jonas> or resetting your terminal with that IOCTL that getty uses
00:23:48 -!- oerjan has joined.
00:24:12 -!- tromp has quit (Ping timeout: 272 seconds).
00:25:13 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
00:29:07 -!- wob_jonas has joined.
00:31:20 <wob_jonas> an even nicer way to mess up terminals, although hard to do accidentally, which works best on linux tty with VGA text mode console, but still works to some effect in linux tty with graphics frame buffer mode console, is changing palette entries such as "\e]P7CC6600". You can change all palette entries to black.
00:32:53 <wob_jonas> This is strong because almost nothing reverses its effects. "\ec" doesn't help. logging out and getty resetting the terminal doesn't help. changing to a different virtual tty is a temporary fix, that tty is still messed up. almost the only way to fix is "\e]R" to reset palette or a sequence of correct "\e]P......." palette change sequences.
00:33:09 <wob_jonas> kernel reboot resets it of course.
00:34:53 <wob_jonas> If you have access to the tty device and can send IOCTLs, then there are some even stronger ways to mess up the linux text console, ones that make it unusable even across ttys and isn't reset by getty. So one user of a linux machine who gets console access can use this and then even if he logs out, other users can't use the console.
00:35:39 <wob_jonas> You can change the font, you can change the video mode, you can change the keyboard bindings so that pressing keys doesn't do anything, including pressing keys that are supposed to change to a different virtual tty.
00:36:11 <wob_jonas> You can change the keyboard bindings to include a trojan command.
00:37:24 <wob_jonas> There is also a nice exploit if you give ioctl access to a virtual terminal you use, even a pts of an xterm, to an untrusted program. It can feed the input buffer of that terminal with a trojan command.
00:38:41 <wob_jonas> That's why you should never run untrusted commands in a pts in a su from root or sudo, even though the process doesn't get direct root access, if you get a root shell back in the same terminal after.
00:39:08 <wob_jonas> You should exec them, or flush the terminal after, or run them in script, or run them piped through cat, etc.
00:40:01 <wob_jonas> Ok, I'll end the rant about arcane potentially malicious uses of terminals in linux now.
00:40:08 <wob_jonas> It's just too late.
00:40:34 <wob_jonas> Too late in the night that is.
00:40:35 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
00:44:12 <oerjan> `? ☆
00:44:13 <HackEso> Twinkle, twinkle, little star!
00:56:46 -!- XorSwap has joined.
00:57:46 -!- S_Gautam has changed nick to Siddharth_Gautam.
00:58:43 -!- Siddharth_Gautam has changed nick to S_Gautam.
00:59:12 -!- ais523 has quit (Quit: quit).
01:01:12 -!- bradcomp has joined.
01:05:47 -!- mniip has quit (Ping timeout: 610 seconds).
01:10:34 -!- arseniiv has quit (Ping timeout: 240 seconds).
01:12:40 -!- mniip has joined.
01:26:33 -!- l2y has joined.
01:27:07 -!- sebbu has quit (Read error: Connection reset by peer).
01:27:46 -!- sebbu has joined.
01:31:26 -!- l2y has quit (Remote host closed the connection).
01:48:02 <esowiki> [[Special:Log/newusers]] create * Pelicero * New user account
01:50:20 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=57514&oldid=57508 * Pelicero * (+82) I added mine
01:52:15 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=57515&oldid=57514 * Pelicero * (+87) /* Introductions */
02:03:43 <esowiki> [[SeMo-PATH]] N https://esolangs.org/w/index.php?oldid=57516 * Pelicero * (+2005) Created page with "'''SeMo-PATH''', is derivation of [[PATH]], that is a two-dimensional language inspired by [[Brainfuck]] and [[Befunge]]. Unlike PATH's environment, SeMo-PATH's consists of a..."
02:04:50 -!- tromp has joined.
02:09:13 -!- tromp has quit (Ping timeout: 245 seconds).
02:14:07 -!- bradcomp has quit (Ping timeout: 240 seconds).
02:14:51 <zzo38> You should add escape codes to correct it in the banner before the login prompt
02:15:43 <zzo38> If ioctl is needed to fix it, then that program must be corrected to fix it. Possibly also a SysRq command should be added to reset it.
02:29:33 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=57517&oldid=57425 * Pelicero * (+16) /* S */
02:35:26 -!- sebbu2 has joined.
02:39:03 -!- sebbu has quit (Ping timeout: 252 seconds).
02:48:01 -!- bradcomp has joined.
02:52:44 -!- bradcomp has quit (Ping timeout: 244 seconds).
03:45:36 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
03:49:28 -!- imode has joined.
03:50:59 -!- tromp has joined.
03:51:57 -!- bradcomp has joined.
03:55:22 -!- tromp has quit (Ping timeout: 246 seconds).
03:57:00 -!- bradcomp has quit (Ping timeout: 272 seconds).
03:59:13 -!- XorSwap has quit (Ping timeout: 246 seconds).
04:48:25 <zzo38> I made up a implementation of modal types in Haskell, and then I looked someone else did the same thing; the difference is that I used different names, and also that they used StaticPtr but I used a class instead.
05:22:28 -!- bradcomp has joined.
05:36:14 -!- tromp has joined.
05:40:34 -!- tromp has quit (Ping timeout: 240 seconds).
05:40:52 <zzo38> In a book from library I found this chess problem (B.S. Barrett, 1874): 8/8/8/8/8/8/ppQKPPP1/k7
05:49:52 -!- lynn has quit (Ping timeout: 260 seconds).
05:49:52 -!- oerjan has quit (Quit: Nite).
05:49:52 -!- lynn has joined.
05:49:52 -!- lynn has changed nick to Guest61065.
05:49:52 -!- Lymee has joined.
05:49:52 -!- Lymia has quit (Read error: Connection reset by peer).
05:49:52 -!- Lymee has changed nick to Lymia.
06:24:05 -!- tromp has joined.
06:25:27 -!- bradcomp has quit (Ping timeout: 240 seconds).
06:29:38 -!- tromp has quit (Ping timeout: 245 seconds).
07:09:10 -!- tromp has joined.
07:15:21 <esowiki> [[Brainfuck]] https://esolangs.org/w/index.php?diff=57518&oldid=57475 * Rdebath * (-73) Remove link to old stub
07:21:14 <esowiki> [[Brainfuck]] https://esolangs.org/w/index.php?diff=57519&oldid=57518 * Rdebath * (+48) Note a minor difference
07:38:01 -!- S_Gautam has joined.
07:39:09 -!- tromp has quit (Remote host closed the connection).
07:40:00 -!- imode has quit (Ping timeout: 252 seconds).
07:50:32 -!- xkapastel has quit (Quit: Connection closed for inactivity).
08:11:04 -!- tromp has joined.
08:15:07 -!- tromp has quit (Ping timeout: 240 seconds).
08:27:51 -!- tromp has joined.
08:38:36 -!- tromp has quit (Remote host closed the connection).
08:57:14 -!- PrettyKittie27 has joined.
08:58:01 -!- PrettyKittie27 has quit (Remote host closed the connection).
09:06:25 -!- 21WAABEOK has joined.
09:51:08 -!- wob_jonas has joined.
09:53:48 <wob_jonas> zzo38: "You should add escape codes to correct it in the banner before the login prompt" => correct what exactly? just the palette? at a login prompt, that barely helps, since the user that has logged in previously on the console had ioctl access, and could mess up the console worse than that.
09:55:28 <wob_jonas> If I just want to output untrusted character stream to the console (such as from a telnet connection to a nethack server), then there are much better solutions (wrapping in screen, using a real terminal emulator).
10:07:24 <wob_jonas> My cheap feature phone has a hard limit of up to 24 characters inclusive for the name in phonebook entries, and it's hard to associate additional data to the entry other than one name and one phone number.
10:07:27 <wob_jonas> I'm not sure what character set the name uses, but it's converted to and from utf-8 it writes or reads the backup, and I could make my own backup with my tool and it read that correctly.
10:09:20 <wob_jonas> So sometimes I have use creative abbreviations for the name. The name I would use if there weren't such a low limit can be long either because it's some dept in some government-related or commercial organization, and those tend to have ugly names, or because I add notes to many people for where I know them from, because I can't recall who all perso
10:09:20 <wob_jonas> nal names refer to.
11:28:50 -!- sebbu2 has changed nick to sebbu.
12:36:12 -!- xkapastel has joined.
12:47:38 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
12:48:26 <wob_jonas> `? font
12:48:27 <HackEso> ​#esoteric bitmap fonts include: \oren\'s font http://www.orenwatson.be/fontdemo.htm , lifthrasiir's font https://github.com/lifthrasiir/unison/ , b_jonas's font http://www.math.bme.hu/~ambrus/pu/fecupboard20-c.pcf.gz , fizzie's font https://github.com/fis/rfk86/tree/master/web/font , FireFly's fonts http://xen.firefly.nu/up/fonts/
12:51:06 <wob_jonas> oren: do you happen to know is there's a circled check mark dingbat unicode character that's supported in many fonts?
12:52:30 <wob_jonas> I just used "(✓)" as a workaround
13:13:01 -!- arseniiv has joined.
13:23:18 -!- sebbu has quit (Read error: Connection reset by peer).
13:23:36 -!- PlasmaStar7 has joined.
13:23:46 -!- sebbu has joined.
13:24:21 -!- PlasmaStar7 has quit (Remote host closed the connection).
13:33:28 -!- sleepnap has joined.
14:02:36 <int-e> `unidecode ✓
14:02:37 <HackEso> ​[U+2713 CHECK MARK]
14:02:59 <int-e> > let a ✓ b = exp (log b / a) in 3 ✓ 27
14:03:01 <lambdabot> 3.0000000000000004
14:04:26 <int-e> > let a √ b = exp (log b / a) in 3 √ 27 -- more appropriate
14:04:28 <lambdabot> 3.0000000000000004
14:04:35 -!- Sophira5 has joined.
14:05:30 <int-e> > let (∞) = id in sin ∞ 1
14:05:32 <lambdabot> 0.8414709848078965
14:06:03 <int-e> Haskell allows pretty weird infix operators.
14:06:21 <izabera> how do you tell the precedence?
14:06:25 <wob_jonas> int-e: I think U+2713 originates as an encoding of MS Wingdings font's \xFC
14:06:36 <int-e> izabera: infixl 9 unless explicitly declared
14:06:51 <izabera> what
14:07:22 -!- Sophira5 has quit (Remote host closed the connection).
14:07:47 <int-e> > let (♘) = (++) in text $ "♚" ♘ "♛"
14:07:49 <lambdabot> ♚♛
14:08:45 <wob_jonas> MS's Symbol and Wingdings fonts were in wide use before Unicode, so they just encoded all the characters that didn't obviously correspond to some already encoded character (like a greek letter) early in unicode
14:09:21 <int-e> int-e: infixl 9 is how Haskell declares precedence (here: 9) and fixity (here: left)
14:10:13 <int-e> hmm fixity = associativity.
14:10:22 <wob_jonas> But whereas Symbol mostly has characters they'd already encode, plus some fragment glyph thingies used for drawing large parenthesis and the like in equations, Wingdings is mostly symbols that wouldn't have otherwise had an encoding.
14:10:25 <wob_jonas> Hmm, I think I'm wrong
14:11:52 <wob_jonas> I dunno really how this worked.
14:12:28 <wob_jonas> I think Wingdings is one of those stupid encodings like cp1250 to which MS added new characters later, and called the new version under the same name.
14:13:23 <arseniiv> wob_jonas: I think these fonts worked
14:13:26 <arseniiv> oops
14:13:29 <wob_jonas> int-e: right. the only other programming language I know of that supports such infix precedence declarations is prolog.
14:14:13 <arseniiv> worked without knowing which of byte encodings are used
14:14:28 <wob_jonas> arseniiv: yes.
14:14:44 <wob_jonas> arseniiv: there was no unicode support back then. you just chose the right font for formatted text.
14:15:15 <arseniiv> yes, so that question about native encoding of the font is not so correct
14:16:53 <wob_jonas> arseniiv: sure. but unicode wants to encode characters that are already used, and those characters were already used in formatted text of various formats, including RTF, word doc, and HTML
14:17:00 <wob_jonas> by setting the font
14:18:23 -!- ais523 has joined.
14:19:03 <wob_jonas> there were web browsers before unicode, and people used <font face="Symbol">a</a> or various amp-escapes of which there were so many they wouldn't fit in the normal 8-bit encoding.
14:19:18 <wob_jonas> both of those were used to write an alpha and similar symbols.
14:20:13 <arseniiv> agree
14:21:50 <wob_jonas> and there was a parallel incompatible set of IBM/DOS, Windows, and pre-OS-X Mac 8-bit encodings and fonts, plus various east asian encodings and different versions of software supporting that that I don't know much about
14:22:51 <wob_jonas> I can mostly use the same DOS and Windows 3.11 installation to support western, eastern, and cyrillic encodings, of the IBM/DOS and Windows versions, but not the iso-8859 or Mac encodings. But I can't use the same software to support east asian encodings.
14:23:38 <wob_jonas> There's knobs to be turned for choosing between the three regions (west-europe latin, east-europe latin, cyrillic).
14:25:59 -!- ais523 has quit (Remote host closed the connection).
14:27:13 -!- ais523 has joined.
14:49:31 -!- Sgeo has joined.
14:50:34 -!- Sgeo__ has quit (Ping timeout: 246 seconds).
15:34:22 -!- LKoen has joined.
15:45:11 -!- bradcomp has joined.
15:56:17 -!- LKoen_ has joined.
15:58:35 -!- LKoen has quit (Ping timeout: 244 seconds).
15:59:24 -!- LKoen_ has quit (Client Quit).
15:59:33 -!- LKoen has joined.
16:21:46 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
16:55:22 -!- imode has joined.
17:36:50 -!- Blacksilver has joined.
17:37:55 <esowiki> [[ESOPUNK]] M https://esolangs.org/w/index.php?diff=57520&oldid=57511 * Blacksilver * (+194) More words
18:03:56 -!- Phantom_Hoover has joined.
18:03:57 -!- Phantom_Hoover has quit (Changing host).
18:03:57 -!- Phantom_Hoover has joined.
18:19:20 -!- Namarrgon11 has joined.
18:22:58 -!- Esqapezord has quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.).
18:23:04 -!- Zooklubba14 has joined.
18:24:05 -!- Namarrgon11 has quit (Remote host closed the connection).
18:27:57 -!- Zooklubba14 has quit (Remote host closed the connection).
18:36:27 <arseniiv> deontology vs. ontology: who’ll win?!
18:43:24 -!- Blacksilver has quit (Read error: Connection reset by peer).
19:32:31 -!- Phantom_Hoover has quit (Remote host closed the connection).
19:47:01 -!- Phantom_Hoover has joined.
20:13:21 -!- TheWild has joined.
20:13:27 <TheWild> hello
20:13:43 <TheWild> maybe not entirely esoteric but you may find the concept interesting: https://gist.github.com/beyondlimits/e00159460b55ea4eff949933a2b7dc8e
20:35:38 -!- ais523 has quit (Quit: quit).
20:38:48 -!- Sgeo has quit (Ping timeout: 245 seconds).
20:41:24 -!- TheWild has quit (Quit: TheWild).
20:55:45 -!- Sgeo has joined.
21:03:25 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
21:10:24 -!- Phantom_Hoover has joined.
21:10:24 -!- Phantom_Hoover has quit (Changing host).
21:10:24 -!- Phantom_Hoover has joined.
21:35:27 -!- Sgeo has quit (Ping timeout: 252 seconds).
21:35:49 -!- heroux_ has quit (Read error: Connection reset by peer).
21:35:50 -!- heroux has quit (Read error: Connection reset by peer).
21:36:09 -!- heroux has joined.
21:36:17 -!- heroux_ has joined.
21:36:48 -!- sleepnap has left.
21:50:01 -!- LKoen has quit (Remote host closed the connection).
22:04:04 -!- sftp has quit (Ping timeout: 240 seconds).
22:06:38 -!- sftp has joined.
22:16:27 -!- Sgeo has joined.
22:20:06 -!- Sgeo_ has joined.
22:22:51 -!- Sgeo has quit (Ping timeout: 260 seconds).
22:41:18 -!- moei has quit (Quit: Leaving...).
22:51:15 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:12:36 -!- puckipedia has changed nick to puck.
23:19:34 -!- lambdabot has quit (Remote host closed the connection).
23:31:50 -!- lambdabot has joined.
23:33:36 -!- sebbu has quit (Read error: Connection reset by peer).
23:34:04 -!- sebbu has joined.
23:39:49 -!- 21WAABEOK has quit (Remote host closed the connection).
23:42:47 -!- bradcomp has quit (Ping timeout: 240 seconds).
23:43:31 -!- oerjan has joined.
23:47:51 -!- atslash has joined.
23:50:29 -!- LKoen has joined.
23:55:03 -!- LKoen has quit (Ping timeout: 245 seconds).
23:55:50 -!- tromp has joined.
←2018-09-03 2018-09-04 2018-09-05→ ↑2018 ↑all