←2012-08-29 2012-08-30 2012-08-31→ ↑2012 ↑all
00:02:54 <zzo38> I also try to think of the best way to make WizardCard programming language; perhaps the syntax should be made more like Lisp and/or Scheme. Intentions are that it includes: * Open macros (new patterns can be added in other files, and new list items too) * Compiles to Haskell ((->) category is probably too weak, so use a Kleisli category or something) * First-class functions * First-class rulebooks (like Inform 7 rulebooks) * Mechanism to read
00:03:00 <zzo38> (did this get cut off?)
00:03:21 <oerjan> *
00:03:21 <oerjan> Mechanism to read
00:03:31 <zzo38> * Mechanism to read text from Magic: the Gathering and other games to convert to AST
00:03:36 <zzo38> That is all.
00:07:59 <Arc_Koen> zzo38: by "WizardCard programming language" do you mean some kind of Dvorak language?
00:08:30 <zzo38> Arc_Koen: No. It is the name of the programming language. I have already done a few things but I intend to change it a bit.
00:09:07 <Arc_Koen> yes, but I assume you didn't name it so for no reason
00:09:21 <zzo38> Of course there is a reaon.
00:09:21 -!- augur has joined.
00:12:06 <zzo38> The reason is for implementing Magic: the Gathering cards although it could be used for other purposes too.
00:12:50 <Arc_Koen> that's great!
00:13:09 <Arc_Koen> dvorak is a game where you can create the cards while playing
00:13:36 <zzo38> Maybe it is capable to do that too; I don't know yet.
00:14:50 -!- pikhq_ has joined.
00:17:30 -!- pikhq has quit (Ping timeout: 256 seconds).
00:18:20 -!- nooga has quit (Ping timeout: 268 seconds).
00:47:19 -!- copumpkin has changed nick to imsaguy4.
00:47:37 -!- imsaguy4 has changed nick to imsaguy9.
00:47:57 -!- imsaguy9 has changed nick to copumpkin.
00:59:56 -!- DHeadshot has joined.
01:20:29 -!- augur has quit (Remote host closed the connection).
01:32:52 <Arc_Koen> ./ofueue ")$2[)$--------2~)~~[)[)~(~[~[$~H~]~)%+~91-):]~1+:])]]~[$~H~])%+-91)[65][65]"
01:32:52 <Arc_Koen> Fatal error: exception Fueue.Unknown_operand(104)
01:33:10 <oerjan> fancy
01:33:10 <Arc_Koen> I was so hoping for it to work immediately
01:33:31 <Arc_Koen> that's 'h' right?
01:33:38 <Arc_Koen> > chr 104
01:33:39 <lambdabot> 'h'
01:34:02 <Arc_Koen> where the hell did that find a 'h'
01:34:14 <oerjan> presumably. i didn't think H was supposed to be case insensitive...
01:35:08 <Arc_Koen> well I don't know what atriq would say about it, but in my implementation 'H' is a function and 'h' is nothing
01:35:14 <oerjan> does it get past the parsing stage?
01:35:20 <Arc_Koen> let's see
01:35:29 <zzo38> (card (name "Counterspell") (type instant) (mana-cost U U) (text (counter (target spell))))
01:36:11 <Arc_Koen> nope
01:36:23 <oerjan> well that should narrow it down, then :P
01:37:06 <oerjan> perhaps it reads past the final \0? try rerunning it and see if you get the same number/error
01:37:23 <Arc_Koen> it's always 104
01:37:32 <Arc_Koen> errors are always so weird
01:38:15 <Arc_Koen> ok let's try without blocks
01:39:08 <Arc_Koen> 72 101 108 108 10 H
01:39:30 <oerjan> ^chr 72 101 108 108 10
01:39:30 <fungot>
01:39:36 <oerjan> ack
01:39:45 <Arc_Koen> ./ofueue "72 101 108 108 10 H"got passed it hehe
01:39:45 <Arc_Koen> Fatal error: exception Invalid_argument("char_of_int")
01:40:08 <Arc_Koen> ok, so without blocks it can pass the parser
01:40:21 <Arc_Koen> though not sure whether it passes it right; I'll make a print function
01:40:50 <oerjan> you're definitely going to need a print function if you need to trace execution...
01:41:56 <Arc_Koen> well I see nothing wrong with the only use of char_of_int
01:42:13 <Arc_Koen> | Num x -> print_char (char_of_int x)
01:42:24 <oerjan> oh you went back to ocaml?
01:42:30 <Arc_Koen> yeah
01:42:40 -!- ais523 has joined.
01:43:21 <Arc_Koen> now both versions are at the stage "there's at least one thing wrong somewhere but you have no idea wheeeeeere"
01:43:30 <Arc_Koen> which is the part I hate in programming
01:43:57 <oerjan> well make a print_queue function so you can see exactly what is on the queue at each step until it crashes.
01:44:56 <oerjan> because it's much easier to debug if you can see exactly when the data starts getting wrong
01:53:51 <Arc_Koen> ./ofueue "72 101 108 108 10 H"
01:53:52 <Arc_Koen> 600 5429 5436 5436 538 H
01:54:08 <oerjan> hm...
01:54:12 <Arc_Koen> well, at least I got the number of numbers right :)
01:54:18 <oerjan> :t readInt
01:54:20 <lambdabot> forall a. (Num a) => a -> (Char -> Bool) -> (Char -> Int) -> String -> [(a, String)]
01:54:39 <oerjan> > readInt 10 (const True) ord "72"
01:54:40 <lambdabot> [(600,"")]
01:54:57 <Arc_Koen> I have no idea what you just did
01:55:26 <Arc_Koen> is that haskell or something?
01:55:27 <oerjan> thought so. you are forgetting to subtract int_of_char '0' or whatever it's called
01:55:31 <oerjan> yes.
01:55:37 <Arc_Koen> oh of course
01:55:49 <Arc_Koen> that because of the C program
01:56:40 <Arc_Koen> I mean, switching back to ocaml I was like "no need to substract now, we have the int_of_char function
01:56:40 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:56:49 -!- DH____ has joined.
01:58:42 <Arc_Koen> ok, 72 101 blabla works
01:58:54 <oerjan> yay
01:59:04 <Arc_Koen> Fatal error: exception Fueue.Unknown_operand(104)
01:59:13 <Arc_Koen> well that would have been too easy
01:59:40 <oerjan> try something simpler like ):[):]
02:00:11 <Arc_Koen> if I recall correctly that's an infinite loop
02:00:14 <oerjan> yep
02:00:30 <Arc_Koen> seems to be working
02:00:55 <oerjan> time to find a minimal breaking example, then
02:01:16 <Arc_Koen> well I'll try on empty
02:01:42 <Arc_Koen> ok, empty works
02:02:10 <oerjan> by that, i mean taking the program which doesn't work, and try smaller pieces of it
02:02:35 <oerjan> until you find the smallest piece which breaks
02:03:34 <oerjan> )$2[)$--------2~)~~[)[)~(~[~[$~H~]~)%+~91-):]~1+:])]]~[$~H~])%+-91)[65][65]
02:03:56 <oerjan> say )$2[)$--------2~)~~[)[)~(~[~[$~H~]~)%+~91-):]~1+:])]]
02:04:44 <Arc_Koen> ./ofueue "+-*/%:~!$(<)H"
02:04:44 <Arc_Koen> ./ofueue "+-*/%:~"))[[H]]"(<)H"
02:04:44 <Arc_Koen> -bash: syntax error near unexpected token `)'
02:04:53 -!- Concreto has joined.
02:05:03 <Arc_Koen> funny I thought no fueue function had to be escaped
02:05:08 <oerjan> um you have a " in there.
02:05:50 <Arc_Koen> uh
02:06:19 <Arc_Koen> the ! was replaced by my previous argument
02:06:21 <Arc_Koen> apparently
02:06:31 <oerjan> use '' instead of "" to escape, anyway
02:06:42 <oerjan> *to quote
02:06:51 <Arc_Koen> ok
02:07:33 <Arc_Koen> ok, so the program "sequence of all fueue functions" works
02:08:00 <oerjan> as i said, try breaking the non-working program down.
02:08:01 <Arc_Koen> ah
02:08:09 <Arc_Koen> it seems to be working
02:08:20 <Arc_Koen> ./ofueue ')$2[)$--------2~)~~[)[)~(~[~[$~H~]~)%+~91-):]~1+:])]]'
02:08:20 <Arc_Koen> )$2 [)$--------2 ~)~~[)[)~(~[~[$~H~]~)%+~91 -):]~1 +:])]]
02:08:20 <Arc_Koen> got passed it hehe
02:08:43 <Arc_Koen> though I have no idea what it is supposed to do, so I can't tell if it's behaving properly or not
02:08:55 <oerjan> hm have you tried '' around the whole program? maybe it was quoting problems all along.
02:09:00 <Arc_Koen> but it was parsed correctly
02:09:28 <Arc_Koen> yeaaaaah
02:09:34 <Arc_Koen> works as well
02:09:47 <oerjan> what does it do? >:)
02:10:00 <Arc_Koen> it waits for me to input something
02:10:12 <oerjan> oops. it's not supposed to do that.
02:11:11 <Arc_Koen> (so now must be the time where I confess I kind of skipped the input part of the program, and replace it with a "read_int")
02:11:40 <oerjan> well you might, except my program isn't supposed to do any input :(
02:12:22 <Arc_Koen> does your program work? :p
02:12:26 <oerjan> there is of course the possibility of bugs
02:12:45 <oerjan> i have only emulated it by hand
02:13:09 <Arc_Koen> well trying a program we're not sure of against an interpreter we're not sure of was optimistic
02:13:35 <oerjan> does it print anything before asking for input?
02:13:51 <Arc_Koen> it prints the program and "got passed it hehe"
02:14:06 <oerjan> can i get a print of the queue just before it asks for input?
02:14:10 <Arc_Koen> ./ofueue ')$2[)$--------2~)~~[)[)~(~[~[$~H~]~)%+~91-):]~1+:])]]~[$~H~])%+-91)[65][65]'
02:14:10 <Arc_Koen> )$2 [)$--------2 ~)~~[)[)~(~[~[$~H~]~)%+~91 -):]~1 +:])]]~[$~H~])%+-91 )[65 ][65 ]
02:14:10 <Arc_Koen> got passed it hehe
02:14:11 <Arc_Koen> 66
02:14:11 <Arc_Koen> 66
02:14:11 <Arc_Koen> Fatal error: exception Invalid_argument("char_of_int")
02:14:17 <Arc_Koen> oh, right
02:14:30 <Arc_Koen> let's add a print_queue somewhere in the middle
02:15:32 <oerjan> it does seem to print an equivalent program
02:16:08 <Arc_Koen> the only difference should be: removed all the whitespace, and added one whitespace after each number
02:16:24 <Arc_Koen> (so as to not be confused by two consecutive numbers)
02:16:41 <Arc_Koen> ohgod
02:16:51 <oerjan> hm?
02:16:52 <Arc_Koen> ok, fasten your seatbelt
02:17:18 <oerjan> ok
02:17:59 <Arc_Koen> http://pastebin.com/rafSr1KR
02:18:45 <Arc_Koen> ah, crap
02:18:59 <Arc_Koen> the print_queue function doesn't make a difference between - 2 and -2
02:19:13 <Arc_Koen> ok, I'll make the space appear before numbers instead of after
02:19:24 -!- kmc has joined.
02:19:33 <oerjan> heh right. i used _2 for the number when designing it :P
02:20:45 <Arc_Koen> http://pastebin.com/TEJcPYyr
02:20:57 <Arc_Koen> though all minuses were the function, I think
02:21:28 <Arc_Koen> it seems to ask for input just before applying minus to 2
02:21:41 <oerjan> i hope not, there should definitely be some negative numbers in there
02:22:06 <Arc_Koen> ok so here is what goes after input
02:22:46 <Arc_Koen> http://pastebin.com/bmS873ub
02:23:01 <Arc_Koen> (this follows the previous paste, and 66 and 67 are my inputs)
02:24:23 <Arc_Koen> it's probably a problem with my interpreter though, cause the line seems too long to have been processed entirely since the last function was executed
02:26:08 <Arc_Koen> oh, the char_of_int error was cause by trying to print a negative number
02:26:10 <oerjan> yes, i guess there's a length miscalculation
02:26:44 <oerjan> it shouldn't do that, although i guess reading a character into it will mess things up
02:27:23 <Arc_Koen> ok, so the length is calculated this way:
02:27:35 <Arc_Koen> the function "main" which processes the queue has only one argument, "time"
02:27:57 <Arc_Koen> time is supposed to be equal to the number of "sendback" operations since last active operation
02:28:26 <Arc_Koen> and there's a global variable "fength" which is supposed to be equal, at all time, to the length of the queue
02:28:42 <Arc_Koen> I'll try replacing it with Queue.length fueue or whatever
02:29:50 <Arc_Koen> and it seems to be working
02:30:06 <Arc_Koen> although the print_queue flooding prevents me from knowing what it does
02:30:47 <Arc_Koen> ./ofueue ')$2[)$--------2~)~~[)[)~(~[~[$~H~]~)%+~91-):]~1+:])]]~[$~H~])%+-91)[65][65]'
02:30:47 <Arc_Koen> )$ 2[)$-------- 2~)~~[)[)~(~[~[$~H~]~)%+~ 91-):]~ 1+:])]]~[$~H~])%+- 91)[ 65][ 65]
02:30:48 <Arc_Koen> got passed it hehe
02:30:50 <Arc_Koen> yeaaaaaaaah
02:30:55 <oerjan> yay!
02:31:34 <Arc_Koen> now to replace the read_int by a function that does what you said it should do
02:31:44 <Arc_Koen> and then this will be THE FIRST FUEUE INTERPRETER
02:32:00 <oerjan> excellent
02:33:12 <Arc_Koen> at first when I read about befunge and esolangs it all sounded like 90's and early 2000's
02:33:42 <Arc_Koen> and all those articles about "the now defunct xxx mailing list"
02:34:07 -!- mtve has quit (Ping timeout: 240 seconds).
02:34:07 <oerjan> the mailing list was nice :(
02:34:39 <Arc_Koen> and then I talked with ais and he told me he did a lot of esolangs
02:34:50 <Phantom__Hoover> RIP mailing list, 90s-early 2000s
02:34:52 <oerjan> the community is somewhat smaller now, i think.
02:34:54 <Phantom__Hoover> "it was nice"
02:35:07 <oerjan> but we're not dead yet
02:35:07 <Arc_Koen> and then I found 2008, 2009, 2010, 2011 and even 2012 created esolangs
02:35:15 <Arc_Koen> and this channel
02:35:20 <Phantom__Hoover> oerjan, depends, are we including people who make Brainfuck derivatives?
02:35:25 <oerjan> Phantom__Hoover: NO
02:35:27 <Arc_Koen> I feel like I'm part of history now
02:35:57 <pikhq_> Arc_Koen: Most of us don't talk esolangs much, TBH.
02:36:12 <pikhq_> (though that's not to say we're uninterested in it. :))
02:36:16 <Arc_Koen> you're not bilingual??
02:36:58 <pikhq_> いや、しかし、日本語はイソラングじゃないと思う。
02:38:22 * Arc_Koen digs out his very rusty japanese
02:38:41 <pikhq_> "Uh, well, Japanese isn't an esolang, I think."
02:38:52 <pikhq_> Well, more idiomatic.
02:38:53 <Arc_Koen> "no, shisomethingshi, nihonsomeeeeeeethingitoblacksomething
02:39:01 <pikhq_> "Uh, well, I don't think Japanese is an esolang."
02:39:28 <Arc_Koen> well my japanese interpreter doesn't work well, apparently
02:40:08 <pikhq_> "iya, shikashi, nihongo wa isorangu ja nai to omou" or, more pedantically, "iya, sikasi, nihonnkò ha isorannkù sìȳanai to omou"
02:40:29 <Arc_Koen> イソラングじ izoranguji ?
02:40:34 <Arc_Koen> haha
02:41:05 <pikhq_> Nah, the tokenization is a bit different there. ;)
02:42:37 <Arc_Koen> well, じ is most definitely ji, isn't it?
02:43:04 <Arc_Koen> I mean, shi is like the only syllable I always remember correctly
02:43:18 <pikhq_> Yes, but that mora doesn't exist in that sentence. じゃ is "ja", not "jiya".
02:43:27 <Arc_Koen> oh, right
02:43:58 <Arc_Koen> I confused that with a miniature "tsu" which would double the next syllable
02:44:14 <pikhq_> I guess it looks a little like the sokuon.
02:45:22 <pikhq_> つっやゃ Yeah, some similarity I guess.
02:45:46 <zzo38> Small "tsu" does not double the next syllable it should be like a pause, romaji written by doubling the next consonant which is also what it is like.
02:46:04 <zzo38> Japanese writing is not by syllables anyways it is by moras.
02:47:38 <pikhq_> To be very technical, small "tsu" indicates gemination of the next consonant.
02:47:46 <zzo38> OK.
02:47:51 <Arc_Koen> I've never heard mora before today, but I'm guessing it's some kind of japanese translation of syllable? :p
02:47:52 <coppro> morae
02:47:55 <coppro> Arc_Koen: no
02:48:02 <pikhq_> Arc_Koen: It's actually a Latin origin term.
02:48:11 <Arc_Koen> oh
02:49:03 <pikhq_> Arc_Koen: A "mora" is a unit of sound between a syllable and a phoneme...
02:49:09 <pikhq_> *Most* kana are a single mora.
02:49:50 <Arc_Koen> is the n kana a whole mora?
02:50:05 <pikhq_> Though the ones where you have a compound sound (like with a small "ya", "yu", or "yo") are a single mora from two kana.
02:50:07 <zzo38> I think the small kanas are not a whole mora except for a small tsu.
02:50:08 <pikhq_> Arc_Koen: Yes.
02:50:21 <pikhq_> zzo38: You're right.
02:50:40 <pikhq_> Small tsu is a mora.
02:50:51 <zzo38> Big kanas always are a mora, I think.
02:51:01 <pikhq_> にっぽん is 4 morae.
02:51:03 -!- augur has joined.
02:51:06 <pikhq_> zzo38: I think so, yeah.
02:51:50 <Phantom__Hoover> When the moon hits ya eye like a big pizza pie, that's a morae....
02:52:04 <pikhq_> Arc_Koen: Also, e.g. とうきょう is 4 morae but only two syllables.
02:52:42 <Arc_Koen> to u somethingo u ?
02:52:49 <pikhq_> toukyou
02:53:16 <Arc_Koen> so close :)
02:53:31 -!- pikhq_ has quit (Quit: Reconnecting).
02:53:43 -!- pikhq has joined.
02:53:48 <Arc_Koen> so why isn't it written (tsu)to(tsu)kyo?
02:53:50 <pikhq> 20:52 < pikhq_> toukyou
02:54:14 <zzo38> Arc_Koen: Why would it be? That doesn't make sense
02:54:24 <zzo38> It would be a different word.
02:54:35 <pikhq> Arc_Koen: Because it's not ttokkyo?
02:54:45 <zzo38> Except, n and small tsu never comes first as far as I know.
02:54:49 <Arc_Koen> oh that doubles the consonaaaaaaant
02:55:41 <Arc_Koen> it's been so long I was completely confusing the "u" thing and the "tsu" thing
02:55:46 <pikhq> zzo38: If somehow it did, the small tsu would probably be a glottal stop.
02:56:28 <pikhq> zzo38: And apparently ん starts a couple loan words?
02:57:25 <pikhq> Also, other Japonic languages apparently start words with it.
03:06:31 <Arc_Koen> oerjan: according to the reference manual, "input_char stdin" should have the behaviour you were expecting
03:07:31 <Arc_Koen> when trying it on the empty fueue program though, it looks like there is nothing to trigger the end of "waiting for an input"
03:07:42 <Arc_Koen> niether ^D nor enter
03:10:22 <Arc_Koen> echo 'ABCD' | ./ofueue ' ' prints ABCD then Fatal error: exception End_of_file
03:12:41 <oerjan> Arc_Koen: iirc (it's been a long time since i did ocaml) to handle EOF you actually need to catch that exception.
03:15:02 <Arc_Koen> try (input_char stdin) with | End_of_file -> WAIT FOR MORE
03:15:57 <Arc_Koen> crap, 5am
03:16:15 <oerjan> Arc_Koen: pretty much.
03:16:30 <Arc_Koen> so, do i get to have my name in the wiki for my interpreter or something? :)
03:16:40 <Arc_Koen> along with a few fueue programs
03:17:04 <oerjan> Arc_Koen: sure
03:18:17 <oerjan> note that everything put directly on the wiki must be public domain / CC0 licensed
03:19:14 <oerjan> also it's not very good for large programs.
03:19:55 <zzo38> It is possible to do literate Haskell directly on the wiki.
03:20:03 <zzo38> (It still needs to be public domain)
03:20:27 <Arc_Koen> well, I don't know much about licenses but "CC0" doesn't sound so scary
03:20:56 <Arc_Koen> I'm guessing it stands for the same commutative commons as wikipedia, or something
03:20:57 <zzo38> CC0 is public domain; no copyright.
03:21:06 <zzo38> No it is not the same as Wikipedia.
03:21:07 <oerjan> it basically means "as close to public domain as we can get in your jurisdiction"
03:21:28 <Arc_Koen> I'm ok with that
03:21:29 <oerjan> Arc_Koen: it's creative commons, but a different license
03:22:17 <Arc_Koen> (the main question is, is my code readable enough and will it not put shame on me or something :p)
03:22:36 <oerjan> larger programs are usually put elsewhere and linked from the wiki.
03:23:03 <oerjan> well we haven't actually _seen_ that much of your code, have we >:)
03:23:40 <Arc_Koen> I can send it to you by email or something
03:23:51 <oerjan> oops
03:24:23 <oerjan> i'm sure it's fine, anyway
03:24:44 <oerjan> (elliott will be merciless regardless >:) )
03:25:12 <Arc_Koen> except for that fength bug which I "corrected" by replacing fength by Queue.length fueue when it was used
03:25:35 <Arc_Koen> that means I have a lot of function trying to keep the correct length at all time, and who fail at that
03:26:23 <oerjan> well you can always remove that part when you use Queue.length instead.
03:27:16 <oerjan> it might be constant time, anyhow, although i'm not sure how to see the source
03:27:19 <Arc_Koen> aaaand bug fixed
03:28:01 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
03:28:06 <oerjan> in fact _if_ Queue.length is constant time, it's sort of silly to keep track yourself.
03:28:15 <Arc_Koen> good point
03:28:45 <Arc_Koen> though I'm guessing they would have mentioned it if it was constant time
03:29:26 <oerjan> maybe they considered it obvious.
03:30:27 <Arc_Koen> I doubt that; List.length's and Queue.length's description are quasi-identical, and List.length is definitely not constant time
03:31:14 <oerjan> well it's only constant time if they cache the length
03:31:55 <Arc_Koen> my point is, if they cached the length then Queue.length would be using "something you can't use" and they would have said it
03:32:12 <Arc_Koen> the same way they said Queue.transfer was constant time
03:32:43 <Arc_Koen> I'll ask someone tomorrow
03:35:22 <oerjan> it would be easy if i could just find the source :(
03:37:17 <Arc_Koen> I'm note sure there even is an ocaml source
03:38:54 <oerjan> i managed to find a stackoverflow thread about it
03:39:53 <oerjan> "The queue's length is "
03:39:54 <oerjan> 33 also recorded, so as to make [length] a constant-time operation.
03:40:00 <oerjan> http://caml.inria.fr/cgi-bin/viewvc.cgi/ocaml/version/4.00/stdlib/queue.ml?revision=12217&view=markup
03:41:42 <Arc_Koen> urh, they made it cyclic
03:42:23 <Arc_Koen> you win then, I'm removing all fength stuff
03:43:13 <oerjan> \o/
03:44:20 <Sgeo> Wait, how is length a constant time operation?
03:45:07 <oerjan> Sgeo: because it's stored in the structure
03:45:16 <Sgeo> Ah
03:45:45 <Arc_Koen> the hell is that
03:45:47 <Arc_Koen> tail = Obj.magic None
03:46:00 <Arc_Koen> I told you it was magic
03:47:03 <Arc_Koen> this library looks almost more like C than Ocaml though
03:48:17 <oerjan> i recall back when i was looking at ocaml, their yacc-alike was a C program modified to output ocaml source :)
03:49:29 <oerjan> i don't know if they've rewritten ocamlyacc in ocaml proper
03:50:19 <oerjan> Arc_Koen: iiuc that tail = Obj.magic None was because they didn't want the space overhead of _actually_ using options
03:50:42 <Arc_Koen> oh
03:51:03 <Arc_Koen> so Obj.magic basically means "do what you want while pretending you're not doing it"?
03:52:25 <Arc_Koen> external magic : 'a -> 'b = "%identity" that reminds me... I have never used the objective part of ocaml
03:52:33 <Arc_Koen> anyway, have a good night
03:52:39 <Arc_Koen> or whatever's left of it
03:52:44 <oerjan> good night
03:53:28 <Arc_Koen> if you or atriq want me to send them my interpreter my email is ltn.koen@gmail.com
03:53:38 -!- Arc_Koen has left.
03:54:09 -!- oerjan has quit (Quit: Not much, anyhow).
03:54:44 -!- zzo38 has quit (Remote host closed the connection).
03:56:06 -!- zzo38 has joined.
04:04:42 <kmc> " The idea behind the build is allowing people to explode a watermelon with their mind using a Star Wars Force Trainer EEG toy."
04:15:39 -!- xuzh1 has joined.
04:16:40 -!- MoALTz has joined.
04:16:58 -!- DHeadshot has joined.
04:17:03 -!- DH____ has quit (Read error: Connection reset by peer).
04:27:11 -!- Concreto has quit (Quit: Concreto).
04:27:24 -!- Concreto has joined.
04:27:52 <kmc> "Making sure a baby is still breathing with lasers and a wiimote"
04:28:18 <kmc> stupid cyberpunk future
04:32:20 <kmc> <zzo38> CC0 is public domain; no copyright.
04:32:28 <kmc> as oerjan said, this may or may not be true, depending on your jurisdiction
04:32:51 <kmc> in some places copyright is one of those rights you can't sign away, and there's no way to dedicate your work to the public domain other than to die and wait x years
04:33:23 <zzo38> Yes I know that. But why do some juristictions have that?
04:33:37 <kmc> so CC0 attempts to provide as broad a license as possible, in very explicit terms
04:33:53 <kmc> which means it's a good deal more verbose than WTFPL or your standard "public domain dedication"
04:34:00 <pikhq> CC0 is a pointer to whatever the least restrictive status is.
04:34:16 <kmc> no, it's a pretty long document
04:34:25 <pikhq> I'm saying *conceptually* that's what it is.
04:34:30 <kmc> it doesn't just say "This shall be under the least restrictive status"
04:34:36 <zzo38> Yes, I understand, it would make it public domain if possible. WTFPL is like public domain but always copyright and much shorter
04:34:51 <kmc> it enumerates in some detail all the things you are explicitly allowed to do
04:34:57 <kmc> i think that's conceptually very different from a "pointer"
04:35:24 <kmc> zzo38: i don't know why you can't sign away copyright. perhaps legislators thought that employers would force their employees to do so?
04:35:29 <pikhq> Isn't it like the other CC licenses, where it refers to a different license for each country?
04:35:41 <kmc> but i think in such jurisdictions you can still assign copyright to your employer for work for hire
04:35:56 <kmc> pikhq: i don't believe so
04:35:59 <pikhq> Ah, no, it's a single text.
04:36:09 <kmc> http://creativecommons.org/publicdomain/zero/1.0/legalcode
04:36:20 <pikhq> I thought it was like the other CCs.
04:36:41 <kmc> also, it waives other copyright-like things, and provides a warranty disclaimer
04:37:00 <kmc> which you don't automatically get with WTFPL etc
04:37:18 <pikhq> So, it's a much more general MIT license.
04:37:33 <zzo38> Well, yes; WTFPL is designed to be very simple.
04:37:58 <zzo38> CC0 is designed to be very complete.
04:38:48 <kmc> CC0 lacks this restriction from the MIT license: "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."
04:39:36 <pikhq> Ah, right.
04:39:48 <pikhq> The MIT is merely mostly permissive, not all-permissive.
04:39:48 <zzo38> Maybe they should include CC0 in Haskell cabal if you push "public domain" it include CC0 in case it is not public domain in your jurisdiction.
04:40:42 <kmc> yeah that would be nice
04:41:38 <zzo38> Some people have told me not to select public domain license because some jurisdictions do not allow it.
04:44:17 <kmc> apparently defensedistributed.com succeeded in 3D printing an AR-15 lower receiver
04:45:29 <pikhq> That's going to do some interesting things to gun laws.
04:46:30 <kmc> yeah
04:46:55 <kmc> this is significant because the lower receiver is the part which is legally a gun in the USA
04:47:01 <kmc> the rest of the parts can be purchased without restriction
04:47:42 <kmc> "Firearms require a good deal more precision than a Bre Pettis bobblehead"
04:48:01 <kmc> bahaha
04:48:28 <pikhq> Can't you make functioning (if shitty) guns in practically any garage?
04:48:38 <kmc> so i've heard
04:50:24 <kmc> but it will suck compared to an AR-15 made with real parts except for the LR, which doesn't have much mechanical or heat stress anyway
04:51:45 <pikhq> Yeah.
04:52:02 <pikhq> An AR-15 with stock-parts-modulo-the-lower-receiver is, well, a real modern firearm.
04:52:12 -!- MoALTz has quit (Ping timeout: 265 seconds).
04:53:04 <kmc> but also I think it's not hard to just buy a complete AR-15 in the USA
04:53:31 <pikhq> It's not.
04:54:27 <pikhq> From what I understand it's no harder than any other firearm.
04:54:42 <kmc> and printing the LR doesn't particularly help you convert it to full auto, or add other illegal stuff
04:55:10 <pikhq> Does mean you could get your hands on one without complying with purchasing restrictions though.
04:55:34 <kmc> california has strict rules about assault rifles
04:55:43 <kmc> but you can just drive to nevada
04:56:06 <pikhq> There's federal purchasing regulations that you wouldn't need to deal with, either...
04:56:16 <kmc> yeah
04:56:19 <kmc> i don't know about those
05:22:34 -!- impomatic has quit (Ping timeout: 244 seconds).
05:24:51 -!- sivoais has quit (Read error: Connection reset by peer).
05:25:30 -!- sivoais has joined.
05:31:26 -!- Concreto has quit (Quit: Concreto).
05:52:05 -!- asiekierka has joined.
06:11:53 <zzo38> Did you see my code (card ...) I have posted earlier today?
06:14:33 <coppro> apparently the following is going to be played at the academic sessions for first years in the math faculty: http://www.youtube.com/watch?v=UQHaGhC7C2E
06:18:35 <coppro> orientation should be good this year
06:42:54 <zzo38> Teleportation needs orientations.
06:45:28 <zzo38> Did you see my code (card ...) I have posted earlier today? I would intend that WizardCard compiler would read such things as part of a larger program, and then compile it into a Haskell code (not only in one place, but considering its effects on the rest of the program so that part gets compiled elsewhere too).
06:52:12 <coppro> I did not
06:55:34 -!- xuzh1 has quit (Ping timeout: 244 seconds).
06:55:44 <zzo38> Would you know anything about such things?
06:55:56 <zzo38> (Read the logs if it is necessary to do so)
06:58:27 <coppro> I don't have the time
06:58:41 <zzo38> OK, then please don't.
06:59:29 <zzo38> (or do you not have the time for "don't" either?)
06:59:33 <coppro> hha
06:59:37 <coppro> yeah, that
07:15:14 -!- xuzh1 has joined.
07:21:57 -!- zzo38 has quit (Quit: Hold second one as you hold a pencil.).
07:41:22 -!- xuzh1 has quit (Ping timeout: 265 seconds).
07:44:19 -!- xuzh1 has joined.
07:44:19 -!- xuzh1 has left.
08:13:57 -!- ais523 has quit.
08:14:30 -!- DHeadshot has quit (Ping timeout: 264 seconds).
08:17:20 -!- DHeadshot has joined.
08:28:04 <itidus21> zzo: does don't take > 0 time?
08:28:46 <itidus21> "don't" is surely an overhead
08:36:32 -!- atriq has joined.
08:51:52 -!- kinoSi has quit (Read error: Connection reset by peer).
08:52:19 -!- kinoSi has joined.
09:09:51 -!- ineiros has quit (Ping timeout: 240 seconds).
09:10:05 -!- ineiros has joined.
09:31:49 -!- nooga has joined.
09:41:47 <atriq> It occurs to me that I have no idea how to write a parser
09:41:47 <lambdabot> atriq: You have 2 new messages. '/msg lambdabot @messages' to read them.
09:41:52 <atriq> @messages
09:41:52 <lambdabot> Phantom__Hoover said 10h 51m 42s ago: don't not learn parsec
09:41:52 <lambdabot> oerjan said 10h 49m 48s ago: pattern guards _are_ vanilla haskell, they were added in haskell 2010
09:42:18 <atriq> @tell Phantom_Hoover I won't not learn parsec!
09:42:18 <lambdabot> Consider it noted.
09:42:34 <atriq> @tell oerjan Wow, I better learn them too!
09:42:34 <lambdabot> Consider it noted.
09:46:18 -!- FreeFull has quit (Ping timeout: 264 seconds).
09:46:57 -!- FreeFull has joined.
09:48:22 <fizzie> atriq: You take some kind of input, and produce a parse tree or some other kind of parsed result; that's how you write a parser.
09:48:37 <atriq> Wow
09:48:42 <atriq> You learn something every day
09:48:47 <atriq> And it's not even 11 o'clock yet!
09:49:12 <fizzie> Here, it is.
09:49:19 <atriq> Wow!
09:49:52 <fizzie> @localtime fungot
09:49:53 <fungot> fizzie: we are become more happy and less fnord, now that/ law is :) universal fnord but many good observers to rank as a geographical race; and possibly hereafter out :)/ mouth have to be admitted.
09:50:05 <fizzie> Oh, right, that was based on CTCP time.
09:50:15 -!- Phantom_Hoover has joined.
09:50:21 <fizzie> Maybe I should add some CTCP replies some day; VERSION, at least.
09:52:59 -!- impomatic has joined.
09:55:12 -!- ais523 has joined.
10:08:38 -!- ais523 has quit.
10:38:07 -!- derdon has joined.
10:50:14 -!- Arc_Koen has joined.
10:50:38 <Arc_Koen> hello
10:50:55 <Arc_Koen> atriq: so how's that Haskell interpreter going?
10:51:19 <Arc_Koen> also, I had a question: in the initial program, is it possible to use negative numbers?
10:51:45 <Arc_Koen> if so, what's the distinction between "the function - followed by a positive number" and "a negative number"?
10:54:49 -!- ais523 has joined.
11:00:53 <ais523> 30 kilobel per second is far too slow for a software package download, right?
11:01:02 <ais523> (I assume it means kilobyte)
11:04:23 -!- TeruFSX has quit (Ping timeout: 265 seconds).
11:07:10 <fizzie> I don't know; it could also mean, you know, 30 kilobel; i.e. 300 000 dB. Did it mention a bandwidth too? You could use that and the Shannon-Hartley theorem to get bits per second out of it.
11:07:31 <ais523> no obvious bandwidth mentioned
11:07:42 <fizzie> 30 kilobel is a really good channel, anyway.
11:07:58 <ais523> also loud enough to destroy the Earth if interpreted as sound intensity
11:08:14 -!- MoALTz has joined.
11:08:42 <Arc_Koen> global security recommends that you don't download this package
11:08:45 <fizzie> Assuming the standard reference value, at least.
11:08:47 <ais523> I'm waiting for cygwin to install all packages matching *ocaml* on a work computer
11:08:56 <ais523> and it's spending a long time just on the download
11:09:02 <ais523> Arc_Koen: huh, didn't expect to see you here
11:09:07 <ais523> small world indeed…
11:09:34 <Arc_Koen> well, you're kind of the one who brought me here
11:09:36 <fizzie> It's a bit hard to say whether the "kilobel" is a kilobyte or a kilobit without any other context. It's reasonably slow in both cases, though.
11:12:32 <ais523> I don't think I've seen capital B for bit before
11:12:37 <ais523> although it's commonly misused for byte
11:12:59 <Arc_Koen> would be like using capital M for the minimum function
11:13:25 <ais523> I guess it's possible to argue that KB genuinely does mean kilobyte or perhaps even kibibyte (because capital K is not an SI prefix), but kB, as shown in the Cygwin installer, is pretty uncontroversially kilobel :)
11:14:06 <fizzie> Ah, it was as "KB".
11:14:07 <ais523> incidentally, *ocaml* seems like too broad a pattern (it includes, for instance, Emacs' ocaml-mode, which means it pulls in all of Emacs), but it's not me who's doing the install, just me who's waiting for it to finish
11:15:41 <ais523> hmm TIL: trollface.{png,jpg} dates from 2008, I somehow assumed it was much older
11:17:04 <fizzie> Anyway, kB is as uncontroversially kilobel as kb is a kilobarn.
11:17:20 -!- ais523 has quit (Read error: Connection reset by peer).
11:17:35 -!- ais523 has joined.
11:19:33 -!- ais523 has quit (Read error: Connection reset by peer).
11:19:40 -!- ais523_ has joined.
11:19:45 -!- ais523_ has changed nick to ais523.
11:21:29 <fizzie> That was noisy.
11:26:59 -!- mig22 has joined.
11:29:02 -!- impomatic has quit (Quit: impomatic).
11:29:55 -!- hogeyui_ has quit (Ping timeout: 244 seconds).
11:32:47 <atriq> Arc_Koen, it isn't possible to have negative numbers in the initial program
11:33:01 <Arc_Koen> ok
11:33:14 <Arc_Koen> my ocaml interpreter seems to be following all specifications then :)
11:33:16 <atriq> I'm struggling to write a parser because I suck at parsers
11:33:26 <atriq> Also I can't type because Guitar Hero
11:33:32 -!- itidus20 has joined.
11:33:34 <atriq> My fingers hurt now
11:33:38 <Arc_Koen> haha
11:34:10 <atriq> Do not let me try to do Cliffs of Dover past medium difficulty
11:34:36 <Arc_Koen> out of curiosity, what are you using for blocks?
11:34:44 <Arc_Koen> the same structure as for the main queue?
11:34:46 <atriq> Yeah
11:35:08 <Arc_Koen> that's what I was doing with the C version but in Ocaml it sounded way more natural to use simple lists
11:35:08 <atriq> That was what I intended when I wrote the spec, I tried to make them as close to actual queues as possible
11:35:22 <fizzie> For some reason I had the thought "Guitar hero? But then shouldn't that mean it's your feet that hurt."
11:35:27 <fizzie> Brains: sometimes they don't work.
11:35:35 <atriq> :)
11:35:42 <Arc_Koen> since blocks are not executed, they don't need to be in an actual queue
11:36:27 <Arc_Koen> the only functions on them are "add one element" and "deblock it all"
11:36:42 -!- itidus21 has quit (Ping timeout: 264 seconds).
11:36:47 <atriq> It's convenient to have them the same as the main queue, because they are essentially the same as the main queue in terms of how they can be used
11:37:09 <atriq> Arc_Koen, the elements are added to the back, but when it's deblocked, they are deblocked front first
11:37:17 <Arc_Koen> I know
11:37:32 <ais523> <Anonymous> OMG no. You didn't just write "Some of the GNU Fortran runtime is written in m4."
11:37:39 <Arc_Koen> the deblock function reverses the list, which is not constant time, but I think it's worth it
11:37:51 <ais523> Arc_Koen: you have an OCaml interp?
11:37:55 <ais523> what language is it written in?
11:37:57 <Arc_Koen> for Fueue
11:38:05 <Arc_Koen> no, a Fueue interpreter written in ocaml
11:38:09 <ais523> ah, OK
11:38:21 <ais523> I thought it was a bit of a large lang for writing custom interps for
11:38:29 <Arc_Koen> indeed
11:38:52 <Arc_Koen> I had the project to write an interpreter in ocaml for a reduced set of ocaml
11:39:00 <Arc_Koen> but it was so boring
11:39:32 <Arc_Koen> it was all "if you meet a sum, then sum it. if you meet a function application, then applicate the function. if you meet an x, do an x."
11:40:25 <Arc_Koen> (by "reduced set" I mean "lists, variables, constants, let...in, if...then...else, function application, and very very few other things"
11:41:35 -!- hogeyui_ has joined.
11:43:12 <ais523> Arc_Koen: that's how interpreters generally work
11:43:17 <ais523> and why they're often quite easy to write
11:43:43 <Arc_Koen> yep, but writing it in its own language made it even more redundant
11:44:20 <Arc_Koen> at some point the question "why the hell did I want to do that?" must have become too loud for me to continue
11:47:40 <fizzie> We ran a thing in one of our courses on the SICP meta-circular interpreter.
11:47:54 <fizzie> Because it had some resource limits (counted as Scheme primitives) to apply.
11:52:45 <ais523> my automarker script does its resource limits with alarm and prctl
11:53:22 <ais523> prctl is kind-of neat for the purpose, because if something uses too much memory, then malloc ends up getting sigkilled when it tries to call brk
11:55:17 <atriq> I think my parser works
11:57:42 <fizzie> ais523: But are the time limits exactly fair in terms of executed things? (We later went to Java and setrlimit anyway, though.)
11:57:51 <atriq> So, ignoring the 72 line function and the fact it doesn't actually do anything yet, I think I've got a good program
12:14:03 <FreeFull> I always make my programs do something first and then iterate
12:14:30 <atriq> Ah, the top-down approach
12:14:57 <atriq> I take the "I have no idea what I'm doing" approach
12:15:01 <atriq> I don't finish many things
12:15:20 <oklopol> i do depth first
12:15:25 <oklopol> and sometimes A*
12:15:37 <oklopol> but never top down or bottom up, that's just silly
12:16:26 <FreeFull> Starting with a program does something has the advantage of you being able to see it do something each time you make a change
12:16:54 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
12:17:04 <oklopol> usually that means you play with it for half an hour every time you do anything.
12:17:26 <FreeFull> If you have a REPL you can just test parts of the program in the same way, rather than the whole program at once
12:18:02 <FreeFull> oklopol: So I should write it all at once and then figure out that I did everything wrong and have to redo it?
12:18:26 <fizzie> I think oklopol's opinion is that you shouldn't write it wrong in the first place.
12:18:29 <fizzie> (He doesn't.)
12:18:34 <fizzie> Unless I'm remembering someone else.
12:18:42 <oklopol> first of all i'm just saying random things. second of all imo the sensible way is to write a few tests for each function.
12:18:44 <FreeFull> Sometimes you don't even know what you want
12:19:27 <FreeFull> oklopol: Let's say I want to write a program for the purpose of "displaying something pretty"
12:19:36 <FreeFull> How do I write an automatic test for prettiness? =P
12:20:20 <oklopol> well true true, and similar with games which are nowadays my main projects
12:20:41 <oklopol> but anyhow you will probably have most of the actual functions doing well-defined things which you can test
12:20:55 <oklopol> the prettiness is done by finding a nice way to mangle these together
12:21:00 <oklopol> maybe.
12:21:02 <oklopol> maybe not.
12:21:03 <FreeFull> But those I tend to write correctly
12:21:11 <oklopol> right
12:21:27 <oklopol> well that's the important part.
12:21:33 <oklopol> who cares if it actually works
12:21:42 <FreeFull> I imagine tests are useful if you have a large project and don't want to break anything
12:22:10 <Arc_Koen> atriq: can I get a look at your program? I've never seen haskell before
12:22:23 <atriq> This probably won't be the best example
12:23:08 <atriq> http://hpaste.org/73936
12:23:49 <atriq> I'm not the most literate programmer
12:24:46 <Arc_Koen> oh
12:25:09 <Arc_Koen> my items are just "Fun of char, Num of int, Block of item list"
12:25:28 <atriq> I prefer it like this, due to the enhanced safety
12:25:46 <atriq> Any illegal character is caught during parsing, and I don't have to worry about adding some later
12:26:08 <FreeFull> atriq: That code looks very C-ish
12:26:40 <atriq> How so?
12:26:56 <oklopol> what an insult
12:32:19 <atriq> How is that C-ish at all?
12:32:37 <atriq> Other than being nigh-unreadable
12:36:56 <Arc_Koen> it looks like a simple pattern matching on the functions but I have no idea what it does with those functions
12:37:37 <atriq> It doesn't work
12:44:18 <Arc_Koen> compare « (FPop :< fs) -> case viewl fs of EmptyL -> modify succ >> return prog (_ :< fs') -> put 0 >> return fs' » and « | Fun '!' -> if (matchpeek Any Zero) then ignore (pop ()) else (push (Fun '!'); whatsnext := Sentback) »
12:46:03 <atriq> I really need to start using pattern guards
12:46:04 -!- boily has joined.
12:49:28 -!- ais523 has quit (Ping timeout: 256 seconds).
12:49:39 <FreeFull> atriq: I'm thinking in C it'd be just a giant switch statement
13:00:40 <atriq> I really need to use more comments, too
13:00:48 <Arc_Koen> hum apparently my fueue interpreter discards blocks instead of sending them back to the end
13:01:03 <Arc_Koen> and the deblock function is always sent back even when followed by a block
13:03:25 <fizzie> Arc_Koen: Regarding debugging prints and whatever, you could consider adding a trace/single-step kind of mode that'd print the fueue contents (or maybe say up to K first and last items) at each step; it might even be useful for all the Fueue developers, in addition to making debugging easier.
13:03:29 <atriq> YES
13:03:31 <atriq> Brilliant
13:03:39 <atriq> I worked out what I was doing wrong
13:03:42 <atriq> I had < instead of >=
13:04:06 <atriq> So it receiving input all the time
13:04:32 <Arc_Koen> fizzie: good idea; I already have a print_queue function I use for debugging but when it works i'll try to add an option to do that
13:11:36 <Arc_Koen> atriq: are empty blocks allowed in fueue programs? I may have asked that already
13:12:42 -!- DHeadshot has quit (Ping timeout: 264 seconds).
13:13:24 -!- atriq has quit (Ping timeout: 248 seconds).
13:19:21 -!- ais523 has joined.
13:20:20 <Arc_Koen> ok, I think it works
13:20:26 <Arc_Koen> let's try it on the ABCD program
13:20:58 <nortti> http://qdb.us/307731
13:21:42 -!- atriq has joined.
13:22:06 <Arc_Koen> )$ 2[)$-------- 2~)~~[)[)~(~[~[$~H~]~)%+~ 91-):]~ 1+:])]]~[$~H~])%+- 91)[ 65][ 65]
13:22:06 <Arc_Koen> ABCDEFGHIJKLMNOPQRSTUVWXYZthis has properly ended
13:22:27 <Arc_Koen> atriq: both my Ocaml and C versions of the interpreter work
13:22:47 <Arc_Koen> though the ocaml versions has some issues with input
13:22:52 <atriq> Yay!
13:23:09 <fizzie> fungot: See nortti's link; maybe you could be friends?
13:23:10 <fungot> fizzie: dunno what ephemeral arrays are, i'll leave it at that. any custom adt.
13:29:07 <atriq> Mine seems to have a problem with it
13:30:01 <Arc_Koen> echo "ABCD" | ./ofueue ' ' prints ABCD then raise an End_of_file error
13:30:43 <Arc_Koen> ./ofueue ' ' without the pipe waits for me to make an input, prints it, and then things become weird
13:30:54 <atriq> > ord '\n'
13:30:55 <lambdabot> 10
13:31:21 -!- ais523_ has joined.
13:31:48 -!- ais523 has quit (Read error: No route to host).
13:32:16 <Arc_Koen> that could be fixed with something like "try (input_char stdin) with | End_of_file -> wait for more" except I have no idea how to make it understand "wait for more"
13:34:38 <fizzie> Not just End_of_file -> -1?
13:34:46 <fizzie> Assuming that's the "standard".
13:35:13 <Arc_Koen> well if I did that it wouldn't wait for my input
13:35:37 -!- augur has quit (Remote host closed the connection).
13:36:04 <fizzie> What, so "input_char stdin" is some kind of a non-blocking thing? That'd be weird.
13:36:32 <Arc_Koen> well I'm trying to understand why sometimes it blocks and sometimes not
13:37:54 -!- ais523_ has quit (Ping timeout: 252 seconds).
13:38:48 <fizzie> I don't know OCaml, but I'd certainly expect it would always block unless there is input available to be read, or the end of file has happened. (And after the latter, there won't be any more input ever.)
13:39:52 <Arc_Koen> yes, but how do you know whether there is input available to be read?
13:40:20 <Arc_Koen> apparently "there is no input available" and "the next input is end_of_file" are the same
13:40:29 -!- monqy has quit (Quit: hello).
13:40:56 <fizzie> That sounds very unlikely, but certainly possible.
13:41:15 <fizzie> It's just that normally, if you don't do any kind of tricks, input functions will in fact wait if there is no input.
13:42:25 <fizzie> I mean, if there is no input but there is still a chance that there could be some input later.
13:42:42 <Arc_Koen> well, it kind of waits, but (at least in the case of the infinite cat loop) it doesn't actually print anything until it reaches end_of_file
13:42:53 <Arc_Koen> I guess the problem is with the print_char function then
13:43:34 <Arc_Koen> the same thing happened yesterday in C when I used printf to debug and the printf didn't print anything cause I hadn't included \n in it
13:44:23 <fizzie> Yes, stdout-y things tend to be line-buffered by default; but I suppose in most cases your input would have a \n in it, and therefore the output too, and things should become visible at that point.
13:44:49 <Arc_Koen> that's what it does with the C program
13:45:54 <Arc_Koen> that is, if I type a char followed by enter, it takes the char and the \n; if I type a char and ^D, it takes the char only
13:46:09 <Arc_Koen> but with the ocaml version ^D has absolutely no effect
13:46:27 <Arc_Koen> and "enter" does give him a \n but without making things visible
13:47:26 <atriq> You need to change the buffering settings
13:47:33 <atriq> I think I know how to do it in Haskell
13:47:59 <fizzie> Possibly you could just "flush stdout" manually after every output?
13:48:36 <fizzie> Some googling would sort of indicate that OCaml's stdout/stderr channels are fully buffered by default.
13:50:05 <atriq> Well, that's an interesting error
13:50:26 <fizzie> At least based on someone complaining that when he writes complete lines to stdout and stderr, the ordering still gets mixed up.
13:50:47 <atriq> ~ was broken
13:50:47 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
13:51:10 <atriq> ~ab... became b...ba
13:51:12 <fizzie> What's ~duck do?
13:51:17 <atriq> ~duck
13:51:17 <cuttlefish> --- ~duck query
13:51:18 <cuttlefish> --- Query information from Duck Duck Go
13:51:23 <atriq> ~duck hello
13:51:23 <cuttlefish> hello definition: an expression or gesture of greeting used interjectionally in greeting, in answering the telephone, or to express surprise.
13:51:31 <atriq> ~duck laconic
13:51:31 <cuttlefish> A laconic phrase is a concise or terse statement, named after Laconia, a polis of ancient Greece surrounding the city of Sparta proper.
13:51:32 <fizzie> Oh, so it's like Google except with a duck.
13:51:40 <atriq> More like a dictionary
13:51:46 <atriq> ~duck fiery
13:51:46 <cuttlefish> fiery definition: consisting of fire.
13:51:52 <atriq> ~duck ironic
13:51:52 <cuttlefish> Irony is a rhetorical device, literary technique, or situation in which there is a sharp incongruity or discordance that goes beyond the simple and evident intention of words or actions.
13:51:55 <fizzie> ~duck ways to make soap
13:51:55 <cuttlefish> --- No relevant information
13:51:57 <fizzie> aw.
13:52:22 <atriq> YES
13:52:26 <atriq> oerjan's program works
13:52:41 <fizzie> I was under the impression that DDG was a general-purpose search engine, with all kinds of small inventions.
13:53:01 <atriq> ~duck Hexham
13:53:01 <cuttlefish> --- No relevant information
13:53:07 <atriq> ~duck Helsinki
13:53:08 <cuttlefish> Helsinki is the capital and largest city of Finland.
13:53:15 <atriq> ~duck Istanbul
13:53:16 <cuttlefish> Formerly Constantinople The largest city of Turkey, in the northwest part of the country on both sides of the Bosporus at its entrance into the Sea of Marmara.
13:53:28 <atriq> Istanbul isn't Constantinople!
13:55:03 <fizzie> ~duck Constantinople
13:55:04 <cuttlefish> --- No relevant information
13:56:02 <fizzie> It seems to be what DDG returns for "define X".
13:56:31 <fizzie> Or maybe not quite, because that also knows about Hexham.
13:56:45 <fizzie> (Returning a Wikipedia reference.)
13:56:56 <fizzie> All the matching definitions so far have been the Free Dictionary ones.
14:06:02 <atriq> Okay, the final bit of this interpreter is being annoying
14:14:16 -!- mig22 has quit (Quit: mig22).
14:16:35 <FreeFull> ~duck Constantinopole
14:16:36 <cuttlefish> Constantinople (ɽıĹ, ɽıĹ - Konstantinopolis, Konstantinopoli; Constantinopolis; - Qostantiniyye; and modern 0stanbul) was the capital of the Eastern Roman Empire, the Latin and the Ottoman Empire.
14:17:07 <atriq> What!?
14:17:15 <atriq> ~duck Hexhaom
14:17:15 <cuttlefish> --- No relevant information
14:19:34 <FreeFull> ~duck Hexham
14:19:34 <cuttlefish> --- No relevant information
14:23:10 -!- soundnfury has quit (Remote host closed the connection).
14:23:52 -!- augur has joined.
14:25:38 <boily> there I am, gently working my day out, and when I switch to IRC what do I see: people abusing my bot once again.
14:25:59 <boily> I knew you guys were reliable for this kind of matters :D
14:26:41 <boily> ~duck duck duck
14:26:42 <cuttlefish> Software description: duck duck is a quick application launcher for Gnome.
14:27:07 -!- Phantom_Hoover has joined.
14:27:13 <atriq> ~duck XChat
14:27:14 <cuttlefish> XChat is a popular Internet Relay Chat client.
14:27:25 <atriq> ~duck Firefox
14:27:26 <cuttlefish> Firefox A very popular open source Web browser for Windows, Mac and Linux from the Mozilla project.
14:27:32 <atriq> ~duck Edinburgh
14:27:33 <cuttlefish> The capital of Scotland, in the eastern part of the country on the Firth of Forth.
14:27:40 <atriq> ~duck Forth
14:27:41 <Phantom_Hoover> hey taneb
14:27:41 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
14:27:41 <cuttlefish> A river of south-central Scotland flowing about 187 km eastward to the Firth of Forth, a wide inlet of the North Sea.
14:27:44 <atriq> Phantom_Hoover, hey
14:27:47 <Phantom_Hoover> did you do that thing
14:27:57 <atriq> The thing that I think you mean?
14:27:58 <atriq> Yeah
14:32:31 <atriq> Okay, for my Fueue interpreter
14:32:34 <atriq> The Interpreter works
14:32:38 <atriq> The Parser works
14:32:42 <atriq> The input doesn't work
14:32:52 <Phantom_Hoover> input schminput
14:34:11 <atriq> File input, that is
14:34:25 <atriq> Well, file input and parsing aren't playing nice
14:34:28 <atriq> I think they both work
14:47:22 <atriq> @ask oerjan Can I get you to write the main function for me?
14:47:22 <lambdabot> Consider it noted.
14:47:43 <atriq> I saw a van today marked "Elliot [sic] Hird and co."
14:49:15 <Arc_Koen> atriq: my C version is working, and can use --print as an option to print the current queue at each iteration
14:49:34 <atriq> :)
14:49:38 <atriq> Wow
14:50:08 <Arc_Koen> if you have a corner of the web dedicated to fueue I would be glad to have the interpreter there, so that we can get rid of the "unimplemented" on the wiki
14:50:44 <Arc_Koen> and we could also add a few programs on the wiki, such as (empty), hello world, the infinite loop ):[):], and oerjan's ABCD...
14:51:26 <atriq> Gregor, can Arc_Koen put his interpreters for Fueue in the Esoteric File Archive?
14:52:14 <Arc_Koen> btw, yesterday I had an idea for my first esoteric language
14:52:18 -!- kinoSi has quit (Read error: Connection reset by peer).
14:52:23 <Arc_Koen> it'd be called "Ftack"
14:52:30 <Gregor> atriq: Do I have access to the Esoteric File Archive? >_>
14:52:37 <atriq> Gregor, the wiki says you do
14:52:46 -!- kinoSi has joined.
14:52:49 <atriq> Are you the same Gregor as normal?
14:52:57 <Gregor> Why does the wiki say I do <_<
14:53:08 <atriq> Maybe because you do?
14:53:27 <Gregor> I might…
14:53:52 <atriq> http://esolangs.org/w/index.php?title=The_Esoteric_File_Archive&diff=prev&oldid=8132
14:53:56 <atriq> Your past self thinks you do
14:54:35 <Arc_Koen> atriq: so in Ftack, everything is like Fueue except we're using a stack instead; if the first value is a function which cannot be executed immediately, or if it's a block, it is sent back to the top of the stack
14:54:56 <atriq> So it's a deque?
14:55:01 <Arc_Koen> no, it's a stack
14:55:15 <Arc_Koen> (it's a joke, actually)
14:55:16 <atriq> Oh, I read that wrong
14:55:19 <Gregor> Gee, even I forgot I have write access I guess.
14:55:27 <Gregor> Well, if I can remember my username and password, gimme dem files.
14:55:53 <Arc_Koen> shall I send you an email, or may I try the dcc stuff?
14:55:53 <atriq> Arc_Koen, send Gregor your interpreters, he'll put them in the esoteric file archive
14:56:10 <atriq> atriq, stop pretending nobody but you knows what they're doing
14:56:21 <Gregor> Feel free to try DCC.
14:57:03 <Gregor> Anybody know if you can check whether you have svn commit access without committing? X-D
14:57:57 <atriq> "In this analogy, the orange is the Trojan, the person is Earth, and the Ferris wheel is our orbit around the sun."
14:58:26 <Gregor> "In this analogy, the orange is the Trojan™, the person is Earth, and the Ferris wheel is our orbit around the sun."
14:58:32 <Gregor> Oh what a difference a ™ can make.
14:59:06 <Arc_Koen> can it still be edited once it's in the archive?
14:59:20 <Gregor> It's svn, it can always be updated.
14:59:27 <Arc_Koen> ok
14:59:45 <Arc_Koen> I'm just asking in case someone points out how dirty my code is, or something
15:00:05 <Gregor> Your code is bad and you should feel bad.
15:01:20 -!- pikhq_ has joined.
15:01:29 <Gregor> Received a malformed DCC request from Arc_Koen.
15:01:36 <Gregor> Mayhap email ;)
15:01:38 <Arc_Koen> well that's a start
15:02:01 -!- pikhq has quit (Ping timeout: 268 seconds).
15:02:45 <Arc_Koen> is that better?
15:02:55 <Gregor> I clicked 'accept' but nothing is happening.
15:04:06 <Arc_Koen> ok, then it's probably not working
15:10:24 <Arc_Koen> aaand sent
15:21:24 <FreeFull> Arc_Koen: How about something with circular buffers?
15:21:43 <FreeFull> With the feature that one of the elements possible of the circular buffer is a circular buffer
15:22:16 <Arc_Koen> the first would seem cool, but I'm not quite sure I understand how the second works
15:23:04 <FreeFull> Let's say you have a circular buffer with the values 1, 2, 'a', "something" and another circular buffer as a value
15:23:10 <FreeFull> That's what I mean
15:23:33 <FreeFull> You could make the circular buffers fixed size so that it's harder
15:23:49 <FreeFull> Or variable size for ease
15:24:15 <Arc_Koen> ok, but how do you use the buffer?
15:31:26 <Phantom_Hoover> > 1077379 / 60
15:31:27 <lambdabot> 17956.316666666666
15:33:47 <Arc_Koen> atriq: if $ is to be applied to a negative number, does it result in an error or is $ sent back?
15:33:57 <Arc_Koen> also if the top value is a negative number?
15:34:07 <atriq> For $, an error, I would think
15:34:21 <FreeFull> You basically would use the buffer as a circular stack
15:34:26 <atriq> Possibly also an error as the second
15:34:44 <FreeFull> And I'm thinking you'd get 1 non-buffer register, or access to two separate buffers
15:35:09 <FreeFull> And you can go to a sub-buffer, where all operations now will apply to the sub-buffer
15:35:10 <atriq> I think wherever the specs are ambiguous or lacking, it's implementation-depenedant
15:35:16 -!- atriq has quit (Quit: guitar hero time).
15:35:50 <FreeFull> The program is ran in an infinite loop unless a halt statement is encountered
15:35:53 <Arc_Koen> don't try to do cliffs of dover past medium difficulty!!!
15:36:09 <Arc_Koen> ohhhhhh you're talking about fueue?
15:36:19 <Arc_Koen> the word "buffer" confused me
15:36:35 <FreeFull> No, I'm talking about a theoretical language
15:36:43 -!- boily has quit (*.net *.split).
15:36:43 -!- lifthrasiir has quit (*.net *.split).
15:36:43 -!- fizzie has quit (*.net *.split).
15:36:45 -!- Cryovat has quit (*.net *.split).
15:36:50 <FreeFull> That doesn't exist yet
15:36:54 <Arc_Koen> ok :)
15:37:19 <FreeFull> So let's say you want to create a program that calculates fibbonacci numbers
15:37:43 <Arc_Koen> I'm not sure how this works though
15:39:42 <Arc_Koen> so, when the next value is encountered
15:39:48 <FreeFull> { 0 1 } v dup 1 rot + .
15:40:13 <FreeFull> { } creates a sub-buffer
15:40:14 <Arc_Koen> "rot" basically acts as "send it back to the end of the queue", right?
15:40:30 <FreeFull> Arc_Koen: Sure, but you can also rotate a negative amount
15:40:31 -!- ais523 has joined.
15:40:31 -!- boily has joined.
15:40:31 -!- lifthrasiir has joined.
15:40:31 -!- Cryovat has joined.
15:40:31 -!- fizzie has joined.
15:40:35 <Arc_Koen> right
15:41:08 <FreeFull> And code on a buffer by default loops
15:41:12 <Arc_Koen> and what happens with functions like "dup" and "+", where is the result stored?
15:41:35 <Arc_Koen> (that is, is there an automatic "rot 1" after every function?)
15:41:42 <Arc_Koen> (or rot 2 for dup)
15:42:21 <FreeFull> Basically, if you have { 0 1 }, after the dup you have { 0 1 1 }, and after the 1 rot you have { 1 0 1 }
15:42:31 <FreeFull> rot rotates right by default
15:42:36 -!- donmarquis has joined.
15:42:47 <Arc_Koen> so v means "get one level deeper" or something?
15:43:15 <FreeFull> Yes
15:43:29 <FreeFull> ^ would go up one level (or stop the program)
15:43:38 <Arc_Koen> so the instructions are still in the main buffer, but apply to the subbuffer?
15:44:38 <FreeFull> v creates a new code buffer, and ^ ends it
15:45:12 <FreeFull> So in lisp, code and data is lists, in cbuf, it's circular buffers
15:45:21 <Arc_Koen> yeah but I mean if v stucks us into the subbuffer we cannot access the dup 1 rot + any longer
15:45:42 <FreeFull> No, the dup 1 rot + only apply to the subbuffer
15:46:48 <Arc_Koen> ok, so the program is always the main buffer, and subbuffers are only data?
15:50:08 <FreeFull> The code between the v and ^ has no way of accesing the data in the external buffer
15:50:37 -!- AnotherTest has joined.
15:50:48 <FreeFull> Other than by moving it into the secondary buffer
15:50:51 <AnotherTest> Hello
15:50:56 <FreeFull> Hi
15:52:48 -!- zzo38 has joined.
15:52:53 <FreeFull> If you create a function, that function can only accept only one argument
15:53:02 <FreeFull> But you can make that argument a buffer
15:54:27 <FreeFull> dup could be defined as something like dup: x x
15:54:47 <FreeFull> Where x is the value passed
15:55:45 <Arc_Koen> well that looks interesting but I think I need more "visual" explanations
15:56:18 <zzo38> Were there some versions of Anarchist Cookbook that were not released to the public?
15:57:02 <FreeFull> Arc_Koen: It's basically like programming with stacks of arbitrary elements, except you can rotate the stack
15:57:17 <Arc_Koen> yes, that part I understand
15:57:30 <Arc_Koen> I'm having trouble visualizing what the subbuffers are
15:57:40 <Arc_Koen> are they inside the main buffer?
15:57:47 <FreeFull> Yes
15:58:21 <FreeFull> And you can do something like { } v { 1 2 } { 3 4 } ^
15:58:37 <FreeFull> Which creates a buffer, with two buffers as elements
15:59:34 -!- ais523_ has joined.
15:59:37 <FreeFull> What is between the { and } is just the initial values for the buffer
15:59:53 <FreeFull> To change what's in it afterwards, you use v
16:00:03 -!- ais523 has quit (Ping timeout: 252 seconds).
16:00:46 -!- ogrom has joined.
16:01:25 <FreeFull> I'm thinking about the logistics of putting code in the initial values too
16:02:01 <FreeFull> { 0 dup . } e
16:02:10 <FreeFull> This would print an infinite amount of zeroes
16:02:26 <FreeFull> Although
16:02:33 <FreeFull> It might have to be { dup . 0 }
16:02:55 <FreeFull> So that you always start with the rightmost value at the top
16:03:23 <FreeFull> e means execute
16:03:36 <FreeFull> Hmm, how would you push code in as data...
16:05:42 <FreeFull> I should write an interpreter for this
16:08:15 <FreeFull> x would explode a buffer
16:08:24 <FreeFull> So { 1 2 3 } x is the same as 1 2 3
16:08:42 <Arc_Koen> how about a command "flatten" that explodes all buffers
16:09:41 <FreeFull> That could be implemented as a function
16:12:55 * FreeFull looks up where he left the source of his RPN calculator
16:16:13 <FreeFull> Writing it in C would be a bit inconvienient because I'd have to handle resizing the buffers myself
16:16:27 <FreeFull> But that shouldn't be too complicated
16:16:55 <FreeFull> Famous last words
16:17:35 <FreeFull> The bigger challenge would be having arbitrary types of elements
16:17:44 <Arc_Koen> unions
16:18:02 <Arc_Koen> oh, you mean like bools, chars, ints, etc.?
16:19:04 <Arc_Koen> I would recommend ocaml though, it's perfect for interpreters
16:22:10 -!- itidus20 has changed nick to itidus21.
16:27:40 <Gregor> Sometimes I wish the US had political parties with platforms more sophisticated than “we hate the other political party”.
16:28:29 -!- ais523_ has quit.
16:28:55 <itidus21> this millenium it's all about website law
16:29:54 <itidus21> my life is so boring o.o
16:30:58 -!- AnotherTest has quit (Quit: Leaving.).
16:31:05 -!- AnotherTest has joined.
16:35:33 <itidus21> and i know the ugly truth about marriage.. if you go into it unwilling to change.. you will come out of it, much like leaving an elevator, unchanged
16:36:40 <itidus21> or maybe more to the point, if you go into it expecting or needing it to change you, it will let you down
16:36:55 <FreeFull> Arc_Koen: But then I would have to learn OCaml before writing the interpreter =P
16:37:15 <Arc_Koen> two birds one stone!
16:37:17 <itidus21> somehow at age 30 change seems impossible
16:37:26 <Arc_Koen> or maybe two stones one bird, depending on how you look at it
16:38:38 <itidus21> i guess you have to be open to change, which means a risk that things could get better while also getting worse
16:39:49 <Gregor> Arc_Koen: Please add attribution and copyright/licensing headers to these files.
16:40:07 <itidus21> or, maybe at 30 you realize that a change is simply a new routine replacing an old routie
16:40:27 <Arc_Koen> ok
16:40:54 <Arc_Koen> is there a list of infos I'm supposed to put in there or should I go with my imagination?
16:41:25 <itidus21> works of art seem to be mere dice which invoke this emotion or that emotion
16:42:51 <itidus21> just how it can seem
16:43:13 <Gregor> Arc_Koen: Go to copyfree.org, click a random license, and splat it at the top with your name or pseudonym. Or, if you want to actually think, then do something else. I'm just not going to upload files with no attribution or licensing.
16:44:04 <itidus21> \0
17:01:04 <Arc_Koen> sent!
17:02:34 <Gregor> As usual, you give someone without experience using licenses license to license [read that three times fast], and inevitably they will write something obnoxious and non-F/OSS themselves.
17:02:36 <Gregor> I'll add it.
17:05:40 <Gregor> Hm.
17:05:47 <Gregor> And now we play the "guess what my password might have been" game.
17:06:04 <fizzie> Gregor: Try "1234" or "passwort".
17:07:09 <itidus21> begin by creatin---
17:07:17 <itidus21> try "1234" or "passwort"
17:07:47 <Arc_Koen> does it sound obnoxious?
17:07:50 <Arc_Koen> it was not intended to
17:08:22 <Gregor> In principle, I have commit access. In practice, I haven't committed anything in six years and don't really recall my password, which may very well have been specific to this account.
17:08:41 <Gregor> Arc_Koen: It's not F/OSS.
17:08:48 <itidus21> oh guess your own password. that game sucks
17:09:16 <zzo38> Describe what you have written. And then we can see that it is obnoxious and non-F/OSS, and then fix both problems.
17:10:04 <Arc_Koen> uh well I meant to write that people were free to use it or do whatever with it, but that it would be very appreciated if they could let me know what use they made of it
17:10:33 <Gregor> You restricted commercial use. That's non-F/OSS. And quite ridiculous given that nobody under any circumstances is going to use it commercially.
17:10:36 <Arc_Koen> and then I thought maybe I have to add something about the use being for non-profit goals or something
17:11:21 <Arc_Koen> then maybe I should just delete that line
17:11:50 <Gregor> Or maybe you shouldn't try to be clever and write your own license when there are dozens, if not hundreds, of good ones out there already X_X
17:11:55 <Gregor> The bigger issue right now is that I simply don't have access to commit this X-D
17:11:56 <zzo38> Arc_Koen: Write that it is appreciated but not required to let you know what use they make of it. And you also have to not restrict commercial use (except possibly trademark licenses)
17:11:57 <Gregor> I mean, maybe I do.
17:12:09 <Gregor> But it's been six years.
17:12:41 <Arc_Koen> isn't there a standard license for the esoteric file archive?
17:12:47 <Gregor> No.
17:13:17 <Gregor> So long as it's legal o distribute it via the file archive, it can be put there. I take objection to your license on personal grounds.
17:13:23 <Gregor> *legal to
17:13:53 <Gregor> But it's all moot since you're going to have to find somebody else to put it online X-D
17:15:30 <Arc_Koen> well I'll try to find something better until I can find someone else then :)
17:15:33 <zzo38> I can make a copy too, if the license is acceptable. Send it using netcat or sprunge and I will then make a public backup copy.
17:19:59 <zzo38> Arc_Koen: Can you host it yourself?
17:20:08 <Arc_Koen> not really no
17:21:09 <zzo38> I can host it under my HTTP server and/or gopher server if the license is acceptable, if you want to.
17:22:29 <Arc_Koen> that would be great - I'm kind of in a hurry now though
17:22:31 <Arc_Koen> thank you
17:22:36 -!- Arc_Koen has left.
17:22:46 -!- atriq has joined.
17:26:06 <atriq> Well, the parser section of my PROgram is 22 lineS
17:26:27 <atriq> THis IS agAInsT THE iNTERpretER seCTIon OF my CODE whicH IS 72
17:26:34 <atriq> welL
17:26:36 <atriq> 74
17:27:04 <atriq> IT IS HArder TO Type WHEN your BROTHer is sPOradiCALLy hOLDING DOwn ThE sHiFt BuTtOn
17:27:09 <fizzie> @wn archive
17:27:10 <lambdabot> *** "archive" wn "WordNet (r) 3.0 (2006)"
17:27:10 <lambdabot> archive
17:27:10 <lambdabot> n 1: a depository containing historical records and documents
17:27:10 <lambdabot> v 1: put into an archive [syn: {archive}, {file away}]
17:27:12 <fizzie> I see the esoteric file archive is living up to its name, if it can't be written to.
17:27:26 <atriq> !rot13 atriq
17:27:28 <EgoBot> ngevd
17:27:36 <fizzie> I never even realized that!
17:27:53 <boily> ~duck ngevd
17:27:54 <cuttlefish> --- No relevant information
17:27:58 <boily> meh.
17:28:17 <atriq> I WAS deMoNSTAtING thE etYmoLogy OF my NIck TO THe aFOREMENtioNED sIBLiNg
17:28:48 <fizzie> `WeLcOmE atriq
17:28:49 <atriq> HI
17:28:52 <HackEgo> AtRiQ: wElCoMe tO ThE InTeRnAtIoNaL HuB FoR EsOtErIc pRoGrAmMiNg lAnGuAgE DeSiGn aNd dEpLoYmEnT! fOr mOrE InFoRmAtIoN, cHeCk oUt oUr wIkI: hTtP://EsOlAnGs.oRg/wIkI/MaIn_pAgE. (FoR ThE OtHeR KiNd oF EsOtErIcA, tRy #EsOtErIc oN IrC.DaL.NeT.)
17:29:00 <zzo38> Tell your brother to go away
17:29:40 <atriq> I Have doNe SO> hE proMises To DepArt sooN
17:30:05 <itidus21> atriq: i think its fun to share the keyboard with your brother
17:30:23 <atriq> You would.
17:30:25 <itidus21> zzo is a bit uptight about it
17:30:28 <atriq> oh NO HE'S BACK
17:30:35 <atriq> BOOM
17:30:50 <atriq> God he's a quick typer
17:31:03 <atriq> That was with one finger
17:31:12 <atriq> AND I COULDN'T STOP HIM
17:32:12 <itidus21> sorry zzo, i guess i am living in my childhood still
17:33:06 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
17:36:12 -!- atriq has quit (Quit: Leaving).
17:36:24 <itidus21> !rot13 AND I COULDN'T STOP HIM
17:36:25 <EgoBot> NAQ V PBHYQA'G FGBC UVZ
17:36:48 <boily> guess his bro won the complete access to their computer...
17:37:00 <itidus21> hmm
17:37:34 <itidus21> i guess i don't understand what happened
17:39:53 <itidus21> but still, nations are born and die within the minds of men, and yet, for all this, mortality does not retire for the individual
17:40:29 <itidus21> really a nation is just a toy
17:40:58 <itidus21> something fabricated by bored individuals
17:41:39 <AnotherTest> I doubt they were bored
17:41:47 <AnotherTest> It's possible though
17:43:14 <itidus21> well, at least i am wrong
17:43:19 <itidus21> its a good start
17:46:46 <itidus21> AnotherTest: well its 3:40am, and i have an appointment at 9:40am... still not sure if i'll be sleeping or staying awake
17:47:09 <itidus21> it gets me agitated whenevr i have to do something the next day
17:49:46 <AnotherTest> Why do you get up at 3:40 AM when you have your first (I assume) appointment of the day at 9:40 AM
17:51:05 <itidus21> ive been awake since about 1:30pm
17:51:16 <itidus21> ahahaha
17:51:26 <itidus21> anyway, check out this screenshot of ebay http://oi45.tinypic.com/og9htf.jpg
17:52:37 <AnotherTest> itidus21: that still does not answer my question
17:53:16 <itidus21> first = only :D
17:53:40 <itidus21> well
17:55:09 <itidus21> having an appointment actually increases my inability to sleep
17:55:23 <itidus21> because i see it as a constraint on how much i can do that night
17:55:31 <itidus21> and so suddenly i want to do more that night
17:55:53 <AnotherTest> but the appointment is not at night
17:56:05 <AnotherTest> so how is it a constraint on what you can do at night?
17:56:40 <itidus21> because having to sleep means i lose control of when i sleep
17:59:08 <AnotherTest> So now you are bored because you have no idea what to do?
17:59:23 <AnotherTest> Well, that's generally the case.
17:59:37 <AnotherTest> What you should do is:
17:59:41 <AnotherTest> make yourself useful
18:00:09 <itidus21> i like sleeping because i'm the sort of person who very quickly gets tired without sleep
18:01:03 <AnotherTest> then sleep, for it is most useful
18:01:28 -!- Eladith has quit (Ping timeout: 268 seconds).
18:01:50 <itidus21> i don't get bored though :D
18:01:56 <itidus21> i have that on my side
18:02:45 <itidus21> i get tired and anxious.. those could be related to broed
18:02:48 <itidus21> ^bored
18:03:15 <AnotherTest> anxious how so?
18:03:23 <itidus21> i don't know :)
18:03:33 <AnotherTest> is this appointment a presentation?
18:03:37 <itidus21> the person i am seeing is a psychologist
18:03:39 <itidus21> :P
18:04:10 <AnotherTest> ah
18:04:19 <AnotherTest> so you don't have to actually talk too much?
18:04:32 <itidus21> oh.. its very active
18:05:02 <AnotherTest> But there are not many people around...?
18:05:26 <itidus21> yeah, its not like i am being paid
18:06:36 <itidus21> but its going well... slowly some things in my life becoming healthier
18:07:15 <itidus21> like he talked me into having showers
18:08:32 <AnotherTest> great
18:08:37 <AnotherTest> why wouldn't you take a shower?
18:09:06 <itidus21> im not entirely sure
18:09:47 <AnotherTest> So you always took a bath instead of a shower? Well not sure what's wrong with that either.
18:09:57 <itidus21> i never said i took a bath
18:10:06 <AnotherTest> Although showers take less time than baths.
18:10:16 <AnotherTest> I assumed you did.
18:10:20 <itidus21> ya
18:10:43 <itidus21> this is the aha moment of why i am seeing psychologist
18:10:57 <AnotherTest> I already knew
18:10:58 -!- Arc_Koen has joined.
18:11:06 <itidus21> i mean, not shower, not bath
18:11:21 <itidus21> its just one facet of things
18:12:01 -!- Arc_Koen has quit (Quit: Are you telling me you can build a time machine but you can't cook a cheese soufflé? You've got your priorities all wrong!).
18:12:22 -!- Arc_Koen has joined.
18:14:14 -!- soundnfury has joined.
18:24:45 -!- donmarquis has quit (Remote host closed the connection).
18:34:32 -!- AnotherTest has quit (Quit: Leaving.).
18:50:17 <kmc> r
18:50:20 <kmc> replacing string code-building with closures = joy
18:52:25 -!- kinoSi has quit (Read error: Connection reset by peer).
18:52:53 -!- kinoSi has joined.
18:55:35 -!- atriq has joined.
19:06:21 -!- krofna has joined.
19:07:29 -!- krofna has quit (Remote host closed the connection).
19:15:26 -!- oerjan has joined.
19:17:51 <oerjan> @messages
19:17:52 <lambdabot> atriq said 9h 35m 17s ago: Wow, I better learn them too!
19:17:52 <lambdabot> atriq asked 4h 30m 29s ago: Can I get you to write the main function for me?
19:18:03 <oerjan> atriq: maybe
19:18:32 <shachaf> @massages
19:18:32 <lambdabot> You don't have any new messages.
19:18:41 <atriq> oerjan, http://hpaste.org/73947
19:19:00 <atriq> Actually, that's not right
19:23:37 -!- hagb4rd has quit (Read error: Operation timed out).
19:24:47 -!- ogrom has quit (Quit: Left).
19:35:49 -!- atriq has quit (Ping timeout: 268 seconds).
19:38:18 <oerjan> @hoogle IO String
19:38:19 <lambdabot> Did you mean: :: IO String
19:38:19 <lambdabot> System.IO.Error ioeGetErrorString :: IOError -> String
19:38:19 <lambdabot> System.IO.Error ioeSetErrorString :: IOError -> String -> IOError
19:38:24 <oerjan> @hoogle :: IO String
19:38:24 <lambdabot> Prelude getContents :: IO String
19:38:24 <lambdabot> System.IO getContents :: IO String
19:38:25 <lambdabot> Prelude getLine :: IO String
19:40:16 <oerjan> :t readFile
19:40:18 <lambdabot> FilePath -> IO String
19:43:12 <Arc_Koen> oerjan: thanks to zzo38 my interpreters are accessible now
19:43:31 <Arc_Koen> http://zzo38computer.cjb.net/esoteric/Arc_Koen/
19:55:02 -!- nortti- has joined.
19:56:48 -!- pikhq has joined.
19:57:08 -!- pikhq_ has quit (Ping timeout: 248 seconds).
19:58:55 -!- asiekierka has quit (Remote host closed the connection).
20:01:47 -!- pikhq_ has joined.
20:01:54 -!- pikhq has quit (Ping timeout: 244 seconds).
20:06:04 <oerjan> :t hPutStr
20:06:05 <lambdabot> Not in scope: `hPutStr'
20:06:19 <oerjan> @hoogle Handle -> String -> IO ()
20:06:19 <lambdabot> System.IO hPutStr :: Handle -> String -> IO ()
20:06:19 <lambdabot> GHC.IO.Handle hPutStr :: Handle -> String -> IO ()
20:06:20 <lambdabot> System.IO hPutStrLn :: Handle -> String -> IO ()
20:08:20 -!- atriq has joined.
20:11:09 <oerjan> > error "Test"
20:11:32 <oerjan> argh
20:11:32 <oerjan> > 2+2
20:11:36 <oerjan> @ping
20:11:39 <oerjan> :(
20:11:50 <lambdabot> pong
20:11:50 <lambdabot> 4
20:11:51 <lambdabot> mueval-core: L.hs: removeLink: does not exist (No such file or directory)
20:11:59 <oerjan> > error "Test"
20:12:00 <lambdabot> *Exception: Test
20:16:53 -!- esowiki has joined.
20:16:57 -!- esowiki has joined.
20:16:57 -!- esowiki has joined.
20:17:14 -!- esowiki has joined.
20:17:18 -!- esowiki has joined.
20:17:18 -!- esowiki has joined.
20:18:01 -!- esowiki has joined.
20:18:01 -!- glogbot has joined.
20:18:01 -!- glogbackup has left.
20:18:05 -!- esowiki has joined.
20:18:05 -!- esowiki has joined.
20:18:17 -!- sivoais has quit (Ping timeout: 256 seconds).
20:19:59 <oerjan> oh wait darn
20:20:24 -!- sivoais has joined.
20:20:31 <atriq> Yeah, I tried before and it failed for some strange reason
20:21:03 -!- Phantom_Hoover has joined.
20:23:45 <oerjan> atriq: pasted again, i got some things in the wrong order
20:24:01 <oerjan> (ironically half cancelling each other out, but not quite)
20:27:32 -!- impomatic has joined.
20:27:47 -!- boily has quit (Quit: Poulet!).
20:27:47 <oerjan> atriq: i leave to you to actually test it >:)
20:28:15 -!- cuttlefish has quit (Remote host closed the connection).
20:29:40 -!- FireFly has joined.
20:32:00 -!- boily has joined.
20:34:44 <oerjan> <atriq> It occurs to me that I have no idea how to write a parser <-- you seem to have learned fast :P
20:34:59 <atriq> I mostly guessed and got lucky
20:35:38 <Arc_Koen> atriq: why are the fueue functions characters rather than words like "dup", "pop", etc.?
20:35:53 <Arc_Koen> it would probably have been more readable
20:35:54 <atriq> Arc_Koen, inspired by Underload
20:36:06 <atriq> I was following underload'lead
20:36:19 <atriq> *+s\
20:36:26 <Arc_Koen> ah, everybody here seems to be praising that mysterious language...
20:36:30 <Arc_Koen> I careful did not step into it
20:39:14 <oerjan> ^ul (12)S(*a(~:)~*^~):((1)S)~*~((2)S:*)~*:(~:()~)~*^(a(:^)*~a(*()~)~*^~^):^
20:39:16 <fungot> 122112122122112112212112122112112122122112122121121122122112122122112112122121122122112122122112112212112122122112112122112112212112112212211212212112212212112112212211212212112112212112122112112122121122122112122122112112122112112212212112122112112212112112212212112122112112122122112122121121122122121122122112122122112112 ...too much output!
20:39:20 * oerjan whistles innocently
20:39:56 <FreeFull> ^bf +[+.]
20:39:56 <fungot> .. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ...
20:40:02 <FreeFull> >_> <_<
20:40:16 <oerjan> but that's not the kolakoski sequence.
20:42:57 * oerjan obviously stepped _way_ too deeply in it, seeing as he is the source of most of the wiki page.
20:46:53 <oerjan> <ais523> also loud enough to destroy the Earth if interpreted as sound intensity <-- * the universe hth
20:47:50 <oerjan> (no, a mere vacuum isn't going to stop 300000 dB. trust me.)
20:50:51 <oerjan> i think compiling underload minus S (but including (...)S) into fueue should be doable
20:51:41 <oerjan> (the "minus S" is so we don't need to preserve the string representations)
20:51:50 <oklopol> i hear no one knows pretty much anything about the kolakoski sequence
20:52:18 <oerjan> oklopol: all computational evidence says it's 50% 1's, but no one knows for sure
20:53:43 -!- MoALTz_ has joined.
20:53:43 <oklopol> ah yes. they study this stuff in my uni but i haven't really touched it (CA are 50% more awesome).
20:54:11 <oklopol> i think there are many simpler open problems about it which have partial answers
20:57:13 -!- MoALTz has quit (Ping timeout: 268 seconds).
20:59:13 <oerjan> <atriq> Arc_Koen, it isn't possible to have negative numbers in the initial program <-- added to wiki
21:00:05 <Arc_Koen> feel free to mark it as no longer unimplemented :)
21:00:39 <Arc_Koen> here are the fueue.c and fueue.ml implementations: http://zzo38computer.cjb.net/esoteric/Arc_Koen/
21:01:19 -!- FireFly has quit (Changing host).
21:01:19 -!- FireFly has joined.
21:01:20 <Arc_Koen> I also asked him a few other questions, like what happens when trying to divide by 0, or to apply $ with a negative first argument
21:02:15 <Arc_Koen> apparently, for all functions: if arguments of the right type are present but some have invalid values, then it results in an error
21:02:22 -!- TeruFSX has joined.
21:02:44 <oerjan> is arc koen your real name?
21:02:57 <Arc_Koen> also an error for negative numbers to be output
21:03:01 <Arc_Koen> nope
21:03:12 <oerjan> how shall i refer to you on the wiki?
21:03:14 <Arc_Koen> but I did include my real name in the files
21:03:19 <oerjan> oh hm
21:03:46 <zzo38> Is colorburst a greenish-yellow color?
21:05:13 <oerjan> ok your real name is now on the wiki
21:07:30 <Arc_Koen> sweet! what about a few programs: (empty), "72 101 108 108 111 44 32 119 111 114 108 100 33 10 H", "):[):]", and your dazzling alphabet ")$2[)$--------2~)~~[)[)~(~[~[$~H~]~)%+~91-):]~1+:])]]~[$~H~])%+-91)[65][65]"
21:07:31 -!- Vorpal has joined.
21:09:09 <oerjan> > chr . read <$> words "72 101 108 108 111 44 32 119 111 114 108 100 33 10"
21:09:11 <lambdabot> "Hello, world!\n"
21:13:45 -!- nooga has quit (Ping timeout: 244 seconds).
21:15:19 <oerjan> Arc_Koen: done!
21:16:44 <Arc_Koen> oerjan: I had an idea for a new language!
21:16:50 <Arc_Koen> it would be called: "Ftack"
21:18:10 <Arc_Koen> it works exactly like fueue, except with a stack; if the top element isn't either a number or a function with appropriate values directly behind it, it is sent back to the top of the stack.
21:18:31 -!- boily has quit (Quit: Poulet!).
21:18:44 <oerjan> Arc_Koen: um that's basically underload.
21:18:51 <Arc_Koen> oh
21:18:53 <Arc_Koen> is it?
21:18:58 <atriq> No it isn't
21:18:58 <oerjan> oh wait not with the type checks
21:19:09 <oerjan> ok then
21:19:12 <atriq> It's an almost useless joke language
21:19:17 <Arc_Koen> yes :)
21:19:59 -!- augur has quit (Remote host closed the connection).
21:20:05 <oerjan> well we _do_ have a joke languages category :)
21:21:50 <Arc_Koen> ironically I'm guessing some small programs that were hard to write in fueue would be easy to write
21:22:08 <Arc_Koen> because the duplicating works well for loops
21:24:41 <atriq> The pants of Narcissus?
21:27:03 -!- nortti- has quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )).
21:28:37 <oerjan> oh hm
21:28:55 <oerjan> :: is another infinite loop for both fueue and ftack :)
21:29:06 <Gregor> atriq: Indeed.
21:29:11 <Gregor> atriq: I have three more pair now.
21:29:18 <atriq> Oh dear god
21:29:30 <atriq> Are you sure they aren't just reflections of the first pair in a pool?
21:30:22 <Gregor> Well, they're different colors.
21:30:23 <Gregor> So yeah.
21:31:01 <Arc_Koen> have a good night
21:31:11 -!- Arc_Koen has quit (Quit: Are you telling me you can build a time machine but you can't cook a cheese soufflé? You've got your priorities all wrong!).
21:34:14 <oerjan> in ftack, it's useless to duplicate (with : or $) anything other than a number and :~!
21:35:05 <oerjan> anything else will either give you something which doesn't evaluate, or something which turns soon into a block (which doesn't evaluate) or halts.
21:36:01 <oerjan> in particular < and ( are completely useless
21:38:22 <oerjan> this means you can never usefully increase the number of blocks in a program...
21:40:54 <oerjan> also duplicating a : gives you immediately an infinite loop. anything else reduces the number of :'s in the program.
21:41:00 <oerjan> pretty useless indeed.
21:48:51 <pikhq_> Hmm. Silliest possible way of running Win3.1 programs on modern Windows: Desqview/X hosting Windows 3.1 programs, served over X, onto a Windows X server.
21:52:11 <fizzie> Didn't know it did that too; just thought it was a X server.
21:54:06 <pikhq_> It runs Windows 3.1 and DOS as X programs via hax.
21:54:35 <pikhq_> DOS by using a virtual VGA framebuffer and scraping it, Windows 3.1 by installing a video driver that makes it render via X11.
21:56:28 <Gregor> I thought it ONLY did that, I don't think it was an X server.
21:56:40 <fizzie> It does have an X server too.
21:56:43 <pikhq_> It is an X server.
21:56:48 <pikhq_> And a partial UNIX.
21:56:59 <Gregor> *ports Microcosm*
21:57:15 <pikhq_> (that is, it provides enough of a libc that you can have native X programs without Pain and Agony)
21:57:26 <pikhq_> I've IRC'd from it before.
21:58:20 -!- Vorpal has quit (Ping timeout: 265 seconds).
22:00:09 <pikhq_> It actually ships with TWM and the Motif WM.
22:00:48 -!- MoALTz_ has quit (Quit: brb).
22:02:20 <pikhq_> o.O'
22:02:25 <pikhq_> They had a real mode xlib?
22:04:34 -!- pikhq has joined.
22:06:54 -!- pikhq_ has quit (Ping timeout: 268 seconds).
22:07:05 -!- atriq has quit (Remote host closed the connection).
22:15:58 -!- augur has joined.
22:38:22 <zzo38> Idea for Magic: the Gathering card: All "may" must always be selected instead of being that player's choice.
23:40:06 <kmc> and what if another choice must be made?
23:50:31 <zzo38> The player still makes the choice such as targets and so on. If something says "you may discard a card" then he must discard a card if he has one but he can select which one.
23:52:01 <zzo38> If this card is in effect and another effect says "you may draw a card", then the player must draw a card (there are no other choices to be made); if he has no cards to draw, he loses the game.
23:56:40 <kmc> ok
23:56:46 <kmc> you could also have a variant which gives the choice to someone else
23:57:13 -!- monqy has joined.
23:58:21 <zzo38> Yes, that is another possible variant.
←2012-08-29 2012-08-30 2012-08-31→ ↑2012 ↑all