00:00:11 -!- aretecode has quit (Read error: Connection reset by peer).
00:00:48 <ais523> any verdict on whether it's 7 or 8 yet?
00:00:48 -!- relrod has quit (Ping timeout: 264 seconds).
00:01:19 -!- zgrep has quit (Excess Flood).
00:01:59 <hppavilion[1]> It's been a few minutes, so now it's either... 4 or 5
00:02:22 <ais523> I meant for the entire amount of time taken up
00:02:50 -!- relrod_ has joined.
00:02:50 -!- relrod_ has quit (Changing host).
00:02:50 -!- relrod_ has joined.
00:02:57 -!- zgrep has joined.
00:04:38 <oerjan> @djinn ((((t1 -> t2) -> t1) -> t1) -> t2) -> t2
00:04:38 <lambdabot> f a = a (\ b -> b (\ c -> a (\ _ -> c)))
00:04:55 <oerjan> :t \a -> a (\ b -> b (\ c -> a (\ _ -> c)))
00:04:56 <lambdabot> ((((r -> r1) -> r) -> r) -> r1) -> r1
00:05:43 <ais523> now I'm trying to figure out what that function does
00:06:01 <ais523> (also, the second question seems a little pointless, I doubt lambdabot would give you a function of the wrong type)
00:06:45 <ais523> hmm, presumably there are some types it can't handle
00:06:52 <ais523> @djinn (a -> b) -> b -> a
00:06:57 <tswett> @djinn (a -> b) -> a -> b
00:07:22 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
00:07:24 <tswett> @djinn ((((a -> b) -> b) -> a) -> b) -> b
00:07:57 <tswett> I remember being frustrated a few years ago about how that function didn't exist.
00:08:01 <tswett> I don't remember quite why.
00:08:35 -!- codergeek42 has quit (Quit: Ex-Chat).
00:08:47 <ais523> I find those left-associative function types really unintuitive
00:09:06 <tswett> https://gist.github.com/nylki/1efbaa36635956d35bcc "Line and discard salt into sauce."
00:09:15 <tswett> Reveal a creature card from your hand and discard it onto the battlefield.
00:09:56 <\oren\> b_jonas: yeah character requests are open
00:10:18 -!- aretecode has joined.
00:10:37 <ais523> also hppavilion[1] was wrong, it's been more than 7
00:10:54 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
00:14:25 -!- mihow has quit (Quit: mihow).
00:19:40 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
00:32:30 <oerjan> <ais523> now I'm trying to figure out what that function does <-- someone asked for it in an SO question. The type is basically Pierce's law with an extra -> t2 -> t2 tacked on, which is enough to turn from "no term exists" (because not an intuitionistic theorem) to "one does".
00:33:02 <ais523> oerjan: oh, so it's a proof, not a function intended to be useful in programming
00:35:57 <tswett> @djinn ((((((a -> b) -> b) -> a) -> b) -> b) -> a) -> a
00:35:57 <lambdabot> f a = a (\ b -> b (\ c -> a (\ _ -> c (\ d -> b (\ _ -> d)))))
00:36:12 <tswett> @djinn ((((a -> b) -> b) -> a) -> a) -> a
00:36:22 <tswett> @djinn ((((((a -> b) -> b) -> a) -> a) -> a) -> b) -> b
00:36:31 <oerjan> tswett: i suspect tacking -> b) -> b) -> a) -> a onto anything containing just a and b makes it provable
00:36:48 <tswett> oerjan: and taking -> a) -> a) -> b) -> b on does not?
00:37:15 <tswett> There's a counterexample right there.
00:45:04 <tswett> @djinn (((a -> a) -> a) -> a) -> a
00:46:38 -!- MoALTz__ has joined.
00:47:34 <Jafet> Is that even true classically
00:48:34 -!- MoALTz_ has quit (Ping timeout: 260 seconds).
00:48:42 <oerjan> @check \a -> (((a <= a) <= a) <= a) <= (a :: Bool)
00:48:44 <lambdabot> *** Failed! Falsifiable (after 1 test):
00:49:23 <shachaf> breaking new grounds in laziness
00:49:31 <ais523> well it doesn't take long for lambdabot to try both possibilities
00:49:38 <Jafet> Gotta check all those Unknowns and FileNotFounds
00:49:41 <oerjan> well i didn't use the brain power to check that True was obvious hth
00:49:42 <ais523> what does <= do on bools?
00:49:51 <oerjan> ais523: implication hth
00:49:55 <shachaf> Implication (in the opposite direction of the arrow).
00:51:26 <oerjan> @check \x a -> ((x <= a) <= a) == (x::Bool)
00:51:28 <lambdabot> *** Failed! Falsifiable (after 8 tests):
00:52:49 <fizzie> 8 tests for two bools.
00:53:07 <oerjan> lambdabot is very thorough
00:53:55 <Jafet> Clearly there are sqrt 8 values of Bool.
00:54:10 <shachaf> Didn't lambdabot have a smallcheck plugin at one point?
01:00:59 <oerjan> @djinn ((a -> a) -> a) -> a
01:02:30 <\oren\> there are 9 values for 2 bools
01:02:38 <oerjan> i'm wondering if you can get something that is classically true and yet tacking on -> v) -> v for all its variables doesn't turn it intuitionistically true
01:02:47 <\oren\> because bools are nullable I assume
01:03:45 <\oren\> or are Haskell bools not nullable?
01:04:12 <oerjan> not nullable, but they have undefined
01:04:49 <oerjan> unless you start distinguishing different exceptions, in which case you have infinitely many
01:05:04 <\oren\> bah typical use of null is as a undefined value with defined behaviour
01:05:27 <oerjan> yes, which haskell's undefined isn't, you cannot test for it in pure code
01:05:39 <Sgeo__> https://www.reddit.com/r/rust/comments/3osqqe/hlist_010_heterogeneously_typed_lists_with/
01:05:55 <oerjan> well it's defined behavior i guess, just not useful to test on
01:10:28 <fizzie> You probably want a Maybe Bool if you want a "nullable bool".
01:12:45 <fizzie> I like the "Just x" constructors, they make code sound friendly and approachable.
01:13:10 <fizzie> By contrast, Java 8's Optional<T> has methods like "orElse", which sound vaguely threatening.
01:13:24 <fizzie> This value better not be empty, orElse.
01:14:09 <oerjan> > Just Right <*> Just "there"
01:14:19 <Jafet> > frоmEnum False :: [Bool]
01:14:20 <lambdabot> [False,True,*Exception: openFile: does not exist (no such file or directory)
01:15:38 <oerjan> > frоmEnum False :: [Bool]
01:15:39 <lambdabot> [False,True,*Exception: openFile: does not exist (no such file or directory)
01:16:31 <oerjan> > frоmEnum False :: [Bool]
01:16:32 <lambdabot> [False,True,*Exception: openFile: does not exist (no such file or directory)
01:16:54 <oerjan> > fromEnum False :: [Bool]
01:16:56 <lambdabot> Couldn't match expected type ‘[Bool]’ with actual type ‘Int’
01:16:56 <lambdabot> In the expression: fromEnum False :: [Bool]
01:17:08 <HackEgo> [U+0046 LATIN CAPITAL LETTER F] [U+0061 LATIN SMALL LETTER A] [U+006C LATIN SMALL LETTER L] [U+0073 LATIN SMALL LETTER S] [U+0065 LATIN SMALL LETTER E]
01:17:23 <Jafet> Oh right, it's enumFrom.
01:17:35 <shachaf> `` unidecode enumFrom # hth
01:17:36 <HackEgo> [U+0065 LATIN SMALL LETTER E] [U+006E LATIN SMALL LETTER N] [U+0075 LATIN SMALL LETTER U] [U+006D LATIN SMALL LETTER M] [U+0046 LATIN CAPITAL LETTER F] [U+0072 LATIN SMALL LETTER R] [U+006F LATIN SMALL LETTER O] [U+006D LATIN SMALL LETTER M]
01:17:54 <HackEgo> [U+0066 LATIN SMALL LETTER F] [U+0072 LATIN SMALL LETTER R] [U+043E CYRILLIC SMALL LETTER O] [U+006D LATIN SMALL LETTER M] [U+0045 LATIN CAPITAL LETTER E] [U+006E LATIN SMALL LETTER N] [U+0075 LATIN SMALL LETTER U] [U+006D LATIN SMALL LETTER M]
01:18:13 <lambdabot> [False,True,*Exception: openFile: does not exist (no such file or directory)
01:18:18 <shachaf> a bit less sneaky than it looked at first
01:18:36 <shachaf> > fromEnum False :: [Bool]
01:18:38 <lambdabot> It could refer to either ‘L.fromEnum’,
01:18:38 <lambdabot> defined at /tmp/mueval8057508461632621729.hs:161:1
01:18:54 <\oren\> In my font those two o's look quite distinct
01:19:09 <shachaf> i never realized fromEnum and enumFrom both existed
01:19:12 <fizzie> It's a very non-picky fromEnum.
01:19:15 <shachaf> (i realized they each existed, though)
01:20:52 <fizzie> > enumFromTo minBound maxBound :: [Bool]
01:28:12 -!- hppavilion[1] has joined.
01:36:29 -!- doesthiswork has joined.
01:57:17 <HackEgo> [wiki] [[C+]] N http://esolangs.org/w/index.php?oldid=44743 * 69.118.252.58 * (+1217) It's a joke somewhat
01:58:20 <HackEgo> [wiki] [[C+]] http://esolangs.org/w/index.php?diff=44744&oldid=44743 * 69.118.252.58 * (-2)
02:01:08 -!- Adie has joined.
02:03:12 <HackEgo> [wiki] [[Joke language list]] http://esolangs.org/w/index.php?diff=44745&oldid=44621 * 69.118.252.58 * (+9) /* General languages */
02:03:13 <shachaf> I found a use for ImpredicativeTypes: let reify :: forall a r. a -> (forall s. Reifies s a => Proxy s -> r) -> r; reify a k = (unsafeCoerce unsafeCoerce :: (forall s. Reifies s a => Proxy s -> r) -> (Proxy s -> a) -> Proxy s -> r) k (const a) Proxy
02:03:30 <HackEgo> [wiki] [[Joke language list]] http://esolangs.org/w/index.php?diff=44746&oldid=44745 * 69.118.252.58 * (-7) /* General languages */
02:04:42 <HackEgo> [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=44747&oldid=44669 * 69.118.252.58 * (+9)
02:05:33 <HackEgo> [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=44748&oldid=44747 * 69.118.252.58 * (+0) /* C */
02:06:04 <hppavilion[1]> tswett: How about a "tied list" data structure? Or Tied XML?
02:06:15 <Adie> what is this channel
02:06:30 <hppavilion[1]> Adie: It's the discussion of Esoteric Programming Languages
02:06:41 <Adie> what does esoteric mean
02:06:58 <hppavilion[1]> (Tangled and Tied XML: <b><i><portal id="walrus"/></b><portal id="walrus"/></i>)
02:07:33 <hppavilion[1]> So you do programming. I was just about to ask that.
02:08:22 <hppavilion[1]> For example, brainfuck, a TC language with only 8 instructions (+-<>[].,), with two of them just for IO (unnecessary for TCness) and too many derivatives
02:08:30 <Adie> this place is weird
02:10:30 <hppavilion[1]> You could visit our wiki if you're interested in what we do more: http://esolangs.org/wiki/Main_Page
02:12:07 <ais523> esoteric programming languages are languages for which being useful was not a primary design goal
02:12:12 <HackEgo> [wiki] [[Brainfuck asterism]] N http://esolangs.org/w/index.php?oldid=44749 * Hppavilion1 * (+26) Created Page as a convenience redirect
02:12:29 <hppavilion[1]> ais523: Or it was, but it aims to achieve so in a roundabout way
02:12:40 <ais523> hppavilion[1]: well, no, that's not really being useful
02:13:22 <Sgeo__> s/useful/useful for programming/
02:13:27 <hppavilion[1]> Befunge could be useful if it had some libraries that people use.
02:13:28 <ais523> right, one of the reasons I stay here is in the hope that we'll discover the next new big thing in programming
02:13:42 <ais523> fungot: explain to hppavilion[1] that you already have plenty of libraries
02:13:44 <fungot> ais523: you can only run gpl code on it without saying so, but the patient declined." fnord dominus
02:14:39 <hppavilion[1]> I think that a CSV-based funge COULD be the next big thing
02:14:58 -!- relrod_ has changed nick to relrod.
02:15:24 * relrod doesn't know why he had a tail :(
02:15:56 <ais523> hppavilion[1]: I don't, really
02:16:15 <ais523> I think to really revolutionize programming, you have to attack it from an angle that doesn't really fit in with existing code
02:16:29 <ais523> I've been aiming to do some things along those lines
02:16:43 <ais523> the result is that the languages are impossible, with known techniques, to implement efficiently, and nobody can figure out how to program in them
02:16:51 <ais523> (look at something like http://esolangs.org/wiki/WUUI for example)
02:16:59 <hppavilion[1]> ais523: Maybe not the next big thing, but I bet it could go beyond our community. Not CSV strictly, but more spreadsheet-based.
02:20:08 <HackEgo> [wiki] [[Brainfuck⁂]] http://esolangs.org/w/index.php?diff=44750&oldid=44627 * Hppavilion1 * (+599) IDs for Operator Overloading in Classes (this is a fucking BF derivative)
02:20:35 <HackEgo> [wiki] [[Brainfuck⁂]] http://esolangs.org/w/index.php?diff=44751&oldid=44750 * Hppavilion1 * (+0) Fixed some formatting
02:21:14 <HackEgo> [wiki] [[Brainfuck⁂]] M http://esolangs.org/w/index.php?diff=44752&oldid=44751 * Hppavilion1 * (+4) Fixed some formatting (again)
02:22:31 <oerjan> shachaf: huh, is the double unsafeCoerce necessary?
02:22:33 <hppavilion[1]> The way it'll work is there'll be two commands: Define the following code block to a class and set current cell to instance of corresponding class
02:23:14 <shachaf> I spent much less time on those comments than I did on the answer. I'd be happy to see it done in a more straightforward way.
02:23:48 <hppavilion[1]> I want to make a DB software that follows this analogy: SQL:C::This:Python
02:23:49 <shachaf> The obvious thing (unsafeCoerce :: (forall ...) -> ...) didn't seem to work but I didn't investigate too much.
02:24:05 <shachaf> oerjan: also how did you get this notification exactly
02:24:27 <oerjan> presumably because ImpredicativeTypes are currently crap
02:24:28 <shachaf> Oh, are you some sort of fancy moderator?
02:24:43 <shachaf> Never mind, I forgot that I posted that in here.
02:25:28 <shachaf> I thought you were reading http://stackoverflow.com/a/17794883
02:25:47 <shachaf> since you always seem to be on that website
02:26:54 <oerjan> well i am, but i don't remembber that message
02:27:32 <shachaf> it's an old answer, just a new comment
02:30:21 <\oren\> I think I'm gonna make a language called c❄
02:30:51 <oerjan> it better be unique and precious
02:32:09 -!- impomatic_ has quit (Read error: Connection reset by peer).
02:32:56 <Jafet> `multicode -r snowflake
02:32:57 <HackEgo> Usage: multicode [options] arg \ \ multicode: error: no such option: -
02:32:59 <Jafet> `` multicode -r snowflake
02:33:01 <HackEgo> U+2744 SNOWFLAKE \ UTF-8: e2 9d 84 UTF-16BE: 2744 Decimal: ❄ \ ❄ \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals) \ \ U+2745 TIGHT TRIFOLIATE SNOWFLAKE \ UTF-8: e2 9d 85 UTF-16BE: 2745 Decimal: ❅ \ ❅ \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals) \ \ U+2746 HEAVY CHEVRON SNOWFLAKE \ UTF-8: e2 9d 86 UTF
02:33:18 <\oren\> it will be based on C, but rather than adding features
02:33:57 <\oren\> it will alter the syntax to be as clean as freshly fallen snow
02:34:38 <\oren\> I'm working on some code samples first, then I'll figure out a real spec
02:35:48 <Jafet> `` multicode -r snowflake | awk 'NR % 6 == 1 || NR % 6 == 3'
02:35:49 <HackEgo> U+2744 SNOWFLAKE \ ❄ \ U+2745 TIGHT TRIFOLIATE SNOWFLAKE \ ❅ \ U+2746 HEAVY CHEVRON SNOWFLAKE \ ❆
02:37:42 <hppavilion[1]> (Slower mostly because it'll be made in python xD)
02:38:44 <\oren\> nah, it will RUN at the same speed, but the cleaner looking syntax might slow down compilation
02:39:42 <hppavilion[1]> \oren\: It won't be compiled, at least in the original version. I'm not smart enough to compile things.
02:40:05 <hppavilion[1]> (Except this one program that I manually compiled, but that was literally a single instruction)
02:41:42 <hppavilion[1]> What should I call this DB for now? ArbourDB? (It'll allow one to use trees instead of/along with/merged with Tables if one desires)
02:44:13 <\oren\> a tree on a table? like bonsai?
02:52:25 <hppavilion[1]> \oren\: Yes. You can have a table where the cells in one or more columns are binary or other trees. Like a bonzai.
02:54:19 <hppavilion[1]> The idea is that everything is based around a sort of "Arithmetic of the Types". In SQL, all tables are of the type (or type expression) (Map)*LinkedList, or (Array)*LinkedList, depending on if you want to think of it as a map or as an array where each index has an implied value
02:56:10 <\oren\> So I have a code sample for c❄
02:56:13 <\oren\> int main () printf "answer: %d\n", 0x0e | 0xf8 + 1;;
02:57:25 <\oren\> int main () { printf("answer: %d\n", (0x0e | 0xf8) + 1); }
02:58:14 <\oren\> it's totally unambigious
02:58:35 <\oren\> a block always ends in ;;
02:58:51 <\oren\> whereas a statement ends in ;
02:59:11 <\oren\> unless it's the last statement in a block
03:00:22 <\oren\> if x = 3; puts "it's three";; else; puts "it's not three";;
03:02:35 <Jafet> int main int argc❄ char **argv❄❄ puts "Hello, world!"❄❄
03:05:54 -!- perdurabo has joined.
03:06:11 <hppavilion[1]> What should I call my DB's generalization of tables? They aren't really tables, because they can be of different form from (Map)*LinkedList.
03:06:51 -!- perdurabo has left.
03:10:43 <hppavilion[1]> \oren\: Do you have any clue what to call my "tables"?
03:11:08 -!- Hogget has joined.
03:13:28 <hppavilion[1]> I'm the only one who's done anything in the last 5 minutes, but there are a few people out there who are probably just forgetting to open their client
03:15:01 <hppavilion[1]> http://esolangs.org is a good place to go to find existing weird languages; you should probably start with Brainfuck, Unlambda, and Befunge (and maybe malbolge), as those are the first few that come to mind
03:15:27 <hppavilion[1]> Then, just start hitting "random page" and hope you don't land on another BF derivative
03:15:41 <Hogget> no, see, Brainfuck type of languages is exactly what i'm trying to avoid.
03:25:06 <\oren\> In c❄ you replace the c syntax *p with p*.
03:25:44 <\oren\> this makes brackets unnecessary in many type definitions
03:27:33 <\oren\> e.g. a c `struct foo (*a)[4]` is in c❄ a `struct foo a*[4]`
03:28:17 <\oren\> whereas a c `struct foo *a[4]` is in c❄ a `struct foo a[4]*`
03:37:38 <\oren\> also, & ^ and | have the same precedence as + and -
03:38:53 <Hogget> Why is it so difficult for computational methods to extract accurate meaning from natural language sentences?
03:39:32 <\oren\> it's difficult because natural language sentences are mostly ambiguous
03:39:46 <Hogget> like colloquial sentences, informal; or better yet, from poetic expressions.
03:40:14 <\oren\> writing code to extract meaning from natural language sentences is literally my job
03:41:07 <\oren\> go figure what the user meant by "who's the bass dude"
03:41:53 <\oren\> or better yet "what does s m mean after a word"
03:43:26 <Hogget> "mostly ambiguous" sonds quite an accurate description of natural sentences ... and humorous :)
03:44:16 <\oren\> also, even if the meaning is clear, intention may depend on context
03:45:26 <\oren\> "send a text message to ted"
03:45:36 <\oren\> who ted is depends on the user
03:45:44 <Hogget> \oren\: yes, true. I'm familiar with rhetorical figures.
03:46:18 <Hogget> and many kinds of metaphorical forms
03:46:53 <Hogget> \oren\: is there a programming paradigm better suited to this task of extracting accurate meaning from natural sentences?
03:48:02 <\oren\> I'm not actually certain. Some people claim statistical models are better, others claim that parsing things according to a syntax is better
03:48:55 <Hogget> I suppose a method of cross checking context against a humongous corpus of text (all written language of all eras of all humanity :P ) won't scale very well.
03:50:36 <\oren\> I'm far from an expert in NLP anyway. it's just my job.
03:51:29 <\oren\> I took a course in NLP a few years ago, but I only got a B
03:51:31 <Hogget> and then again, the original utterances of your linguisticall smart buddy, after 3 beers at the local bar, might not be written anywhere ever . . . yet you understand exactly what he means ... lol
03:52:34 <Hogget> \oren\: you might be the one that pulls the sword out of the rock . . . :D
03:52:59 <Hogget> doesthiswork: the context checking case, you mean?
03:56:01 <doesthiswork> you could also try approaching it from the perspective of coordination instead of communication
03:59:06 <\oren\> I don't understand what coordination means here either
04:00:10 <\oren\> Hogget: you may be surprised to learn that the code I write for NLP is mostly C++
04:01:55 <Hogget> \oren\: yea . . . I heard C++ didn't do strings very well . . . but i don't know C++ at all.
04:02:50 <\oren\> std::string is... ok-ish
04:03:52 <\oren\> unfortunately, std::vector is bad with threading so we use something else
04:09:46 <\oren\> anyway, there are a lot of products that try to understand human language commands these days
04:09:57 <Hogget> How do humans disambiguate then? If most lang. is ambiguous, our mechanism to determine meaning must be pretty good. My guess is that we do a funneling type of selecting from many meanings, that we crosscheck with known contexts, plug in a possible fit with the rest of the sentence, and keep trying 'til a good fit. All at faster than light speed, of course.
04:10:47 <doesthiswork> we try to guess what is already on the person's mind and only listen to words as a last resort
04:10:49 <\oren\> The human brain is massivley parallel in it's processing.
04:10:51 -!- JesseH has quit (Ping timeout: 252 seconds).
04:11:25 <\oren\> So I think it analyzes things in a bunch of different ways
04:13:30 <\oren\> doesthiswork: Yeah. and then as we hear a sentence we often autocomplete it, leading to errors when people speak weird
04:13:37 <Hogget> yes, gesture clues from the interlocutor are a major source of meaning.
04:14:22 <Hogget> a tilt of the head, eyebrows expressions, etc.
04:14:54 <doesthiswork> at work we're using a jackhammer so hearing is difficult
04:15:23 <\oren\> for me, I can lipread english fairly accurately, so I can follow a conversation even with headphones in
04:15:26 <Hogget> Still, there's the written level of expressions . . . and that's a major part of the "written www"
04:16:12 <Hogget> HAL-9000 could lip read ... ;)
04:19:02 <Hogget> the "smells web" is slated for 2025, lol
04:48:06 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
05:03:57 -!- hppavilion[1] has joined.
05:06:45 -!- adu has joined.
05:07:23 <hppavilion[1]> Hogget: Is the Propogator Model another name for Reactive Programming?
05:07:35 <adu> hppavilion[1]: no
05:07:48 <hppavilion[1]> What is it then? I can't find a Wiki article on it
05:08:05 <adu> the propogator model is a replacement for the Turing machine
05:08:21 <adu> reactive programming is a replacement for procedural programming
05:08:39 <adu> The Turing machine is not "another name" for procedural programming
05:09:04 -!- oerjan has quit (Quit: A rose by any other name would compute as sweet).
05:09:06 <hppavilion[1]> I never said it was and I wasn't going to say it was.
05:09:13 <adu> I think one is descriptive and one is perscriptive
05:09:40 <adu> hppavilion[1]: propogator model is perscriptive, reactive programming is descriptive
05:09:56 <adu> hppavilion[1]: Turing machine is perscriptive, procedural programming is descriptive
05:10:06 <hppavilion[1]> I know that Reacitve programming is where if x=y, x==y is always true no matter how y changes, unless x is redefined
05:10:37 <adu> hppavilion[1]: reactive programming is changing a cell in a spreadsheet
05:12:27 <adu> I'm sorry to interrupt
05:14:36 <adu> I was working on a sexp <=> mathml converter
05:15:50 <Hogget> adu: you did not interrupt; thanks for explanations
05:16:51 -!- doesthiswork has quit (Quit: Leaving.).
05:16:55 <Hogget> adu: my initial question was: is there a programming paradigm better suited to extracting accurate meaning from natural language sentences?
05:17:51 <Hogget> but SQL is not for parsing natural languages
05:17:53 <hppavilion[1]> I'm attempting to design a better type of Database software than SQL. Not faster, of course. I'm bad at fast code. Just more... featureful.
05:18:22 <hppavilion[1]> You mean a language for learning what a sentence says, not a language that is supposedly easier to write because it's englishy
05:18:40 <Hogget> hppavilion[1]: yes, that
05:19:16 <hppavilion[1]> Hogget: Are you attempting to do something like a Text Adventure where you just need to know what a person means or do you want a thing that can understand Shakespear?
05:19:24 <Hogget> hppavilion[1]: what's wrong with noSQL dbases?
05:20:23 <Hogget> hppavilion[1]: to understand Shakespeare is a good analogy
05:20:33 <hppavilion[1]> (There's nothing wrong with them, I'm just trying to make the Python of databases. I see SQL as the C of databases; very powerful, but not capable of things that don't fit a table)
05:20:54 <adu> hppavilion[1]: consider drawing inspiration from HDFS and Cassandra
05:20:58 <hppavilion[1]> LISP I hear is used in AI a lot, though I think it's a different kind of AI.
05:21:55 <hppavilion[1]> If you have only a handful of sentence structures you need to understand (as one might need in a TBG), then just Python and some Parser Combinators will be good enough.
05:22:37 <hppavilion[1]> (for example, you just need to match an instruction saying to do x with object y using object z, maybe with some adverbs)
05:23:24 <adu> that's a myth
05:23:41 <adu> LISP was used for AI
05:23:57 <Hogget> hm, i think i need more muscle
05:24:04 <adu> but that's like saying "PHP is how the web works"
05:25:07 <adu> I personally think that the most realistic AI will be hybrid
05:25:14 <hppavilion[1]> But if you need to ACTUALLY be able to parse the full works of shakespear... well, you'll need access to a Dictionary API to start with. THEN you'll need to solve the noun-or-verb problem with "kick". THEN, if you aren't using machine learning to figure out what it means, you'll have to produce some BNF for sentence structures (and no matter how hard you try, there'll always be a few gramatically correct outliers), THEN make a parser
05:25:16 <hppavilion[1]> out of that (the easiest way is with combinators). If you CAN use machine learning, well, that's not my area of expertise
05:26:06 <adu> hppavilion[1]: there are 3 DBs I'm trying to learn right now: Virtuoso, Jena and eXist
05:26:44 <adu> Jena is an RDF DB, eXist is an XML DB, and Virtuoso is a DB that understands RDF and XML
05:28:22 <adu> TBG = Tall Bald Guy?
05:28:35 <hppavilion[1]> To parse sentences, you'll first have to lex the words out of it (and in the process you'll likely need to detect whether it's a noun or verb, which is hard for words that can be both), then you'll need to find how to identify the subclauses (like "john kicked"), then you'll need to recognize full clauses, then you'll need to be able to hook those together with I,cI, I;I and combinations of those. I;I will be easy, I,cI not so much, as
05:28:36 <hppavilion[1]> you need to preserve the c and extract meaning from that too.
05:29:29 <adu> https://en.wikipedia.org/wiki/Time_flies_like_an_arrow;_fruit_flies_like_a_banana
05:30:20 <hppavilion[1]> And then you'll have some difficult when it comes to things people do differently (read: wrong). Does punctuation go INSIDE or OUTSIDE of the quote? Your teacher says inside, but most programmers put it outside.
05:30:39 <adu> I put it outside
05:30:51 <adu> I think Noah Webster was wrong
05:30:55 <hppavilion[1]> adu: So do I. Other people do it wrong. Quotes are literal, goddammit!
05:30:58 <ais523> programmers put it outside because that gives more information on what was and wasn't part of the quote
05:31:06 <ais523> and makes the quote more accurate to the original
05:31:24 <ais523> standard English style not only moves punctuation marks to the wrong side, it also changes full stops to/from commas
05:31:30 <ais523> which is a weird rule that loses info
05:32:16 <hppavilion[1]> Hogget: In short, I recommend you DON'T parse english with combinators alone. Use /some/ machine learning, but also combinators because they're fun.
05:32:25 <adu> maybe it wasn't Webster, I just hate him for putting extra letters that are silent on EVRYTNG
05:32:57 <adu> or should I say "everythingue"
05:34:18 <Hogget> adu: it was the London book printers who made a rightful mess of spelling.
05:34:48 <adu> you know there are lots of similarities between spelling and RDF
05:36:19 <Hogget> Lisp seems to be well suited for parsing natural langs. What do you fellas think?
05:36:53 <adu> like most of the work spells the work "knows" as "knows", but RDF is trying to get people to spell it "http://xmlns.com/foaf/0.1/knows"
05:37:04 <adu> s/work/world/
05:37:26 <adu> Hogget: I think parsers are well suited for that
05:37:44 <adu> Hogget: my favorite parsing frameworks as of recent have been ANTLR and Perl6
05:37:45 <hppavilion[1]> "like most of the world spells the world "knows" as "knows", but RDF is trying to get people to spell it"
05:37:47 <Hogget> yacc and lex, you mean?
05:38:32 <adu> Hogget: ANTLR and Perl6
05:38:53 <Hogget> adu: i see. (i'm slow to keyboard)
05:39:35 <adu> ANTLR and Perl6 have one thing in common as I see it, they both equate grammar productions with class methods
05:41:01 <adu> some of them can be simple, like plusminus = { plus | minus } or they can be a function written by you, which is required in some cases
05:41:17 <adu> and that makes me happy
05:41:31 <adu> the escape from "regular" constrants
05:41:40 <adu> or "context free" constraints
05:43:17 <Hogget> adu: hmm ... putting NLP grammar permutations in classes makes me think i'll end up with tons of ravioli code.
05:43:35 <adu> Hogget: have you ever heard of modules?
05:43:55 <hppavilion[1]> So I'm designing a DB where you can store, for example, Trees where the nodes contain Rows.
05:43:56 <adu> there's thing thing called "import", it's kind of great
05:44:27 <adu> hppavilion[1]: sounds like Virtuoso
05:44:43 <adu> hppavilion[1]: also, Apache Drill
05:44:48 -!- J_Arcane has quit (Ping timeout: 255 seconds).
05:45:26 <hppavilion[1]> You'd create a DB like this with CREATE DATABASE <name> TYPE (binarytree BY row[<types>])
05:45:35 <hppavilion[1]> Or something along those lines. It's still in design.
05:47:07 <adu> XML is pretty crappy
05:47:24 <adu> it's grammar is larger than most use cases
05:48:10 <adu> my grammar iz bad
05:48:15 <myname> i have to admit that english is pretty weird there
05:48:34 <adu> myname: where?
05:48:35 <hppavilion[1]> I'll most likely end up just using pickling, but I hope in the later version it'll be XML-based
05:48:44 <myname> you write adu's but not it's
05:49:08 <adu> myname: the contration apostraphe overrides
05:49:43 <adu> like 0^0 is undefined, but lim x->0 x^x = 1, because math
05:49:57 <hppavilion[1]> adu: Not sure what that meant, but I think you have it backwards
05:50:20 <adu> it's = it is
05:50:28 <myname> i hhow is 0.1^0.1 closer to 1 than 0.01^0.01?
05:50:30 <adu> its = the thing of it
05:51:11 <adu> *because math*
05:51:30 <myname> having 0^0 undefined is pretty reasonable, though
05:51:57 <adu> https://www.physicsforums.com/threads/limit-of-x-x-as-x-approaches-0.487199/
05:52:05 <Hogget> "Time flies . . ." stock example is bogus, at least the way Wikip. shows it: it relies on a spelling error. "fruit flies" is in error; the correct form is "fruit-flies"—it's a hyphenated composite, as its singular "fruit-fly".
05:52:40 <adu> https://en.wikipedia.org/wiki/Tetration#Extension_to_base_zero
05:53:02 <ais523> Hogget: I think the nonhyphenated spelling is becoming more common (possibly due to the phrase in question)
05:54:42 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
05:56:46 <Hogget> ais523: that's unfortunate. Moreso considering that the natural process with these hyphenates is to drop the hyphen and conflate the terms: "fruitfly", "Micro-soft" (it was spelled that way in the beginning) into "Microsoft".
05:59:24 <izabera> yeah without the hyphen it's better
05:59:25 <ais523> Hogget: it seems about even whether hyphenated words end up with the hyphen being replaced with a space or with nothing
06:00:10 <ais523> fwiw Wikipedia seems to spell "fruit fly" without the hyphen
06:01:06 <Hogget> ais523: Wiki is not 100% reliable :(
06:04:42 <adu> You know what I think
06:05:03 <adu> I think we should write an OS with the progagator model
06:05:08 <Hogget> "Google" has never been "Go-ogle", that i'm aware of.
06:05:24 <adu> Maybe not, but Java was Oak
06:05:38 <adu> and JavaScript was LiveScript
06:05:54 <adu> and then everyone drank too much coffee
06:05:58 <ais523> Hogget: that joke was made by Google themselves, but much later (when talking about a debugger for their new language, they suggested calling it "ogle")
06:06:03 <Hogget> Java is imperative, no?
06:06:31 <adu> Hogget: imperative/procedural (I prefer the term procedural)
06:07:37 <ais523> Java's normally considered to be in the "Java-style OO" paradigm (to distinguish it from Smalltalk-style OO)
06:07:42 <ais523> but that's kind-of recursive
06:08:12 <adu> I think Java-style OO started as C++ features that people could understand
06:09:04 <ais523> understanding C++ OO is actually pretty hard
06:09:16 <adu> because it's bad
06:09:23 <ais523> basically because its default implementation of features is a limited functionality version that can be implemented efficiently
06:09:37 <ais523> and if you want full Java-style OO functionality you have to opt into it with keywords like "virtual"
06:09:45 <adu> C++ replaces verbosity with ambiguity, that's not a good trade IMHO
06:09:46 <ais523> due to the performance cost
06:10:52 <Hogget> ambiguity makes programming more difficult
06:13:38 <adu> my usual concerns are: Clarity, Readability, Maintainability above Brevity and Expressiveness
06:14:18 <adu> C++ doesn't even come close
06:14:33 <adu> I think Perl6 strikes a good balance
06:14:43 <adu> I think Perl5 is confusing
06:15:19 <ais523> so in order to make a good esolang, we reverse all that?
06:15:32 <ais523> inclarity, unreadability, unmaintainability in the pursuit of brevity and expressiveness
06:15:42 <ais523> although that pretty much is just the definition of a golfing language
06:15:49 <ais523> and there are a few of those already
06:16:32 <Hogget> what's the benefit of esolangs?
06:16:43 <ais523> a range of benefits, really
06:16:45 <lifthrasiir> I briefly thought of a golfing language where you have your favorite choice of (say) Huffman tree of instructions, and correctly determined that this is not much fun
06:16:55 <ais523> some people view it as art; Daniel Temkin's blog seems to be looking at it from that perspective
06:17:06 <ais523> really, something like http://esolangs.org/wiki/2014 can't really be explained except as art
06:17:17 <ais523> some people view it as long-shot attempts to find the next big thing in pogramming
06:17:35 <ais523> some people use it as practice for designing/implementing more serious languages later
06:17:51 <ais523> some people do esoprogramming for the mental challenge (especially in cases like http://esolangs.org/wiki/BF_Joust)
06:19:07 <ais523> sometimes it's an attempt to poke fun at specific existing languages
06:19:24 -!- izabera has left ("WeeChat 1.3").
06:19:42 -!- izabera has joined.
06:19:56 <b_jonas> and sometimes it's about interesting thought experiments, like that boltzmann brain language of ais
06:20:07 <adu> ais523: I think APL, J, Funge98 are good examples of brevity and expressiveness
06:21:00 <b_jonas> and some are where you try to figure out proofs for the computational power of a language, like M:tG
06:21:27 <b_jonas> or Underload with only some set of its symbols kept
06:23:50 <ais523> to me, the M:tG case is a good argument that the rules of the game should stop trying to ask the impossible
06:23:56 <ais523> although I'd love a good uncomputability proof
06:24:18 <ais523> it should probably only take one layer of subgames + a fix to the existing construction + some way to inspect players' life totals
06:24:31 <ais523> ofc uncomputability isn't as strong as I'd like
06:24:46 <ais523> I'd prefer an impossibility result (e.g. via showing that the language can solve its own halting problem)
06:24:54 <b_jonas> er, what should take a layer of subgames and a way to inspect life totals?
06:25:09 <b_jonas> there are tons of ways to inspect life totals
06:25:10 <ais523> b_jonas: construction of an interpreter for a uncomputable language in M:tG
06:25:47 <ais523> the language would basically just need to be TC, plus the ability to (at one point during execution) solve the halting problem on a single program in a Turing-equivalent language
06:26:04 <ais523> that's uncomputable, and probably M:tG implementable
06:26:32 <ais523> but it's not as interesting as being able to do an unlimited number of halting problem evaluations, and nowhere near as interesting as being able to solve its own halting problem
06:28:39 <b_jonas> life total => Ruthless Cullblade, Death's Shadow, Serra Avatar, Roiling Horror.
06:29:07 <ais523> not sure which of those would fit into the construction
06:29:38 <b_jonas> those are all creatures whose power or toughness depends on the life total of some player,
06:29:53 <ais523> the issue with the conditional +toughness effects is that they produce a something/nothing distinction rather than a something/something else distinction
06:29:57 <b_jonas> but I don't understand what you need to inspect life totals for in first place
06:30:15 <ais523> conditionals on subgame outcome
06:30:23 <ais523> (Shahrazad halves the life total of the loser)
06:30:51 <ais523> ofc there is the problem that the players could concede the subgame and mess up the calculations, although I'm not sure if you can concede in the middle of an infinite loop because the game is already platonically drawn at that point
06:31:33 <b_jonas> ais523: for something and something else, I listed four creatures that work in at least three different ways
06:31:47 <ais523> actually serra avatar + death's shadow (with a ton of +1/+1 counters) might work
06:31:57 <ais523> because they both trigger on the same player's life total but in opposite senses
06:32:04 <adu> did you hear the science news?
06:32:14 <ais523> which specific science news?
06:32:16 <adu> the Kilogram is being redefined!
06:33:14 <adu> https://en.wikipedia.org/wiki/Proposed_redefinition_of_SI_base_units#Kilogram
06:33:35 <b_jonas> adu: people have been proposing redefinitions for like decades
06:33:44 <b_jonas> most of them don't make any sense because they can't be measured precise enough
06:33:53 <adu> Yeah, but this time NIST is endorsing it
06:34:17 <ais523> yes, I did hear that, although the specific interesting news is more "we've now measured Planck's Constant and/or Avogadro's Number accurately enough that we might be able to replace the kilogram with it"
06:34:28 <ais523> I think they might want a few more decimal places first though
06:34:33 <b_jonas> like, the ones that would require you to measure the Avogadro constant or the Planck's Constant for more than a few digits precision
06:34:57 <b_jonas> it's even worse if you try to measure the universal gravity constant, mind you
06:35:25 <adu> well, big G is dependant on relativistic effects, like how close to a singluarity you are
06:36:00 <ais523> ofc they don't need to be perfectly accurate
06:36:05 <ais523> just more accurate than the kilogram bar in question
06:36:44 <b_jonas> ais523: sure, but also they have to think of the future, eg. the definition should make sense thirty years from now, with unknown future technology
06:37:21 <adu> that's why I got the impression that big G was calculable from the gravitational field
06:37:47 <ais523> everything in the universe (apart from the official kilogram bar) has gradually been getting slightly heavier over the last 100 years…
06:37:57 <b_jonas> ais523: if you want something that permits no decisions by any players to mess up the computation, then I think you have to use breakable infinite loops, not subgames, because _either_ player can concede a subgame, which probably makes the whole thing meaningless.
06:38:41 <ais523> b_jonas: well don't the rules imply that as soon as a loop starts with no player choices, the game is instantly drawn? thus no time to concede?
06:38:59 <b_jonas> ais523: well, maybe you could somehow rig the subgame so the information you get out is not only from losing or winning, but from drawing or from wishing cards away from the main game
06:39:03 <ais523> you can't play out iterations of the loop in the hope that your opponent will concede
06:39:22 <ais523> I thought of that, using Glittering Wish
06:40:23 <b_jonas> ais523: no, I don't think so, you can concede very fast, and even so, I think it's almost impossible to set up a Shahrazad subgame in any sane way. unless you start the subgame with so few cards that it's an instant loss from drawing the starting hand, the players have the choice of at least mulliganing and placing Leylines
06:40:40 <b_jonas> and I don't think you can even have a loop before some player does something in the subgame
06:40:43 <ais523> b_jonas: I was planning to set it up during initial setup
06:40:53 <ais523> as in, using player choices to set up the state both outside and inside the subgame
06:41:10 <b_jonas> ais523: so you'd just set up one subgame?
06:41:10 <ais523> and then performing the one action that starts the chain of triggered abilities going
06:41:26 <b_jonas> but then I don't see why you need a subgame
06:41:28 <ais523> that's enough for uncomputablity, also for, say, solving the Riemann hypothesis
06:41:37 <b_jonas> why not just use one game with one loop that must be broken if it's infinite
06:42:15 <ais523> is a language uncomputable if it can't do anything after an infinite loop is detected?
06:42:26 <ais523> Haskell has the "undefined and infinite loops are equivalent" rule, and isn't normally considered uncomputable
06:42:39 <b_jonas> ais523: I'll think about this
06:43:13 <ais523> what I really wanted to do was set up a language that could solve its own halting problem, but I'm pretty sure you can't do it with finitely many nested subgaes
06:43:20 <ais523> (that is, a specific finite number)
06:43:44 <b_jonas> ais523: sure, that just means undefined could cause an infinite loop. it's like how some actions in C cause undefined behaviour, which is allowed to cause monkeys flying out your ass, but that doesn't mean C is uncomputable because it has the power to cause monkeys flying out your ass
06:46:00 <b_jonas> ais523: mind you, I'm quite sure you are allowed to concede even within a loop with no decisions
06:46:11 <ais523> b_jonas: but the game's already over at that point
06:46:26 <ais523> you can't concede the game after your opponent has lost it, IIRC
06:47:01 <ais523> either there is some point in time after which the game is over, or else there is no point in time after which the game is over
06:47:04 <ais523> which are you claiming is true?
06:47:11 <ais523> (when an unstoppable infinite loop happens, that is)
06:47:20 <b_jonas> didn't we find that in a multiplayer game, you can concede when a player chooses to cast Hex (he just revealed it) to save your teammate, right?
06:47:40 <b_jonas> that still works even if nobody has a choice during the casting of Hex because there's only one way to pay it and only six creatures to target
06:47:51 <ais523> b_jonas: but that's because the game isn't over yet
06:48:08 <b_jonas> the Hex destroys the Platinum Angel or whatever
06:48:11 <ais523> no, casting Hex by itself is unlikely to end the game
06:48:14 <ais523> I mean, it hasn't resolved yet
06:48:31 -!- adu has quit (Quit: adu).
06:48:33 <b_jonas> well, players have nothing in your hand and can't activate any ability or something
06:48:42 <b_jonas> all they can do is concede
06:49:07 <ais523> the better question is "suppose someone casts Hex and it targets a Platinum Angel (among other things) that's preventing the game ending; can you concede during the resolution?"
06:49:25 <ais523> there's a difference between game-ending events and non-game-ending events
06:49:28 <b_jonas> but the more important thing is Chaos Confetti and other un-cards, which can force your opponent to tear up their cards (with copy effect or Mindslaver or similar) or do other strange things, and the only way out from that is conceding
06:49:40 <ais523> which is that you can concede any time during the game, but you can't concede after the game is over
06:50:07 <b_jonas> I'm quite sure you can concede in a Chaos Confetti casting, even if you have no in-game choice before choosing how to drop the Confetti
06:50:11 <ais523> the whole blacker lotus combo doesn't end the game (if it did, you wouldn't get to rip up the cards)
06:50:23 <ais523> I'm saying you can concede at any time during the game
06:50:26 <ais523> but not after the game has ended
06:51:06 <b_jonas> ais523: after ending the game? I think you can probably still concede very quickly jsut _before_ the game ends, but usually there's no point
06:52:12 <b_jonas> That reminds me to that old rules hole where a particular version of the rules of chess says that it's too late to call out games rules violations after the games has ended, so I'm allowed to just make an illegal move that gives a checkmate, and as that ends the game, you can't do anything about it.
06:53:13 <b_jonas> But now I don't understand what you want to do with the subgame at all.
07:07:53 <ais523> basically to convert a draw into a win
07:28:00 -!- Patashu has joined.
07:28:00 <Hogget> What is the minimum number of symbols a 2-state machine can have?
07:31:22 <ais523> Turing machine, you mean? to be TC?
07:31:47 <ais523> assuming you allow complex infinte initialization sequences (that are nonetheless subTuring), 3
07:32:26 <ais523> for repeating infinite initializations (with a fixed constant pattern in the middle), the best known is 5 (Wolfram's proof of this is buggy but the machine itself is correct)
07:32:38 <ais523> err, it really doesn't matter what you call them
07:32:53 <ais523> however I called the third symbol "2" in my proof
07:33:02 <ais523> it seemed logical enough
07:33:13 <ais523> "0", "1", "-" might work better for the way the machine actually behaves, though
07:33:37 <ais523> I don't know how many states you need if you want the tape to start blank apart from a finite region
07:33:40 <Hogget> so, symbols don't have to correspond to states?
07:35:22 <ais523> there's no real connection between symbols and states
07:35:46 <ais523> and ofc, if you did have a 1-1 correspondence, you'd only have 2 symbols, which probably isn't enough with 2 states
07:36:00 <ais523> (allegedly Minsky proved this, but if he did the proof has been lost)
07:36:36 <ais523> he is still alive, though, so I guess it might be possible to just ask him?
07:45:11 -!- ais523 has quit (Ping timeout: 260 seconds).
07:47:05 <Hogget> OISC = 1 instruction, 3 symbols
07:52:22 <HackEgo> [wiki] [[Joke language list]] http://esolangs.org/w/index.php?diff=44753&oldid=44746 * Rdebath * (-2) Fix reversion by author
07:52:37 -!- aretecode has quit (Read error: Connection reset by peer).
07:55:37 -!- aretecode has joined.
07:57:22 -!- ais523 has joined.
08:14:23 <b_jonas> ais523: I was thinking of what you said, and if I understand it right, it would have strange esoteric consequences other than just being uncomputable
08:14:35 <ais523> yes, I'm not sure I understand it right either
08:14:43 <ais523> there are multiple uncomputable complexity classes
08:14:52 <ais523> and trying to understand the difference between them makes my heard hurt
08:15:06 <b_jonas> I'll try to explain a bit later
08:23:59 <b_jonas> ais523: so if I understand you right, you were arguing that if there's an infinite loop such that the infinite loop rules cause the game to be draw, then the game ends as soon as the infinite loop is started
08:24:06 <b_jonas> ais523: there are two complications with that:
08:24:35 -!- fractal has quit (Ping timeout: 252 seconds).
08:25:24 <b_jonas> firstly, that players may have choices that can affect and possibly break the infinite loop, but that the rules don't force them to do to break the infinite loop, like activating abilities in their priority. so the players can make decisions to break an infinite loop somehow.
08:26:38 <b_jonas> the second is that during an infinite loop, there can be hidden information shown to players, such as cards in hidden zones, and some of this hidden info can be needed to determine how the infinite loop works, whether it's infinite, and it can also be information about the supergame (in a subgame) or the match and affect those.
08:26:58 <ais523> well, the whole point of the exercise is to show that the M:tG rules are broken
08:27:11 <ais523> in the first case, I have some ideas of what would happen, based on the Four Horsemen thing
08:27:22 <ais523> the second might be resolved the same way but I'm less sure
08:27:39 <ais523> (can we construct a gametstate that has an infinite amount of hidden information? I can't think of a way to do it, but maybe there is one)
08:27:47 <ais523> err, not necessarily infinite, but unbounded
08:28:11 <b_jonas> so if the rule was that the game ends at the start of the infinite loop, that means the two players have to make decisions that might affect or break the infinite loop, from the information they have available, and then if it turns out that the loop is infinite afterall, then you have to rewind the whole thing, undo wishes, and even call a judge who can cause the players to forget the information that was revealed,
08:28:11 <ais523> I don't think you can have face-down tokens via any means, that'd make things too easy :-(
08:28:32 <b_jonas> for if the game was ended before the loop, than that information wasn't revealed afterall.
08:29:04 <b_jonas> note that the information they have to forget includes not only cards, but also decisions of the other player, and the strategy of the other player may indirectly hint to other hidden information.
08:29:42 <b_jonas> so this would have crazy consequences, but I would like to believe this isn't how the infinite loop rules work.
08:30:06 <ais523> so I guess the next step is, can we construct an infinite loop that the rules can't recognise as infinite?
08:30:09 <b_jonas> ais523: I think you can probably have unbounded hidden information, wait a minute
08:30:20 <ais523> you can do it in casual, so long as you assume your sideboard has an infinite number of eldrazi
08:31:45 <b_jonas> uh, you can't have an _infinite_ number of eldrazi.
08:31:53 <ais523> I know, it's not a very good assumption
08:31:57 <ais523> only finitely many have been printed
08:32:16 <ais523> technically it'd only need to be unbounded; given that BfZ is in print right now, you might be able to get away with it
08:32:32 <ais523> what was your suggestion for unbounded hidden information?
08:33:00 <b_jonas> I'm trying to look up cards for that right now. I thought there was something that divides all creatures (of a player) to two face down piles or something
08:33:11 <b_jonas> it seems no, but there could be something else
08:33:27 <ais523> you're probably thinking of raging river's oracle text?
08:33:42 <b_jonas> no, those are face up piles
08:33:49 <ais523> wait no, there's no shuffling there
08:33:52 <b_jonas> no more face down than they were
08:34:00 <b_jonas> there needn't be shuffling
08:34:07 <b_jonas> it's enough if the info is hidden from one player
08:34:10 <ais523> anyway, I don't believe you can turn tokens face down, rules-wise
08:35:11 <ais523> I searched for "face-down pile" but almost all those effects only work on cards
08:35:34 <ais523> and the remaining one temporarily exiles (and thus would destroy a token before it became permanently face-down)
08:35:39 -!- ais523 has quit (Quit: meeting).
08:55:22 <b_jonas> ais523: Backslide can turn tokens face down, but I don't think that helps with generating hidden info. Goblin Game can hide an unbounded natural number, but only for a very short uninterruptible time so I don't think it can be abused.
09:00:47 -!- shikhin has quit (Read error: Connection reset by peer).
09:01:44 -!- shikhin has joined.
09:21:13 -!- ais523 has joined.
09:21:40 <ais523> b_jonas: so the problem with just turning a token face-down (if it's even legal, which I'm not sure about) is that its identity is still public
09:21:43 <b_jonas> ais523: good question. I can't yet find a good example for unbounded hidden information
09:21:52 <b_jonas> ais523: Backslide can turn tokens face down, but I don't think that helps with generating hidden info. Goblin Game can hide an unbounded natural number, but only for a very short uninterruptible time so I don't think it can be abused.
09:22:56 <b_jonas> ais523: I still think you can get unbounded hidden info somehow (even without unbounded number of cards) but I'm still trying to figure out how
09:29:20 -!- bender| has joined.
09:29:20 -!- bender| has quit (Changing host).
09:29:20 -!- bender| has joined.
09:30:02 -!- FreeFull has quit.
09:55:30 <b_jonas> where the heck are set FAQs hidden on the wizards' webpage these days?
09:57:14 -!- VictorCL has joined.
09:59:30 -!- J_Arcane has joined.
10:03:40 -!- Hogget has left.
10:07:49 -!- izabera has changed nick to `ls`.
10:07:57 -!- `ls` has changed nick to izabera.
10:12:46 -!- callforjudgement has joined.
10:15:34 -!- ais523 has quit (Ping timeout: 260 seconds).
10:16:09 -!- callforjudgement has changed nick to ais523.
10:21:10 -!- ais523 has quit (Ping timeout: 260 seconds).
10:21:40 -!- ais523 has joined.
10:28:46 -!- ais523 has quit (Ping timeout: 272 seconds).
10:30:45 -!- ais523 has joined.
10:33:45 -!- boily has joined.
10:34:59 -!- ais523 has quit (Ping timeout: 240 seconds).
11:24:27 -!- Patashu has quit (Ping timeout: 244 seconds).
11:24:29 -!- AnotherTest has joined.
11:25:28 -!- Patashu has joined.
11:32:26 -!- boily has quit (Quit: HEAD CHICKEN).
11:53:13 -!- AnotherTest has quit (Ping timeout: 252 seconds).
11:58:59 -!- ais523 has joined.
11:59:26 -!- Patashu has quit (Ping timeout: 240 seconds).
12:15:43 -!- AnotherTest has joined.
12:26:11 -!- ais523 has quit.
12:26:18 -!- callforjudgement has joined.
12:26:24 -!- callforjudgement has changed nick to ais523.
12:39:47 -!- copumpkin has joined.
12:51:21 -!- ais523 has quit.
12:54:12 -!- ais523 has joined.
12:56:26 -!- ais523 has quit (Client Quit).
12:56:42 -!- ais523 has joined.
13:02:59 -!- MDream has joined.
13:03:44 -!- MDream has changed nick to MDude.
13:18:33 -!- `^_^v has joined.
13:21:46 -!- ais523 has quit.
13:24:49 -!- ais523 has joined.
13:44:59 <HackEgo> [wiki] [[Talk:Brainfuck algorithms]] http://esolangs.org/w/index.php?diff=44754&oldid=42783 * 141.219.125.170 * (+198) Note on circular reference loop
13:48:43 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
13:53:55 -!- bender| has changed nick to bender.
14:00:00 <Taneb> fungot, what's new?
14:00:00 <fungot> Taneb: and read it over and i'll set you up?
14:00:13 <Taneb> Ooh, thanks, fungot!
14:01:13 -!- ais523 has quit.
14:02:25 <fizzie> fungot: Do you know anything about this bug?
14:02:25 <fungot> fizzie: and i always hit the " up" where you don't
14:02:38 <fizzie> fungot: Thanks, I guess that could explain it. Somehow.
14:02:38 <fungot> fizzie: o o oo ( on a previous one, and there is nothing novel about it. i'm fed up. please, anyone, feel free to ask your direct supervisor first. then you get
14:10:49 -!- J_Arcane has quit (Ping timeout: 244 seconds).
14:20:15 -!- mbrcknl has quit (Ping timeout: 252 seconds).
14:25:29 -!- lleu has quit (Read error: Connection reset by peer).
14:27:07 -!- mbrcknl has joined.
14:32:30 <fungot> int-e: but then it just might
14:32:39 <int-e> fungot: that's the spirit
14:32:39 <fungot> int-e: the korean war must have been here to repeat ' i dispute your point!!! yow!
14:32:47 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube
14:35:51 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube
14:36:00 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
14:36:21 -!- Phantom_Hoover has joined.
14:37:25 <fungot> Selected style: c64 (C64 programming material)
14:37:36 <fizzie> Although it's not a good style, thanks mostly to formatting issues.
14:37:52 <fizzie> fungot: How many channels did the SID chip have, again?
14:37:52 <fungot> fizzie: 200 data 3.08, 5.19, 3.12, 3.98, 4.24 2
14:38:01 <fizzie> fungot: 200?! I thought it was three-ish.
14:38:01 <fungot> fizzie: for example, if you plan to use the listen address, this will clear the hi-res screen: 0,3,5,7 ( see page 108) or... best of all the frequencies below the cutoff. this label is merely a mnemonic device, and
14:40:56 -!- bender has quit (Quit: Ping Pong Fuckout).
14:50:53 <b_jonas> fungot, do you often dream of such things?
14:50:53 <fungot> b_jonas: call address: ffab ( hex) 65451 ( decimal).
15:02:28 <fizzie> fungot: What will that do?
15:02:29 <fungot> fizzie: press play on cassette, even though the i/ o file will be printed for special display purposes, removing/ creating only the lower tones have had their volume cut down.
15:07:11 <b_jonas> fungot: at what rpm setting?
15:07:11 <fungot> b_jonas: call address: ffcf ( hex) 65514 ( decimal)
15:12:51 -!- gamemanj has joined.
15:36:40 -!- gamemanj has quit (Remote host closed the connection).
15:51:51 -!- fractal has joined.
15:58:02 -!- sebbu has quit (K-Lined).
16:06:41 -!- AnotherTest has quit (Ping timeout: 246 seconds).
16:13:57 -!- mroman has joined.
16:14:08 <mroman> What was the name of that RISC-Set again?
16:14:16 <mroman> The one that was invented for educational purposes.
16:18:08 <Taneb> I think there's been a few
16:23:49 -!- FireFly has quit (Ping timeout: 252 seconds).
16:24:41 -!- shikhin has quit (Ping timeout: 250 seconds).
16:34:06 <Hoolootwo> we haven't go to it yet so I can't tell you very much about it, I can't find if it's risc even, but it probably is
16:38:13 -!- atrapado has joined.
16:41:20 -!- AnotherTest has joined.
16:50:39 <HackEgo> [wiki] [[Golfish]] N http://esolangs.org/w/index.php?oldid=44755 * Sp3000 * (+834) Created page with "Golfish (stylised '''Gol><>''') is a two-dimensional stack-based esoteric programming language by [[User:Sp3000|Sp3000]]. It was designed to be an extension of [[Fish|><>]], o..."
16:51:13 -!- ineiros has quit (Ping timeout: 265 seconds).
16:52:03 -!- MoALTz__ has changed nick to MoALTz.
16:52:43 <HackEgo> [wiki] [[Minkolang]] http://esolangs.org/w/index.php?diff=44756&oldid=44732 * Sp3000 * (+44)
17:20:28 -!- mroman has quit (Quit: Lost terminal).
17:20:28 -!- gamemanj has joined.
17:25:47 -!- mauris has joined.
17:27:54 -!- bb010g has joined.
17:54:44 <mauris> #esoteric! i'm taking a class at my local university called "automata and computability". we have to do a group project that connects to one of the topics covered in the course, which up until now has mostly been context-free grammars/languages and pushdown automata
17:55:01 <mauris> (and the chomsky normal form, CYK algorithm, that kinda stuff)
17:55:27 <mauris> the obvious application is to do something parser-y. but that's so boring. we also touched on... well, turing machines and computability
17:55:31 <fizzie> Sounds like our "Introduction to Theoretical Computer Science".
17:56:14 <mauris> and i'm idly brainstorming for cool projects you can make in a couple of weeks that will wow an audience?
17:58:59 -!- heroux has quit (Ping timeout: 264 seconds).
17:59:25 -!- heroux has joined.
17:59:37 <mauris> at first we were thinking of doing something amusingly meta. like, using the algorithms from our course to implement a toy programming language, then use that programming language to implement another algorithm from the course, namely, one that shows that it's TC (a universal TM or something)
18:01:00 <mauris> but maybe there's something much cooler out there. i hear theoretical computer science goes pretty deep!
18:01:50 <Phantom_Hoover> idk that's all the computer science i've done in recent years
18:02:11 <HackEgo> maur is the correct spelling
18:02:23 <HackEgo> shachaf sprø som selleri and cosplays Nepeta Leijon on weekends. He hates bell peppers with a passion.
18:02:35 <shachaf> one of those sentences is true
18:02:36 <HackEgo> nooooodl is the correct spelling
18:02:41 <HackEgo> noooooooodl is the correct spelling
18:02:45 <HackEgo> nooooooodl is the correct spelling
18:03:14 <mauris> Phantom_Hoover: this sounds like it will confuse an audience
18:03:16 <int-e> so what's nooooooodl compensating for...
18:03:28 <mauris> (of second-year undergrads, mind)
18:03:35 <HackEgo> nooodl is the correct spelling
18:03:57 <Phantom_Hoover> mauris, well it's just a string rewriting problem at heart but, uh, yeah
18:04:12 <Phantom_Hoover> you'd have a hard time selling it to second-year cs students
18:06:15 <Phantom_Hoover> i stopped giving a shit halfway through the proof it was computable, though the ending was v. funny
18:08:15 -!- AnotherTest has quit (Ping timeout: 250 seconds).
18:09:30 <mauris> what about automated theorem proving,
18:09:43 <mauris> (i have absolutely no idea how hard that is but my guess is it's actually very hard rip)
18:14:33 <Phantom_Hoover> you could knock something basic together, i dunno how you'd string it into a presentation though
18:14:59 <mauris> whatever parts are easy enough are probably very unimpressive
18:16:30 <Phantom_Hoover> this is enough to implement the entire calculus of constructions for instance http://homepages.ihug.co.nz/~suckfish/busy/reduced.c
18:16:33 <mauris> like "hi after weeks of hard work my computer proved that P AND Q = Q AND P" doesn't sound super cool (but it's really a little cool)
18:16:51 <mauris> oh, i know this thing (heeelp how does it work)
18:17:14 <Phantom_Hoover> the verbose edition is here: http://homepages.ihug.co.nz/~suckfish/busy/busy.tar.gz
18:17:16 <mauris> it's the c program that theoretically returns an incredibly large program?
18:17:26 <myname> i only needed like 12 minutes to disprove a = b and b = c and a != c
18:17:40 <Phantom_Hoover> it diagonalises across the entire calculus of constructions, yes
18:17:58 <myname> = is pretty hard, really
18:20:16 <mauris> it's sort of "from scratch" in a cool way. we're almost finished implementing a bunch of algorithms from the course (in F#, which turned out to be a nice language for that!)
18:21:21 <myname> prolog is a cool language for that :D
18:22:01 <myname> there is this fol prover in prolog that is the abstract of a paper, the paper being the explanation of said code
18:26:02 <mauris> also i am very determined to prove one of the theorems in this book in a way that doesn't suck, but apparently you can only prove it in a way that kind of sucks
18:33:05 -!- shikhin has joined.
18:33:21 -!- Effilry has joined.
18:35:02 -!- FreeFull has joined.
18:50:03 -!- Effilry has changed nick to FireFly.
19:05:06 -!- zgrep has quit (Ping timeout: 240 seconds).
19:08:36 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
19:11:22 -!- copumpkin has joined.
19:11:51 -!- zgrep has joined.
19:13:19 -!- hppavilion[1] has joined.
19:15:42 <HackEgo> [wiki] [[Fish]] http://esolangs.org/w/index.php?diff=44757&oldid=44569 * 216.138.225.130 * (-12) /* Quine */
19:19:22 -!- lleu has joined.
19:19:22 -!- lleu has quit (Changing host).
19:19:22 -!- lleu has joined.
19:27:06 -!- Sprocklem has quit (Ping timeout: 272 seconds).
19:29:09 <Taneb> Tonight's project: implement a concurrent data structure I went to a talk about this evening in Haskell
19:40:24 -!- `^_^v has quit (Quit: This computer has gone to sleep).
19:48:59 <fizzie> "Inspector Samms, please report to platforms 15 and 16." I wonder if that was code for something.
19:51:08 <fizzie> "-- The announcement “Will Inspector Samms please report to the operations room” means a single fire --" maybe it was!
20:00:48 -!- Sprocklem has joined.
20:03:29 -!- hppavilion[1] has quit (Ping timeout: 256 seconds).
20:07:04 <fizzie> https://en.m.wikipedia.org/wiki/Inspector_Sands I mishearded.
20:11:50 -!- Patashu has joined.
20:12:46 -!- VictorCL has joined.
20:15:55 -!- Patashu has quit (Remote host closed the connection).
20:16:07 -!- Patashu has joined.
20:43:44 -!- Patashu has quit (Ping timeout: 272 seconds).
20:50:01 -!- bb010g has quit (Quit: Connection closed for inactivity).
21:07:39 -!- AnotherTest has joined.
21:13:27 -!- Sprocklem has quit (Ping timeout: 244 seconds).
21:15:15 -!- mauris_ has joined.
21:18:33 -!- mauris has quit (Ping timeout: 255 seconds).
21:25:23 -!- oerjan has joined.
21:25:25 -!- gamemanj has quit (Ping timeout: 250 seconds).
21:35:54 -!- atrapado has quit (Quit: Leaving).
21:40:23 -!- Sprocklem has joined.
21:40:26 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
21:43:10 -!- mauris has joined.
21:45:45 -!- mauris_ has quit (Ping timeout: 252 seconds).
21:52:39 -!- Sprocklem has quit (Ping timeout: 240 seconds).
21:55:35 -!- boily has joined.
21:58:14 <int-e> wouldn't it rather be a poor boiled day? I mean, that has to hurt...
21:58:36 <oerjan> indeed. always use sufficient factor hth
22:00:12 <boily> I don't like being boiled.
22:00:27 <int-e> . o O ( and again, good morning. )
22:00:30 <boily> (I much prefer stewed, or braised. keeps all the nutrients!)
22:01:50 <int-e> (well, it's only a new day by the clock)
22:02:43 * boily mapoles int-e back into today.
22:02:53 <int-e> now if I knew IPA (and how to type it) I'd transcribe the first part of the topic...
22:02:54 <boily> please stop being another day. it's bad manners.
22:03:16 <boily> oh, that. I happily mangled the previous pronounciation. ^^
22:05:01 <int-e> another day died; Bond killed it...
22:05:40 <int-e> [at least with some creative punctuation in that movie title]
22:10:35 -!- boily has quit (Quit: WORLDLY CHICKEN).
22:11:56 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
22:15:35 -!- VictorCL has joined.
22:15:52 -!- VictorCL has quit (Client Quit).
22:16:14 -!- VictorCL has joined.
22:17:34 -!- VictorCL has quit (Read error: Connection reset by peer).
22:19:51 -!- VictorCL has joined.
22:24:11 -!- MDude has quit (Ping timeout: 264 seconds).
22:36:16 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
22:38:30 -!- Wright has joined.
22:43:43 -!- hppavilion[1] has joined.
23:00:55 -!- mauris has quit (Ping timeout: 252 seconds).
23:19:09 -!- copumpkin has joined.
23:27:41 -!- tromp has joined.
23:29:46 -!- int-e_ has joined.
23:29:53 -!- atehwa has joined.
23:30:15 -!- int-e has quit (Disconnected by services).
23:30:19 -!- atehwa_ has quit (Read error: Connection reset by peer).
23:30:19 -!- int-e_ has changed nick to int-e.
23:32:24 -!- tromp__ has quit (Ping timeout: 253 seconds).
23:32:52 -!- fractal has quit (Ping timeout: 265 seconds).
23:34:50 -!- aretecode has quit (Ping timeout: 265 seconds).
23:34:50 -!- idris-bot has quit (Ping timeout: 265 seconds).
23:34:59 -!- PinealGl1ndOptic has quit (Ping timeout: 265 seconds).
23:34:59 -!- digitalcold has quit (Ping timeout: 265 seconds).
23:36:07 -!- PinealGlandOptic has joined.
23:36:15 -!- digitalcold has joined.
23:37:54 <hppavilion[1]> digitalcold? PinealGlandOptic? Never heard of those guys...
23:38:31 -!- aretecode has joined.
23:38:42 <int-e> hppavilion[1]: they've been around, idling. netsplits are weird...
23:39:32 <hppavilion[1]> I'm going to start designing my ArbourDB software now.
23:39:43 <int-e> (the channel population fluctuates around 100, but I think we only have about a dozen people chatting regularly)
23:43:57 <hppavilion[1]> I am one of only a dozen people in the world who actually talks about this sort of thing
23:44:00 -!- Sprocklem has joined.
23:55:05 -!- VictorCL has quit (*.net *.split).
23:55:05 -!- gde33 has quit (*.net *.split).
23:55:05 -!- jix has quit (*.net *.split).
23:55:05 -!- |f`-`|f has quit (*.net *.split).
23:55:05 -!- augur has quit (*.net *.split).
23:55:05 -!- Jafet has quit (*.net *.split).
23:55:05 -!- zemhill has quit (*.net *.split).
23:55:07 -!- vifino has quit (*.net *.split).
23:55:09 -!- FireFly has quit (*.net *.split).
23:55:09 -!- staffehn has quit (*.net *.split).
23:55:09 -!- erdic has quit (*.net *.split).
23:55:09 -!- Vorpal has quit (*.net *.split).
23:55:09 -!- Lymia has quit (*.net *.split).
23:55:10 -!- nchambers has quit (*.net *.split).
23:55:10 -!- pikhq has quit (*.net *.split).
23:55:11 -!- clog has quit (*.net *.split).
23:55:17 -!- izabera has quit (*.net *.split).
23:55:17 -!- fowl has quit (*.net *.split).
23:55:17 -!- oerjan has quit (*.net *.split).
23:55:17 -!- trn has quit (*.net *.split).
23:55:17 -!- cnr has quit (*.net *.split).
23:55:17 -!- diginet has quit (*.net *.split).
23:55:17 -!- lifthrasiir has quit (*.net *.split).
23:55:17 -!- shachaf has quit (*.net *.split).
23:55:17 -!- Sprocklem has quit (*.net *.split).
23:55:17 -!- aretecode has quit (*.net *.split).
23:55:17 -!- tromp has quit (*.net *.split).
23:55:21 -!- Hoolootwo has quit (*.net *.split).
23:55:21 -!- Gregor` has quit (*.net *.split).
23:55:21 -!- SirCmpwn has quit (*.net *.split).
23:55:21 -!- edwardk has quit (*.net *.split).
23:55:21 -!- coppro has quit (*.net *.split).
23:55:21 -!- glowcoil has quit (*.net *.split).
23:55:21 -!- jameseb has quit (*.net *.split).
23:55:21 -!- lambdabot has quit (*.net *.split).
23:55:21 -!- Phantom_Hoover has quit (*.net *.split).
23:55:23 -!- perrier has quit (*.net *.split).
23:55:23 -!- skarn has quit (*.net *.split).
23:55:23 -!- Alcest has quit (*.net *.split).
23:55:23 -!- puckipedia has quit (*.net *.split).
23:55:23 -!- olsner has quit (*.net *.split).
23:55:23 -!- digitalcold has quit (*.net *.split).
23:55:23 -!- PinealGlandOptic has quit (*.net *.split).
23:55:25 -!- Wright has quit (*.net *.split).
23:55:25 -!- shikhin has quit (*.net *.split).
23:55:25 -!- paul2520 has quit (*.net *.split).
23:55:25 -!- Adie has quit (*.net *.split).
23:55:25 -!- nisstyre has quit (*.net *.split).
23:55:25 -!- Taneb has quit (*.net *.split).
23:55:25 -!- haavard has quit (*.net *.split).
23:55:26 -!- deltab has quit (*.net *.split).
23:55:28 -!- fizzie has quit (*.net *.split).
23:55:28 -!- newsham has quit (*.net *.split).
23:55:34 -!- mbrcknl has quit (*.net *.split).
23:55:34 -!- MoALTz has quit (*.net *.split).
23:55:34 -!- gniourf has quit (*.net *.split).
23:55:34 -!- Deewiant has quit (*.net *.split).
23:55:34 -!- APic has quit (*.net *.split).
23:55:34 -!- ocharles__ has quit (*.net *.split).
23:55:34 -!- HackEgo has quit (*.net *.split).
23:55:34 -!- myname has quit (*.net *.split).
23:55:34 -!- b_jonas has quit (*.net *.split).
23:55:34 -!- atehwa has quit (*.net *.split).
23:55:34 -!- relrod has quit (*.net *.split).
23:55:34 -!- pdxleif has quit (*.net *.split).
23:55:34 -!- TieSoul has quit (*.net *.split).
23:55:34 -!- teuchter has quit (*.net *.split).
23:55:34 -!- Melvar has quit (*.net *.split).
23:55:34 -!- fungot has quit (*.net *.split).
23:55:34 -!- TodPunk has quit (*.net *.split).
23:55:35 -!- \oren\ has quit (*.net *.split).
23:55:39 -!- Sgeo__ has quit (*.net *.split).
23:57:17 -!- ski has quit (*.net *.split).
23:57:17 -!- hppavilion[1] has quit (*.net *.split).
23:57:17 -!- zgrep has quit (*.net *.split).
23:57:17 -!- heroux has quit (*.net *.split).
23:57:17 -!- quintopi1 has quit (*.net *.split).
23:57:17 -!- nortti has quit (*.net *.split).
23:57:17 -!- yorick has quit (*.net *.split).
23:57:17 -!- mtve has quit (*.net *.split).
23:57:17 -!- tromp_ has quit (*.net *.split).
23:57:17 -!- myndzi has quit (*.net *.split).
23:57:17 -!- rodgort has quit (*.net *.split).
23:58:10 -!- EgoBot has quit (Ping timeout: 270 seconds).