00:15:38 -!- mniip has quit (Ping timeout: 612 seconds).
00:18:56 -!- Taneb has quit (*.net *.split).
00:18:56 -!- zemhill_________ has quit (*.net *.split).
00:22:24 -!- mniip has joined.
00:24:39 -!- Taneb has joined.
00:24:39 -!- zemhill_________ has joined.
00:33:20 -!- mniip has quit (Remote host closed the connection).
00:34:44 -!- mniip has joined.
00:50:34 -!- FreeFull has quit.
01:56:40 <imode> forthers seem to be really against new concepts. must be a religion.
03:32:08 <imode> ArthurStrong: people who use forth.
03:34:40 <pikhq> It's a fine religion, really
03:42:05 <imode> it's like, nothing makes sense unless it's _explicitly two stacks and ANSI Forth words_.
03:42:40 <imode> and they hate anything that deviates from that. despite, you know, the main theme of the language is that it's relatively amorphic.
04:05:24 -!- Bowserinator has quit (Quit: Blame iczero something happened).
04:05:36 -!- iovoid has quit (Quit: iovoid has quit!).
04:05:39 -!- probability has quit (Quit: rip).
04:09:05 -!- moony has quit (Ping timeout: 268 seconds).
04:13:04 -!- Bowserinator has joined.
04:15:44 -!- iovoid has joined.
04:16:03 -!- wlp1s1 has joined.
04:16:54 -!- moony has joined.
04:17:06 -!- wlp1s1 has changed nick to probability.
04:23:05 -!- zzo38 has joined.
04:24:53 -!- atslash has quit (Quit: Leaving).
04:31:15 -!- atslash has joined.
04:31:31 <zzo38> What wording should I use at the top of the source file if it is meant to be public domain? Currently I just wrote "// This program is public domain." but someone complained (article <slrnqrkbf6.q9q.jbn@forestfield.org> on Usenet).
05:20:51 -!- imode has quit (Ping timeout: 252 seconds).
05:29:40 <zzo38> I found the answer
05:31:04 <shachaf> The domain is public, but what's the codomain?
05:44:27 <ArthurStrong> shachaf: you want to find a codomain of f(public)?
05:55:48 <zzo38> Since sometimes there is a kernel panic when I use the printer with my computer, would it work if instead I use a Raspberry Pi computer as the printing server and then connect it to the router? Will that allow me to print properly?
05:58:34 <shachaf> Nothing will allow you to print properly. Printers don't work.
05:58:55 <shachaf> Though a kernel panic sounds like a particularly bad failure.
05:59:04 <shachaf> (But I empathize with the kernel.)
06:05:01 <zzo38> I wonder if it is a problem with the USB interface of the printer. This printer also has wireless internet, although I have been unable to get it to work.
06:05:04 <kmc> zzo38: it's worth a shot. i guess the question is whether the raspberry pi will encounter the same kernel panic
06:05:59 <zzo38> kmc: Yes, now I thought maybe it will. But sometimes it works. So, even if it does, at least that way it will not shut down the entire computer and only the printing server will be shut down in that case, I suppose.
06:06:25 <kmc> that does seem like an improvement
06:09:15 <shachaf> Can you run a virtual machine or userspace process and have that run the printer drivers?
06:09:47 <zzo38> If it is a hardware problem then I do not expect that to work.
06:22:54 <kmc> shachaf: I was going to suggest that but it seemed too silly even for here
06:23:23 <kmc> but it's true, it would isolate the kernel panics the same as the rpi would
06:24:15 <shachaf> imo you should invent my fancy programming language for me
06:24:47 <zzo38> I think it if is a problem with the hardware such as with the power or whatever, I am not so sure that it would isolate the kernel panics then.
06:25:38 <shachaf> I would expect that it's a driver problem.
06:25:58 <shachaf> What sort of nonsense could be going over the USB cable to cause a kernel panic?
06:26:29 <shachaf> What's my best bet for doing ELF linking?
06:26:32 <zzo38> I don't know, but I think that someone suggested here before it might be some kind of hardware problem
06:26:44 <shachaf> Is doing it myself too much trouble because of things like link-time optimization and C++?
06:27:12 <shachaf> Maybe I can use ld to do link-time optimization of libraries by prelinking them into one object file.
06:30:33 <kmc> shachaf: less than 3 hours left in my first gigasecond of life
06:30:40 <kmc> we made cake
06:31:27 * kmc hands shachaf a piece of cake
06:31:48 <shachaf> i want edible cake and not just words
06:32:05 <kmc> do I actually want to stay up until 02:12
06:32:10 <shachaf> today i made myself delicious noncake food
06:32:31 <kmc> i'm (to borrow a phrase you once used) pregretting this decision
06:33:20 <kmc> i think you were going to go with me to the flea market at butt o' clock in cupertino
06:33:27 <kmc> and said you were pregretting the decision to do so
06:33:37 <kmc> but in the end you didn't, so I guess that pregret was for naught?
06:33:40 <shachaf> I must've pregretted it so much that I didn't do it.
06:33:48 <shachaf> That sounds like the most useful kind of pregret.
06:34:07 <shachaf> Why regret -- or pregret -- things if it has no effect on your actions? That's just useless suffering.
06:34:25 <kmc> is the concept of pregret related to the concept of type II fun?
06:34:37 <kmc> it's sort of the opposite
06:35:05 <kmc> type II fun is motivated by pre-reminiscing or something
06:35:38 <kmc> my friend carson mapped out the 8 combinations of positive or negative feelings before, during, and after an activity
06:35:42 <kmc> and gave each one a name
06:35:45 <shachaf> i'm going to preminisce a bunch of \rainbow{coins} for my big ico
06:35:46 <kmc> but i forgot what most of the names were
06:36:12 <kmc> the name he used for enjoyment before/during, regret after was "hedonism" and I objected strongly
06:36:35 <shachaf> Hedonism seems to be the entire subset of enjoyment during, or something?
06:36:43 <kmc> and cited hedonism-bot from futurama
06:37:27 <kmc> I think it's a subtype of enjoyment
06:37:35 <kmc> but perhaps a tricky-to-define one
06:39:29 <shachaf> I was invited on a mushroom foraging trip but it turns out I'll have an MRI on the same day so I can't go. :-(
06:39:34 <kmc> that's too bad
06:39:40 <kmc> what are the details of this trip?
06:42:46 <kmc> there's also the matter of short-term versus long-term regret
06:43:19 <kmc> i.e. a wild night out may result in a hangover but become a fond memory over time
06:44:36 <shachaf> not sure about the details
06:46:15 <kmc> shachaf: i could bring you some cake on friday maybe
06:46:25 <kmc> after all you're the one who told me about my birthgigasecond in the first place
06:46:36 <kmc> it has eggs and dairy btw
06:46:54 <kmc> and a little beer
06:47:56 <shachaf> I guess I should keep track of people who are around your age who also have their birthgigasecond coming up.
06:52:50 <zzo38> I made ZZ Zero, it is a bit similar to ZZT, but ZZ Zero has its own assembly language. Here is an assembly language code in ZZ Zero: http://zzo38computer.org/textfile/miscellaneous/example1 Now I noticed there is a few bugs and a few things which could be written better than it is, did you find it even though it is not explained?
06:55:45 <shachaf> kmc: speaking of mushrooms are you mushroom pizzaing
07:03:16 <zzo38> Do you like ZZ Zero?
07:07:36 <zzo38> No, it is just the game program similar to ZZT, therefore I called it ZZ Zero instead.
07:09:55 <zzo38> How to improve the keyboard speed in BASIC? I did figure out a code to clear the keyboard buffer: DEF SEG = 0 : POKE &H41A, PEEK(&H41C) but this does not improve the speed of the keyboard, and only fixes it so that if the keys are held down to indicate movement, the move will stop as soon as the key is released, if the game speed is slower than the keys.
07:11:37 <kmc> shachaf: when is mushroom pizza
07:12:19 <zzo38> I like to make plain pizza
07:12:24 <zzo38> (without mushrooms)
07:12:34 <kmc> zzo38: which machine is that for
07:13:31 <zzo38> kmc: The BASIC code I posted is for PC.
07:13:52 <zzo38> (As far as I know, DEF SEG does not apply to any other computer)
07:14:26 <kmc> and what does DEF SEG do?
07:14:43 <kmc> I wrote plenty of QBASIC code but very rarely used POKE/PEEK
07:14:58 <zzo38> Selects which segment to use for POKE/PEEK.
07:16:19 <shachaf> zzo38: What are the ingredients of plain pizza?
07:16:46 <zzo38> (For example, if you write DEF SEG = &HB800 then you can access the video memory.)
07:18:10 <zzo38> shachaf: It is pizza dough, yes, although it is not entirely plain because I add oregano and oil on top too, usually, and sometimes also cheese (but not as much as the commercial pizzas).
08:21:33 <b_jonas> shachaf: quickly get a metalic hip prothesis to get out of the MRI and be able to go to the trip
08:30:13 <b_jonas> shachaf: you'll have to organize another such trip then
08:40:54 -!- arseniiv has joined.
08:43:08 -!- cpressey has joined.
08:49:56 -!- b_jonas has quit (Remote host closed the connection).
09:09:39 -!- tromp has quit (Remote host closed the connection).
09:13:31 <kmc> woo, made it
09:37:47 -!- tromp has joined.
09:40:34 -!- atslash has quit (Read error: Connection reset by peer).
09:41:22 -!- atslash has joined.
10:26:23 <arseniiv> let the second gigasecond be even more nice
10:27:13 <arseniiv> hm it seems no one @told me anything about HOAS, let’s logread to be sure
10:41:16 <arseniiv> <int-e> maye be should start using stub templates? => hehe
10:41:26 <arseniiv> <shachaf> Nothing will allow you to print properly. Printers don't work. => sad but true
10:43:59 <myname> an esolang where the print command behaves like a printer with all its quirks
10:45:59 * arseniiv is going to add some quotes to HackEso privately and no one will know if he’s done something wrong
10:47:03 <myname> sometimes, print will just put out some random emojis upside down
10:47:32 <myname> other times, it will print white on black because somebody configured it to do so
10:55:26 -!- wib_jonas has joined.
11:00:51 <myname> cut your pizzas into twelve~
11:01:30 <HackEso> https://hack.esolangs.org/repo/
11:01:46 <arseniiv> oh TIL it’s written “croissant”, no saints and crosses, just a crescent
11:03:21 <arseniiv> no more private talk with HackEso :′(
11:04:48 <arseniiv> myname: is it because 12 has so many divisors?
11:05:22 <myname> arseniiv: yeah, there's a song from axis of awesome about it
11:06:01 <myname> an 8 slice pizza cannot be evenly shared by three
11:07:54 <Lykaina> woke up at 6:56am to someone knocking at either my or my neihbor's door
11:08:39 <arseniiv> I want another croissaint, but it’s not healthy (and so delicious) and I don’t have any left
11:09:18 <arseniiv> damn, I wrote “croissaint” again
11:09:47 <arseniiv> no anything, only tea and apples
11:10:36 <arseniiv> (I’m not entirely serious but there’s no pastry-dough-things)
11:10:52 <myname> i don't even get how you come to "croissaint", the pronounciation would be completely off
11:10:58 <wib_jonas> go shopping, today because tomorrow is a holiday and every shop will be closed. or order food from the internet.
11:13:44 <arseniiv> myname: I know only pieces of French orthography :D hm now if I to compare with something I remember, it would indeed obvious. Though before today I hadn’t even write it in latin script at all
11:14:53 <arseniiv> and yesterday eating the previous croissant I thought it was connected with saints, not thinking too much about what it would entail for pronunciation
11:15:24 <arseniiv> that one I think was the reason the second i emerged today
11:16:16 <arseniiv> wib_jonas: hm what holiday, is it international enough?..
11:17:14 <arseniiv> I have enough food but I want croissant but you may remember that I said donuts are the devil or something, and croissants definitely aren’t so far
11:18:25 <wib_jonas> Lykaina: yes, it will be --11-01, that's been a holiday for about ten years now
11:24:51 <wib_jonas> ``` hg log -T "{rev}:{date|shortdate}:{files}:{desc}\n" -r 11995:
11:24:52 <HackEso> 11995:2019-10-31:quotes:<arseniiv> addquote <shachaf> The domain is public, but what\'s the codomain?
11:25:49 <wib_jonas> Lykaina: dunno. I don't care about the significance or name of the holiday. that's for other people. it only matters that it's a holiday when most people don't work.
11:26:07 <Lykaina> i'm only awake cause some moron was knocking on doors
11:29:37 <myname> perfect time for youtube
11:33:22 <cpressey> arseniiv: lambdabot did not msg me! But I read the logs. HOAS is intriguing (I've been reading about it) but it sounds like you have to apply higher-order unification to use it, which sounds a bit heavyweight "just for syntax". Also I'm not yet clear on what exactly makes it better than de Bruijn indexes.
11:35:12 <cpressey> I find de Bruijn indexes hard to read, but you could always pretty-print them into variable names when dumping out a structure.
13:37:39 <arseniiv> hm I think I made my HOAS best it could be without dependent types. I bet it allows false-positive “proofs” (of first-order statements, as propositionally the thing should work as expected), though I’m lazy to search for them; https://repl.it/repls/ImpartialWaterloggedFolder
13:39:28 <arseniiv> cpressey: on de Bruijn indices: agree
13:46:08 <arseniiv> hmmm could I write something like `Ex :: (Term t -> F (a t)) -> F (forall t. (Term t, a t))`
13:49:55 <arseniiv> and then `ExI :: Term t -> I (a t) -> I (forall t. (Term t, a t)` and ``ExE :: I (forall t. (Term t, a t)) -> (Term t -> I (a t) -> I b) -> I b` or something
13:51:03 <arseniiv> would the code typecheck if this is a valid syntax at all
14:30:59 <wib_jonas> fungot, what's better for turning undead, a lathe or a turntable?
14:30:59 <fungot> wib_jonas: a lot to the paladins and a full line, much like this go board and replace it with the same way that i, myself, can hear??
14:31:34 <wib_jonas> a lot of paladins for turning undead? yes, that could work
14:56:02 -!- imode has joined.
14:57:12 -!- tromp has quit (Remote host closed the connection).
14:58:47 <Cale> `ysac Garlic Bread Guide - You Suck at Cooking (episode 98) https://www.youtube.com/watch?v=UPuV52ydBfU
14:58:47 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ysac: not found
15:09:30 -!- tromp has joined.
15:57:29 -!- wib_jonas has quit (Remote host closed the connection).
16:13:28 <cpressey> arseniiv: Interesting, I should try to wrap my head around https://repl.it/repls/ImpartialWaterloggedFolder sometime (I'll need more practice with GADTs first I think)
16:13:34 -!- cpressey has quit (Quit: WeeChat 1.4).
16:28:45 <arseniiv> ironic that I’m not so easy about GADTs still. It seems they are simple, but who knows what I could be missing. What GHC desugars them into wasn’t obvious to me when I read about that a week(?) ago
16:49:35 <lf94> arseniiv: GADTs are not magic...
16:49:39 <lf94> it's a fancy work
16:49:59 <lf94> First you start with ADT - what IS an ADT?
16:51:19 <lf94> (If I remember correctly) An ADT is a type with no parameters: type LoL = Int | String
16:51:35 <lf94> A GADT is a type that can take parameters (Generalized)
16:51:44 <lf94> Type LoL a = Int | a
16:51:55 <lf94> nothing else to it
16:52:11 <kmc> lf94: the implementation is fairly complicated
16:52:18 <kmc> because when you pattern match on a GADT, you refine its type
16:52:25 <lf94> what matters is how to use it.
16:52:27 <kmc> and this can be used on the RHS
16:52:40 <kmc> iirc, GHC had to add type equalities as another kind of typeclass-ish constraint
16:52:40 <lf94> kmc what is the implementation of quantum mechanics?
16:52:45 <kmc> (a ~ b) => ...
16:52:48 <kmc> lf94: this is of some debate
16:52:57 <kmc> but also it is philosophical in nature
16:53:25 <lf94> It's very nice to understand the inner workings of anything
16:53:36 <lf94> but in many cases, you need to understand the usage of the thing
16:55:10 <kmc> I thought that arseniiv was asking about implementation
16:55:14 <kmc> because they mentioned desugaring
16:55:30 <kmc> iirc the features needed to typecheck those equality constraints are also needed for type families
16:55:36 <kmc> gadt can accomplish a lot of the same things
16:55:40 <kmc> GADTs are neat though
16:55:52 <kmc> they get you a lot of the power associated with dependently typed languages
16:56:07 <kmc> and allow you to implement much more correctenss properties in the type system
16:56:45 <kmc> when using Haskell as a metalangauge, it allows to put the object language's type system into the haskell type system
16:59:45 -!- kspalaiologos has joined.
17:02:27 <arseniiv> lf94: hehe no, GADTs are trickier than simply adding a parameter. For example a DSL for simple expressions:
17:02:27 <arseniiv> Add :: Expr Int -> Expr Int -> Expr Int
17:02:27 <arseniiv> Eq :: Expr Int -> Expr Int -> Expr Bool
17:02:28 <arseniiv> IfThenElse :: Expr Bool -> Expr a -> Expr a -> Expr a
17:02:28 <arseniiv> we couldn’t write something as refined by using plain ADTs where we only can return `Expr a`, not `Expr Int` or `Expr Bool`
17:03:40 <arseniiv> <kmc> iirc, GHC had to add type equalities as another kind of typeclass-ish constraint => yeah, I was talking about that precisely :)
17:03:41 <kmc> there are weird ways to do it without GADTs
17:03:44 <kmc> but they're not as nice
17:03:53 <kmc> arseniiv: I forgot the name but there's a paper on basically how they did it
17:04:11 -!- imode has quit (Ping timeout: 276 seconds).
17:06:23 <arseniiv> <lf94> but in many cases, you need to understand the usage of the thing => I join with kmc, surely, though ultimately an average human like me learns not by discovering representation nor by grasping API but by many many examples; how are these generated in each case is another question
17:08:21 <arseniiv> kmc: hm I can’t remember what I read too, why GADTs impl was even mentioned there, it seems that was a text on another topic
17:11:44 -!- atslash has quit (Quit: This computer has gone to sleep).
17:12:36 <arseniiv> ah I remembered: http://dev.stephendiehl.com/hask/#gadts-1
17:15:48 <arseniiv> somewhat cluttered but there are lots of useful notes someone may have overlooked
17:16:05 -!- LKoen has joined.
17:32:02 -!- zzo38 has quit (Ping timeout: 240 seconds).
17:37:10 -!- imode has joined.
17:38:05 <imode> arseniiv: your perspective is refreshing.
17:44:15 <imode> also happy halloween.
17:44:24 <imode> feed your jack-o-lanterns plenty of fire.
17:52:30 -!- zzo38 has joined.
17:58:57 <arseniiv> imode: some years ago, I made an imrovised jack-o-lantern from a clementine and a clever(?) lighting
17:58:58 <kmc> happy halloween
17:59:16 <arseniiv> maybe I’ll find it and post a link
18:00:25 <imode> arseniiv: tiny pumpkin!
18:01:02 <lf94> arseniiv: that sounds cool
18:02:35 <arseniiv> imode: lf94: kmc: here: https://i.postimg.cc/5t3RY22v/DSC-1154.jpg
18:03:14 <arseniiv> as you see it wasn’t carved too deep but has a charming grin
18:03:16 <imode> it's so happy. ;~;
18:05:19 <arseniiv> I ate it after some time and was too
18:20:31 -!- b_jonas has joined.
18:39:05 -!- imode has quit (Ping timeout: 276 seconds).
19:04:18 -!- Phantom_Hoover has joined.
19:06:10 -!- imode has joined.
19:10:35 <zzo38> shachaf: OK I looked at the fmt.h now. I think that the "c" format should not use UTF-8 and that UTF-8 should be a separate format (perhaps "u").
19:13:19 <b_jonas> zzo38: definitely not u, that's already used. I recommend c with some prefix, like lc or Lc or qc
19:15:51 <kspalaiologos> I started working on the disassembler for real, in Java
19:16:33 <kspalaiologos> just to note, these are not the formal asm2bf/bfasm instructions, just the building blocks the other part of disassembler will take care of
19:16:53 <b_jonas> kspalaiologos: that has an unbalanced bracket
19:16:58 <HackEso> /hackenv/bin/`: line 5: asm2bf: command not found
19:17:22 <zzo38> b_jonas: Yes, that would do. Yes, you are right, but fmt.h does not use the "u" format for anything, or most other formats supported by printf().
19:17:29 <HackEso> +>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>[-]<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
19:17:44 <kspalaiologos> so this will get translated to some longer code because most isn't yet implemented
19:17:56 <kspalaiologos> so instead of outputting mov r2, 0 it would output something like
19:19:25 <kspalaiologos> btw, I remember that I've added a newline preserving wrapper over bfasm, but it seems like somebody has removed it
19:19:29 <HackEso> bfasm is the brainfuck assembler. Documentation and samples: https://raw.githubusercontent.com/KrzysztofSzewczyk/asmbf/master/doc/bfasm.doc
19:19:34 <HackEso> Wrapper around bfasm, that automatically converts slashes to newlines and feeds it into original compiler
19:21:03 <b_jonas> kspalaiologos: name thme both bfasm, but use the ! framework for the wrapper one?
19:21:31 <b_jonas> also, I think I'm not esoteric enough because I don't see the point of a brainfuck disassembler
19:22:03 <kspalaiologos> but now, I've got a few programs with the source code lost
19:22:07 <b_jonas> yes, I sort of understand the assembler
19:22:15 <kspalaiologos> and I can reverse engineer them by hand to check how are they made
19:22:34 <b_jonas> ok, that is an esoteric enough goal
19:22:48 <kspalaiologos> that presumes, I dumped all the assembly source code with my trash and it's long gone by now lol
19:24:04 -!- LKoen has quit (Remote host closed the connection).
19:28:37 -!- quintopia has quit (Ping timeout: 240 seconds).
19:30:50 <shachaf> zzo38: It could also be {c|u} or something else.
19:31:19 <zzo38> shachaf: Yes, that could be another possibility I suppose
19:31:24 <shachaf> I defined a show() macro so I can type show(x) to print out the type-aware value of x and also the variable name.
19:31:27 -!- LKoen has joined.
19:46:31 <zzo38> Now I released ZZ Zero (although it is incomplete): http://zzo38computer.org/prog/zzzero.zip I also set up a NNTP to discuss it.
19:55:32 <zzo38> Do you mean the file I linked to? It is ZZ Zero; the read me file explains it.
20:18:37 -!- LKoen has quit (Remote host closed the connection).
20:20:50 -!- LKoen has joined.
20:27:32 -!- FreeFull has joined.
20:37:53 -!- imode has quit (Ping timeout: 252 seconds).
20:40:11 -!- kspalaiologos has quit (Quit: Leaving).
20:49:11 <esowiki> [[User talk:Zzo38]] https://esolangs.org/w/index.php?diff=66900&oldid=65855 * Moon * (+52) /* Dottyweb? */ new section
20:49:29 <esowiki> [[User talk:Zzo38]] https://esolangs.org/w/index.php?diff=66901&oldid=66900 * Moon * (+76) i am a derp who forgot to sign
20:56:07 -!- imode has joined.
21:20:09 -!- imode has quit (Ping timeout: 268 seconds).
21:31:37 -!- imode has joined.
21:37:43 -!- LKoen has quit (Remote host closed the connection).
21:40:06 <imode> rust tempts me once again.
21:40:44 <imode> I shouldn't use it. every year or so I get tempted to.
21:46:29 <arseniiv> I completed writing out the definition of generalized Minsky machine, at last
21:47:53 <arseniiv> it ended up pretty natural, though match+destruct commands end up with quite many arguments
21:49:16 <imode> generalized minsky machine, huh?
21:51:37 <arseniiv> for example a machine for { data Nat = Z | S Nat; data List = Nil | Cons Nat } would have following commands (`−t` input register of type t, `+t` output register of type t, `s` state):
21:51:37 <arseniiv> Z +Nat s; S −Nat +Nat s; Nat −Nat s +Nat s; Nil +List s; Cons −Nat −List +List s; List −List s +Nat +List s
21:52:13 <arseniiv> imode: yeah, its instruction set is based on several possibly interdependent algebraic types
21:52:18 <zzo38> Why does arin.ga doesn't works now?
21:59:40 -!- LKoen has joined.
22:10:50 -!- imode has quit (Ping timeout: 240 seconds).
22:14:44 -!- imode has joined.
22:27:50 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
22:36:38 -!- oerjan has joined.
22:44:08 -!- imode has quit (Ping timeout: 276 seconds).
23:27:36 -!- imode has joined.
23:30:13 -!- arseniiv has quit (Ping timeout: 252 seconds).