←2007-11 2007-12 2008-01→ ↑2007 ↑all
2007-12-01
00:17:47 -!- chuck has quit ("This computer has gone to sleep").
00:25:26 -!- jix has quit ("CommandQ").
00:53:58 -!- Tritonio_ has quit ("Bye...").
00:54:27 -!- Tritonio_ has joined.
01:11:45 -!- Slereah has joined.
02:06:54 -!- johnl has joined.
02:41:51 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
02:42:07 -!- puzzlet has joined.
02:42:28 -!- oerjan has joined.
02:49:42 <bsmntbombdood> heeeeeeeeeeey
02:49:58 <pikhq> oerjan: Are you at all familiar with the rules of B Nomic?
02:50:07 <oerjan> no
02:50:26 <pikhq> Oh well. . . I bet you'll still enjoy laughing at this refresh proposal in B: http://b.nomic.net/index.php/Refresh_Proposals/AFO
02:51:13 <oerjan> Well that is certainly refreshing.
02:51:34 * pikhq is to blame for that.
02:51:51 <pikhq> However, I blame the Association of Federated Organizations for putting me up to it.
02:53:24 * oerjan just recently reread about Agora's chromatic proposals.
02:53:35 <pikhq> Chromatic proposals?
02:54:02 <oerjan> we started given proposals to repeal the whole ruleset color names :)
02:54:05 <oerjan> *giving
02:54:17 <pikhq> LMAO
02:54:32 <pikhq> Might I have a link to read that?
02:55:34 <oerjan> hm actually it was just mentioned at the end of http://www.nomic.net/~nomicwiki/index.php/BlackRepeals
02:55:46 <oerjan> (which were the first)
02:56:52 <oerjan> i assume yours is also a Terrible Proposal (i think we invented that term too)
02:57:46 <oerjan> oh, it says Nomic World
02:58:00 <oerjan> well, i can just barely count that as "we", too
02:58:10 <pikhq> LMAO
02:58:18 <pikhq> And yes, mine is also a Terrible Proposal.
02:58:26 <pikhq> Not for scamming purposes: just for something to laugh at.
02:58:48 <pikhq> w00t.
02:58:52 <pikhq> I have two Agoran offices.
02:59:13 <pikhq> (Ambassador and Scorekeepor, if it means anything to you)
03:00:16 <oerjan> certainly
03:04:21 * pikhq needs to fix up the reports for those two offices. . .
03:05:43 <pikhq> Ambassador last published in August, Scorekeepor last published in September. Ick.
03:16:05 <pikhq> Interesting: I and the AFO registered on the same day.
03:17:33 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
03:17:37 -!- puzzlet has joined.
03:31:15 -!- Slereah has quit.
03:50:00 * pikhq is finished rectifying Scorekeepor. . .
03:53:06 * oerjan is waiting for someone to "rectify" the obvious :)
03:54:12 <pikhq> XD
03:54:44 <oerjan> and then we can POUND on them
03:55:22 -!- oklopol has quit (Read error: 110 (Connection timed out)).
04:00:42 <oerjan> <bsmntbombdood> where is it possible to go without knowing another language?
04:00:54 <oerjan> also the netherlands, i hear
04:04:08 <pikhq> Heh.
04:24:29 -!- puzzlet has quit (Remote closed the connection).
04:24:57 * pikhq publishes his first two reports
04:32:43 -!- puzzlet has joined.
05:13:09 -!- puzzlet has quit (Remote closed the connection).
05:14:46 -!- puzzlet has joined.
05:14:53 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
05:19:47 -!- puzzlet has joined.
05:59:00 -!- puzzlet has quit (Remote closed the connection).
05:59:01 -!- puzzlet_ has joined.
06:05:55 -!- puzzlet has joined.
06:16:14 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
07:07:17 -!- adp10390 has joined.
07:11:48 -!- ihope has quit (Read error: 110 (Connection timed out)).
07:27:14 <adp10390> Someone please translate this request into Esperanto.
07:29:42 <pikhq> Ne.
07:30:03 * pikhq goes to sleep. Not many Esperantists in here, BTW.
07:31:30 <adp10390> It was worth a try. I read the wiki and was duly amused.
07:32:14 <oerjan> something something cxi tiun something in Esperanton
07:32:24 <oerjan> perhaps
07:33:03 <oerjan> i _have_ seen esperanto used in here, btw
07:33:16 <oerjan> but it's a while ago
07:33:50 <adp10390> Now if the request had been translated perfectly into another language, would someone then have to carry out that request?
07:34:51 <oerjan> Ne.
07:35:16 <adp10390> I just realized that would be like asking "translate this into english"
07:35:26 <oerjan> except in North Korea.
07:35:45 <adp10390> How's that?
07:35:57 <oerjan> there you _better_ do what you're told
07:36:44 <adp10390> Ah. Hehe, we may be talking about a different "have to" here.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:11:19 -!- oerjan has quit ("Something").
08:37:30 -!- puzzlet has quit (Remote closed the connection).
08:39:07 -!- puzzlet has joined.
08:54:19 -!- SEO_DUDE has quit (Remote closed the connection).
09:13:48 -!- adp10390 has quit ("Leaving").
10:26:41 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
10:27:17 -!- bsmntbombdood has joined.
10:55:46 -!- oklopol has joined.
10:55:49 -!- Tritonio_ has quit (Remote closed the connection).
11:30:01 -!- puzzlet has quit ("Lost terminal").
11:59:54 -!- puzzlet has joined.
13:03:40 -!- jix has joined.
13:15:12 -!- MRet has joined.
13:16:32 <MRet> Please produce an activation code for Blaze Media Pro 7.1
13:24:49 <jix> 5
13:27:10 <MRet> Blaze Media Pro: You have entered invalid registration information. If you have registered, please try again.
13:30:58 -!- puzzlet has quit (Remote closed the connection).
13:31:00 -!- puzzlet has joined.
13:47:48 -!- RedDak has joined.
14:11:41 <MRet> Please produce an activation code for Blaze Media Pro 7.1
14:13:53 <bsmntbombdood> stuhfoo
14:15:22 <MRet> Blaze Media Pro: You have entered invalid registration information. If you have registered, please try again.
14:48:59 -!- RedDak has quit (Remote closed the connection).
15:01:58 -!- ihope has joined.
15:03:09 -!- ihope has quit (Client Quit).
15:04:50 -!- oerjan has joined.
16:15:46 -!- MRet has quit ("PJIRC forever!").
16:31:48 -!- jix has quit (Nick collision from services.).
16:31:58 -!- jix has joined.
16:56:35 -!- Tritonio_ has joined.
17:21:14 -!- Avkon has joined.
17:22:16 -!- Tritonio_ has quit (Read error: 104 (Connection reset by peer)).
17:27:20 -!- Avkon has quit.
18:01:48 -!- oerjan has quit ("Good night").
18:43:20 -!- puzzlet has quit (Remote closed the connection).
18:43:21 -!- puzzlet_ has joined.
19:28:47 -!- puzzlet has joined.
19:28:48 -!- puzzlet_ has quit (Remote closed the connection).
19:46:01 -!- chuck has joined.
20:08:51 -!- calamari has joined.
20:31:26 <RodgerTheGreat> what's up, folks?
20:36:44 <pikhq> I'm contemplating trying out KDE4.
20:38:15 <oklopol> i'm slowly writing a parser, and trying to figure out a name for the lang
20:46:30 <RodgerTheGreat> oklopol: what class of language is it?
20:47:33 <oklopol> non-pure message passing
20:48:06 <oklopol> kinda like erlang, but with some quite evil features
20:48:51 <oklopol> somewhat object oriented too... hard to classify
20:50:04 <oklopol> it's imperative, with pattern matching; you can use the "functions" (== messages an object understands) as normal mutable variables, but they have full pattern matching
20:51:34 <oklopol> one fun feature i put in it, is the sandbox-mode, there is a call syntax, that makes every function call and sent message go straight to the original caller
20:53:35 <oklopol> {Fnc A B}, Fnc is called with A and B as params, but in sandbox-mode, so if Fnc does addition, say, the object that made the {Fnc A B} call will get a message [!! Fnc + args Fnc gave +]; if it's addition, it can just perform the addition, and send the result back, but if it's a mean system call or something, it can kill the execution of Fnc
20:55:40 <oklopol> the language has lisp syntax when you're doing "math", like (* 1 4), but what this actually does is find the innermost enclosing object that can handle the pattern "* arg..", and send it to that, waiting for the returned message
20:56:28 <oklopol> usually the StdObj enclosing every program would catch multiplication, but you can easily override it.
20:56:50 <oklopol> whoops
20:56:55 <oklopol> did i ramble
20:56:59 <oklopol> xD
22:39:56 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
22:42:32 -!- pikhq has joined.
23:08:49 -!- chuck has quit (Connection reset by peer).
23:17:58 -!- chuck has joined.
2007-12-02
00:26:32 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
00:27:40 -!- puzzlet has joined.
00:50:27 <oklopol> competing with your own game ai's is always disappointing, if you win, your ai sucks, if you lose, you suck
00:51:20 <pikhq> If you win, you suck. If you lose, you suck.
00:51:21 <pikhq> The end.
00:51:44 <oklopol> basically
00:52:01 <oklopol> the half-empty glass
00:52:16 <oklopol> o
00:52:22 <pikhq> The glass that's just too big.
01:01:19 <GregorR> If you solve the game and make it so that the AI literally cannot lose, it's different. If you win, you suck, if you lose, you're brilliant.
01:09:29 <pikhq> True.
01:09:43 <pikhq> Unless you're solving something too damned simple.
01:09:48 <pikhq> (Tic-Tac-Toe)
01:10:04 <pikhq> Then, no matter what you do, you suck: who the hell bothers solving something that simple? :p
01:10:21 <graue> i used to beat all the other kids at tic-tac-toe
01:10:23 <graue> i thought i was so smart
01:10:55 <pikhq> I used to be able to force a tie or win.
01:11:05 <graue> yeah, that's what i mean
01:11:16 <pikhq> (if both sides have perfect play, tie is the best that can be done)
01:12:15 <graue> (duh)
01:12:18 <oklopol> i never considered tic-tac-toe a game
01:12:33 <graue> i can force a tie or win in nim too :))))
01:12:39 <graue> hooray for me!
01:12:44 <oklopol> nim?
01:12:47 <pikhq> I consider it a trivial game.
01:12:48 <GregorR> I can force a tie or win in vim.
01:12:55 <graue> nim is a trivial game
01:13:05 <pikhq> But can you do that in Emacs?
01:13:50 -!- chuck has quit (Read error: 104 (Connection reset by peer)).
01:14:20 -!- chuck has joined.
01:32:35 -!- jix has quit ("CommandQ").
02:18:25 -!- puzzlet_ has joined.
02:25:17 -!- puzzlet__ has joined.
02:30:09 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
02:31:29 <bsmntbombdood> f(0) = 0; \lim_{x->\infty} f(x) = 1
02:31:31 <bsmntbombdood> what's f?
02:35:17 -!- puzzlet__ has quit (Remote closed the connection).
02:35:21 -!- puzzlet has joined.
02:35:35 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
02:40:54 <bsmntbombdood> 1 - 1/(x + 1)
02:42:34 <bsmntbombdood> are there any others?
02:44:05 -!- puzzlet has quit (Remote closed the connection).
02:44:06 -!- puzzlet_ has joined.
02:54:21 -!- puzzlet_ has quit (Remote closed the connection).
02:54:26 -!- puzzlet has joined.
02:59:14 -!- oerjan has joined.
03:03:46 <oerjan> <bsmntbombdood> are there any others?
03:03:54 <oerjan> an uncountable number in fact
03:04:15 <bsmntbombdood> i think i found a good one
03:04:27 <bsmntbombdood> 1-1/(sqrt(x)/n + 1)
03:06:38 <oerjan> 1 - exp(-x) is another simple one
03:09:53 <dbc> f(x)=x/(x-1)
03:10:47 <oerjan> dblog: not defined in 1
03:10:47 <dbc> or for that matter, f(x)=x/(x+c) where c is any nonzero constant.
03:11:00 <oerjan> dbc i mean
03:11:18 <bsmntbombdood> hmm actually
03:11:47 <oerjan> c=1 gives bsmntbombdood's original if you rewrite a bit
03:12:01 -!- puzzlet_ has joined.
03:12:10 <dbc> Yeah. Was there a criterion that said the function had to be total?
03:12:27 <oerjan> not really
03:12:32 <bsmntbombdood> continuous in [0, \infty]
03:12:40 <oerjan> oh, continuous
03:12:50 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
03:12:52 <dbc> Okay. Then we have to use a positive value for c.
03:13:23 <oerjan> i was going to say there were _more_ of them than the number of reals, but continuity whittles that down to equal number
03:15:09 <bsmntbombdood> f(2*x) = x * sqrt(2 - x**2)
03:15:44 <bsmntbombdood> is there one that satisfies that condition too?
03:16:01 <oerjan> what condition?
03:16:24 <bsmntbombdood> f(2*x) = x * sqrt(2 - x**2)
03:17:07 <dbc> Is that a condition and not a definition?
03:17:09 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
03:17:36 <oerjan> i say it's a definition, which means there is only one f, although a definition is sort of a condition too
03:17:41 <bsmntbombdood> oh right
03:18:20 <bsmntbombdood> hrm
03:18:28 <oerjan> for one thing, that one is imaginary for big x
03:18:32 <dbc> Was about to say.
03:19:13 -!- puzzlet has joined.
03:20:11 <bsmntbombdood> difficult
03:21:33 <oerjan> another one: arctan x / (pi/2)
03:23:28 <bsmntbombdood> well
03:24:15 <bsmntbombdood> i'm using this function to map values in [0, \infty) into [0, 1) to give to OR
03:24:45 <bsmntbombdood> so i would like f(2*x) to be the same as or(f(x), f(x))
03:25:29 <oerjan> huh?
03:25:35 <oerjan> ok
03:25:39 <oerjan> what's or
03:26:30 -!- puzzlet_ has joined.
03:26:39 <bsmntbombdood> or(a,b,n=1) = (a**n+b**n - a**n*b**n)**(1/n)
03:27:09 <oerjan> um that n=1 makes little sense?
03:28:21 <bsmntbombdood> n defaults to 1 if it's called with two arguments
03:28:45 <oerjan> otoh generalizing to n is obvious i think
03:29:35 <oerjan> so first, a+b-a*b
03:30:25 <oerjan> is that associative?
03:30:56 <bsmntbombdood> yes
03:31:21 <bsmntbombdood> i can just do this recursively using that definition
03:31:23 <oerjan> a+(b+c-b*c)-a*(b+c-b*c) = a+b+c -b*c-a*b-a*c +a*b*c
03:31:30 <bsmntbombdood> using f(.0001) = .0001 or such
03:31:34 <oerjan> right... a bell rings
03:32:16 <bsmntbombdood> that's not even too slow either
03:32:37 <oerjan> logarithms were originally calculated that way, i think
03:32:51 -!- puzzlet__ has joined.
03:34:17 <oerjan> ah, of course a+b-a*b = 1 - (1-a)*(1-b)
03:34:56 <oerjan> de morgan's law essentially
03:35:24 <oerjan> so f(x) = 1 - exp(x)
03:35:51 <oerjan> or 1 - exp(-x), which i think i already mentioned
03:36:14 <bsmntbombdood> huh?
03:36:22 <oerjan> f(x) = 1 - exp(-x)
03:36:52 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
03:37:03 <bsmntbombdood> hot damn
03:37:54 <bsmntbombdood> and for other n?
03:38:31 <oerjan> f(x) = (1 - exp(-x))^(1/n) i think
03:39:38 <bsmntbombdood> no
03:39:39 <oerjan> basically all your or's are equivalent to multiplication except for applying to a function to the initial arguments and its inverse to the result
03:41:00 <oerjan> so just apply that inverse function to exp(-x) and you get f(x)
03:41:21 <oerjan> what's incorrect about the n case?
03:42:25 <bsmntbombdood> it grows way faster than it should
03:43:07 <oerjan> oh. well you can replace ^n with any other invertible function in both or and f
03:43:29 <bsmntbombdood> which ^n?
03:43:31 -!- puzzlet has joined.
03:43:49 <oerjan> ^n by the function and ^(1/n) by its inverse. all of them.
03:43:59 <oerjan> er, **
03:44:22 <bsmntbombdood> i don't get it
03:44:42 <oerjan> for g(x) = x**n you have
03:45:31 <oerjan> g(1 - or(a,b)) = g(1-a) * g(1-b)
03:45:37 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
03:45:46 <oerjan> and get f(x) = g(1 - exp(-x))
03:45:53 <oerjan> er...
03:46:09 <oerjan> and get g(f(x)) = 1 - exp(-x)
03:46:28 <oerjan> so just pick your g
03:47:29 <bsmntbombdood> yep still don't get it
03:47:37 <oerjan> no matter how you choose it, it gets cancelled out and f(a+b) = or(f(a),f(b))
03:48:01 <oerjan> did i make an error somewhere?
03:48:47 <oerjan> lessee
03:48:57 <oerjan> just for n=1
03:52:14 <oerjan> maybe i got something inverted
03:52:47 -!- puzzlet has quit (Remote closed the connection).
03:52:48 -!- puzzlet_ has joined.
03:54:50 <oerjan> or(f(a),f(b)) = 1 - (1 - f(a))*(1 - f(b)) = 1 - exp(-a)*exp(-b) = f(a+b)
03:55:39 <oerjan> for general n
03:55:57 <bsmntbombdood> ok...
03:56:20 -!- puzzlet__ has quit (Connection timed out).
03:56:33 -!- fizzie has quit (Read error: 60 (Operation timed out)).
03:56:49 <oerjan> or(a,b) = (1 - (1 - a**n)*(1 - b**n))**(1/n)
03:57:14 <oerjan> f(x) = (1 - exp(-x))**(1/n)
03:58:26 <oerjan> or(f(a),f(b)) = (1 - (1 - f(a)**n)*(1 - f(b)**n))**(1/n) = (1 - exp(-a)*exp(-b))**(1/n) = f(a+b)
04:03:21 <oerjan> perhaps a more abstract view...
04:04:50 <oerjan> hmph, hard to draw categorical diagrams in irc
04:06:37 <bsmntbombdood> hrm ok that works
04:06:42 <bsmntbombdood> weird
04:06:55 <oerjan> anyway say you have some functions + : (A,A) -> A, or : (B,B) -> B and f : A -> B such that f(x+y) = or(f(x),f(y))
04:07:30 <oerjan> (while A = B in our case it is simpler to understand by treating them as separate i think)
04:08:02 <oerjan> now add a function g : B -> C which happens to be invertible
04:08:13 <bsmntbombdood> i got it
04:08:19 <bsmntbombdood> thanks a lot
04:08:29 <oerjan> ok
04:09:01 <oerjan> you're welcome
04:18:00 -!- chuck has quit ("This computer has gone to sleep").
06:45:35 -!- puzzlet has joined.
06:45:35 -!- puzzlet_ has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:52 -!- puzzlet has quit (Remote closed the connection).
08:04:05 -!- puzzlet has joined.
08:49:27 -!- calamari has left (?).
08:50:04 -!- RedDak has joined.
09:16:24 -!- dbc has quit (Client Quit).
09:55:56 -!- oerjan has quit ("leaving").
11:35:39 -!- jix has joined.
11:39:34 -!- Tritonio_ has joined.
12:03:49 -!- puzzlet has quit (Remote closed the connection).
12:03:57 -!- puzzlet has joined.
12:08:44 -!- Chadwick|359 has joined.
12:28:44 <oklopol> oerjan: in case you read logs, A B ­­!A !B doesn't work as you said
12:53:35 -!- puzzlet has quit (Remote closed the connection).
12:53:43 -!- puzzlet has joined.
13:25:28 -!- Chadwick|359 has quit (Remote closed the connection).
13:56:14 -!- Tritonio_ has quit (Remote closed the connection).
14:18:22 <johnl> hey?
14:30:57 <DocWilco> ho?
15:24:46 -!- jix has quit (Nick collision from services.).
15:24:56 -!- jix has joined.
15:47:39 -!- oerjan has joined.
15:50:49 <oerjan> oklopol: what A B !A !B are you talking about?
15:51:24 <oklopol> does it suffice to say !A == not A?
15:52:20 <oklopol> !A == inverse of A
15:52:22 <EgoBot> Huh?
15:52:37 <oklopol> okay okay, rubik
15:53:07 <oerjan> i may have been imprecise
15:54:02 <oklopol> can you be precise then? :P
15:54:17 <oerjan> but anything which is not moved by either A or !A is unchanged by the combination, and similarly for B or !B
15:55:30 <oklopol> hmm... i'm pretty sure that's incorrect :\
15:55:56 <oklopol> if A is a simple twist, and B is another twist where the twists share an edge
15:56:26 <oklopol> then the... blocks *only* B touches will change.
15:56:37 <oerjan> twist of a face?
15:56:41 <oklopol> yes
15:57:11 * oerjan picks his cube out of the drawer
15:57:42 <oklopol> cube one edge forward then left forward twist, right forward twist, left backward twist, right backward twist
15:58:12 <oerjan> argh, i cannot turn those words into movements
15:58:17 <oklopol> :)
15:58:20 <oklopol> wish i had a webcam
15:58:29 <oklopol> i don'
15:58:35 <oklopol> t know the real terms
15:58:49 <oklopol> right forward twist
15:59:07 <oklopol> meant the you have your right hand on the forward-right side
15:59:35 <oerjan> argh there is an annoying noise around
15:59:44 <oklopol> when the cube is rotated so that one of the edges is pointing forward... err.. not sure it's an edge, actually, i mean the intersection of two faces...
16:00:29 -!- chuck has joined.
16:00:37 <oerjan> ok let's say i have a corner pointing toward me
16:00:46 <oklopol> what's a corner :D
16:00:55 <oklopol> like the corner of 3 faces?
16:01:06 <oklopol> not of 2?
16:01:07 <oerjan> red face up, yellow down right, blue down left
16:01:14 <oklopol> okay
16:01:44 <oklopol> i have it like that now
16:02:08 <oerjan> so which faces do i turn?
16:02:13 <oklopol> now if you rotate yellow cw, blue ccw, yellow ccw and blue cw
16:02:34 <oerjan> yep
16:02:54 <oklopol> now the thingie that was below yellow
16:03:02 <oklopol> is to the left of yellow
16:03:32 <oklopol> even though it's not touched by B == the blue twist...
16:03:46 <oklopol> or, then i misunderstood what you meant by B's domain
16:03:59 <oklopol> i thought you meant what it'd have touched if applied as such.
16:04:24 <oklopol> a blue twist wouldn't have any effect on what's below yellow
16:04:51 <oerjan> i mean the actual blocks and tiny faces moved
16:05:23 <oklopol> hmm?
16:05:24 <oerjan> i.e. it counts as touched by B if A moves it into position to be touched by B first
16:05:58 <oklopol> right
16:06:48 <oklopol> it's much more realistic, but much less usable then :)
16:07:58 <oerjan> but still usable
16:09:15 <oklopol> i wonder how much societies with infinite population have been studied
16:10:02 <oerjan> argh messed up my cube
16:11:05 <oerjan> whew got it
16:11:06 <oklopol> since every node can still only be connected to finitely many other nodes (given a finite number of dimensions for the world they move in, and a finite size of nodes [people]), they couldn't actually produce an infinite amount of products for everyone in finite time
16:11:29 <oklopol> hard to concentrate on the cube now that that came to mind xD
16:12:42 <oklopol> i'm not sure sociologists are that interested in that kind of stuff... or they'd chosen something more theoretical to study in the first place
16:13:03 <oklopol> if sociology is what i think it is
16:13:19 <oklopol> anyhow, i mean the correct thing if that's not it
16:13:24 <oerjan> i do recall looking at some work on continuous populations
16:13:30 <oklopol> :D
16:13:33 <oklopol> cool
16:14:18 <oerjan> although that is mostly to replace large populations with something calculus can work with, i think
16:15:48 <oklopol> right, that is a bit different
16:16:11 <oerjan> me and a collaborator had some hope of connecting a generalization of measures we were working on to that theory. but nothing real came of it
16:17:32 <oklopol> generalization of measures... measuring what? :D
16:18:29 <oerjan> only open and closed sets have measures in that theory
16:19:08 <oerjan> and the union of two sets can have larger measure than the sum if they are not disjoint
16:19:17 -!- RedDak has quit (Remote closed the connection).
16:19:37 <oerjan> he did his PhD on them
16:20:24 <oklopol> umm... isn't the complement of "open and closed sets" the empty set??
16:20:26 <oklopol> *-?
16:20:52 <oklopol> can a set be other than open or closed
16:20:53 <oerjan> um, the sets that are either open or closed (or sometimes both)
16:21:04 <oerjan> er, certainly
16:21:08 <oklopol> oh
16:21:30 <oklopol> okay, now what's the "measure" of a set?
16:21:45 <oerjan> e.g. the rationals are a subset of the reals which is neither open nor closed
16:22:13 <oklopol> hmm... is it because it's infinite?
16:22:19 <oklopol> hmm...
16:22:20 <oklopol> no
16:22:34 <oerjan> well partly, since all finite sets are closed in the reals
16:23:03 <oklopol> yeah
16:23:14 <oerjan> but e.g. a closed interval is not a finite set
16:23:17 <oklopol> "in the reals", but not always?
16:23:41 <oklopol> true
16:23:42 <oerjan> general topological spaces are _very_ general
16:24:07 <oerjan> although you usually add some nicer axioms
16:24:23 <oerjan> and single points being closed is one of the first
16:24:50 <oerjan> finite sets follow from that, since the union of two closed sets is closed
16:25:22 <oklopol> okie.
16:25:41 <oklopol> not sure what you mean by "single points being closed"
16:26:10 <oerjan> a set containing a single element (point) of the space in question
16:27:10 <oerjan> now being closed is also very general, the topology of a space is simply defined by which subsets are considered closed (or equivalently, open)
16:27:43 <oerjan> the complement of a closed set is open, and vice versa
16:30:04 <oklopol> right
16:30:38 <oklopol> lol i'd forgotten how great music my composer program created
16:37:18 -!- calamari has joined.
17:33:15 <RodgerTheGreat> pikhq: new minus! http://www.kiwisbybeat.com/minus.html
17:57:20 -!- chuck has quit ("This computer has gone to sleep").
17:59:16 -!- RodgerTheGreat has quit.
17:59:20 -!- RodgerTheGreat has joined.
17:59:32 -!- RodgerTheGreat has quit (Client Quit).
18:07:01 -!- chuck has joined.
18:08:31 -!- oerjan has quit ("Good night").
18:22:08 -!- chuck has quit ("This computer has gone to sleep").
19:06:39 <pikhq> w00ts!
19:11:41 * SimonRC thinks that Colorforth rox
19:24:44 -!- puzzlet_ has joined.
19:24:44 -!- puzzlet has quit (Remote closed the connection).
20:28:43 -!- ihope has joined.
20:28:50 <ihope> I'm suddenly wishing Haskell were Redivider.
20:32:49 -!- Sgeo has joined.
20:34:13 <ihope> I guess Haskell does have Parsec, though, which obviously is Redivider-like.
20:35:13 <SimonRC> ihope: why?#
20:35:19 <SimonRC> and, for that matter, what?
20:37:37 <ihope> Oh, I just have a simple parsing job that would be annoying with patterns..
20:37:42 <ihope> s/.//
20:38:13 * ihope ponders a melding of Redivider and ///
21:11:53 <oklopol> ihope: why code in haskell then, and not in redivider?
21:16:47 <bsmntbombdood> why not imbed redivider in haskell?
21:36:59 -!- chuck has joined.
21:59:20 -!- Jontte has joined.
22:01:13 <SimonRC> hi * 2
22:01:31 -!- jix has quit ("CommandQ").
22:08:33 <oklopol> hi * -1
22:11:57 <ihope> oklopol: Redivider doesn't have support for threading.
22:12:21 <ihope> If it did, I'd probably use it :-P
22:19:58 -!- dbc has joined.
22:28:06 -!- chuck_ has joined.
22:31:10 -!- chuck has quit (Connection reset by peer).
22:47:23 <oklopol> o
22:47:26 <oklopol> sleepz ->
22:47:35 <SimonRC> ditto
22:47:39 * SimonRC goes to bed
22:58:56 -!- puzzlet has joined.
22:58:56 -!- puzzlet_ has quit (Remote closed the connection).
23:09:00 -!- ihope_ has joined.
23:11:15 <ihope_> You know, if in a type system, all "forall"s must be explicitly stated with a dependent function arrow, I think every value has exactly one type.
23:12:10 <ihope_> As in no more Id : a => a; only Id : All \a (a => a), which would take a value for a as its first argument.
23:13:10 <ihope_> And then you'd have stuff like Id Integer 3 instead of just Id 3.
23:16:42 -!- chuck_ has quit (Connection reset by peer).
23:41:30 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
23:42:57 -!- pikhq has joined.
23:56:38 -!- sebbu has quit ("@+").
2007-12-03
00:11:33 -!- puzzlet_ has joined.
00:19:41 -!- puzzlet__ has joined.
00:21:46 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
00:48:35 -!- puzzlet_ has quit (Connection timed out).
00:49:38 -!- puzzlet__ has quit (Remote closed the connection).
00:57:52 -!- puzzlet has joined.
01:04:27 -!- faxathisia has joined.
01:10:59 -!- chuck_ has joined.
01:11:29 -!- chuck_ has changed nick to chuck.
01:35:06 -!- puzzlet_ has joined.
01:35:07 -!- puzzlet has quit (Remote closed the connection).
01:49:17 -!- calamari_ has joined.
02:08:24 -!- calamari_ has quit ("Leaving").
02:24:43 -!- chuck_ has joined.
02:25:38 -!- chuck has quit (Read error: 110 (Connection timed out)).
02:38:57 -!- chuck_ has changed nick to chuck.
02:41:53 -!- ihope has quit ("Lost terminal").
03:05:47 -!- chuck has quit ("This computer has gone to sleep").
03:35:58 -!- puzzlet_ has quit (Remote closed the connection).
03:36:05 -!- puzzlet has joined.
03:51:13 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
05:01:18 -!- puzzlet has quit (Remote closed the connection).
05:01:25 -!- puzzlet has joined.
05:06:35 -!- puzzlet has quit (Remote closed the connection).
05:06:39 -!- puzzlet has joined.
06:07:05 -!- GreaseMonkey has joined.
06:14:05 -!- puzzlet has quit ("Lost terminal").
06:14:19 -!- puzzlet has joined.
06:36:34 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
06:37:39 -!- puzzlet has joined.
06:41:51 -!- calamari has quit ("Leaving").
07:11:07 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
07:23:17 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
07:24:22 -!- puzzlet has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:13:50 <faxathisia> does game of life in SQL count? :p
08:13:53 <faxathisia> http://rafb.net/p/Slz1iX73.html
08:14:10 <faxathisia> I'm not sure this is very good (I didn't know any SQL before)
08:14:15 <faxathisia> but works
08:28:04 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
08:28:53 -!- puzzlet has joined.
08:42:32 -!- GreaseMonkey has quit ("nn").
09:16:04 <faxathisia> (Improvements http://rafb.net/p/hQQCf855.html )
11:52:37 -!- n0nsense has joined.
12:23:35 -!- n0nsense has quit (Read error: 104 (Connection reset by peer)).
12:30:51 -!- chuck has joined.
12:45:28 -!- chuck has quit (Connection reset by peer).
12:47:53 -!- chuck has joined.
12:51:18 -!- chuck has quit (Client Quit).
13:26:12 -!- n0nsense has joined.
13:28:21 <n0nsense> hello everybody
13:32:55 <oklopol> hi
13:36:51 <n0nsense> do you knor
13:36:55 <n0nsense> sry
13:37:04 <n0nsense> know omgrofl
13:38:57 <n0nsense> I think it's great ^^. I want to extend it and add sockets etc. to it and then program a http server in it ^^
13:40:56 <oklopol> i know now
13:42:45 <oklopol> there are very little esolangs with good support for pretty much anything, so i'd say go for it
13:43:18 <oklopol> by support i mean io stuff
13:45:05 -!- jix has joined.
13:48:04 <n0nsense> hm
14:36:09 -!- RodgerTheGreat has joined.
15:06:24 -!- n0nsense has quit (Read error: 104 (Connection reset by peer)).
15:24:57 -!- jix has quit (Nick collision from services.).
15:25:07 -!- jix has joined.
15:28:50 -!- helios24 has joined.
15:29:08 -!- helios24_ has quit (Read error: 54 (Connection reset by peer)).
16:05:18 -!- sebbu has joined.
16:22:39 -!- Slereah has joined.
16:31:22 -!- oerjan has joined.
17:02:19 -!- puzzlet has quit (Remote closed the connection).
17:02:21 -!- puzzlet_ has joined.
17:27:43 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
17:28:48 -!- puzzlet has joined.
17:45:50 -!- Sgeo has joined.
18:30:47 -!- faxathisia has quit.
19:18:41 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
19:18:57 -!- puzzlet has joined.
19:19:05 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
19:23:58 -!- puzzlet has joined.
19:24:35 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
19:28:59 -!- puzzlet has joined.
19:32:20 -!- oerjan has quit ("Good night").
20:28:14 -!- cmeme has quit (Connection timed out).
20:55:34 <Sgeo> seen ehird`
20:55:36 <Sgeo> !seen ehird`
20:55:38 <Sgeo> ~seen ehird`
20:55:40 <EgoBot> Huh?
20:55:53 <Sgeo> ~lastspoke ehird`
20:56:11 <Sgeo> !lastspoke ehird`
20:56:14 <EgoBot> Huh?
21:03:16 <SimonRC> !kick Sgeo
21:03:18 <EgoBot> Huh?
21:03:29 <Sgeo> !hit SimonRC
21:03:32 <EgoBot> Huh?
21:04:05 <oklopol> !o
21:04:08 <EgoBot> Huh?
21:34:57 -!- faxathisia has joined.
21:35:32 <graue> !hi guys
21:35:36 <EgoBot> Huh?
21:36:24 <GregorR> !Stop confusing EgoBot :(
21:36:26 <EgoBot> Huh?
21:38:11 <graue> i think you should take out that "feature" ;)
21:42:25 <GregorR> Probably ... seemed like a good idea at the time, for e.g. !brainfluck or !grass
21:43:27 <faxathisia> !bf >++++++++[<+++++++++>-]<.>+++++[<+++++++++>-]<.-------------.>+++++[<-------->-]<-.
21:43:30 <EgoBot> Huh?
21:43:37 -!- puzzlet_ has joined.
21:44:04 <GregorR> ... what ze bork?
21:44:08 <GregorR> !bf .
21:44:12 <GregorR> Oh, you jerk :P
21:44:21 <GregorR> *slaps self in head*
21:45:32 <Sgeo> GregorR, hm?
21:45:41 <oklopol> is that whitespace crooked?
21:45:52 <Sgeo> Hi faxathisia and puzzlet
21:46:00 <oklopol> hi everyone
21:46:03 <oklopol> and good night ->
21:46:14 <faxathisia> hiya
21:46:27 <faxathisia> night oklopol
21:46:48 <Sgeo> G'night oklopol k
21:46:56 <Sgeo> s/ k//
21:48:26 <SimonRC> hi#
21:53:50 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
22:00:30 -!- jix has quit ("CommandQ").
22:07:50 <bsmntbombdood> faaaaaaaaax
22:08:22 <faxathisia> :]
22:08:34 <faxathisia> I wrote game of life in SQL
22:08:45 <faxathisia> and square root
22:09:03 <bsmntbombdood> write bf text gen
22:09:19 <faxathisia> I did in lisp.
22:09:26 <bsmntbombdood> not good enough
22:09:28 <faxathisia> :((
22:09:30 <faxathisia> you're right
22:09:32 <bsmntbombdood> make it better
22:09:39 <faxathisia> but I don't know how
22:09:48 <bsmntbombdood> lurn how
22:10:16 <faxathisia> I guess I should try the idea of building a small language ontop of brainfuck
22:10:23 <faxathisia> which has primitives like copy, add, sub, mul etc
22:10:32 <faxathisia> which you can associate a brainfuck cost to
22:10:57 <faxathisia> but I don't have any idea how you'd actually compose them to make a program that does something (which minimizing the cost)
22:11:13 <faxathisia> so I basicallly go full circle and this ends up harder than before.... which is why I didn't try it
22:11:36 <faxathisia> what do you think about this possible approach?
22:14:25 <bsmntbombdood> i don't think it's helpful
22:14:35 <faxathisia> that's the conclusion I came to!
22:14:39 <bsmntbombdood> it's basically just compiling to pebble
22:16:41 * faxathisia has no other ideas
22:17:24 <bsmntbombdood> i wonder if anyone else has tried to implement kolgomorov complexity
22:20:01 <bsmntbombdood> hmmm
22:20:09 <bsmntbombdood> maybe use berlekamp-massey
22:20:22 <bsmntbombdood> how big do you think an lsfr implementation would be in brainfuck
22:20:48 <faxathisia> ...holy shit
22:20:54 <faxathisia> You did you know about this!
22:21:17 <faxathisia> sounds like it would be really great for medium/longer texts
22:21:50 <bsmntbombdood> text is rarely linearly recurrent
22:22:27 <bsmntbombdood> so the lsfr would probably be long, but it could have few taps so be shortly implemented
22:22:43 <bsmntbombdood> *lfsr
23:00:12 -!- Sgeo has quit (Connection timed out).
23:03:27 -!- Jontte has quit ("Konversation terminated!").
23:04:15 -!- Jontte has joined.
23:39:32 -!- sebbu has quit ("@+").
23:42:39 -!- ehird` has joined.
2007-12-04
00:12:14 -!- puzzlet_ has quit (Remote closed the connection).
00:12:18 -!- puzzlet has joined.
00:35:54 -!- ehird` has quit (Remote closed the connection).
02:30:04 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
02:30:32 -!- puzzlet has joined.
02:45:11 -!- cmeme has joined.
03:11:47 -!- oerjan has joined.
03:12:08 <pikhq> Hey, oerjan.
03:12:19 * pikhq enjoys nomic recursion
03:12:29 <oerjan> morn morn
03:12:32 <faxathisia> oh oh
03:12:32 <faxathisia> hi oerjan
03:12:51 <faxathisia> my idea with converting game of life into minesweeper and solving it worked btw
03:13:05 <faxathisia> but someone wrote a program that's hundreds of times faster just by using search and replace on the input
03:13:24 <oerjan> heh
03:13:32 <faxathisia> so I have to learn CLP!
03:13:35 <faxathisia> but it was good
03:13:48 <faxathisia> whats nomic recursion?
03:14:11 <oerjan> a game of nomic inside a game of nomic
03:14:23 <pikhq> More than just that.
03:14:43 <pikhq> Agora's Child is a member of Agora. . . I'm trying to make it so that Agora is a member of Agora's Child.
03:14:50 <faxathisia> ujh
03:14:58 <faxathisia> what the hell is nomic o_o
03:15:15 * faxathisia complains about long FAQs
03:15:15 <pikhq> http://en.wikipedia.org/wiki/Nomic
03:15:56 <faxathisia> oh geez
03:16:00 <faxathisia> my childhood was wasted
03:16:08 <faxathisia> if I knew about this .. things would have been better
03:17:14 <oerjan> o_O
03:18:09 <pikhq> And yes, I am insane.
03:18:55 -!- Paro has joined.
03:19:46 <Paro> Please say "Hello, World!"
03:20:25 <oerjan> Hei verden!
03:20:42 <pikhq> ぜんぜん!
03:20:48 <Paro> Please say "Hello, World!" in English
03:20:54 <pikhq> Never!
03:21:01 <Paro> O.O
03:21:19 <pikhq> Please say "Hello, world!" in Japanese!
03:21:32 <bsmntbombdood> that was awesome you two
03:21:49 * pikhq bows
03:21:53 <Paro>
03:21:59 <pikhq> Wrong.
03:22:12 <pikhq> もしもし、世界。
03:22:13 * Paro is filled with sorrow.
03:26:15 <oerjan> Smil til verden og verden smiler til deg
03:26:40 <faxathisia> !bf +[.+]
03:26:44 <EgoBot> <CTCP>
03:26:54 <faxathisia> hahaha
03:26:58 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)).
03:27:01 <faxathisia> oh crap..
03:27:16 -!- EgoBot has quit (Excess Flood).
03:27:19 <faxathisia> EgoBot: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬ ®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
03:27:21 <faxathisia> in PM
03:27:22 <faxathisia> sorry
03:27:36 <bsmntbombdood> lol
03:35:29 -!- RodgerTheGreat has joined.
03:45:07 -!- immibis has joined.
03:48:37 -!- Paro has quit.
05:43:15 -!- calamari has joined.
05:49:39 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. Don't push the red button!").
05:56:34 -!- oerjan has quit ("Coffee").
06:31:03 -!- calamari has quit ("Leaving").
06:54:08 -!- immibis has joined.
07:29:21 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. He who laughs last, thinks slowest").
07:46:54 -!- graue has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:44:31 <faxathisia> is there any like
08:44:37 <faxathisia> sub-turing language design channel ?
08:44:38 <faxathisia> :|
08:47:09 <faxathisia> there aren't enough good subturing languages!
09:42:56 -!- jix has joined.
09:58:18 -!- JontteG has joined.
10:03:36 <dbc> It's easy to make one. You just put a rigid and moderately low storage limit on any Turing-complete language. Yawn.
10:03:44 <faxathisia> bah
10:03:47 <faxathisia> not like that
10:04:14 <faxathisia> things like regex, SQL, The Haskell Type System
10:04:31 <faxathisia> (I really don't know that many interesting subturing languages)
10:04:45 <dbc> HTML, too.
10:04:49 <faxathisia> yes!
10:04:57 <faxathisia> all capable of solving some interesting problems
10:05:00 <dbc> Context-sensitive grammars.
10:09:07 -!- JontteG has quit (Remote closed the connection).
10:13:36 <faxathisia> ok wow
10:13:41 <faxathisia> I have to find something to do with Context-sensitive grammars
10:13:55 <faxathisia> because I haven't really much intuition about what they're capable of at all
10:28:22 -!- jix has quit ("CommandQ").
10:44:38 -!- sebbu has joined.
10:45:08 -!- Jontte has quit (Remote closed the connection).
10:57:47 -!- Jontte has joined.
11:06:04 -!- Jontte has quit (Remote closed the connection).
11:07:32 -!- Jontte has joined.
11:16:00 -!- Jontte has quit (Remote closed the connection).
13:04:07 -!- jix has joined.
13:04:48 -!- jix has quit (Nick collision from services.).
13:04:56 -!- jix has joined.
13:10:22 -!- Jontte has joined.
14:05:49 -!- faxathisia has quit.
14:08:04 -!- oerjan has joined.
14:17:15 <RodgerTheGreat> are there any small sets of these "subturing" languages faxathisia was speaking of that are together TC?
14:22:09 <oerjan> i don't know about those he mentioned
14:22:37 <oerjan> but if you take a turing-complete language and split it up into small pieces that are each not TC...
14:22:54 <oerjan> like just K and just S from combinatory logic...
14:23:15 <RodgerTheGreat> heh
14:23:35 <RodgerTheGreat> that's what we call "vacuously true"
14:23:36 <oerjan> or split away [] from brainfuck...
14:23:52 <RodgerTheGreat> I was primarily wondering about existing languages
14:24:13 <RodgerTheGreat> creating a language for the purpose of this idea doesn't really accomplish much
14:25:29 <oerjan> well there are undecidable type systems for one thing
14:27:35 <oerjan> apparently you cannot combine haskell-like type systems with subtyping without making the result undecidable, which i think usually is shown by finding TC sub-problems
14:31:28 <RodgerTheGreat> hm
14:33:19 <oerjan> actually ocaml manages somewhat, i think you may need so-called higher rank polymorphism as well
14:36:59 <oerjan> hm i just thought of one thing: while all regex languages are context-free, regex languages are closed under complement but not context-free ones
14:38:10 <oerjan> so if you combine the features, the result is TC
14:39:11 <oerjan> (as mentioned here a while ago, it is undecidable whether a CF language includes _all_ strings of the alphabet)
14:45:54 <RodgerTheGreat> yeah
14:56:53 <bsmntbombdood> sql is subturing?
14:58:22 <oerjan> no way of looping, they say
15:32:41 -!- faxathisia has joined.
15:48:12 -!- puzzlet has quit ("Lost terminal").
15:48:32 -!- puzzlet has joined.
16:21:00 <GregorR> I would hope that SQL is intentionally sub-TC
16:21:37 <oerjan> that's the impression i got
16:22:01 <faxathisia> I find it very similar to haskell
16:22:06 <faxathisia> but maybe I'm just imagining it?
16:22:13 <GregorR> Geeze, raggin' on Haskell.
16:22:21 <faxathisia> no...
16:22:27 <faxathisia> I thought SQL is really nice to use
16:22:29 <faxathisia> and a good language
16:22:50 <GregorR> Geeze, raggin' on logic and reason.
16:23:10 <GregorR> Really though, SQL is fine for its purpose :P
16:23:16 <faxathisia> well I only wrote square root and game of life yet
16:23:24 <faxathisia> I was going to do a raytracer but I didn't bother yet
16:23:31 <GregorR> And unlike many other special purpose languages, it hasn't escaped its niche to become a crapsy general purpose language.
16:24:22 <faxathisia> I want more subturing languages to try :(
16:24:40 <GregorR> Erm, are you saying you wrote the game of life in SQL? >_O
16:24:54 <GregorR> I assume it's a query that's called repetitively?
16:24:58 <faxathisia> and I thought it came out really nicely!
16:25:16 <faxathisia> yeah there is a query which runs a single iteration
16:25:29 <oerjan> you could try Epigram or Agda >:)
16:25:33 <GregorR> OK, that makes more sense :P
16:25:40 <faxathisia> http://rafb.net/p/fy3e5L63.html
16:25:41 <GregorR> Since SQL is in fact not TC, and the game of life is :P
16:26:00 <faxathisia> (It doesnt' work in sqlite but you can split it in two to use sqlite)
16:26:33 <faxathisia> well I couldn't get xemacs to work so I don't think I can use epigram here
16:26:41 <faxathisia> but I would like to try it sometime
16:26:58 * oerjan thought he was joking
16:27:25 <faxathisia> regardless.. Epigram seems cool
16:27:38 <oerjan> seeing as those languages are probably _more_ complicated than many that are TC
16:28:13 <faxathisia> doesn't bother me :D
16:28:38 <GregorR> Come now, pushdown automata aren't more complicated than Turing machines.
16:28:48 <GregorR> ^^^ Counterexample :P
16:28:54 <oerjan> well i guess many people in this channel wouldn't be...
16:29:09 <oerjan> GregorR: i was referring to epigram and agda
16:29:21 <GregorR> Ahhh, specific choices, zomg
16:29:38 <oerjan> or dependently typed languages in general
16:30:01 <oerjan> the dependency almost forces a terminating language, iiuc
16:30:11 <oerjan> since _types_ have to be terminating
16:31:39 <oerjan> (disclosure: i haven't used any of them)
16:32:10 <faxathisia> I like what i've seen of Coq.. the typechecking algorithm asks you for help!
16:34:03 <oerjan> hm i recall trying to get Coq started but something was wrong with the UI that made me annoyed enough to uninstall it.
16:34:26 <faxathisia> You can use Proof General mode in emacs
16:34:34 <faxathisia> although some people are allergic to emacs or something
16:34:45 <faxathisia> anyway Proof General seems good
16:34:51 <oerjan> *cough*, *cack*, *aackpthoo*
16:35:31 <faxathisia> well I really don't know what to do
16:36:01 <faxathisia> what's the shortest regex to match a set of strings is a decidable problems isn't it?
16:37:10 <oerjan> in principle, since you can exhaustively test them...
16:37:32 <oerjan> once you have one
16:39:52 <RodgerTheGreat> the SQL language allows for looping via recursion, but it intentionally tries to detect recursion and halt
16:40:10 <oerjan> and you can decide whether two regular expressions match the same set
17:27:51 -!- jix has quit (Nick collision from services.).
17:28:01 -!- jix has joined.
19:07:47 -!- RodgerTheGreat has quit.
19:11:34 -!- faxathisia has quit.
19:11:43 -!- oerjan has quit ("Good night").
20:00:19 -!- RodgerTheGreat has joined.
20:23:06 <bsmntbombdood> i thought equivelance of regexs was undecideable
20:38:49 -!- RedDak has joined.
21:41:30 <Jontte> http://support.microsoft.com/kb/261186
21:48:19 <GregorR> Hahaha
21:50:56 -!- jix has quit ("CommandQ").
21:59:25 <bsmntbombdood> old
21:59:30 <bsmntbombdood> i am making saurkraut!
22:08:04 -!- RedDak has quit (Remote closed the connection).
23:39:36 -!- sebbu has quit ("@+").
2007-12-05
02:14:15 -!- faxathisia has joined.
03:26:03 -!- immibis has joined.
03:34:31 -!- cmeme has quit (Excess Flood).
03:36:50 -!- cmeme has joined.
03:42:01 -!- cmeme has quit (Client Quit).
03:42:12 -!- cmeme has joined.
03:47:22 -!- cmeme has quit (Client Quit).
03:47:33 -!- cmeme has joined.
03:52:43 -!- cmeme has quit (Client Quit).
03:52:54 -!- cmeme has joined.
03:58:04 -!- cmeme has quit (Client Quit).
03:58:15 -!- cmeme has joined.
04:03:26 -!- cmeme has quit (Read error: 104 (Connection reset by peer)).
04:03:36 -!- cmeme has joined.
04:04:02 -!- faxathisia has quit (Remote closed the connection).
04:07:41 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
04:08:19 -!- pikhq has joined.
04:22:59 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. Easy as 3.14159265358979323846...").
04:48:03 -!- GreaseMonkey has joined.
06:20:43 -!- oerjan has joined.
06:23:10 <oerjan> <bsmntbombdood> i thought equivelance of regexs was undecideable
06:23:46 <oerjan> not the FDA-equivalent basic form. extensions are a different matter.
06:23:51 <oerjan> er, FSA
06:24:00 <bsmntbombdood> hmm
06:24:47 <oerjan> basically you have all boolean operators, so you can calculate the xor and test for emptiness :)
06:24:48 <bsmntbombdood> what's the algorithm to do it?
06:25:51 <oerjan> probably want to convert it into an FSA first
06:26:01 <bsmntbombdood> sure
06:26:56 <oerjan> on a deterministic one, not is easy. with non-determinism, or is easy.
06:27:28 <oerjan> mix this with the usual algorithm to convert D -> N
06:30:55 <oerjan> hm possibly and can be found deterministically too
06:31:32 <oerjan> by pairing states
06:32:26 <oerjan> which means you don't need D -> N conversion.
06:32:54 <oerjan> er N -> D, D -> N is just inclusion
06:42:01 -!- Sabskm has joined.
07:13:14 -!- Slereah has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:32:43 -!- GreaseMonkey has quit ("nn").
09:33:19 -!- oerjan has quit ("Lurch, er Lunch").
10:54:08 -!- ais523 has joined.
11:03:37 <dbc> Easier, perhaps, convert both regexs to minimum-state DFA and then just compare them state by state.
11:03:54 <dbc> That can be done automatically.
11:04:14 <dbc> (I mean, automatically and fairly easily)
11:07:13 * ais523 will now have to read the logs to find the start of the conversation
11:08:05 <ais523> apparently there was no start of the conversation, dbc just started talking for no apparent reason
11:08:21 <ais523> as a continuation of a conversation that was held sometime before yesterday
11:26:38 <oklopol> 5 hours is not a fairly standard answer delay
11:37:43 <dbc> You could call it five hours later, or six lines later, or one send later.
11:38:04 <dbc> These would not be equivalent if the channel were busy, of course :)
11:38:22 <ais523> I've been known to randomly continue conversations, but I can't find the start of that one in the logs
11:39:34 <ais523> and as for regex comparison, regexen are more interesting when they're modified to be TC and so can't be compared
12:48:58 <oklopol> i'm going to continue this conversation in exactly 4 years
12:49:51 -!- Sabskm has changed nick to Slereah.
13:22:49 -!- jix has joined.
13:52:10 -!- ais523 has quit.
14:56:35 -!- Sabskm has joined.
15:07:58 -!- Sgeo has joined.
15:15:24 -!- jix has quit (Nick collision from services.).
15:15:32 -!- jix has joined.
15:16:34 -!- Sabskm has quit (Read error: 110 (Connection timed out)).
15:28:35 -!- Slereah has quit (Read error: 110 (Connection timed out)).
16:26:07 -!- oerjan has joined.
16:34:59 <oerjan> I think converting to not ((A and B) or (not A and not B)) is also very easy but since you need to go to DFA first i guess a minimal one is not that much harder.
16:45:18 -!- ais523 has joined.
16:45:59 -!- ais523 has quit (Client Quit).
17:07:47 <bsmntbombdood> dreams are cool
17:49:18 <RodgerTheGreat> what have you dreamed recently, bsmntbombdood?
17:53:55 -!- helios24 has quit (kubrick.freenode.net irc.freenode.net).
18:06:20 -!- sebbu has joined.
18:28:15 -!- RedDak has joined.
18:37:43 -!- helios_ has joined.
18:37:56 -!- helios_ has quit (Client Quit).
18:38:13 -!- helios24 has joined.
19:11:13 -!- Hardley has joined.
19:16:58 <bsmntbombdood> welll
19:18:08 <bsmntbombdood> RodgerTheGreat: last night i dreamed about some guys collecting some vials of perfume from some plants, then swam in a river until i got to a dam, climbed up and on this huuuuuge structure of pipes, talked to a girl outside a weird gothy nightclub sort of thing
19:20:58 <bsmntbombdood> it of course can't be conveyed properly in words
19:29:05 <RodgerTheGreat> hm... I've had some vivid ones recently- I'll see if I can remember anything specific...
19:31:03 <bsmntbombdood> that was the first one i've had in a long time
19:31:07 <bsmntbombdood> :(
19:31:13 <RodgerTheGreat> oh, man- part of a recent one that stands out involved my fish. I looked into his bowl, and it was empty with him gasping on the bottom. I freaked, and quickly added water to the bowl, and as the water rushed in the rocks and plants and everything poured into place as well. Then I looked at him and he kinda swelled up and stared at me, and then opened his mouth insanely wide.
19:31:26 <RodgerTheGreat> I remember huge sharp teeth and a jaw so distended it was barely attached
19:31:56 <oerjan> oh that wasn't dreaming, just sleepwalking.
19:37:23 <bsmntbombdood> RodgerTheGreat: i dreamed about a jew harp. it was eating you
19:37:31 <RodgerTheGreat> heh
19:48:25 <bsmntbombdood> i wish i remembered more dreams
19:59:00 -!- Hardley has quit.
19:59:09 -!- oerjan has quit ("Good night").
20:28:22 -!- RedDak has quit (Remote closed the connection).
20:54:21 -!- iEhird has joined.
20:54:47 <iEhird> gregorr!
20:55:47 <iEhird> I shall implement Plof in... Smalltalk! Or maybe lisp. but you get the idea.
20:56:10 <iEhird> Probably Plof3.
20:58:36 <iEhird> -- not on this iPhone, obviously.
21:00:43 -!- ihope has joined.
21:13:23 <GregorR> iEhird: I already implemented Plof2 in Smalltalk :P
21:14:10 <bsmntbombdood> wtf is this shit
21:14:23 <bsmntbombdood> only one person is allowed to have a nick that starts with the letter I
21:15:12 -!- GregorR has changed nick to IrregularR.
21:15:55 <IrregularR> What was that?
21:16:10 <bsmntbombdood> not allowed
21:16:22 -!- iEhird has quit (Read error: 113 (No route to host)).
21:18:43 <bsmntbombdood> i am teh bored
21:18:47 -!- maximander has joined.
21:20:09 <bsmntbombdood> cool, cmu
21:21:08 <maximander> suppose...
21:21:33 -!- IrregularR has changed nick to GregorR.
21:21:37 * GregorR supposes.
21:23:25 -!- jix has quit ("CommandQ").
21:24:51 <SimonRC> I just made a transcription error in a program
21:24:53 <SimonRC> the result was that the program become more useful
21:25:03 <SimonRC> OMG
21:25:05 <SimonRC> that has to be a very rare event indeed
21:26:10 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
21:28:37 <bsmntbombdood> what's a transcription error?
21:33:41 <SimonRC> trans = across, scribe = writing, so transcribe = copy text from one place to another...
21:34:09 <SimonRC> ... I made a mistake when typing in a program from a non-computer-readable source.
21:39:15 <bsmntbombdood> hmmm
21:39:40 <SimonRC> a PDF in fact
21:39:53 <SimonRC> some PDFs have an anti copy-and-paste mechanism
21:41:13 <bsmntbombdood> you're using a bad pdf reader then
21:41:32 <SimonRC> bad? how?
21:41:53 <maximander> lack of built in OCR ?
21:42:23 <SimonRC> ah, ok
21:42:29 <maximander> so do people ever show up and ask for things?
21:42:43 <bsmntbombdood> bad because it implements a stupid feature
21:42:47 <SimonRC> um, no
21:43:14 <SimonRC> the mechanism makes the characters come out as garbage, rather than preventing copying
21:43:21 <GregorR> If the PDF contained only an image of the text, then your PDF reader sucks in that it can't circumvent that particularly lame protection.
21:43:28 <GregorR> Erm
21:43:31 <GregorR> I got lost mid sentence ^^
21:43:36 <SimonRC> it is done by assigning the wrong character codes to the wrong glyphs
21:43:50 <SimonRC> I presume
21:43:50 <GregorR> If the PDF contained only an image of the text, that's one thing. But if not, your PDF reader sucks in that it can't circumvent that particularly lame protection.
21:44:10 <GregorR> That's pretty lameous.
21:44:12 <SimonRC> GregorR: alas, your remark is out-of-date now
21:44:19 <GregorR> Yup :P
21:44:25 <GregorR> I still had to fix it :)
21:49:13 <bsmntbombdood> pdf
21:49:27 <bsmntbombdood> portable document format
21:51:22 <maximander> Grrr.. i was hoping there'd be more people here asking for things
21:51:35 <bsmntbombdood> asking for what?
21:51:53 <bsmntbombdood> "Please print 'Hello, world'"?
21:51:56 <maximander> yeah
21:52:11 <SimonRC> you mean IRD?
21:52:17 <maximander> yeah...
21:52:17 <SimonRC> or whatever it is called
21:52:28 <SimonRC> nah, we don't get that much
21:52:52 <oklopol> IRP
21:52:57 <oklopol> o
21:53:10 <SimonRC> yeah, IRD is a mailing list at work, oops
21:53:20 <GregorR> Note the topic:
21:53:22 <GregorR> "IRP in #irp" :P
21:53:23 <SimonRC> oklopol: what's with the "o" ?
21:53:42 <GregorR> Improv bullet point from a copy-paste?
21:53:51 <SimonRC> And what is this about ais523 winning a prize?
21:54:27 <bsmntbombdood> wolfram's
21:55:29 <SimonRC> give more details
21:55:44 <bsmntbombdood> the 2,3 turing machine
21:55:51 <SimonRC> waitamo...
21:56:11 <SimonRC> he is the guy that proved it turing-complete?
21:56:37 <oklopol> yes
21:56:46 <oklopol> and everything's with the o
21:56:59 <SimonRC> (if the tape is pre-processed via a certain infinite non-Turing-complete process first, ISTR)
21:57:29 <SimonRC> I suppose that is a sort of parallel Turing machine
22:00:08 <SimonRC> ah, yes, here are the Slashdot headlines: October 24th, 2007: "Wolfram's 2,3 Turing Machine Is Universal!"; October 29th, 2007: "Wolfram's 2,3 Turing Machine Not Universal"
22:00:21 <GregorR> lol
22:01:55 <SimonRC> ah, the contraversy is whether the pre-processing is cheating
22:02:14 <SimonRC> people are analogising:
22:03:04 <SimonRC> they first consider a PDA, which isn't TC, and another PDA, which isn't TC, but together they are TC, because 2 PDAs is equivalent to a TM
22:04:39 <SimonRC> they then claim that just because the 2,3 automaton + a non-TC device = TC, that doesn't mean that the TC bit can be said to be inside the 2,3 automaton.
22:04:42 <SimonRC> I thnk
22:04:48 <SimonRC> I may be misunderstanding it
22:06:43 <SimonRC> oh, yes, and the pairing in his case is much weaker than the pairing of 2 PDAs to make a TM
22:07:06 <oklopol> turing completeness is a matter of opinion
22:07:31 <SimonRC> more specifically, "input" is a matter of opinion
22:14:22 * SimonRC reads a bit more about Stephan Wolfram.
22:17:49 <SimonRC> TBH there are enough people saying strong enough things about him that I can only figure out that he (SW) is somewhere between Einstein and Hubbard.
22:17:53 <SimonRC> *sigh*
22:17:59 <GregorR> Preprocessing -> machine isn't remotely similar to PDA<->PDA. Note the arrow directions ^^
22:18:47 <SimonRC> yes
22:18:52 <SimonRC> but still contraversial
23:14:58 * SimonRC goes to bed
23:18:16 -!- sebbu has quit ("Leaving").
23:33:07 -!- maximander has left (?).
2007-12-06
00:43:48 -!- ihope_ has joined.
00:52:08 -!- Slereah has joined.
01:22:55 -!- DocWilco has quit (Read error: 113 (No route to host)).
01:33:01 -!- immibis has joined.
01:44:34 -!- DocWilco has joined.
02:37:08 -!- MrArmadillo has joined.
02:42:59 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. Hard work pays off in the future, l).
02:51:06 <MrArmadillo> Please, someone divide 482 in half.
02:52:44 <bsmntbombdood> did it
02:52:57 <MrArmadillo> Thank you.
02:54:13 -!- Bigcheese has joined.
02:55:50 <MrArmadillo> Someone please find my IP and display it here in the channel.
02:55:59 <Bigcheese> 2
02:56:12 <MrArmadillo> Well... thank you for the effort.
02:56:36 -!- MrArmadillo has left (?).
02:56:43 <pikhq> No.
03:08:39 <Bigcheese> 66.74.149.10
03:08:58 <bsmntbombdood> ...
03:09:51 <Bigcheese> hey, I did what he asked
03:10:39 <bsmntbombdood> his IP is version 4
03:11:06 <Bigcheese> I don't think you can connect to freenode with ipv6
03:11:33 <bsmntbombdood> you can
03:12:03 <Bigcheese> :O
03:12:11 <lament> of course you can
03:12:14 <Bigcheese> too bad ISPs hate us all
03:12:28 <Bigcheese> and wont do ipv6 to the home ;/
03:26:14 <pikhq> Too bad ISPs hate us all, and won't do 10BASE-T to the home.
03:26:26 <bsmntbombdood> indeed
03:26:26 <pikhq> (much less some nice fiber)
03:26:52 <Bigcheese> err
03:27:10 <Bigcheese> 10BASE-T to the home would suck... unless they where under 100m from your house
03:27:21 <pikhq> Bigcheese: You know what I mean.
03:27:34 <Bigcheese> :P
03:27:44 <Bigcheese> 10mb isn't really all that great anyway
03:28:01 <Bigcheese> can already do that with good dsl or cable
03:28:32 <pikhq> Where?
03:28:36 <pikhq> South Korea? :p
03:28:50 <Bigcheese> usa
03:28:51 <Bigcheese> dude
03:28:58 <pikhq> Colorado Springs, CO.
03:29:02 <Bigcheese> Korea has 100mb to every home
03:29:05 <pikhq> 5 MBs down, 512K up.
03:29:05 <Bigcheese> :P
03:29:06 <pikhq> I know.
03:29:08 <Bigcheese> damn
03:31:43 -!- Sabskm has joined.
03:45:26 -!- Slereah has quit (Read error: 110 (Connection timed out)).
06:31:12 -!- oerjan has joined.
06:42:24 -!- sekhmet has quit (Read error: 110 (Connection timed out)).
06:53:22 -!- sekhmet has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:34:43 -!- oerjan has quit ("leaving").
10:10:29 -!- faxathisia has joined.
11:07:21 <faxathisia> I wrote a fractran interpreter in J
11:07:22 <faxathisia> (*{~1 i.~[@(=<.)@:*)
11:07:35 <faxathisia> well maybe interpreter is the wrong word but it runs the thing
11:09:54 <faxathisia> (example use http://rafb.net/p/4VYh4b29.txt )
11:12:28 <faxathisia> should add that to http://esolangs.org/wiki/Fractran ?
11:20:34 <faxathisia> I... killed EgoBot? :(
11:24:47 <Sabskm> EGOBOT! SPEAK TO MEEEEE!
11:26:27 -!- Slereah has joined.
11:41:48 <faxathisia> <EgoBot> Huh?
11:44:15 -!- Sabskm has quit (Read error: 110 (Connection timed out)).
11:59:35 <oklopol> it's so sad Sabskm is gone :<
12:04:53 <Slereah> That's me.
12:21:31 <oklopol> well, almost
12:51:31 -!- Sabskm has joined.
13:03:31 -!- Slereah has quit (Nick collision from services.).
13:03:33 -!- Sabskm has changed nick to Slereah.
13:13:20 <oklopol> yes, yes, i'm referring to the consonant cluster, you rarely see that nice ones
13:13:26 <oklopol> except for bsmnt of course
13:14:01 <Slereah> Sabskm derives from egyptian.
13:14:17 <Slereah> And since I don't know most of the vowels involved, that's that.
13:15:05 <oklopol> i was not being sarcastic, and you know egyptian?
13:16:15 <Slereah> Nah.
13:16:27 <Slereah> Just browsed some egyptian grammar.
13:25:19 -!- jix has joined.
14:00:21 -!- Sgeo has joined.
14:24:05 -!- RedDak has joined.
14:38:07 -!- oerjan has joined.
14:50:32 -!- RodgerTheGreat has quit.
15:22:12 -!- jix has quit (Nick collision from services.).
15:22:22 -!- jix has joined.
15:24:22 -!- RedDak has quit (Remote closed the connection).
15:48:48 -!- oerjan has quit ("leaving").
16:20:22 -!- faxathisia has quit ("Leaving").
16:51:19 -!- sebbu has joined.
17:35:29 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
18:02:11 -!- oklopol has joined.
18:20:33 -!- faxathisia has joined.
18:25:25 <faxathisia> Isn't there a turing-incomplete catagory in the wiki?
18:49:36 -!- RodgerTheGreat has joined.
18:58:12 -!- pikhq has quit (Read error: 110 (Connection timed out)).
19:07:53 -!- pikhq has joined.
19:08:01 -!- oerjan has joined.
19:19:56 <oerjan> faxathisia: finite automaton and pushdown automaton are included in turing-incomplete, but there is no supercategory
19:20:39 <faxathisia> I mean.. ones which are not turing complete
19:20:59 <faxathisia> like regex, SQL, Haskell type system, etc
19:21:10 <faxathisia> (although those aren't esoteric ones I suppose)
19:21:11 <oerjan> i understand. it would be a supercategory of both FSA and PDA
19:21:24 <faxathisia> what is a supercatagory?
19:21:59 <oerjan> a category that includes the others
19:22:19 <oerjan> in the hierarchical sense, not the category theory sense
19:22:21 <faxathisia> Ohhh
19:22:28 <faxathisia> I'm sorry I totally misread what you first said
19:23:00 <lament> heeh, i wonder if they have categories on the category theory wiki
19:25:46 <oerjan> Category: Computational class only has FSA, PDA, TC and unknown class
19:27:37 <oerjan> aha, Esolang:Categorization contains uncomputable but it's not included in the supercategory
19:29:16 <oerjan> fixed
19:39:50 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
19:53:25 -!- RodgerTheGreat has quit.
19:55:38 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
19:56:06 -!- pikhq has joined.
20:06:08 <oklopol> http://www.vjn.fi/pb/p163633625.txt <<< i wonder if i'll get a tc system by adding these retarded random instructions for long enough :P
20:07:29 * faxathisia chokes with laughter at this !
20:07:53 <oklopol> that's the point, at least once that's ready, and has more instructions than any language ever.
20:08:02 <oklopol> (it's not like it's hard making more of those...)
20:08:43 <oklopol> c - outputs "the following is a quine" + source code in ascii <<< i'm very proud of this one
20:09:55 <oerjan> it's a lie, isn't it?
20:10:32 <oklopol> yes
20:10:44 <oklopol> i'll fool many!
20:10:45 <oklopol> ...
20:11:31 <oerjan> what about adding a colon and space after quine?
20:11:35 <oklopol> i should write this in python or something, english gets a bit clumsy when there's no idea behind the instructions.
20:11:56 * faxathisia cannot stop laughing at "baby you make me sing"
20:11:57 <oklopol> i left that out on purpose.
20:12:06 <oklopol> :D
20:12:49 <oklopol> it'd be interesting if there was a program that constantly tried to get something tc out of my instructions, and when it found it, it'd make a bling of some sort
20:13:05 <faxathisia> haha
20:13:40 <oklopol> so i could just add and add, and when it found tcness, i could check if it's non trivial enough to leave in, or do i have to add "and after then, output 'btw this is instruction that makes the language tc '"
20:14:11 <faxathisia> is turing complete often a goal for language design ?
20:14:19 <oklopol> yes
20:14:31 <faxathisia> I think that turing complete is a good thing to avoid, as well!
20:14:34 <oklopol> at least among esoterists
20:14:41 <oklopol> :)
20:14:44 <oklopol> just as interesting
20:14:52 <oklopol> although i guess anything can be made interesting
20:15:05 <oklopol> ihope: you mentioned pens for stick bombs a few months ago right?
20:15:59 <oklopol> i tried making a basic popsicle stick bomb with a pen in the middle... the stick crack instantly
20:16:35 <oklopol> also, using a harder material than those sticks does not allow for any trivial bomb structure
20:17:03 <oklopol> i'm fairly sure there's *some* bomb-tc structure for any hardness, though.
20:17:23 <oklopol> not bomb tc, more like bomb fsa
20:17:41 <oklopol> since you can't make an infinitely exploding bomb ofc
20:18:20 <oklopol> it took me a while to come up with a structure you can extend arbitrarily, but now that i found it, i have a new hobby :P
20:18:38 <oklopol> been making unstable stick frames all day!
20:18:55 <oerjan> infinitely exploding bombs require strange matter...
20:19:32 <oklopol> hmm, indeed, just as well as you can use tc for an asm, you could use it for stick bombs.
20:19:50 <oklopol> although i guess it'll only make sense if there's at least *some* rebuilding going on
20:20:15 <oklopol> if there's just a continuous explosion, i don't really see a possibility for computation
20:21:09 <bsmntbombdood> so, what about them school shootings?
20:23:52 <oerjan> bsmntbombdood: i think you should drop those plans
20:24:09 <bsmntbombdood> lol wut?
20:24:48 <oerjan> i am just leaping to the natural conclusion given the current conversation + your nick :D
20:25:08 <bsmntbombdood> heh
20:25:23 * oklopol contemplates killing everyone in his school with a massive stick bomb... twice
20:26:03 <oklopol> not that i consider myself having a school really
20:26:15 <oklopol> since i have... 0 lessons a week there
20:26:23 <bsmntbombdood> i was thinking that the performance of past school shootings have been rather dismal
20:27:38 <oklopol> that seems to be the general consensus
20:27:57 <bsmntbombdood> the v. tech man did rather well though
20:31:21 <ihope> oklopol: a Turing machine where all symbol transitions go into a "lower" symbol is Turing-complete.
20:31:25 <ihope> Can be, that is.
20:31:51 <oklopol> hmm
20:31:53 <oklopol> how?
20:32:19 <oklopol> oh, right
20:32:21 <ihope> Represent a cell as two cells. 00 means 0, 01 means 1, 11 means "ignore this cell". Except, hmm...
20:32:24 <oklopol> obviously
20:32:32 <ihope> You can delete cells but you can't add them.
20:32:53 <oklopol> why can't you add?
20:33:02 <ihope> You can't turn 11 into 00 or 01.
20:33:08 <oklopol> but you can have 4 states
20:33:15 <oklopol> or a hundred
20:33:20 <ihope> I guess 10 could somehow mean to add an additional cell.
20:33:40 <ihope> Or you could just move everything over, which is easy-ish.
20:33:55 <oklopol> it's easy conceptually
20:34:02 <oerjan> well any finite set of cells could only be changed a finite number of times
20:34:06 <oklopol> i mean, easy to visualize that it's *possible*
20:34:13 <ihope> Have an end-of-tape marker. When you want to turn 1 into 0, copy it all over.
20:34:20 <oklopol> yeah
20:34:38 <oklopol> or you could simulate a tag system
20:34:40 <ihope> Slow as glass, but eh.
20:34:48 <ihope> Oh, tag systems, yeah.
20:35:05 * ihope ponders a Grand Unified Programming Language
20:35:13 <faxathisia> hmm?
20:35:45 <ihope> A programming language that any other programming language can trivially be compiled into!
20:35:58 <ihope> Though I guess we need to define "programming language".
20:36:03 <oklopol> i can't really think of any way to do any computation in stick bombs
20:36:26 <ihope> Seems possible.
20:36:39 -!- RedDak has joined.
20:37:01 <oklopol> hmm... wonder if you could have a system with just multiple tape heads, and just destructive 0->1 transitions...
20:37:07 <oklopol> and have that be tc
20:37:33 <ihope> Represent the bomb as a directed graph where the nodes are gates that can send output along each line once.
20:37:58 <oklopol> and have some boolean operations at nodes?
20:38:02 <ihope> Yup.
20:38:23 <oklopol> and then just as long a sequence as can possibly be used... that's definately
20:38:26 <oklopol> *possible*
20:38:32 <oklopol> now how can you make a port...
20:38:38 * oklopol implements!
20:38:40 <ihope> The time gate: inputs are A and B, output is X. If you get an input along A, send output on X. If you get an input along B then A, do not sent output on X.
20:39:15 <ihope> Realize that and the world will be in the palm of your hands. Probably.
20:39:19 <oklopol> so B just destroys, A continues the chain reaction onto x
20:39:40 <ihope> Yeah.
20:39:56 <ihope> You also need an AND and an OR, which should be easy.
20:39:59 <oklopol> that's basically a... what's that gizmo called xD
20:40:16 <oklopol> you can make and and or using that
20:40:18 <oklopol> methinks
20:40:30 <oklopol> is it a transistor
20:40:38 <ihope> I don't think ao.
20:41:00 <ihope> s/ao/so/, of course.
20:41:01 <oklopol> but i'm thinking it can simulate one given perfectly timed actionz
20:41:14 <ihope> A transistor is pretty much an AND or an AND NOT gate.
20:42:13 <ihope> The idea behind the time gate is that you can represent a value with two lines: if you find it's 0, set off the 0 line; if you find it's 1, set off the 1 line.
20:42:31 <ihope> I'm sure the gate does something useful with this. :-P
20:42:42 <oklopol> that's a transistor
20:43:06 <ihope> A transistor doesn't care which order the voltages come in, does it?
20:43:23 <ihope> One on input then one on control is just as good as one on control then one on input.
20:43:39 <oklopol> well, i think more like they have to com at the same time
20:43:45 <oklopol> *cum
20:43:55 <oklopol> i'm not saying it's the exact same
20:44:11 <oklopol> i'm saying you can do the and and or ports the same way as with transistors
20:44:21 <ihope> Ah.
20:44:53 <ihope> I guess this time gate is really a NOT gate that waits a while.
20:45:02 <oklopol> ...or not, actually... i feel there is an isomorphism, but it's not trivial enough i could actually see what it is
20:45:50 <ihope> There might be. The time gate has a state: given that A and B are both set off, you can't tell whether X is set off.
20:46:49 <oklopol> hmm... i don't have enough sticks to try anything interesting
20:47:06 <ihope> I think NOT is really unnecessary; you can do the same thing with separate lines for 0 and 1.
20:47:17 <ihope> I'd DCC my sticks to you, if that were possible.
20:47:23 <ihope> I think I have plenty.
20:47:27 -!- Jontte has quit ("Konversation terminated!").
20:47:34 <oklopol> what's "plenty"?
20:47:38 <oklopol> i have 30
20:48:16 <oklopol> you need 4 sticks for a sticksize*sticksize cell
20:48:30 <oklopol> plus 1 extra @ each termination point
20:49:00 <ihope> I have over 250.
20:49:06 <oklopol> why?
20:49:13 <oklopol> and have you made anything with them=
20:49:14 <oklopol> ?
20:49:22 <ihope> They are currently not in a "made" form.
20:49:26 <oklopol> oh
20:49:27 <oklopol> i see
20:49:29 <ihope> I have made stuff with them, though.
20:49:37 <oklopol> so you have lots of ice cream?= :)
20:49:50 <ihope> I bought them at a craft store. :-)
20:50:09 <oklopol> hmm... then i don't know what you mean by "\"made\" form"
20:50:28 <ihope> Now, we all know that the most important tool in bomb building is a heavy book. :-)
20:50:39 <ihope> I made stuff with them, then un-made it and put the sticks back in the box.
20:50:53 <oklopol> what's the biggest you've made?
20:51:27 <oklopol> i just use my hands, have so little sticks i didn't exactly need any help making a full bomb
20:51:30 <ihope> I've made a bomb with about 6 segments, each a stick long.
20:51:31 -!- Jontte has joined.
20:51:35 <oklopol> wight
20:51:36 <oklopol> right
20:51:44 <oklopol> i made an 8-long
20:51:49 <oklopol> that was like a 3-minute job
20:51:55 <oklopol> i need sticks=!=
20:51:57 <oklopol> hmm
20:52:08 <oklopol> also, i seem to need a bigger question mark button
20:52:27 <ihope> We could pastebin our designs, sort of.
20:52:36 <oklopol> sure
20:53:05 <ihope> Are you using the overlapping HH for your segmented bombs?
20:53:14 <oklopol> mine is what tim fort uses, i think, copied the rectangular look, and the rest was pretty obvious
20:53:20 <oklopol> yes.
20:54:06 <oklopol> i also made something using an x or some sort, but it's harder to make, and uses just as many sticks; and much less stable
20:54:44 <oklopol> i also tried to make the 4-stick form extendable, but it doesn't work.
20:54:54 <oklopol> 4-stick bomb
20:55:14 <ihope> I think I've pondered that.
20:56:21 <ihope> Oh, that's an interesting terminator.
20:56:33 <oklopol> hmm?
20:56:49 <ihope> It's the slash-V part of the four-stick bomb.
20:58:11 <ihope> That can act as a terminator for the segmented bomb. It has three sticks, which is the minimum.
20:58:51 <ihope> Except, of course, for the single stick, which can also act as a terminator but can't attach to itself.
20:59:59 <oklopol> ah, terminator for a sequence of rectangles, not a terminator for an explosion :)
21:00:37 <oklopol> but indeed, that is a nice terminator
21:00:38 <ihope> A book is a terminator for an explosion. :-)
21:00:58 <ihope> And since we're inventing terminology, I think I'll call the HH a bridge.
21:01:01 <oklopol> hmm, indeed... perhaps you could make an explosion make a book fall?
21:01:19 <ihope> Sounds easy enough. You just need sticks that are sturdy enough to hold up a book.
21:01:29 <oklopol> i guess that's feasible, since i thought of it as a bridge too, at some point
21:01:56 <oklopol> (the term came from my 3*1 one with a pen in the middle... it was kinda brigey)
21:02:00 <oklopol> *bridgey
21:02:04 <oklopol> bridgy
21:02:40 <oklopol> you could have bigger sticks at the book felling part
21:02:45 <ihope> And I'll also call this whole thing the DUD paradigm: one stick is pushed down, one is pushed up, one is pushed down.
21:03:19 <oklopol> yeah, of the other way around
21:03:22 <oklopol> *or
21:07:04 <ihope> "DUD" is a word, so it's better. :-)
21:08:01 <oklopol> yeah, but isn't it a bit misleading?
21:08:52 <ihope> The fact that it's "dud"?
21:09:29 <oklopol> well, isn't dud something that does *not* explode?
21:10:21 <oerjan> try to find something with T and N instead :)
21:10:25 <oklopol> i can picture it now, you have two sets of 4 detonators, and a set of 8 detonators in the other end, to receive the result of a 4-bit multiplication!
21:10:36 <oklopol> heh
21:11:01 <oklopol> työntö / nosto
21:14:01 <oklopol> ihope: have you built anything 3d?
21:15:03 -!- ihope_ has joined.
21:15:13 <oklopol> ihope: have you built anything 3d?
21:15:33 <oklopol> a cube can be built with a hook
21:15:47 <oklopol> although i haven't tried
21:16:28 <ihope> I've built something 3d with pencils and rubber bands :-P
21:16:46 <ihope> I guess calling it the TNT paradigm is pretty obvious.
21:17:20 <ihope> What should it stand for?
21:17:29 <ihope> Saying that the N is "negative" is easy.
21:18:13 <ihope> Maybe I should come up with a reason for calling it U2,3,5 :-P
21:22:26 <oklopol> well, työntö/nosto ;)
21:22:31 <oklopol> hmm
21:22:34 <ihope> Oh. What's it mean?
21:22:41 <oklopol> push/lift :D
21:22:47 <oklopol> not exactly correct
21:22:49 <ihope> Ah, that's easy :-)
21:23:12 <ihope> Better than "tower" or "traverse" or "treason" or something.
21:23:23 <ihope> Or "topple". "Top", maybe.
21:23:32 <oklopol> top/negative!
21:23:35 <ihope> But top/negative doesn't make much sense.
21:23:39 <oklopol> ...heh
21:23:55 <ihope> Työntö/nosto is better, I'm guessing.
21:23:57 <oklopol> anyhow, 3d with pens and rubber bands... the question is, did it explode?
21:24:08 <ihope> Not at all.
21:24:15 <ihope> Well, maybe slightly.
21:24:15 <oklopol> sure, if you don't mind it's finnish and has an umlaut ;)
21:24:47 <oklopol> i actually took some rubber bands out and tried making a 3d one... but i'm pretty sure no one in the world is that handy.
21:24:49 <oklopol> i mean
21:24:56 <oklopol> it's im fucking possible
21:24:58 <ihope> If we ever make a wiki, we could have {{tyonto}} be "työntö".
21:25:15 <oklopol> tyoentoe xD
21:25:20 <ihope> Yay!
21:25:33 <ihope> It'd go well with my Goedel and Schroedinger.
21:25:51 <ihope> So, shall we make a stick bomb wiki somewhere? :-)
21:26:39 <oklopol> my 3d-model was to have two basic rectangles, lift them up, and put a rubber band where pull is needed, and a stick where a push is needed... neither of those exactly makes it stable enough to stand on it's own...
21:26:47 <oklopol> heh, sure :P
21:27:28 <ihope> I think it's easy enough to build a cube with sticks and rubber bands.
21:27:33 <oklopol> we'll put it on the esolang wiki under "very finited state automata"
21:27:34 <ihope> You do the honors. :-P
21:27:50 <ihope> Oh, on Esolang? How mundane.
21:27:55 <oklopol> heh
21:27:56 <ihope> And yet how practical.
21:28:09 <oklopol> you saying it'd be easy to make a cube bomb? :O
21:28:13 <oklopol> i bow thee, master
21:28:21 <ihope> I didn't say a bomb. :-)
21:28:33 <oklopol> oh
21:28:39 <oklopol> then it's incredibly simple :)
21:28:43 <ihope> I guess you could just take a bomb and use it as one of the faces, though :-P
21:28:54 <oklopol> or all the walls
21:28:58 <oklopol> but it won't fully detonate.
21:29:14 <ihope> No?
21:29:27 <oklopol> nope
21:29:42 -!- jix has quit (Read error: 113 (No route to host)).
21:29:49 <oklopol> have you tried putting two one-stick-terminated ..tnt's together?
21:30:01 <oklopol> they sometimes blow up, but usually not.
21:30:23 <ihope> You mean stick terminator, HH, HH, stick terminator?
21:30:27 <oklopol> it's interesting, actually, to make a long chaing, and just make them explode one by one
21:30:30 <oklopol> oh
21:30:34 <oklopol> an HH
21:30:37 <oklopol> fully terminated
21:30:38 <ihope> Yes. :-)
21:30:52 <oklopol> and an HH with the other termination shared with the first one
21:30:59 <ihope> Ah.
21:31:05 <ihope> Term, HH, term, HH, term, then?
21:31:10 <oklopol> yes
21:31:26 <oklopol> heh, i see the formal grammar is beginning to form ;)
21:31:35 <ihope> :-)
21:32:21 <ihope> Next it'll be | HH | HH |.
21:32:22 <oklopol> hmm, could you pastebin the exact form of your thing somehow? i want to be sure we really have the same one, even though i'm fairly sure we do
21:32:25 <oklopol> yeah
21:32:40 <oklopol> then we realize a H never exists alone
21:32:43 <oklopol> so |H|H|
21:32:46 <ihope> Oh yeah.
21:32:56 <ihope> There are multiple ways to make a |H|H|.
21:33:04 <oklopol> yes
21:33:22 <ihope> The H's interfaces could be on opposite sides, or they could be on the same side overlapping various ways.
21:33:39 <oklopol> yeah, but each of them is stable, to some extent
21:33:54 * ihope nods
21:34:13 <oklopol> i tried them all before realizing the key to extendability is not to find the correct one of those... but to leave the terminator out.
21:34:22 <ihope> Yeah.
21:34:42 <ihope> We need a machine that can churn out an |HHHHHHHHHHHHH| in fifteen seconds.
21:34:50 -!- AnMaster has quit (Success).
21:35:07 <oklopol> yeah
21:35:14 <ihope> *chunk chunk chunk chunk chunk* *Pthththththththt!* "Darn it!"
21:35:18 <oklopol> wonder if they sell those...
21:35:39 <ihope> I think we'd have to build one, or use some other all-purpose machine. :-)
21:36:10 <ihope> You know, an obvious abbreviation would be something like |H2|.
21:36:17 -!- AnMaster has joined.
21:36:29 <oklopol> ...do we have any tc stick builders on the wiki?
21:36:48 <ihope> TC stick builders?
21:37:04 <oklopol> that would be, yes, but if you wanna extend that to other directions...
21:37:07 <oklopol> i mean
21:37:11 <oklopol> |H2| would be nice
21:37:24 <oklopol> have you made anything but straight lines?
21:37:32 <oklopol> i made a 3*3 square
21:37:46 <ihope> Though of course 2 isn't shorter than H by much.
21:37:52 <ihope> What sort of 3*3 square?
21:38:03 <oklopol> hmm... actually i didn't finish it, it blew apart when i was adding the last corner
21:38:06 <oklopol> umm
21:38:14 <oklopol> well, i had the basic H
21:38:21 <oklopol> then make |H3|
21:38:33 <ihope> Then you make it turn?
21:38:44 <oklopol> then took the middle, and added a |H3| to form a cross
21:38:57 <oklopol> so that the middles of the |H3|'s were the same
21:38:57 <ihope> Oh, hum...
21:39:09 <ihope> I think I may know what you mean.
21:39:11 -!- oerjan has quit ("Good night").
21:39:45 <oklopol> i'm not sure what forms you can extend it, but that model is very extendable
21:40:13 <ihope> Remove the side of an H and put a different bridge in there?
21:40:24 <oklopol> yes
21:40:29 * ihope tries
21:42:54 <ihope> Well then, the major thing is a cross with interfaces around it.
21:43:17 <oklopol> yep
21:43:29 <oklopol> although i didn't manage to build it right away
21:43:39 <oklopol> perhaps because i don't use a book
21:44:03 <oklopol> and because i build on my bed, which is prolly not optimal
21:44:37 <ihope> Indeed.
21:46:05 <ihope> Yay, I made an L.
21:46:58 * ihope makes four |H|s and connects them with a cross
21:47:21 -!- Jontte has quit (Remote closed the connection).
21:47:32 * ihope actually doesn't, because he's hungry
21:47:47 -!- Jontte has joined.
21:48:16 -!- Jontte has quit (Remote closed the connection).
21:48:36 -!- Jontte has joined.
21:48:49 <ihope_> Something like flexible three-slot Lincoln logs would be nice.
21:51:21 <oklopol> i'll make the 3*3 square now
22:02:33 <oklopol> lol, can't even succeed in the 3*3 cross anymore...
22:05:30 -!- UnrelatedToQaz has joined.
22:15:02 -!- Jontte has quit (Remote closed the connection).
22:15:14 -!- UnrelatedToQaz has quit ("ChatZilla 0.9.79 [Firefox 2.0.0.11/2007112718]").
22:15:36 -!- Jontte has joined.
22:21:20 <oklopol> did it!
22:21:34 <oklopol> took only like 10 tries...
22:38:06 -!- RedDak has quit (Remote closed the connection).
22:46:46 -!- Jontte has quit ("Konversation terminated!").
22:51:15 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
23:04:41 -!- Jontte has joined.
2007-12-07
00:34:49 -!- Jontte has quit ("Konversation terminated!").
01:53:00 -!- sebbu has quit ("@+").
03:05:36 -!- pikhq_ has joined.
03:07:37 -!- pikhq has quit (Nick collision from services.).
03:07:42 -!- pikhq_ has changed nick to pikhq.
03:19:11 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
03:19:56 -!- bsmntbombdood has joined.
03:33:55 -!- bsmntbombdood has quit (kubrick.freenode.net irc.freenode.net).
03:33:55 -!- AnMaster has quit (kubrick.freenode.net irc.freenode.net).
03:33:55 -!- Sgeo has quit (kubrick.freenode.net irc.freenode.net).
03:33:56 -!- SimonRC has quit (kubrick.freenode.net irc.freenode.net).
03:33:56 -!- Overand has quit (kubrick.freenode.net irc.freenode.net).
03:33:56 -!- GregorR has quit (kubrick.freenode.net irc.freenode.net).
03:33:57 -!- pikhq has quit (kubrick.freenode.net irc.freenode.net).
03:33:57 -!- Bigcheese has quit (kubrick.freenode.net irc.freenode.net).
03:33:57 -!- cmeme has quit (kubrick.freenode.net irc.freenode.net).
03:33:57 -!- sekhmet has quit (kubrick.freenode.net irc.freenode.net).
03:33:57 -!- ihope has quit (kubrick.freenode.net irc.freenode.net).
03:33:58 -!- Possum has quit (kubrick.freenode.net irc.freenode.net).
03:33:58 -!- oklopol has quit (kubrick.freenode.net irc.freenode.net).
03:33:58 -!- lifthrasiir has quit (kubrick.freenode.net irc.freenode.net).
03:33:58 -!- johnl has quit (kubrick.freenode.net irc.freenode.net).
03:33:59 -!- Slereah has quit (kubrick.freenode.net irc.freenode.net).
03:33:59 -!- helios24 has quit (kubrick.freenode.net irc.freenode.net).
03:34:00 -!- faxathisia has quit (kubrick.freenode.net irc.freenode.net).
03:34:02 -!- dbc has quit (kubrick.freenode.net irc.freenode.net).
03:34:02 -!- cherez has quit (kubrick.freenode.net irc.freenode.net).
03:34:02 -!- puzzlet has quit (kubrick.freenode.net irc.freenode.net).
03:34:02 -!- johnk has quit (kubrick.freenode.net irc.freenode.net).
03:34:02 -!- mtve has quit (kubrick.freenode.net irc.freenode.net).
04:08:22 -!- RodgerTheGreat has joined.
04:08:22 -!- bsmntbombdood has joined.
04:08:22 -!- pikhq has joined.
04:08:22 -!- AnMaster has joined.
04:08:22 -!- faxathisia has joined.
04:08:22 -!- oklopol has joined.
04:08:22 -!- Sgeo has joined.
04:08:22 -!- Slereah has joined.
04:08:22 -!- sekhmet has joined.
04:08:22 -!- Bigcheese has joined.
04:08:22 -!- ihope has joined.
04:08:22 -!- helios24 has joined.
04:08:22 -!- cmeme has joined.
04:08:22 -!- puzzlet has joined.
04:08:22 -!- dbc has joined.
04:08:22 -!- johnl has joined.
04:08:22 -!- GregorR has joined.
04:08:22 -!- SimonRC has joined.
04:08:22 -!- Overand has joined.
04:08:22 -!- Possum has joined.
04:08:22 -!- johnk has joined.
04:08:22 -!- mtve has joined.
04:08:22 -!- cherez has joined.
04:08:22 -!- lifthrasiir has joined.
04:10:38 -!- GreaseMonkey has joined.
04:23:04 -!- lament has quit (Remote closed the connection).
04:25:56 -!- SimonRC has quit (kubrick.freenode.net irc.freenode.net).
04:25:56 -!- AnMaster has quit (kubrick.freenode.net irc.freenode.net).
04:25:56 -!- GregorR has quit (kubrick.freenode.net irc.freenode.net).
04:25:56 -!- Overand has quit (kubrick.freenode.net irc.freenode.net).
04:25:57 -!- Sgeo has quit (kubrick.freenode.net irc.freenode.net).
04:25:57 -!- bsmntbombdood has quit (kubrick.freenode.net irc.freenode.net).
04:25:57 -!- GreaseMonkey has quit (kubrick.freenode.net irc.freenode.net).
04:25:57 -!- Bigcheese has quit (kubrick.freenode.net irc.freenode.net).
04:25:57 -!- cmeme has quit (kubrick.freenode.net irc.freenode.net).
04:25:58 -!- pikhq has quit (kubrick.freenode.net irc.freenode.net).
04:25:58 -!- ihope has quit (kubrick.freenode.net irc.freenode.net).
04:25:58 -!- sekhmet has quit (kubrick.freenode.net irc.freenode.net).
04:25:58 -!- Possum has quit (kubrick.freenode.net irc.freenode.net).
04:25:58 -!- lifthrasiir has quit (kubrick.freenode.net irc.freenode.net).
04:25:58 -!- oklopol has quit (kubrick.freenode.net irc.freenode.net).
04:25:59 -!- johnl has quit (kubrick.freenode.net irc.freenode.net).
04:25:59 -!- Slereah has quit (kubrick.freenode.net irc.freenode.net).
04:26:00 -!- helios24 has quit (kubrick.freenode.net irc.freenode.net).
04:26:00 -!- RodgerTheGreat has quit (kubrick.freenode.net irc.freenode.net).
04:26:00 -!- faxathisia has quit (kubrick.freenode.net irc.freenode.net).
04:26:00 -!- cherez has quit (kubrick.freenode.net irc.freenode.net).
04:26:00 -!- dbc has quit (kubrick.freenode.net irc.freenode.net).
04:26:01 -!- mtve has quit (kubrick.freenode.net irc.freenode.net).
04:26:01 -!- johnk has quit (kubrick.freenode.net irc.freenode.net).
04:26:01 -!- puzzlet has quit (kubrick.freenode.net irc.freenode.net).
05:28:41 -!- clog has joined.
05:28:41 -!- clog has joined.
06:22:58 -!- GreaseMonkey has quit ("food").
06:35:43 -!- oerjan has joined.
06:57:34 -!- immibis has joined.
06:58:23 -!- immibis has changed nick to HadjinLog.
06:58:53 -!- HadjinLog has changed nick to immibis.
07:02:08 -!- immibis has changed nick to HadjinLog.
07:02:17 -!- HadjinLog has changed nick to immibis.
07:28:29 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:33:38 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. Oops. My brain just hit a bad sector").
07:59:17 <Slereah> What's the function in python to change an integer into a string?
07:59:43 -!- Jontte has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:37 <lament> str ?
08:01:05 <Slereah> I'll try that thank you.
08:01:27 <Slereah> It works thanks.
08:02:04 <Slereah> (I'm trying to make some awfully inefficient calculator)
08:02:37 <lament> hopefully it's really inefficient
08:02:57 <Slereah> Frigthfully so, I believe.
08:03:03 <Slereah> It uses the Peano axioms.
08:03:20 <oerjan> AYEEH
08:06:11 <lament> ah, not bad
08:09:46 <Slereah> The program itself is probably very inefficient, but it's mainly because I kinda suck at programming.
08:31:24 -!- cmeme has quit ("Client terminated by server").
08:31:34 -!- cmeme has joined.
09:03:00 * oerjan wonders if there would be a market for a song called "Rocking around Frostie the Red-Nosed Reindeer Roasting on a One-Horse Open Sleigh"
09:03:43 <oerjan> also, if someone already made it or a close approximation
09:06:00 <Slereah> Well, there's a "Rudolph the deep-throat reindeer" and a "Frosty the Pervert".
09:06:06 <Slereah> A market for everything!
09:06:24 <Slereah> So there should be one for that.
09:06:51 <oerjan> actually that one is just Rule 34
09:07:43 <Slereah> Sort of.
09:07:48 <Slereah> Except, in musical form.
09:09:33 <oerjan> my idea is more about drowning under a flood of christmas songs
09:09:58 <oerjan> hm needs to fit Mistletoe and Wine in there
09:10:36 <Slereah> Oh.
09:10:53 <Slereah> Sort of like the Ultimate Showdown, but Christmas-wise.
09:14:30 <oerjan> i guess it would be filed under Christmas Medley
09:23:30 <oklopol> the problem is you need to have a melody, which you want to be consistent, since otherwise you could just play the songs one by one
09:24:31 <oerjan> or you might go for ultimate disharmony...
09:24:43 <oklopol> composing a new melody doesn't work unless you do it really good, and somehow steal all of it from the other songs while being none of them, and using the melody of an existing one is unfair to the others
09:24:47 <oklopol> hmm
09:25:01 <Slereah> Well, I guess it would just have to sound christmas-y.
09:25:09 <Slereah> And the work would be in the lyrics.
09:25:19 <oklopol> www.vjn.fi/s/brainfuck.mp3 anyone wanna sing it on top of that if i write the lyrics?
09:25:43 <oklopol> well you just need christmas bells i guess
09:26:37 <Slereah> What command would bring on the bells?
09:26:49 <oklopol> ...command?
09:27:02 <Slereah> I'm listening to that awful brainfuck.mp3.
09:27:07 <oklopol> "ho, bells! squrry up some music for me!"
09:27:25 <Slereah> I assume the sounds correspond to commands.
09:27:32 <oklopol> oh, no no
09:27:44 <Slereah> Is it just made to annoy then?
09:27:50 <oklopol> no
09:27:51 <oklopol> i like that
09:28:04 <oklopol> one of my favorites
09:28:14 <Slereah> Well, annoy me at least, and make you smile!
09:28:25 <oklopol> my favorite music genres are metal, classic and noise
09:29:53 <oklopol> noise is easiest to compose, and hardest to listen
09:30:57 <Slereah> http://membres.lycos.fr/bewulf/Russell/Calc2.txt
09:32:03 <Slereah> Soon, it will be able to add two numbers!
09:33:15 <oklopol> oh my god
09:33:19 <oklopol> it all becomes clear now
09:35:03 <oklopol> i once made a calculator that checked whether there were operators in the input string, and if there were, found the subexpression most deep, and evaluated it
09:35:14 <oklopol> "parsing? what's parsing?"
09:35:35 <oklopol> i also made an interpreter for a basic-like language on top of that
09:36:43 <oklopol> it still has a bug, if you have the variables I and IN, that sometimes produces an error like syntax error 21N...
09:36:53 <oklopol> depending on the value of I of course
09:37:35 <oklopol> also tokenization is for wimps
09:53:30 -!- oerjan has quit ("leaving").
10:25:02 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
10:30:48 -!- puzzlet has joined.
10:53:02 -!- faxathisia has joined.
11:01:50 -!- Sabskm has joined.
11:23:43 -!- Slereah has quit (Nick collision from services.).
11:23:44 -!- Sabskm has changed nick to Slereah.
11:24:09 <Slereah> Hell. Operation priority is annoying.
11:28:52 <faxathisia> Are you writing a parser or somesuch?
11:30:27 <Slereah> Nah. Just a stupid calculator.
11:30:43 <faxathisia> in what language?:
11:30:43 <Slereah> That prints every step with the Peano axioms.
11:30:51 <faxathisia> Oh I was reading about that :p
11:30:53 <faxathisia> in the logs
11:30:53 <Slereah> Python.
11:31:04 <Slereah> So far, it works okay for one addition.
11:31:06 <faxathisia> Does python have any good logic programming facility?
11:31:13 <faxathisia> I cant imagine it being trivial to add..
11:31:20 <Slereah> No idea. I don't know that much python.
11:31:45 <oklopol> faxathisia: all i know is python has everything
11:31:52 <Slereah> Heh.
11:32:00 <faxathisia> It seems kind of brittle..
11:32:06 * faxathisia has a look
11:32:24 <oklopol> i'm 99% sure there is something like that for python
11:33:10 <faxathisia> if parsing is not fun,
11:33:14 * faxathisia recommends using logic programming
11:34:35 <oklopol> the trick to parsing is making a class that lets you use your string as a file, so that you don't have to explicitly pass information about where you are on the string
11:35:07 <oklopol> at least, that helped me
11:36:21 <faxathisia> I like that you get an unparser too, if you write the parser as a proper relation
11:36:38 <faxathisia> It's just that.. it's very hard to add e.g. indentation when unparsing
11:36:48 <faxathisia> (unless you write a new piece of code)
11:45:11 <faxathisia> I can't tell if PyPy would work for this
12:15:04 -!- jix has joined.
12:18:02 -!- puzzlet_ has joined.
12:18:35 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
12:55:13 -!- jix has quit ("CommandQ").
12:59:28 <Slereah> Is there no way to change a string in Python?
13:28:01 <faxathisia> I guess not since "'str' object does not support item assignment"
13:29:03 <Slereah> That much I got.
13:29:19 <Slereah> I was somehow hoping for some magical function that would take all my trouble away.
13:29:30 <Slereah> It's really an annoying feature.
13:47:06 -!- pikhq has quit (calvino.freenode.net irc.freenode.net).
13:47:06 -!- Bigcheese has quit (calvino.freenode.net irc.freenode.net).
13:47:09 -!- pikhq has joined.
13:47:09 -!- Bigcheese has joined.
13:55:37 -!- RedDak has joined.
13:56:36 <faxathisia> so many subturing languages become complete fi you just stick while(1) { .. } around it
14:21:25 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
14:56:11 -!- jix has joined.
15:24:42 -!- pikhq has quit (Read error: 110 (Connection timed out)).
15:50:49 -!- pikhq has joined.
16:25:24 -!- jix has quit ("CommandQ").
16:38:01 -!- pikhq has quit (Read error: 110 (Connection timed out)).
16:43:26 -!- pikhq has joined.
16:51:11 -!- Sgeo has joined.
17:10:05 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
17:13:12 -!- pikhq has joined.
17:20:34 -!- sebbu has joined.
17:30:58 -!- Sgeo has quit (Connection timed out).
17:33:11 -!- oerjan has joined.
18:11:25 -!- jix has joined.
18:52:12 -!- Sgeo has joined.
19:15:49 -!- poiuy_qwert has joined.
19:35:33 -!- poiuy_qwert has quit.
20:16:25 -!- Jontte has quit (Remote closed the connection).
20:16:57 -!- Jontte has joined.
20:55:04 -!- RedDak has joined.
20:55:53 -!- faxathisia has quit ("Leaving").
20:58:11 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
20:58:45 -!- bsmntbombdood has joined.
21:01:20 -!- Dagide has joined.
21:04:48 <ihope> Slereah: functional programming techniques make string assignment a little bit unnecessary.
21:05:05 <ihope> Though it did say "item assignment"; I'm not sure that's the same thing.
21:18:14 <SimonRC> The free wifi has mysteriously gone just as it mysteriously appeared
21:18:37 -!- RedDak has quit (Connection timed out).
21:28:06 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net).
21:28:06 -!- Sgeo has quit (calvino.freenode.net irc.freenode.net).
21:28:06 -!- puzzlet_ has quit (calvino.freenode.net irc.freenode.net).
21:28:07 -!- cmeme has quit (calvino.freenode.net irc.freenode.net).
21:28:07 -!- AnMaster has quit (calvino.freenode.net irc.freenode.net).
21:28:08 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
21:28:08 -!- Overand has quit (calvino.freenode.net irc.freenode.net).
21:28:08 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
21:29:39 -!- Overand has joined.
21:30:03 -!- puzzlet has joined.
21:32:04 -!- cmeme has joined.
21:32:39 <lament> Slereah: there aren't many reasons for strings to be mutable. It only causes pain. What's your actual problem?
21:36:56 -!- puzzlet has quit (Remote closed the connection).
21:37:01 -!- puzzlet has joined.
21:38:42 -!- SimonRC has joined.
21:40:26 <SimonRC> \x.[x[''x]x]'\x.[x[''x]]
21:40:28 <SimonRC> :-S
21:43:36 -!- GregorR has joined.
21:44:04 -!- Sgeo has joined.
21:44:33 -!- bsmntbombdood has joined.
21:45:24 -!- AnMaster has joined.
21:51:05 <SimonRC> hmm, netsplit
21:51:17 <bsmntbombdood> delicious
21:59:26 * SimonRC goes
22:05:05 -!- AnMaster has quit (Read error: 104 (Connection reset by peer)).
22:23:50 -!- AnMaster has joined.
22:27:06 -!- Dagide has quit (Read error: 104 (Connection reset by peer)).
22:30:21 -!- oerjan has quit ("Good night").
22:47:14 -!- immibis has joined.
22:53:08 -!- puzzlet_ has joined.
23:05:15 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
23:05:16 -!- pikhq_ has joined.
23:06:15 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
23:11:42 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
23:42:54 -!- immibis has left (?).
23:49:08 -!- Bigcheese has quit (Remote closed the connection).
23:55:54 -!- jix has quit ("CommandQ").
2007-12-08
00:24:31 -!- iEhird has joined.
00:25:13 <iEhird> blah
00:26:08 -!- iEhird_ has joined.
00:26:08 -!- iEhird has quit (Read error: 104 (Connection reset by peer)).
00:26:11 -!- iEhird_ has quit (Remote closed the connection).
00:36:14 -!- iEhird has joined.
00:36:27 <iEhird> gregorr well damn you
00:36:43 <bsmntbombdood> only god has the power to damn
00:36:52 <iEhird> lisp then :p
00:37:03 <iEhird> (Days later.)
00:37:13 <GregorR> iEhird: How 'bout PDP-11 ASM?
00:37:49 <iEhird> um no :p
00:38:01 <GregorR> iEhird: How 'bout brainfuck?
00:38:21 <iEhird> I want a crazy implementation using continuations and rwcursion
00:38:47 <GregorR> Is rwcursion like recursion but you can write to the execution stack?
00:39:29 <iEhird> oh you should add continuations to Plof -- I'd write a continuations-based web framework in it and use it for everything :p
00:39:34 <iEhird> and heh
00:39:58 <iEhird> (actually just provide access to the call stack )
00:40:20 <iEhird> then a continuation is just a copy of it
00:40:33 <GregorR> The call stack is read-accessible, but not write-accessible. That could be fixed though ...
00:40:56 <iEhird> do so! :p
00:41:12 <iEhird> (plot 3 I'd 2)
00:41:14 <iEhird> wrt
00:41:18 <iEhird> err
00:41:49 <GregorR> That'll take a bit of a mental exercise.
00:42:20 <iEhird> ???
00:42:38 <GregorR> I don't want to just toss in something to allow that, I want it to be elegant.
00:43:29 <iEhird> ah. make the callstsck a global linked list
00:43:32 <iEhird> a
00:43:54 <iEhird> of MethodContexts or something
00:44:12 <GregorR> That's what it is right now.
00:44:19 <GregorR> But Plof has no classes, so the type is "object"
00:44:31 <iEhird> yeah yeah
00:44:41 <GregorR> The problem is I have these two different means of calling functions.
00:44:46 <GregorR> But I think I need to take that out of PSL.
00:44:51 <iEhird> yes
00:44:51 <GregorR> Because it's lameus maximus.
00:45:00 <GregorR> And instead, return -> a kind of throw.
00:45:22 <iEhird> also plof3 is overengineeredv to the max
00:45:28 <iEhird> just a comment
00:46:03 <GregorR> I think you can only say when something is /over/engineered once it's implemented :P
00:46:39 <iEhird> mmmnope
00:47:46 <GregorR> IMHO, it's a fairly standard VM language with the only exception being the runtime-defined parser.
00:47:57 <GregorR> (That is, what I have documented so far :P )
00:48:01 <iEhird> exactly.
00:48:03 <GregorR> (Since I haven't gotten to the user language yet)
00:48:17 <GregorR> Runtime parser == gone too far?
00:48:27 <iEhird> yeah IMO
00:48:51 <iEhird> you could do something similar but less overboard
00:49:42 <GregorR> I haven't found a more elegant solution to the fundamental problem I wanted to solve.
00:49:56 <iEhird> What problem
00:50:17 <GregorR> I have a prototype-based system, and I want everything to be an object, and furthermore to be derived from the appropriate prototypes. But I don't want "system" types like integers to be special - that is, I want them to be defined at runtime, in real code.
00:51:15 <ihope> Generally, either fundamental things are plain old objects or they're not.
00:51:29 <iEhird> define special
00:51:43 <iEhird> you make little semsem
00:51:49 <ihope> Semsem?
00:52:01 <GregorR> iEhird: Defined by the system and not replicatable by users.
00:52:08 <iEhird> side note hf with the prwttyprinter with that ruhtime patset
00:52:28 <iEhird> (sorry iPhone keyboard)
00:52:57 <GregorR> "hf" == ?
00:53:50 <ihope> Yeah, you can't really define things like words in terms of other things.
00:54:04 <iEhird> have fun be
00:54:08 <ihope> Unless the system automatically decides that certain things could be words.
00:54:12 <iEhird> gr
00:54:19 <iEhird> yes ihope
00:54:27 <iEhird> you need core stuff
00:54:49 <iEhird> provide a crazy minimal core and a stdlub in plof
00:54:56 <iEhird> like forth does
00:55:29 <GregorR> That doesn't solve the fundamental problem.
00:55:44 <iEhird> there is none
00:55:47 <GregorR> The code has a '3', I want that to evaluate to something derived from the Number prototype.
00:56:24 <iEhird> it can
00:56:32 <ihope> So if the code has a '3', it's passed to some function that interprets that somehow?
00:56:46 <GregorR> ihope: Yeah - the parser.
00:56:48 <iEhird> make your parade do it greg
00:56:55 <iEhird> parseer
00:57:03 <ihope> So it's a matrioshka thingy?
00:57:17 <iEhird> ruby python smalltalk ... do this fine
00:57:31 <iEhird> theres no problem
00:57:37 <ihope> GregorR: and what does the parser do with the 3?
00:58:42 <GregorR> iEhird: It's not a problem in that it doesn't cause the language to be non-TC or what not, so yes it works for all sorts of languages, but I consider it a problem because I don't want the language to have any types with a level of "nativeness" that a user could never recreate with their own objects.
00:59:13 <GregorR> ihope: Presumably, it parses it into the value, asks the system to turn that into the underlying data type, then wraps it up into a Number object and returns it.
00:59:15 <ihope> There are things that have a level of "nativeness" that a user could never recreate with their own objects.
00:59:48 <iEhird> yes
00:59:51 <ihope> Like the word 0x43. How do you define that?
01:00:06 <iEhird> for the rest you can already so that greg
01:00:09 <ihope> The byte 0x43, I mean, I guess.
01:00:20 <iEhird> just make a new Number class
01:00:26 <GregorR> iEhird: No classes.
01:00:30 <iEhird> the parseer calls it. voillam
01:00:44 <iEhird> srfu greg. you know I mean
01:00:55 <GregorR> Actually, I'm quite confused by what both of you mean.
01:01:41 <ihope> Suppose you want to define a type that contains a 32-bit word.
01:01:50 <GregorR> OK.
01:02:20 <ihope> What might that look like?
01:02:46 <GregorR> That depends. If you just want: new ThirtyTwoBitWord(1024); // then that would obviously be quite simple.
01:02:52 <iEhird> greg class=object
01:03:02 <bsmntbombdood> wewt
01:03:10 <iEhird> greg no that's using an alerteadt word class
01:04:23 <ihope> Well, I guess an entire parser thingy is unnecessary: 1024 could be a shorthand for SomeFunction(object containing 1024 somehow).
01:04:47 <ihope> Roughly like in Haskell: 1024 means fromInteger (the number 1024 as an Integer).
01:04:51 <GregorR> Yes, but then SomeFunction is deemed unique and special by the language.
01:05:29 <ihope> Then have a declaration like "numparser SomeFunction" that declares SomeFunction to be the number parser.
01:05:35 <iEhird> the patset function willtoo be unique and wspecisl
01:06:30 <GregorR> Except it's deemed unique and special by something which can be modified.
01:06:40 -!- immibis has joined.
01:06:46 <GregorR> Therefore, you can make something ELSE unique and special (which makes it not unique or special)
01:06:54 <iEhird> you must have a root somewhere
01:06:54 <ihope> Huh?
01:07:01 <GregorR> If the language only supports decimal, you can just add support for hex.
01:07:07 <ihope> Okau.
01:07:14 <GregorR> And not as: HexNumber("0x123"), but just 0x123
01:07:39 <ihope> So it is a matrioshka thing.
01:08:08 <iEhird> greg. overengineering.
01:08:15 <iEhird> ugh crab
01:08:29 <iEhird> stupid colloquy
01:08:49 <GregorR> You declare it overengineering, while simultaneously not denying its value. Why is it not useful to be able to add that sort of thing to the language?
01:09:31 <ihope> HexNumber("123") every time you want 0x123 is bad?
01:09:53 <GregorR> It's inelegant, it makes hex numbers second-class citizens.
01:10:17 <ihope> So say that every word that starts with a number is parsed by some special thing?
01:10:51 <GregorR> That's merely one example, it's not like it could only be useful for numbers.
01:11:16 <GregorR> You could add operations, and not in the Smalltalk-style "anything is an identifier but there's no precedence" style.
01:11:31 <GregorR> Erm, remove one of those instances of the word "style" :P
01:11:46 <GregorR> And s/operations/operators/ X_X
01:11:55 <ihope> Hmm...
01:12:38 <ihope> Say that every word that doesn't start with a letter and consist entirely of alphanumerics except for a few special ones is parsed by some special thing, I guess?
01:13:17 <GregorR> Do you honestly believe that having those limitations in a runtime pseudoparser is simpler than having a runtime parser?
01:13:45 <GregorR> You would now need to have a parser, PLUS this pseudoparser and make them mesh.
01:14:30 <iEhird> cannot read Coll problem
01:14:35 <ihope> Well, I guess you're saying that matrioshka stuff is more elegant than HexNumber("123") and MkArray(1,2,3) and such.
01:14:54 <GregorR> ihope: definition("matrioshka")
01:16:25 <GregorR> Oh, multiple layers?
01:16:30 <ihope> Yeah.
01:16:33 <GregorR> (So sez wikipedia :P )
01:17:16 <ihope> Define the syntax here, and then use it there.
01:17:39 <GregorR> The only difference is where "here" is.
01:17:57 <ihope> I'd rather define a function HexNumber than extend an existing parser to make 0x123 work.
01:18:03 <ihope> I think.
01:18:59 -!- immibis has left (?).
01:19:36 <ihope> Maybe you could remove the parentheses and instead of HexNumber("123") you could call your function 0x and have it be 0x"123".
01:19:49 <GregorR> Approximation of code to convert one to the other: pbnf { number = /0x[0-9A-Fa-f]+/ => { return { HexNumber(args[0]); } }
01:20:10 <GregorR> Oops, got my semicolon in the wrong place, but that's the idea ;P
01:20:24 <ihope> I guess so.
01:21:51 <ihope> HexNumber(/0x[0-9A-Fa-f]/)
01:21:54 <ihope> Redivider syntax >:-)
01:22:44 <GregorR> And then, Gregor disappeared.
01:35:15 -!- Jontte has quit ("Konversation terminated!").
01:55:03 -!- pikhq_ has quit (Read error: 104 (Connection reset by peer)).
01:57:35 -!- pikhq has joined.
02:37:52 -!- iEhird_ has joined.
02:41:57 -!- immibis has joined.
02:56:12 -!- iEhird has quit (Read error: 110 (Connection timed out)).
03:39:08 -!- ihope has quit ("Lost terminal").
04:43:46 -!- immibis has quit (Read error: 110 (Connection timed out)).
05:24:33 -!- faxathisia has joined.
05:42:00 -!- oo has joined.
06:18:39 -!- faxathisia has quit ("Leaving").
06:57:31 -!- oo has left (?).
07:00:41 <oklopol> the parser language is brilliant, and there is no "overengineering"
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:22:22 -!- faxathisia has joined.
08:31:55 <faxathisia> Does anyone know about Gries? invertible do-loop?
08:32:10 <faxathisia> I think it's mentioned in The Science of Programming by David Gries
08:46:44 -!- oerjan has joined.
09:15:19 -!- Jontte has joined.
09:24:02 -!- RedDak has joined.
09:30:26 -!- Dagide has joined.
09:33:07 <oklopol> hi faxathisia, oerjan, Jontte, RedDak and Dagide
09:33:15 <faxathisia> hello
09:33:26 <faxathisia> What is going on
09:33:44 <oklopol> faxathisia: i don't know about that, but i know a bit about reversible programming in general
09:34:08 <faxathisia> oh cool :D
09:34:14 <faxathisia> I wrote about 99% of a Janus system
09:34:22 <faxathisia> but I got stuck on the loops so I couldn't finish it
09:34:22 <oklopol> mostly that it can be tc, although makes some problems always take a bit longer.
09:34:48 <oklopol> it's a long time since i read about it, and i was a time complexity noob back then
09:35:02 <oklopol> so just remember it's slower
09:35:03 <oklopol> hmm
09:35:04 <oerjan> morn morn
09:35:10 <faxathisia> I really need someone to help !
09:35:22 <faxathisia> I basically found a bunch of contradictions in the paper
09:35:23 <oklopol> what exactly are you doing?
09:36:03 <faxathisia> Interpreter, Program Inverter, Simplifier, Encoder ..
09:36:03 <faxathisia> there's a few things like that which once done should let the self interpreter run
09:36:19 <faxathisia> But the semantics of the loop doesn't match with the textual description
09:40:08 <faxathisia> which sucks!
09:44:37 <Slereah> My ridiculously complicated calculator can now multiply!
09:44:37 <Slereah> http://membres.lycos.fr/bewulf/Russell/Calc6.txt
09:44:47 <faxathisia> haha that's sick
09:45:59 -!- RedDak has quit (Read error: 110 (Connection timed out)).
09:46:02 <Slereah> The ugly business will now be to make one for both multiplication and addition!
09:58:14 <faxathisia> oklopol: Which reversible languages do you think are ok ?
09:59:08 <oklopol> heh, there was one where the reversibility was explicit, you could run fibonacci backwards etc :D
09:59:38 <oklopol> i don't remember the name though
10:00:25 -!- Dagide has quit (Read error: 104 (Connection reset by peer)).
10:01:04 <oerjan> we've got Kayak on the wiki
10:03:42 <faxathisia> Yeah I can run fibonacci backwards
10:03:47 <faxathisia> because it uses recursion not loops
10:03:52 <oerjan> as well as Category:reversible computing
10:04:28 <faxathisia> Janus is the one I was dealing with
10:04:37 <faxathisia> But I'm sure others are capable of the same
10:04:52 <oklopol> kayak is a palindrome!!
10:04:57 <oklopol> i totally get the reference xDD
10:05:00 <oklopol> ...
10:05:09 <oklopol> (sorry, random burst.)
10:05:11 <oerjan> as is revaver
10:05:21 <faxathisia> redivider too
10:05:38 <oklopol> i can't do palindromes in english :<
10:05:38 <faxathisia> random burst is good!
10:05:52 <faxathisia> palindrome(X) :- reverse(X,X). % :
10:05:56 <faxathisia> :D
10:06:26 <oklopol> well, i can do palindromes in any language that's fully robust
10:06:51 <oklopol> trying to mean "every string being a legal program"
10:06:59 <oklopol> which of course is not the meaning of robust.
10:07:01 <Slereah> Heh.
10:07:09 <faxathisia> I got one hing to say about it, GLYCYLGLYCYLGLYCYLGLYCINE!
10:07:19 <oerjan> can you do a palindromic quine? :)
10:07:35 <Slereah> Well, I can do the empty program.
10:07:38 <faxathisia> 1 -- is a quine in some languages
10:08:59 <oklopol> my game enema gym :)
10:09:05 <oklopol> damn
10:09:07 <oklopol> i failed.
10:09:29 <oerjan> trust oklopol to mention enemas :)
10:10:09 <oklopol> my game: neon, no enema gym
10:10:39 <oklopol> okay, i guess i can somewhat make palindromes in english too, but i'm a bit slow
10:13:22 <faxathisia> What's the biggest ring of interpreters in esoteric languages?
10:13:44 <faxathisia> like brainfuck/K/unlambda/brainfuck sort of thing
10:18:27 <oerjan> i am not sure there are that many rings. i have this impression that mostly a simple language is implemented in a more powerful one, or itself.
10:19:02 <oerjan> otoh we do have a table...
10:19:26 <Slereah> Ring?
10:19:38 <oerjan> cycle then
10:21:17 <oerjan> http://esoteric.voxelperfect.net/wiki/EsoInterpreters
10:21:49 <oklopol> we should make a gigantic 2d grid with the whole list of languages on the wiki running on each side, and then put an interpreter written in language on the left for the language on the top in every cell, if one exists!
10:22:04 <faxathisia> yes :D
10:22:05 <oklopol> ...
10:22:06 <oklopol> whut
10:22:15 <faxathisia> cool oerjan
10:22:20 <oklopol> that was quite a weird coincidence
10:23:06 <oerjan> not really, this cycle thing is exactly what such a table is useful for
10:23:14 <faxathisia> now I'm wonder.. how to find the biggest ring given a table
10:23:27 <faxathisia> I need an APL command list
10:24:04 <oerjan> first we can remove every language which isn't in _both_ row and column
10:24:18 <oklopol> i want a connection between brainfuck and unlambda...
10:24:27 <oklopol> especially an unlambda interpreter in brainfuck
10:24:39 <faxathisia> that sounds tricky to write...
10:24:41 <faxathisia> :D
10:25:32 <faxathisia> http://esolangs.org/wiki/Befreak
10:25:36 <oerjan> leaving: befunge, brainfuck, kipple, minus, subleq, um-32, underload, unlambda
10:25:39 <faxathisia> seems like there is a befreak in K ..
10:25:44 <faxathisia> but it's not in the table?
10:26:22 <oerjan> always omissions :)
10:26:40 <oklopol> K isn't really meant to be an esolang
10:27:01 <oklopol> although it's more eso than many on the wiki :;)
10:27:18 <faxathisia> oh...
10:27:26 <faxathisia> It's K as in the APL-like language
10:27:35 <faxathisia> I thought it was Lazy-K or something
10:27:44 <faxathisia> WHat is an esolang?
10:27:49 <oerjan> minus, subleq, um-32 and overload are only related to themselves
10:28:13 <oerjan> er wait there is also brainfuck in underload
10:28:43 <oerjan> er, the other way
10:29:13 <oklopol> faxathisia: the fine line between weird languages and esolangs is whether the creator 1) knew about esolangs 2) wanted an esolang status
10:29:25 <oklopol> making esolangs doesn't really bring much profit :P
10:29:28 <oerjan> in any way, my conclusion is there are _no_ length > 1 cycles in that table
10:29:34 <faxathisia> :(
10:30:05 <oklopol> no loops :O
10:30:10 <oklopol> whutz
10:30:16 <faxathisia> we must avert this crisis
10:30:51 <oklopol> it's a long time since i actually programmed in an esolang
10:31:05 <oklopol> perhaps i should make an interpreter
10:31:05 * faxathisia wonders which lang to write an interpreter for in which
10:31:12 <faxathisia> oklopol! yeah!
10:31:13 -!- iEhird_ has quit (Remote closed the connection).
10:31:14 <oklopol> dice!'
10:31:17 <oklopol> throw them!
10:31:21 <faxathisia> why not unlambda interpreter in brainfuck
10:31:27 <faxathisia> for you :p
10:31:31 <oklopol> hehe :P
10:31:37 <oklopol> perhaps, shouldn't be too hard
10:31:51 <faxathisia> maybe I should try brainfuck in unlambda?
10:31:52 <faxathisia> or something else
10:32:00 <oklopol> or, perhaps i'll use bitchanger
10:32:09 <oklopol> i think bitchanger is much sexier
10:32:24 <oklopol> (bitxtreme!)
10:33:55 <Slereah> Fuck. That calculator thingy is impossible for large amounts.
10:34:17 <oklopol> it's interesting that it's a lot easier to write song lyrics in english than in finnish, but simultaneously i cannot come up with any good long palindromes
10:34:59 <oklopol> perhaps i detect suckyness easier in finnish lyrics than in english ones
10:35:28 <oerjan> otoh the easiest way to get a 2-cycle may be to implement in brainfuck one of the many things that already implement brainfuck
10:38:25 <oerjan> or perhaps underload the other way.
10:39:27 <oerjan> oh wait, underload has no input
10:39:41 <oklopol> so brainfuck in underload
10:39:44 <oklopol> oh
10:39:50 <faxathisia> There's gotta be a really neat way in APL/J to find the longest cycle in a graph...
10:39:55 <faxathisia> given the connecitivity matrix
10:40:38 <oklopol> i had an (somewhat) interesting idea for specifying graphs
10:40:45 <faxathisia> yes? :D
10:40:55 <oklopol> you have a haskell type system -like way to specify trees
10:40:57 <oerjan> this _is_ NP-complete, the hamiltonian cycle problem
10:41:02 <faxathisia> ack ok thanks
10:41:09 <faxathisia> I didn't realize it was the same thing
10:41:09 <oklopol> but, you can add an additional id tag to every node
10:41:59 <oerjan> although you can find the maximal fully connected components more easily...
10:42:05 <faxathisia> hmm I don't think its' hamiltonian cycle problem..
10:42:18 <faxathisia> I only want the biggest cycle, It needn't traverse the entire graph
10:42:27 <oklopol> so you could, for example, make a 2d grid by taking a node in the grid, and making it a tree with 4 children == the ones that go from that point to the edges
10:42:35 <oklopol> eh
10:42:37 <oerjan> but to know if it _is_ biggest, you need to solve the HCP
10:42:39 <oklopol> not children, branches.
10:43:04 <faxathisia> for this http://img265.imageshack.us/img265/8628/picture3sn0.png http://rafb.net/p/lAvWd238.txt
10:43:07 <oklopol> each branch would then extend itself to 2 branches every step, those branches again reaching for the top
10:43:23 <oklopol> now carrying position around would effectively create a 2d grid.
10:43:27 <oklopol> did that make any sense?
10:43:35 <faxathisia> oklopol, Is that the same thing in my paste?
10:43:39 <faxathisia> or a different hing..
10:44:09 <oklopol> hmm, not sure :D
10:44:33 <oklopol> a 2d grid, basically an array[x][y], where every node in there has a connection to it's 4 neighbors
10:44:52 <oklopol> and the edges the 3 neighbors etcx
10:44:54 <oklopol> *-x
10:45:38 <oklopol> basically, you make a whole tree, but use id tags to specify where the branches should meet and form more complex connections than tree-like
10:46:09 <oklopol> i should make the syntax ready... this is hard to explain
10:53:09 <oklopol> every attempt to formalize this makes it overly verbose :D
10:59:12 <oklopol> http://www.vjn.fi/pb/p332633336.txt
10:59:15 <oklopol> graph lambdas!
11:07:45 <oklopol> http://www.vjn.fi/pb/p146432433.txt <<< dynamic scoping detected!!
11:08:04 <oklopol> i actually didn't realize what i was doing with the tags is essentially dynamic scoping
11:08:15 <oklopol> until i actually managed to write something with them
11:08:51 <oklopol> anyhow, lambdas + recursion equations with id tags for graphs, what do you think?
11:09:17 <oklopol> this is the one and only place where i should be able to get opinions on this, so don't be shy
11:09:51 <oklopol> also, does my notation make any sense, i think it does, but i'm wrong 92% of the time
11:10:22 <faxathisia> Is p146432433.txt a function of one parameter?
11:10:26 <faxathisia> basically Int -> Graph
11:11:08 <oklopol> yes
11:11:18 <faxathisia> cool I think your notation makes sense then
11:11:27 <oklopol> nice, how about the lambda one? :)
11:11:34 <oklopol> nameless graph structure
11:12:02 <oklopol> http://www.vjn.fi/pb/p113552143.txt
11:13:33 <faxathisia> Why not write it this way instead: http://www.vjn.fi/pb/p231424322.txt ?
11:13:49 <oklopol> basically, it says "the node tagged (x y) is two-way connected to nodes ((x+1) y) and (x (y+1)) for every x in 0..maxx-1 and y in 0..maxy-1"
11:14:42 <oklopol> well, i want it to be a first-class citizen
11:14:47 <oklopol> that can be passed around
11:14:56 <oklopol> so that you can make graphs on the fly 8DD
11:15:27 <oklopol> my grand idea is to make a graph rewriting language, something that united tree rewriting and cellular automata
11:15:32 <oklopol> *unites
11:17:04 <oklopol> the thing that troubles me a bit about the lambda notation, is that those things don't really overlap in usability
11:17:48 <oklopol> meaning that you can specify some graphs using the lambda notation trivially, while it's simultaneously almost impossible to do in the tree+tag notation
11:18:05 <oklopol> on the other hand, i think the tree notation is tc, while the lambda one is not.
11:19:00 <oklopol> so, the other one is more usable than the other, while the other is more powerful in theory... i kinda feel that a lambda for creating graphs should just be a shorthand for the actual graph declaration mechanism, not a completely separate way to define them
11:19:35 <oklopol> that is prolly because it's like that for functions + lambdas, and i for some reason need a sort of an isomorphism between my graph things and funxxxions
11:20:32 <oklopol> i should use a smaller font, it's depressing to fill a few screens with messages without response :D
11:21:03 <oklopol> *or*, i could just shut up
11:21:06 <faxathisia> No need to have it turing complete!
11:21:14 <faxathisia> is there?
11:21:22 <oklopol> is there what
11:21:28 <faxathisia> any need to have it tc
11:21:51 <faxathisia> I mean 'capable of expressing a wide range of structures/computations' vs 'tc'
11:21:53 <oklopol> well, i would like it being able to specify *any* graph structure.
11:22:09 <faxathisia> hm...
11:22:16 <oklopol> but, it's not necessary, no
11:22:44 <faxathisia> What (finite) graph would you need turing completness to express
11:22:57 <oklopol> well, trivially none
11:23:05 <oklopol> unless you wanna parametrize
11:23:35 <oklopol> you could, in theory, want a graph that somehow flunctuates with the digits of pi or something
11:23:36 <oklopol> i dunno! :D
11:24:08 <oklopol> hohoho, lazy infinite graphs!
11:24:09 <oklopol> xD
11:24:18 <faxathisia> hehe :D
11:24:47 <oklopol> actually, that's not even that far-fetched, given that you prolly want that for cellular automata anyway...
11:24:49 * faxathisia writes some shamefully crap code to find the longest cycle in a graph...
11:25:06 <faxathisia> i'm *sure* there is some magic one liner in an array programming language
11:25:29 <oklopol> i'm pretty sure there's a primitive function for that in my graph language!
11:25:33 <oklopol> just you wait!
11:25:37 * faxathisia waits...
11:25:52 <oklopol> actually, there may be problems once i start thinking about stuff like that
11:26:34 <oklopol> i tend to be very idealistic, every function will basically have to be some sort of a rewriting rule
11:27:00 <oklopol> so stuff that actually computes something about the structure of a graph is hard to express
11:27:33 <oklopol> or not... not sure, i've mostly considered the awesomeness, not so much the usability!
11:28:10 <oklopol> faxathisia: you can stop waiting now, unless you have a *lot* of time
11:28:13 <faxathisia> hehe
11:28:22 <faxathisia> well this code is crap http://paste.lisp.org/display/52132
11:28:29 <faxathisia> but I don't know how to do it better
11:28:41 <faxathisia> so I can plug the eso interpreter matrix into it later on
11:28:48 <faxathisia> (once more interpreters are written :p)
11:32:15 <oklopol> coool, lisp
11:32:56 <oklopol> hmm, what does the graph signify exactly?
11:33:35 <oklopol> (a d e) means there's a... connection from a to d and d to e?
11:34:04 <faxathisia> there is an arc from a->d and a->e
11:34:36 <faxathisia> I guess I could have written it (a . (d e))
11:36:10 <oklopol> http://www.vjn.fi/pb/p231253223.txt <<< i think i have the 2d grid now
11:36:18 <oklopol> it's a bit verbose, but i think it's correct
11:36:35 <oklopol> changed =, the tagging thingie, to ::
11:37:16 <oklopol> since = is nice when you just want identity, and not a tagging or a connection
11:38:05 <oklopol> (although connecting [2dGraph x y :: (x y)} to {2dGraph x y mx my :: (xy)} wouldn't make an actual connection anyway, since the tags are the same...)
11:38:35 <oklopol> ah
11:38:39 <oklopol> of course it means that
11:44:40 <oklopol> heh, once again i stare for 5 minutes at a code before i realize i will never get it since i don't know what mapcar is :D
11:45:01 <oklopol> i suck at reading other people's code
11:45:10 <faxathisia> (mapcar #'square '(5 6 8)) -> (25 36 8*8???)
11:46:30 <oklopol> :=)
11:46:30 <faxathisia> does that explain it? :p
11:46:46 * faxathisia should avoid such large numbers as 8 when giving examples...
11:46:53 <oklopol> oerjan: as the official mathematician, can you help faxathisia calculate 8*8 :P
11:47:14 <oklopol> that's a tricky one, gotta admit.
11:47:27 <faxathisia> You expect a mathematician to know 8*8?? :P
11:48:15 <oklopol> well, i expect the official mathematician to know it
11:48:21 <oklopol> !
11:48:26 <faxathisia> lol
11:49:26 <oklopol> well, actually i'd assume any programmer to have the powers of two as a reflex
11:49:41 <oklopol> anyhow, mapcar is... map?
11:49:57 <oklopol> i guess mapcar is more descriptive
11:50:02 <oklopol> or not
11:50:04 <oklopol> dunno
11:50:42 <oklopol> too many functions i don't know used in there, does not parse.
11:51:17 <oklopol> faxathisia: did the new 2dGraph i made with explicit tree structurizing make sense?
11:51:23 <faxathisia> you can click on the function names oklopol
11:51:28 <faxathisia> it will give you a full desription of them
11:51:34 <faxathisia> but... my code is basically utter crap
11:51:36 <oerjan> 8*8 = 8*(7+1) = 8*7+8*1 = 8*(6+1)+8*1 = ...
11:51:40 <faxathisia> so I don't think there's much point understanding it
11:51:55 <faxathisia> ah oerjan, reduced it to the harder problem of 8*7 + 8 :)
11:52:07 <oklopol> you generate everything possible and check 'em?
11:52:40 <oerjan> you've got problems recursing?
11:52:48 <oklopol> i'd say 8->1000_2, 1000*1000 = 1000000_2
11:53:37 <oerjan> if you want only top-of-tree rewriting then you can rewrite in continuation-passing style, i believe
11:53:38 <oklopol> oerjan: i think the human brain can only handle tail recursion
11:54:55 <oklopol> oerjan: opinions on my graph thingie! :D
11:55:13 <oklopol> and don't give me that crap about you not being qualified for that
11:55:22 <oklopol> !
11:56:12 <oerjan> fine, i'll give you crap about not being in the mood instead...
11:56:33 <oerjan> and being on my way out the door, besides
11:56:51 <oklopol> oh
11:57:04 <oerjan> back when my brain is refilled :)
11:57:15 <oerjan> recharged, whatever
11:57:18 <oklopol> well, bye then, and remind me to fix my crap filter, it seems to have holes!
11:57:41 -!- oerjan has quit ("Lunch").
12:11:48 -!- jix has joined.
12:47:57 -!- Sabskm has joined.
13:03:22 -!- Slereah has quit (Read error: 110 (Connection timed out)).
13:21:06 <oklopol> http://www.vjn.fi/pb/p666413311.txt hypercubz
13:22:01 <oklopol> oh, there's an error
13:22:11 <oklopol> not that it matters since i didn't explain the syntax :D
13:28:50 -!- faxathisia has quit ("Leaving").
13:29:57 -!- faxathisia has joined.
13:37:40 * faxathisia cannot decide which box to fill in from http://esoteric.voxelperfect.net/wiki/EsoInterpreters
13:37:41 <faxathisia> :[
13:41:59 <faxathisia> there is befunge in zetaplex, brainfuck in befunge, and BCT, Underload, UTM in brainfuck
13:43:48 <faxathisia> zetaplex in underload
13:49:12 <oklopol> :O
13:49:19 <oklopol> zetaplex looks awesome
13:49:24 <oklopol> i haven't seen it
13:49:29 <faxathisia> yeah it does
13:50:13 <oklopol> oh, it's a 2d language, should've guessed that's the only way to get that cool-looking code :P
13:50:26 <faxathisia> mm it looks awfly hard to write an interpreter for zetaplex though
13:51:08 <faxathisia> (in an esolang)
13:51:45 <oklopol> http://www.vjn.fi/pb/p133626425.txt this should be game of life, but i should really add some syntax that makes a difference between a graph and a transition...
13:52:48 <oklopol> i'm currently marking state changes with a !!
13:53:01 <faxathisia> I don't understand that
13:53:08 <oklopol> which part?
13:53:13 <faxathisia> the code you pasted
13:53:19 <oklopol> the grid thing in the beginning should be easy
13:53:27 <oklopol> i'll explain
13:53:47 <oklopol> Grid = Grid 0 0 -- a grid is a grid starting at 0 0
13:54:26 <oklopol> Grid x y = 0 <-> ... -- a grid node at x y has value 0 (= 0) and is connected to adjacent cells (<-> Grid .., Grid .., etc)
13:54:33 <oklopol> was that of any help?
13:55:20 <oklopol> the transition part will definitely change anyway, so no use explaining that
13:55:35 <faxathisia> that's the bit I didn't understand :p
13:55:51 <oklopol> do you now?
13:56:19 <oklopol> !! g![x y] = 1 means, take the thing in g tagged with [x y], and make it's value 1
13:56:31 <oklopol> hmm
13:56:48 <faxathisia> What about !! {t\g}*10
13:56:53 <oklopol> heh
13:57:03 <oklopol> x\y means for all y do x
13:57:13 <oklopol> t\g means do transition t to g
13:57:25 <oklopol> !! means there is a state transformation
13:57:45 <oklopol> f*10 means, do f 10 times, with params 0..10
13:57:58 <oklopol> that's helpful when doing multiple branches.
13:58:50 <oklopol> also, the syntax is somewhat weird in that it's infix when you don't separate with whitespace, but prefix when you do separate... so (+ 5 2) = 5+2 xD
13:59:17 <oklopol> that's nice since a pattern like [x+1 y-3] is often needed
13:59:46 <oklopol> [(+ x 1) (- y 3)] is verbose, but i find infix ugly in large portions
13:59:47 <faxathisia> cool
14:00:06 <oklopol> so... decided to do something really weird there
14:00:29 <oklopol> i like playing around with the details as well as the big picture when making a language
14:01:02 <oklopol> me no like teh transition thingie...
14:02:43 <oklopol> hey, i could have lowercase for variables, uppercase for node/graph names, zumbercase for transitions, and nimbiecase for normal functions.
14:02:54 <oklopol> oh, right, there's not zumber and nimbie.
14:03:09 <oklopol> such a rookie mistake
14:03:26 <faxathisia> I've never heard of zumbercase or nimbiecase
14:03:39 <oklopol> naturally, i'd like everything to be a graph :D
14:04:42 <oklopol> perhaps i could do something like having a function be a graph with a certain structure, like something with tag #funx for the root, and then two branches, #from and #to, and then add support for kinda first-class citizen variable names
14:04:44 <oklopol> or something.
14:05:15 <oklopol> it'd be notoriously complicated and weird, but i'd feel pure again
14:05:21 <oklopol> :)
14:05:42 <oklopol> faxathisia: there's no zumber and nimbie, i was just amusing myself.
14:06:27 <oklopol> lol now i'm actually considering that :D
14:06:47 <oklopol> wonder if i should still make it possible to program functionally without knowing the underlying sick structure
14:07:54 <oklopol> need to sleep for half an hour or so ->
14:08:22 <oklopol> to get the mental juices flowing
14:26:58 -!- jix has quit (Read error: 113 (No route to host)).
14:28:00 -!- jix has joined.
14:32:53 -!- jix has quit ("CommandQ").
14:47:52 -!- wooby has joined.
14:48:12 <wooby> hello
14:48:35 <Sabskm> Hi.
14:49:12 <wooby> how are things
14:49:40 <Sabskm> Fine, fine.
14:50:16 <wooby> im reading up on bf hardware here, people have done some interesting things with the PIC
15:02:32 -!- wooby has quit.
15:23:08 -!- puzzlet_ has quit (Remote closed the connection).
15:23:10 -!- Sabskm has changed nick to Slereah.
15:23:12 -!- puzzlet has joined.
15:30:11 -!- Tritonio_ has joined.
15:54:09 -!- faxathisia has quit ("Leaving").
15:56:55 -!- pikhq_ has joined.
15:57:00 -!- pikhq has quit (Read error: 110 (Connection timed out)).
16:06:52 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
16:06:59 -!- Tritonio__ has joined.
16:07:36 -!- Tritonio__ has changed nick to Tritonio_.
16:10:06 -!- oerjan has joined.
16:12:26 -!- jix has joined.
16:16:21 -!- pikhq_ has changed nick to pikhq.
16:17:51 -!- MonkeyofDoom has joined.
16:18:11 <MonkeyofDoom> helloes
16:18:31 <Slereah> Hies.
16:18:35 <oerjan> 'afternoon
16:19:46 <MonkeyofDoom> has anyone here ever gotten INTERCAL to work on a windows pc?
16:23:06 <MonkeyofDoom> I've been trying for days but all that's come of it is a bunch of NO SKELETON IN MY CLOSET, WOE IS ME! messages and a bunch of "use linux or suicide" sentiments
16:23:23 <pikhq> Install Cygwin?
16:23:39 <oerjan> if ais523 were here, i'm sure he could help
16:24:00 <oerjan> he's the C-INTERCAL maintainer
16:24:10 <pikhq> Oh?
16:24:25 <oerjan> or so he claimed in an email i got the other day :)
16:25:28 <MonkeyofDoom> hm
16:25:58 <MonkeyofDoom> I'm pretty sure I have cygwin installed
16:26:01 * MonkeyofDoom keyofDoom checks*
16:27:16 <MonkeyofDoom> I have mingw at least
16:28:13 <oerjan> "Builds and runs nicely under any ANSI/POSIX platform"
16:30:21 -!- jix has quit (Read error: 110 (Connection timed out)).
16:32:19 <MonkeyofDoom> it's not building or running nicely on windows though
16:32:36 <MonkeyofDoom> I'm trying the 0.15 port to dos right now
16:32:40 <pikhq> Which isn't a POSIX platform.
16:35:58 -!- Tritonio__ has joined.
16:36:39 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
16:41:06 <MonkeyofDoom> yeah
16:41:29 <MonkeyofDoom> hence my current attempt with the DOS port
16:41:40 <MonkeyofDoom> which still isn't working
16:44:54 <oerjan> i haven't tried any of them but my impression from how they were used in haskell was that MinGW was to create "ordinary" windows programs but CygWin is closer to a Posix environment
16:45:07 <MonkeyofDoom> I see
16:45:41 <MonkeyofDoom> my current problem is that I've got the thing "installed" according to instructions
16:46:02 <MonkeyofDoom> but I still get errors that indicate lack of proper installation in all the other cases I've found
16:48:37 <oerjan> "Cygwin aims to provide a complete POSIX layer (similar to that found in a Linux or other Unix systems) on top of Windows, sacrificing performance where necessary for compatibility, while MinGW aims to provide only a free compiler and toolchain, prioritizing performance."
16:50:33 <oerjan> (from wikipedia:mingw)
16:54:53 <MonkeyofDoom> I suppose I can try using cygwin
16:55:04 <MonkeyofDoom> hopefully magic things work
16:56:57 -!- pikhq has quit (Remote closed the connection).
16:57:02 -!- pikhq has joined.
17:10:31 -!- Slereah_ has joined.
17:22:04 -!- Slereah has quit (Read error: 110 (Connection timed out)).
17:38:06 -!- MonkeyofDoom has quit (" magic *nix takes time and soul donation").
18:02:36 -!- jix has joined.
18:50:29 -!- Slereah_ has changed nick to Slereah.
19:01:04 -!- digital_me has joined.
19:02:34 -!- AnMaster has quit (Client Quit).
19:03:49 -!- digital_me has quit (Client Quit).
19:29:55 -!- puzzlet_ has joined.
19:30:41 -!- puzzlet has quit (Remote closed the connection).
19:53:15 -!- bsmntbombdood has quit (Connection timed out).
19:53:26 -!- bsmntbombdood_ has joined.
19:54:28 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
20:15:33 -!- puzzlet_ has quit (Remote closed the connection).
20:15:40 -!- puzzlet has joined.
20:34:36 -!- puzzlet_ has joined.
20:34:46 -!- puzzlet has quit (Remote closed the connection).
20:42:00 -!- puzzlet has joined.
20:47:00 -!- Tritonio__ has quit ("Bye...").
20:51:59 -!- puzzlet has quit (Remote closed the connection).
20:52:03 -!- puzzlet has joined.
20:52:16 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
21:02:38 -!- puzzlet_ has joined.
21:06:03 <bsmntbombdood> bah, christmas
21:07:58 -!- puzzlet_ has quit (Remote closed the connection).
21:08:09 -!- puzzlet_ has joined.
21:12:48 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
21:14:47 -!- puzzlet_ has quit (Remote closed the connection).
21:14:51 -!- puzzlet has joined.
21:29:13 -!- RedDak has joined.
21:31:57 -!- puzzlet has quit (Remote closed the connection).
21:32:01 -!- puzzlet has joined.
21:39:20 -!- puzzlet has quit (Remote closed the connection).
21:44:23 -!- puzzlet has joined.
21:53:19 -!- puzzlet has quit (Remote closed the connection).
21:53:23 -!- puzzlet has joined.
22:04:46 -!- puzzlet has quit (Remote closed the connection).
22:04:46 -!- puzzlet_ has joined.
22:13:59 -!- puzzlet_ has quit (Remote closed the connection).
22:14:00 -!- puzzlet has joined.
22:21:00 -!- puzzlet has quit (Remote closed the connection).
22:21:01 -!- puzzlet_ has joined.
22:31:14 -!- oklopol has quit (Read error: 110 (Connection timed out)).
22:32:39 -!- puzzlet has joined.
22:38:43 -!- oklopol has joined.
22:42:53 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
22:48:52 -!- RedDak has quit (Remote closed the connection).
22:58:02 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
22:58:15 -!- puzzlet has joined.
23:08:25 -!- puzzlet_ has joined.
23:08:26 -!- puzzlet has quit (Remote closed the connection).
23:45:49 -!- Jontte has quit ("Konversation terminated!").
23:46:30 -!- puzzlet has joined.
23:51:04 -!- Jontte has joined.
23:54:49 -!- puzzlet has quit (Remote closed the connection).
23:56:26 -!- puzzlet has joined.
23:56:51 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
2007-12-09
00:10:26 -!- oerjan has quit ("Good night").
00:16:36 -!- puzzlet_ has joined.
00:28:43 -!- puzzlet has quit (Connection timed out).
00:36:10 -!- Tritonio_ has joined.
00:39:38 -!- jix has quit ("CommandQ").
00:40:47 -!- puzzlet_ has quit (Remote closed the connection).
00:41:00 -!- puzzlet has joined.
00:53:22 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
00:53:45 -!- puzzlet has joined.
01:25:03 -!- iEhird has joined.
01:25:19 <iEhird> /join #web
01:25:22 <iEhird> eh
01:25:27 -!- iEhird has left (?).
01:25:58 -!- iEhird has joined.
01:26:02 -!- Jontte has quit ("Konversation terminated!").
01:26:28 <pikhq> I refuse to join #web.
01:27:02 <oklopol> i'll do it!
01:28:01 <iEhird> hahaha
01:28:18 <pikhq> The AFO and Agora's Child *also* refuse.
01:31:56 -!- iEhird has quit (Remote closed the connection).
01:33:50 -!- iEhird has joined.
01:42:46 -!- iEhird has quit (Read error: 113 (No route to host)).
01:43:15 -!- iEhird has joined.
01:50:10 -!- iEhird has quit (Remote closed the connection).
01:50:22 -!- iEhird has joined.
02:02:02 -!- iEhird has quit.
02:17:21 -!- immibis has joined.
02:17:35 -!- immibis has quit (Remote closed the connection).
03:30:06 -!- puzzlet has quit (Remote closed the connection).
03:30:10 -!- puzzlet has joined.
03:37:37 -!- puzzlet_ has joined.
03:47:59 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
03:52:52 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
03:55:13 -!- pikhq has joined.
04:21:12 <RodgerTheGreat> I'm reading a book about 6502 assembly that was written in 1979. It's great.
04:25:00 <RodgerTheGreat> I particularly enjoy the fact that when discussing high-level languages it only mentions FORTRAN, COBOL, Pascal, PL/1, APL and BASIC.
04:36:29 <RodgerTheGreat> "A bootstrap loader is a program that uses it's own first few instructions to load the rest of itself or another loader program into memory. The bootstrap loader may be in ROM, or you may need to enter it into the computer memory using front panel switches."
04:37:45 <RodgerTheGreat> Another fun feature is that "Computer user" and "Computer programmer" are used more or less interchangeably, because it's assumed anyone using a computer knows how to program it in some fashion.
04:37:50 <RodgerTheGreat> Ah, the good old days.
04:50:44 <pikhq> Oooh, retrocomputing.
04:51:54 <RodgerTheGreat> retrocomputing is where it's at
04:53:19 <RodgerTheGreat> I was once having lunch with some businesspeople and the conversation shifted to the C64. After going into a bunch of details about the chipset and intricacies of the BASIC implementation, one guy turned over to me and said "Wait... *how* old are you?"
04:53:54 <RodgerTheGreat> "erm... 19..." *priceless WTF expression*
04:55:01 <RodgerTheGreat> and Post-Indexed Indirect Addressing hurts my brain
04:55:12 * pikhq salutes you
04:56:03 <RodgerTheGreat> I will conquer this beautiful instruction set, I promise myself!
04:58:19 <RodgerTheGreat> "This mode means that the second byte of the instruction contains an address in the first 256 bytes of memory. That address and the next location contain an address which is added to the contents of the Y register to obtain the effective address."
04:58:40 <RodgerTheGreat> I'm really having difficulty imagining the cases in which this is useful.
04:59:32 <RodgerTheGreat> maybe to make it easier to re-use the constants used to point to an array or something?
05:00:58 <RodgerTheGreat> I suppose that way you wouldn't have to waste two bytes of immediate data where you can use one as a pointer and have all similar operations point to the same pair stored somewhere high in memory.
05:24:24 -!- puzzlet_ has quit (Remote closed the connection).
05:24:31 -!- puzzlet has joined.
05:41:34 -!- chatty has joined.
05:44:04 -!- chatty has left (?).
07:20:16 -!- puzzlet_ has joined.
07:32:20 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
07:55:30 -!- puzzlet_ has quit (Remote closed the connection).
07:55:37 -!- puzzlet has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:24:26 -!- Slereah_ has joined.
08:44:41 -!- Slereah has quit (Read error: 110 (Connection timed out)).
08:54:38 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
09:28:31 -!- oerjan has joined.
09:33:04 -!- puzzlet_ has joined.
09:45:04 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
09:59:55 -!- puzzlet_ has quit (Remote closed the connection).
10:01:32 -!- puzzlet has joined.
10:03:08 -!- Slereah has joined.
10:09:26 -!- puzzlet has quit (Remote closed the connection).
10:09:39 -!- puzzlet has joined.
10:34:55 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
10:35:59 -!- puzzlet has joined.
10:42:03 -!- Jontte has joined.
10:48:22 -!- puzzlet has quit (Remote closed the connection).
10:48:46 -!- puzzlet has joined.
11:22:53 -!- Tritonio__ has joined.
11:23:51 -!- Tritonio_ has quit (Read error: 104 (Connection reset by peer)).
11:25:29 -!- Tritonio__ has quit (Client Quit).
11:25:45 -!- Tritonio_ has joined.
11:32:20 -!- oerjan has quit ("Coffee").
12:05:21 -!- jix has joined.
12:07:46 -!- Jontte has quit (calvino.freenode.net irc.freenode.net).
12:08:09 -!- Jontte has joined.
12:36:55 -!- Jontte has quit (calvino.freenode.net irc.freenode.net).
12:36:55 -!- Tritonio_ has quit (calvino.freenode.net irc.freenode.net).
12:36:58 -!- jix has quit (calvino.freenode.net irc.freenode.net).
12:36:58 -!- pikhq has quit (calvino.freenode.net irc.freenode.net).
12:36:59 -!- sebbu has quit (calvino.freenode.net irc.freenode.net).
12:36:59 -!- lament has quit (calvino.freenode.net irc.freenode.net).
12:36:59 -!- puzzlet has quit (calvino.freenode.net irc.freenode.net).
12:36:59 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
12:37:01 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
12:37:01 -!- Possum has quit (calvino.freenode.net irc.freenode.net).
12:37:03 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net).
12:37:03 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
12:37:05 -!- Overand has quit (calvino.freenode.net irc.freenode.net).
12:37:05 -!- johnl has quit (calvino.freenode.net irc.freenode.net).
12:37:05 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net).
12:37:07 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
12:37:08 -!- dbc has quit (calvino.freenode.net irc.freenode.net).
12:37:08 -!- cherez has quit (calvino.freenode.net irc.freenode.net).
12:37:08 -!- DocWilco has quit (calvino.freenode.net irc.freenode.net).
12:37:09 -!- johnk has quit (calvino.freenode.net irc.freenode.net).
12:37:09 -!- mtve has quit (calvino.freenode.net irc.freenode.net).
12:38:05 -!- lament has joined.
12:38:05 -!- sebbu has joined.
12:38:05 -!- pikhq has joined.
12:38:05 -!- jix has joined.
12:38:05 -!- Jontte has joined.
12:38:05 -!- Tritonio_ has joined.
12:38:05 -!- bsmntbombdood has joined.
12:38:05 -!- GregorR has joined.
12:38:05 -!- SimonRC has joined.
12:38:05 -!- Overand has joined.
12:38:05 -!- DocWilco has joined.
12:38:05 -!- dbc has joined.
12:38:05 -!- johnl has joined.
12:38:05 -!- johnk has joined.
12:38:05 -!- mtve has joined.
12:38:05 -!- cherez has joined.
12:38:05 -!- lifthrasiir has joined.
12:38:59 -!- puzzlet has joined.
12:38:59 -!- oklopol has joined.
12:38:59 -!- sekhmet has joined.
12:38:59 -!- Possum has joined.
13:22:39 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
13:22:39 -!- puzzlet has quit (calvino.freenode.net irc.freenode.net).
13:22:39 -!- Possum has quit (calvino.freenode.net irc.freenode.net).
13:22:40 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
13:24:23 -!- puzzlet has joined.
13:24:23 -!- oklopol has joined.
13:24:23 -!- sekhmet has joined.
13:24:23 -!- Possum has joined.
14:18:31 -!- Jontte has quit (Remote closed the connection).
14:19:03 -!- Jontte has joined.
14:40:44 -!- puzzlet has quit (Remote closed the connection).
14:40:48 -!- puzzlet has joined.
15:09:07 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
15:09:12 -!- puzzlet has joined.
15:22:59 -!- jix has quit (Nick collision from services.).
15:23:09 -!- jix has joined.
15:34:09 -!- Jontte has quit (Remote closed the connection).
15:41:48 -!- Jontte has joined.
15:48:58 -!- Jontte has quit (Remote closed the connection).
15:53:17 -!- oerjan has joined.
15:55:24 -!- pikhq_ has joined.
16:02:31 -!- pikhq has quit (Read error: 110 (Connection timed out)).
16:13:34 -!- Sgeo has joined.
16:51:27 -!- puzzlet has quit (Remote closed the connection).
16:51:28 -!- puzzlet_ has joined.
16:56:35 -!- Tritonio_ has quit ("Bye...").
17:06:47 -!- puzzlet_ has quit (Remote closed the connection).
17:06:48 -!- puzzlet has joined.
17:07:35 -!- oklopol has quit (Read error: 110 (Connection timed out)).
17:10:06 -!- jix has quit (Remote closed the connection).
17:10:50 -!- jix has joined.
17:23:04 -!- Jontte has joined.
17:40:01 -!- Jontte has quit ("Konversation terminated!").
17:52:44 -!- Jontte has joined.
18:20:26 -!- cmeme has quit (Read error: 104 (Connection reset by peer)).
18:22:19 -!- cmeme has joined.
18:32:12 -!- naerian has joined.
18:32:27 <naerian> hi :)
18:34:54 <Slereah> Hi.
18:35:13 <naerian> geez, are they dead? :P
18:36:44 <Slereah> Nah. It's just slow to drum up some activity.
18:37:10 <Slereah> Give them time to take a look at their IRC window!
18:37:20 <naerian> heh. what esolang do you like most? :D
18:37:40 <Slereah> Well, I got started on brainfuck.
18:37:53 <naerian> me too. I even wrote an interpreter of it :D
18:37:59 <Slereah> But for some reason, I got back on esolangs when reading about logic.
18:38:11 <naerian> :D
18:38:15 <Slereah> For some metatheorems, I had to read about Turing machines and such!
18:38:20 * oerjan dances a skeleton dance
18:38:25 <naerian> xD
18:39:33 <naerian> i'm thinking about an water-pipe esolang :P
18:40:43 <Slereah> And running it using real waterpipes? :O
18:40:50 <Slereah> How awesome would that be.
18:40:54 <naerian> :P
18:41:17 <Slereah> "Pump harder! I need those results!"
18:41:23 <naerian> xD
18:41:42 <naerian> heh, yeah that would be nice :P
18:41:56 <Slereah> I wonder if an actual Turing machine was ever built.
18:42:04 <Slereah> With some real tape and such.
18:42:23 <naerian> i think i've read about such Turing machine...
18:42:32 <naerian> but with finite tape ofc
18:42:54 <Slereah> Infinite tape isn't cheap.
18:43:09 <Slereah> But you can sell half of it, and still have infinite tape!
18:43:38 <naerian> :D
18:51:26 <naerian> i can't find the photos of that TM now :P
18:52:07 <Slereah> I saw a very small Turing machine equivalent that used little trains.
18:52:27 <naerian> :D
18:52:36 <naerian> that had to be cool :P
18:53:20 <Slereah> http://www.monochrom.at/turingtrainterminal/pictures_eng.htm
18:53:57 <Slereah> http://www.monochrom.at/turingtrainterminal/schematics_eng.htm
18:54:55 <naerian> nice :D
18:57:56 -!- pikhq_ has changed nick to pikhq.
18:58:10 <naerian> have you saw any other projects of TM? :D
18:58:38 <Slereah> Not a whole lot.
18:59:29 * pikhq enters
18:59:35 <Slereah> Hello sir.
19:00:47 <naerian> hello, pikhq
19:00:49 <Slereah> I still have some code that was supposed to emulate a Turing machine.
19:00:53 <naerian> :D
19:01:00 <Slereah> But I don't have a very long attention span.
19:01:21 <pikhq> I have a need to find something to cod.
19:01:24 <pikhq> Code, even.
19:01:28 <naerian> :D
19:01:42 * pikhq codes up a cod
19:02:03 -!- Jontte has quit ("Konversation terminated!").
19:02:24 <Slereah> Right now, I'm trying to code up the final touch on my ludicrous calculator.
19:02:31 <naerian> :D
19:03:04 <naerian> and i'm thinking about making a small brainfuck system for Nintendo DS xD
19:03:28 <RodgerTheGreat> pikhq: implement a couple of tag systems for fun
19:03:39 <RodgerTheGreat> bitwise cyclic tag! woo!
19:04:27 <naerian> :P
19:06:06 <Slereah> http://membres.lycos.fr/bewulf/Russell/Calc9.txt
19:06:08 <pikhq> I should join the Fantasy Rules Commission and come up with a *really* annoying ordinance.
19:06:19 <Slereah> It can multiply 15 by itself in less than 2000 lines!
19:06:29 <Slereah> But, you know, with rigor.
19:06:30 <pikhq> Something that requires every further ordinance to be valid C?
19:06:51 <naerian> :P
19:07:14 <pikhq> Slereah: Call me less than impressed. *I* can shove that in 20,000 lines. :p
19:07:53 <pikhq> Hmm. A multiplication pass, with a built-in Glass interpreter, which is *only* used to call A.m?
19:08:05 <Slereah> Well, I guess you could make it all in ZFC axioms and (p|(q|r))|((s|(s|s))|((t|q)|((p|t)|(p|t)))) for propositional logic.
19:08:24 <Slereah> But I just wanted to do it with sum Peano's axioms.
19:10:46 -!- thucydides has joined.
19:11:09 <naerian> hi, thucidides
19:11:23 -!- thucydides has quit (Client Quit).
19:11:41 <Slereah> Bye, thucidides!
19:15:59 <naerian> jeez, i must go :/
19:16:03 <naerian> bye all :P
19:16:07 <Slereah> Bye.
19:16:08 -!- naerian has quit (Remote closed the connection).
19:16:27 * oerjan thinks some people need tab completion
19:16:39 <bsmntbombdood> oer: no we don't
19:17:10 <oerjan> bsmntbombdood: when you cannot spell thucydides you do
19:18:07 -!- Jontte has joined.
19:18:08 <Slereah> Tab completion doesn't work if he's not here.
19:18:41 <oerjan> that may be true.
19:19:09 <oerjan> or it might be a feature request :D
19:21:36 <RodgerTheGreat> pikhq: it would actually be more of a trick to inflate an operation like that into 20,000 lines entirely without dead or unreachable code
19:21:51 <RodgerTheGreat> and preprocessor macros don't count either!
19:22:49 <Slereah> Well, Metamath can decompose 2+2 in 23.000 steps.
19:23:10 <RodgerTheGreat> heh
19:23:32 <pikhq> RodgerTheGreat: Believe me, I can do it. :p
19:23:36 <RodgerTheGreat> that isn't exactly doing the computation, though- it's proving why it works from axioms
19:23:42 <RodgerTheGreat> pikhq: oh, I don't doubt that
19:23:51 <pikhq> First, one needs to define your numbers.
19:24:04 <pikhq> Then define addition. As a recursive algorithm.
19:24:05 <pikhq> ;p
19:24:15 <RodgerTheGreat> try to work in a couple fourier transforms
19:24:23 <Slereah> But technically, it is still computation :O
19:25:38 <Slereah> Although indeed I'm not sure if you could just enter 2+2 and get 2+2=2 at the exit. That's not exactly what's done there.
19:25:44 <Slereah> Errr, 4.
19:25:51 <oerjan> yay, Schnhage-Strassen
19:26:49 <RodgerTheGreat> "2 plus 2 is... 10. IN BASE 4, I'M FINE!"
19:27:39 <Slereah> IT ARE s(s(s(s(0))))
19:27:44 <Slereah> Damn your bases!
19:28:11 -!- oklopol_ has joined.
19:28:29 <RodgerTheGreat> Damn your lambda calculus!
19:28:36 <oerjan> ALL YOUR B*HIT BY FALLING PIANO*
19:28:44 <RodgerTheGreat> heh
19:29:02 <Slereah> I don't know much lambda calculus
19:29:04 <pikhq> But what's more fun then defining all numbers via Church numerals?
19:29:08 <pikhq> Speaking of which. . .
19:29:36 <pikhq> GregorR: Let Plof type "int" be castable to a function. ;)
19:43:28 <Slereah> I hate getting back on old code.
19:43:35 <Slereah> "What the fuck was that guy thinking?"
19:43:43 <Slereah> This is the mystery on the table!
19:48:16 -!- oklopol_ has changed nick to oklopol.
20:48:33 <RodgerTheGreat> that's the thing about coding- the better you get the more you hate your past self
20:49:08 <RodgerTheGreat> In the past, I'd hack shit together. nowadays I try to write code hoping future self will approve.
20:49:51 <oklopol> heh
20:50:31 <Slereah> Heh.
20:50:47 <Slereah> Problem is, I kinda suck right now too :o
20:50:54 <oerjan> heH:
20:58:09 <oklopol> Slereah: were you the one who started at the age of 19?
20:58:48 <Slereah> Yes.
20:59:08 <Slereah> And even right now, we don't learn any programming.
20:59:18 <Slereah> Just some integration algorithm.
20:59:22 <oklopol> how old are you?
20:59:26 <Slereah> 21.
21:00:15 <Slereah> There was an optional class about computation, computability and all that, but it got canceled before I could apply
21:00:36 <oklopol> what country? and no, i'm not going to whois!
21:00:41 <Slereah> France.
21:00:57 <oklopol> they're cancelling everything interesting here too
21:01:10 <oklopol> the institute is prolly empty once i get there :P
21:01:21 <oklopol> (not officially in yet)
21:03:07 <Slereah> I'll try to sneak in some CS class next year!
21:05:45 <Slereah> The cancelation made me sad, because the rest of the optional classes are horrible.
21:09:09 <oklopol> heh, i've spent hours just browsing the courses they have here :P
21:09:50 <oklopol> "uhhh i want that one.. and oh my god that's awesome.. wow, they have a course on cellular automata 8DD"
21:10:01 <Slereah> Heh.
21:10:18 <Slereah> We don't have a whole lot of that, and I have access to even less, since I do physics.
21:11:06 -!- ehird` has joined.
21:38:24 -!- jix has quit ("CommandQ").
22:30:59 <bsmntbombdood> fuckers plowed the streets
22:31:05 <bsmntbombdood> makes skiiing hard >_<
22:31:39 <ehird`> skiiiiiiiiiiiiing
22:36:09 <oklopol> ski'ing is always hard, this is why most people name their parameters
22:41:27 <pikhq> I much prefer sk'ing.
23:08:59 -!- Jontte has quit (Remote closed the connection).
23:13:45 -!- Jontte has joined.
23:14:22 -!- Jontte has quit (Remote closed the connection).
23:14:58 -!- Jontte has joined.
23:51:52 -!- sebbu has quit ("@+").
2007-12-10
00:12:05 <bsmntbombdood> maybe i'll ski to school tommorow
00:14:13 <oklopol> :<
00:14:16 <oklopol> we have rain here...
00:15:18 * pikhq reboots for kernel
00:16:32 <oerjan> in Trondheim we have a snow, rain, ice, hip bone fracture cycle :/
00:17:00 <oerjan> which currently is firmly in the ice stage
00:18:40 <oklopol> hip bone?
00:18:43 -!- pikhq has quit (Connection reset by peer).
00:19:05 -!- pikhq has joined.
00:20:22 <ehird`> hmm, the dialect of lisp in my head is pretty esoteric
00:20:25 <oerjan> hip or leg, i guess
00:20:49 <ehird`> e.g. for one thing (although this isn't THAT esoteric), you can marshal continuations to a bytestring
00:22:51 <oerjan> fun fact: if you put gravel on ice to make it safe to walk, and it then snows/rains a bit, the gravel gets embedded in the ice so it only _looks_ safe.
00:23:59 <ehird`> awesome
00:24:26 <oklopol> i don't fall on ice, ice falls under me
00:24:55 <oklopol> i guess that makes me chuck norris or something
00:25:18 <oerjan> depends. do you cry?
00:25:19 <DocWilco> ice rises up to smack you
00:27:31 <ehird`> hmm, i don't think my formatting lang is crazy enough
00:27:42 <ehird`> it's more like printf than cl's format :-)
00:27:56 <oerjan> is it TC yet?
00:29:53 <ehird`> no :-(
00:30:11 <ehird`> it does have a loop construct, though!
00:30:46 <ehird`> not sure about the syntax, but i'm thinking ^l{element,generator,...}
00:31:24 <ehird`> ^l{x,(cdr some-list),^?{(car x)}
00:31:27 <ehird`> that's crazy
00:31:34 <oklopol> that's lisp for ya
00:31:46 <ehird`> that could barely be called lisp :-)
00:32:00 <ehird`> methinks i should replace the formatting lang with some way of embedding lisp
00:32:34 <ehird`> like, ~"Hello, #\thing!"
00:32:42 <ehird`> ~"Hello, #\(car thing)!"
00:33:07 <ehird`> ~"Hello, \#\! I typed that in as: \\\#\."
00:33:18 <ehird`> oklopol: oerjan: that seems a bit too sane, doesn't it? :-)
00:34:03 <oklopol> hmm
00:34:34 <oklopol> quite nice
00:34:41 <oklopol> so REMOVE IT
00:34:48 <ehird`> you could do ~expr too to apply it on a string
00:35:08 <oklopol> i'm so tired i think i'll write a song about it
00:35:15 <ehird`> templating language = (in <context-you-want-to-run-the-template-in> ~templ) :P
00:37:18 <ehird`> actually, maybe the root of my problem is: this kind of fucking sucks
00:37:30 <ehird`> instead: concat operator ~
00:37:39 <ehird`> (~ "Hello, " thing "!")
00:37:46 <ehird`> (~ "Hello, " (car thing) "!")
00:37:58 <ehird`> (~ "Hello, #\! I typed that in as, er.... #\.")
00:40:08 <ehird`> Which will basically be (defproc (~ . args) (apply append (map ->string args)))
00:42:35 <ehird`> oklopol: it's not very esoteric now is it
00:43:33 <oklopol> indeed not
00:43:51 <oklopol> (apply append (...))?
00:43:56 <oklopol> why not append
00:44:16 <oklopol> actually not sure what apply is, possibly.
00:44:46 <oklopol> i guess it might be reduce or something
00:45:14 <ehird`> (apply x '(1 2 3)) -> (x 1 2 3)
00:45:25 <oklopol> :O
00:45:32 <oklopol> i see.
00:45:37 <ehird`> (defproc (~ . args) ...) ; args is a list, but of course append takes many arguments and shoves them together, so we need to use apply
00:45:45 <ehird`> to explain
00:45:49 <ehird`> the translation of ~ to python is
00:46:08 <ehird`> define tilde(*args): append(*map(to_string, args))
00:46:15 <ehird`> err, s/define/def and add a return
00:46:16 <ehird`> but yeah
00:46:30 <oklopol> oerjan: i often cry because of my malfunctioning eyes, never because i'm sad; is that a problem regarding chuck'ness?
00:47:19 <ehird`> oklopol: Screen brightness. Turn it down. :P
00:47:44 -!- puzzlet_ has joined.
00:48:00 <oklopol> append?
00:48:07 <oklopol> i didn't know python had that as a function
00:48:17 <oklopol> neither does my python interp :\
00:48:26 <ehird`> it doesn't
00:48:29 <ehird`> it was a direct translation
00:48:29 <oklopol> oh
00:48:33 <ehird`> the idea is to figure out what apply does
00:48:50 <ehird`> here's a definition of apply in python
00:48:57 <ehird`> def apply(func, args): return func(*args)
00:48:59 <ehird`> you see?
00:50:34 <oklopol> oh
00:50:37 <oklopol> right.
00:51:49 <ehird`> :-)
00:52:39 <oklopol> need... sleep
00:55:27 -!- ehird` has quit (Remote closed the connection).
00:55:45 <oerjan> oklopol: i am not sure. check the cancer-curing properties.
00:56:25 <oklopol> !check cancer curing properties
00:56:52 <oklopol> cccp
00:57:02 <oerjan> oh dear
00:57:20 <oklopol> you filthy communist or something
00:57:54 <oerjan> i am just thinking that the collapse of the soviet union lost us the cure for cancer
00:57:56 -!- puzzlet has quit (Connection timed out).
00:58:06 <oklopol> the screen brightness can't really be an issue, since i've had multiple screens, and they hurt with any screen
00:58:46 <oklopol> also, it's weird how i think of an answer right away, but for some reason answer much later, even if the guy has already gone
00:59:03 <bsmntbombdood> fractured hip
00:59:46 <oerjan> we are approaching a black hole, strange time dilation observed
01:00:10 <bsmntbombdood> i thought only old people fractured their hips
01:00:41 <oerjan> mostly so i guess
01:01:06 <oklopol> young people don't have hips, hips are something you get with menopause
01:01:26 <oerjan> apparently scandinavia also has the world's highest incidence of osteoporosis, or something
01:01:56 <oklopol> that's mainly because the polar bears eat the cows.
01:02:33 <oerjan> i am not sure, because i also think we have some of the highest milk intake
01:03:28 <oerjan> i even vaguely recall someone suggesting milk might actually _hurt_ bone calcium, in some perverse way
01:03:51 <oerjan> now that was probably dubious even when i read/heard it
01:05:57 <pikhq> I'd suspect genetic influence.
01:06:00 <oklopol> you can scientifically prove anything
01:06:36 <pikhq> oklopol: Actually, you can't scientifically prove anything: science cannot prove, only guess, observe, and disprove.
01:06:39 <bsmntbombdood> oerjan is old enough to be my dad
01:07:17 <oklopol> i'm old enough to be my own dad
01:07:20 <pikhq> oerjan can't be *that* old.
01:07:52 <pikhq> Just because he's got a Ph.D. doesn't make him quite that old. ;)
01:08:03 <oklopol> oerjan is 32
01:08:28 <oerjan> why thank you.
01:08:35 <bsmntbombdood> hmm nevermind then
01:08:36 <oklopol> some people ask, i give incorrect information and wait for things to happen
01:08:37 <oerjan> but actually, 37.
01:08:38 <oklopol> oh, right
01:08:41 <bsmntbombdood> he would have to be a very young dad
01:08:45 <oklopol> age doesn't work that way.
01:08:46 <bsmntbombdood> oh, that's more like it
01:08:51 <pikhq> So, he's moderately close to how old my mom is.
01:09:18 <oklopol> have i told the story of how i almost became a dad when i was 15
01:09:45 <bsmntbombdood> that oklopol
01:09:53 <oklopol> i guess i just told it
01:09:56 <bsmntbombdood> didn't your mommy teach you to use protection?
01:10:01 <oklopol> :D
01:10:12 <oklopol> i don't like condoms
01:10:43 <oklopol> but let's try to keep the conversation non-genitaley for once?
01:11:03 <oklopol> conversations should only be about sex and programming
01:11:19 <oerjan> software exchange ftw
01:11:32 * pikhq programs sex
01:11:50 <oklopol> uhh small deja vu
01:12:59 <bsmntbombdood> sexbot passes turing-test!
01:14:48 <oklopol> yep, no surprise
01:15:09 <oklopol> wonder if i should read one chapter more, watch an fg or go to sleep
01:15:27 <pikhq> In that order.
01:16:01 <oklopol> well, who am i to say no
01:16:07 * oklopol reads
01:16:28 <oklopol> only 42 pages
01:16:39 -!- RobHu has joined.
01:16:56 <bsmntbombdood> what are you reading?
01:20:07 -!- RobHu has left (?).
01:26:45 <oklopol> i think i'm reading the art of assembly language
01:27:05 <oerjan> DAMN, r.e.s. is dense.
01:27:21 <oerjan> *cough*
01:28:04 <oklopol> you mean bob wyatt?
01:28:11 <oklopol> answers.com never fails
01:28:37 <oerjan> now, i mean the one on our wiki.
01:28:49 <oerjan> *no
01:30:31 <oklopol> ah, the nothing
01:30:42 <oklopol> i disagree, i think nothingness is far from dense
01:31:16 <oerjan> DAMN, oklopol is dense. on purpose, even.
01:31:45 <oklopol> :D
01:32:28 <pikhq> r.e.s.?
01:32:43 <oklopol> well, yes, that's what i meant with "bob wyatt"
01:32:45 <oerjan> we're having an argument. :)
01:32:54 <oklopol> oh, right
01:33:05 <oklopol> oerjan: shut up you disoriented fool!
01:33:25 <pikhq> I see.
01:33:37 * oklopol still doesn't
01:34:06 <oerjan> oklopol: Talk:Brainhype
01:34:26 <pikhq> I looked at the recent changes, saw a *lot* of stuff from R.e.s
01:35:04 <pikhq> It's computable because you could use an oracle to interpret it? WTF?
01:35:14 <pikhq> I see he doesn't know what "computable" means.
01:36:36 <oklopol> not sure what's hard to exist in gravity
01:37:09 <oklopol> also, why does he mention gravity if he hasn't bothered to read the 50 lines of it on the wiki :P
01:37:25 <oklopol> let's all mock him now, yes?
01:37:30 <oklopol> why ain't i reading...
01:41:46 <pikhq> Although I love how Brainhype seems to profess to claim to solve the halting problem for Brainhype.
01:58:18 <oklopol> argh
01:58:20 <oklopol> can't read
01:58:22 <oklopol> must
01:58:24 <oklopol> sleep ->
01:58:27 <pikhq> http://en.wikipedia.org/wiki/Colorado_Springs_church_shooting
01:59:44 -!- puzzlet_ has quit (Remote closed the connection).
01:59:48 -!- oerjan has quit ("fix('Z':)").
02:01:21 -!- puzzlet has joined.
02:08:19 -!- puzzlet_ has joined.
02:10:17 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
02:13:23 -!- puzzlet_ has joined.
02:14:59 <bsmntbombdood> pikhq: again, terrible performance
02:20:19 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
02:22:30 -!- puzzlet has joined.
02:32:55 -!- puzzlet_ has quit (Connection timed out).
04:45:41 -!- puzzlet has quit (Remote closed the connection).
04:46:28 -!- puzzlet has joined.
04:53:27 -!- puzzlet_ has joined.
05:02:57 -!- poiuy_qwert has joined.
05:03:46 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
05:08:42 -!- puzzlet has joined.
05:10:56 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
05:49:26 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
06:11:14 -!- puzzlet has quit (Remote closed the connection).
06:11:16 -!- puzzlet_ has joined.
06:27:48 -!- puzzlet_ has quit (Remote closed the connection).
06:27:49 -!- puzzlet has joined.
06:45:29 -!- poiuy_qwert has quit.
07:15:11 -!- puzzlet_ has joined.
07:15:12 -!- puzzlet has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:48:27 <oklopol> lol... someone tell me a good way to reverse a list in bf :D
09:48:33 <oklopol> this is fucking huge :\
09:48:34 <oklopol> [<-[+<<-]+<[[->+<]+[>[->>+<<]>]>[->>+<<]>[>[->>+<<]>]>[-<+>]<-[<<]<]<]>>>[>>]<<[->>+<<]>>
09:49:08 <oklopol> pebble to the rescue?
09:50:03 <dbc> Let me see.
09:51:14 <oklopol> i can give you the version vwith comments
09:51:21 <oklopol> unless you wanna decipher yourself
09:51:38 <oklopol> well, not really comments, just the same thing in pseudocode
09:51:56 <oklopol> wellll, almost the same
09:53:05 <oklopol> http://www.vjn.fi/pb/p655362262.txt the notation is in no way consistent, but the examples may show what it does, unless you already found out
09:53:28 <oklopol> x's are the list to reverse, it can't contain zeroes
09:54:00 <dbc> Thanks.
09:54:03 <oklopol> it's just i'm pretty sure there's a "oneliner" for that
09:55:32 <oklopol> curr-=n sometimes means to move the pointer, sometimes to change the value xD
09:56:03 <dbc> There was a contest a while ago to reverse a zero-terminated byte string. Judged on prog length * mem use * commands executed, I think, but the shortest was Bertram Felgenhauer's here >[[[>]>+<<[<]>-]>[[<+>-]>]<<]>>>[[<<+>>-]>]<<<<[<]
09:56:19 <oklopol> oh
09:56:25 <oklopol> then i consider mine well enough
09:56:26 <dbc> Although I'm thinking with all the known 1s it must be possible to do better.
09:56:40 <oklopol> they're not known
09:56:43 <oklopol> they are added
09:56:49 <oklopol> x's are the list
09:56:57 <oklopol> 1's are to help me reverse it...
09:57:02 <dbc> I mean, after they're added, then they're known. I.e. by the time the reverse happens those bytes are known to be 1.
09:57:10 <oklopol> ah, well yeah
09:58:42 <oklopol> i was fearing you could do that somehow just as simply as reversed catting
09:59:01 <oklopol> not that i have any idea what that code does.
10:00:14 <oklopol> heh, you know you haven't done brainfuck for a while when you consider reversing a string a trivial task :D
10:00:32 <oklopol> or, you have done it a lot.
10:00:34 <oklopol> either way...
10:02:40 <oklopol> hmm, actually
10:02:44 <oklopol> i'm a fucking idiot.
10:02:58 <dbc> Yeah? You don't need to reverse it at all?
10:03:17 <oklopol> i could easily make mine a lot faster + shorter
10:03:37 <oklopol> i just realized i can actually move bytes longer distances than a constant one
10:03:42 <oklopol> with [>>] loops
10:03:46 <dbc> Right.
10:03:53 <oklopol> [+[>>]-[<<]]
10:03:55 <oklopol> or something
10:04:19 <oklopol> didn't occur to me, loooong time since i last did brainfuck, and i'm fairly sure i was a steenking noob back then
10:04:31 <dbc> Ah.
10:04:44 <oklopol> and, well
10:04:49 <oklopol> not sure whether i need to reverse
10:04:56 <oklopol> i need input in reverse
10:05:09 <oklopol> but... i have right-extended memory
10:05:26 <oklopol> if i don't reverse it, i'll get complications later
10:07:22 <dbc> Might shift the whole thing right with each input byte. Probably not actually any slower.
10:07:52 <dbc> >,[[>]<[[>+<-]<]>,] or something.
10:08:42 <oklopol> it shifts
10:08:47 <oklopol> i mean, mine
10:08:53 <oklopol> ooooh
10:09:10 <oklopol> sorry, i forgot the context completely there :P
10:09:45 <oklopol> so obvious, should've thought of that
10:10:09 <oklopol> it's just it's slow to change ordo intuition when switching between languages
10:10:22 <dbc> Or if you wanted the ones for something other than reversing, more like >,[[>]<[[>>+<<-]<]>>+<,] I think.
10:10:57 <oklopol> i see you have the skill.
10:11:25 <dbc> Nah, I just barely switch. I rarely write anything except in C or brainfuck.
10:13:04 <oklopol> what more could a programmer possibly need
10:13:11 <dbc> :)
10:15:04 <oklopol> after trying python, i've become so lazy it was real hard for me to actually get started on my bf project... it's scary when there's actually a possibility there's an error in my code!
10:15:15 <oklopol> well, not trying, using for a few years
10:15:33 <oklopol> or one... i can't assess time really
10:15:56 <oklopol> hmm
10:15:58 <oklopol> "assess"
10:16:09 <oklopol> well, close enough
10:18:03 <dbc> What's the project, just out of curiosity?
10:18:34 <oklopol> i actually did have an error there, wrote [>-<+]-[<<] when should've had >[-<+>]<-[<<]
10:18:38 <oklopol> oh
10:19:11 <oklopol> thought i'd try making a brainfuck interpreter for unlambda, although quickly changed it to making ski in brainfuck for unknown reasons ;)
10:19:31 <oklopol> in bf code, i'm currently at getting input :D
10:19:40 <oklopol> although, i've had about an hour of coding sofar
10:19:41 <dbc> :)
10:20:07 <oklopol> i have the algo a bit further on paper, shouldn't be hard to make, but fucking tedious
10:20:40 <dbc> Right.
10:21:01 <oklopol> pikhq: have you thought about making something a bit more high-level than pebble, where you could do stuff like [set a [+ [* 8 c] b]]
10:21:29 <oklopol> "right" as in "shuuuure...."? :P
10:21:54 <dbc> "Right" as in "Yeah, tedious.".
10:23:02 <dbc> And probably really hard to make concise and graceful.
10:23:15 <oklopol> i've tried making ski once in an imperative language, it was the ti-89 basic on my calculator, the implementation as far as i got it was quite interesting, for example, used pictures for a stack :P
10:24:06 <oklopol> yeah, for the actual computation part it'd be nice to get something a bit prettier than a reversing algo that leaves random shit behind :P
10:24:14 <oklopol> (hope you didn't run my reverser...)
10:24:27 <dbc> I didn't.
10:24:53 <oklopol> it leaves behind ones in place of the original values, plus a one at the beginning
11:22:36 -!- oerjan has joined.
11:41:15 -!- Tritonio_ has joined.
13:33:18 -!- Tritonio_ has quit (Remote closed the connection).
13:35:12 -!- cherez has quit (Read error: 110 (Connection timed out)).
13:38:00 -!- tegelane has joined.
13:38:08 -!- tegelane has left (?).
14:17:40 -!- oerjan has quit ("9876543210").
14:31:49 -!- jix has joined.
14:54:53 -!- ehird` has joined.
15:07:51 -!- Jontte has quit (Remote closed the connection).
15:07:58 -!- Jontte has joined.
15:13:12 -!- lament has quit (Remote closed the connection).
15:13:20 -!- lament has joined.
15:34:57 -!- Jontte has quit (Remote closed the connection).
15:38:12 -!- Jontte has joined.
15:43:04 <Slereah> Yay!
15:43:14 <Slereah> I succeeded with that first Turing machine program on mine!
16:04:46 -!- Jontte has quit ("Konversation terminated!").
16:08:37 <ehird`> hmm
16:08:43 <ehird`> someone rate the esotericness of this idea:
16:09:04 <ehird`> A Scheme implementation that converts to CPS. (Wait, but that isn't esoteric? Chicken does that.) Ah yes -- but it's an interpreter!
16:25:04 <ehird`> ok apparently that doesn't suprise people
16:30:05 <Slereah> Either that or noone's reading.
16:32:04 <ehird`> Slereah: you are, evidently :\-)
16:32:41 <Slereah> Yes, but barely understand your words!
16:40:11 <ehird`> hehe
16:40:17 <ehird`> cps=continuation-passing-style
16:43:40 -!- sebbu has joined.
16:50:37 -!- cherez has joined.
16:56:05 <ehird`> oklopol: it's also written in python, so it will be 10x more crazy than your impl
17:23:56 <Slereah> Rargh.
17:24:40 <Slereah> I can't get some program working, and I don't know if it's because of my interpreter or if I entered it wrong.
17:24:51 <Slereah> I need to find an easier way of typing it in.
17:28:42 -!- jix has quit (Nick collision from services.).
17:28:52 -!- jix has joined.
17:29:12 <ehird`> what lang?
17:30:06 <Slereah> I wrote a Turing machine in Python.
17:30:21 <Slereah> And I'm trying to type in this : http://www.abelard.org/turpap2/tp2-ie.asp#section-3
17:30:29 <Slereah> The "001011011101111011111" one.
17:31:06 <Slereah> Since my program asks for every step, it is frustrating to type it.
17:31:20 <ehird`> a 2d program then
17:31:24 <Slereah> Hm?
17:31:28 <ehird`> also: make it read from the file
17:31:30 <ehird`> a file
17:31:55 <Slereah> Well, right now, I'll be happy if I can just copypasta the whole Turing program.
17:32:04 <ehird`> Well, evidently you can't
17:32:20 <Slereah> Well, it can't be bigger than a hundred chars.
17:32:40 <Slereah> If I find a way for the program to read it in one go.
17:33:28 <ehird`> what is this interp written in
17:33:36 <Slereah> Python.
17:34:28 <Slereah> So far, it's that : http://membres.lycos.fr/bewulf/Russell/turing.py
17:34:54 <ehird`> Slereah: can i suggest formatting your code? :-)
17:35:08 <Slereah> Can I suggest defining the word "formatting"?
17:35:22 <Slereah> If it means "Clean that thing up", it would be a nice idea.
17:38:22 <ehird`> for a start, add more spaces around binary operators and 'print'
17:38:28 <ehird`> remove the spaces around your function calls
17:38:35 <ehird`> and indent to 4 spaces (python standard)
17:38:35 <ehird`> :-)
17:38:46 <Slereah> Oh.
17:38:56 <Slereah> I don't really pay attention to that.
17:39:12 <ehird`> others who may want to read your code do!
17:39:16 <ehird`> but anyway
17:39:23 -!- oerjan has joined.
17:39:32 <ehird`> why not just read the stuff from a file
17:39:36 <ehird`> instead of your raw_inputs
17:39:57 <Slereah> The main reason is that so far, I haven't tried file input in Python.
17:40:08 <Slereah> And I had a bad experience with it in C.
17:40:28 <ehird`> open(filename).read() -> string
17:40:35 <ehird`> gives the whole file.
17:40:49 <ehird`> for better closing:
17:40:54 <ehird`> try:
17:41:00 <ehird`> f = open(filename)
17:41:04 <ehird`> text = f.read()
17:41:06 <ehird`> finally:
17:41:08 <ehird`> f.close()
17:41:10 <Slereah> Well, if I first make the raw_input thingy, I can see how it works and then change the source of the string from raw_input to the file.
17:41:17 <ehird`> but you're having problems.
17:41:19 <ehird`> so just do that.
17:41:20 <ehird`> QED.
17:41:39 <Slereah> Well, the problem is just typing all the instructions everytime.
17:41:56 <Slereah> Since I have to confirm everystep, I can't just copypasta it.
17:42:51 <ehird`> so remove the confirm
17:43:07 <Slereah> That's what I'm doing.
17:43:50 <Slereah> But I can't just write one line to do that, as far as I know.
17:45:44 <oerjan> well if you didn't make a function for confirmation in the first place...
17:46:09 <oerjan> if you did, replacing it with a dummy one should be simple
17:46:35 <Slereah> Well, as you can see, there's a whole lot of raw_input.
17:47:29 <oerjan> actually i cannot since i didn't note the url
17:47:36 <Slereah> Oh.
17:48:00 <oerjan> snatching from logs
17:49:18 <oerjan> well, global search and replace should fix that
17:49:34 <oerjan> i.e. rename it to your own function.
18:14:25 -!- Jontte has joined.
18:50:49 -!- Sgeo has joined.
19:37:26 -!- Slereah_ has joined.
19:50:38 -!- Slereah- has joined.
19:50:38 <Slereah-> Aaaargh
19:50:38 <Slereah-> Too much Slereah.
19:50:41 -!- Slereah has quit (Nick collision from services.).
19:51:05 -!- Slereah- has changed nick to Slereah.
19:51:25 <Slereah> I think I did it.
19:51:40 <Slereah> It probably won't go down as the cleanest code in history, but it seems to work.
19:58:48 <Slereah> http://membres.lycos.fr/bewulf/Russell/
19:58:54 <Slereah> http://membres.lycos.fr/bewulf/Russell/Hello%20world!.txt means I
20:02:51 -!- Slereah- has joined.
20:04:01 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
20:08:39 -!- Slereah_ has joined.
20:08:59 -!- Slereah has quit (Nick collision from services.).
20:09:03 -!- Slereah_ has changed nick to Slereah.
20:09:51 <Slereah> http://membres.lycos.fr/bewulf/Russell/Hello%20world%202.txt
20:10:05 <Slereah> Thar.
20:19:03 -!- ehird` has quit (Read error: 113 (No route to host)).
20:22:22 -!- puzzlet has joined.
20:22:23 -!- puzzlet_ has quit (Remote closed the connection).
20:23:25 <oerjan> R.I.P., i say
20:30:07 -!- ehird` has joined.
20:32:12 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
20:35:42 <bsmntbombdood> feck
20:37:11 <ehird`> fuck
20:38:50 <bsmntbombdood> "It was like passing through checkpoints," he said. "But I had Wikipedia and a few other sites open, so it was not so difficult really."
20:38:54 <bsmntbombdood> http://abcnews.go.com/print?id=3973925
20:51:24 -!- jix has quit ("CommandQ").
20:56:43 <oerjan> that reminds me of an old comedy series here in norway (which i think actually was translated from britain)
20:57:18 <oerjan> in which the main character called Nikita Krushchev
20:57:29 <GregorR> Hahahah
20:57:31 <GregorR> That = awesome
20:57:52 <oerjan> oh wait, it was Breshnev
20:58:16 <oerjan> i think
21:00:49 <bsmntbombdood> --EDITOR QUIZ TIME--
21:00:53 <bsmntbombdood> what editor do you use?
21:02:06 <oerjan> vim
21:05:14 <GregorR> cat
21:05:43 <oklopol> dog
21:05:54 <ehird`> various things
21:06:01 <oklopol> (bet cha didn't see that coming xD)
21:06:05 <ehird`> i toy with writing my own often
21:06:48 * oerjan calculates what oklopol owes him
21:07:23 <oerjan> you are _so_ predictable
21:10:34 -!- Tritonio_ has joined.
21:29:51 -!- puzzlet_ has joined.
21:40:10 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
21:43:10 -!- RedDak has joined.
21:50:32 -!- Slereah_ has joined.
22:09:50 -!- Slereah has quit (Read error: 110 (Connection timed out)).
22:12:27 -!- Arrogant has joined.
22:18:51 <lament> i use an editor, yes.
22:19:30 <bsmntbombdood> groundbreaking, this one
22:29:56 -!- Arrogant has quit ("Leaving").
22:38:53 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
22:44:37 -!- puzzlet has joined.
22:54:55 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
23:03:51 -!- puzzlet has quit (Remote closed the connection).
23:11:42 -!- SuicideSalmon has joined.
23:12:06 -!- puzzlet has joined.
23:42:37 -!- Tritonio_ has quit (Remote closed the connection).
23:44:27 -!- Tritonio_ has joined.
2007-12-11
00:01:36 -!- ihope_ has joined.
00:03:13 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
01:14:20 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)).
01:14:21 -!- RodgerTheGreat_ has joined.
01:22:00 -!- sebbu has quit ("@+").
01:33:47 -!- call-cc has joined.
01:33:47 <call-cc> hello, testing.
01:33:55 -!- call-cc has quit (Read error: 104 (Connection reset by peer)).
01:34:24 -!- call-cc has joined.
01:34:24 <call-cc> hello, testing.
01:34:26 -!- call-cc has quit (Remote closed the connection).
01:35:20 -!- call-cc has joined.
01:35:20 <call-cc> hello, testing.
01:35:25 <ehird`> excellent. very excellent
01:35:28 * ehird` disappears now
01:35:29 -!- call-cc has quit (Remote closed the connection).
01:38:31 -!- ehird` has quit (Remote closed the connection).
01:38:48 -!- immibis has joined.
01:49:15 -!- puzzlet has quit (Remote closed the connection).
01:49:17 -!- puzzlet_ has joined.
02:12:57 -!- Sgeo has joined.
02:19:53 <pikhq> oklopol: Thought, yes. Did anything, no.
02:30:26 -!- SuicideSalmon has quit ("Leaving").
02:46:33 * immibis wonders if an irc logging bot that connects to a webpage anytime anyone says anything is a good idea after all.
02:46:47 <ihope_> Sure.
02:47:00 <ihope_> Maybe. Maybe you should use HTTP/UDP.
02:47:36 <immibis> the channel has just me, the log bot, ChanServ, and the bot CIA-5.
02:47:40 <ihope_> Or keep the connection open, though that's not really connecting. Or just hope the TCP overhead isn't too big.
02:47:48 <ihope_> What will CIA-5 say?
02:47:52 <immibis> when it's up that is. where is cia-5 anyway?
02:48:00 * immibis asks
02:48:15 -!- oerjan has quit ("Good nit").
02:48:22 * ihope_ makes intelligence agency farewell jokes
02:51:06 -!- puzzlet_ has quit (Remote closed the connection).
02:51:09 -!- puzzlet has joined.
03:03:42 -!- pikhq_ has joined.
03:09:22 -!- pikhq has quit (Nick collision from services.).
03:09:24 -!- pikhq_ has changed nick to pikhq.
03:31:35 -!- pikhq_ has joined.
03:31:48 -!- pikhq has quit (Nick collision from services.).
03:31:53 -!- pikhq_ has changed nick to pikhq.
05:08:02 -!- RodgerTheGreat_ has quit.
05:11:01 -!- puzzlet has quit (Remote closed the connection).
05:11:02 -!- puzzlet_ has joined.
05:49:05 <Slereah_> http://www.99-bottles-of-beer.net/language-turing-machine-474.html
05:49:13 <Slereah_> What does the "cr" mean?
05:51:58 <Slereah_> Also is that a "1000" used as a character?
05:52:24 <dbc> "carriage return".
05:52:50 <Slereah_> Oh.
05:53:22 <Slereah_> Thanks.
05:55:44 <dbc> And it's a 1000 used as a tape symbol, which when encountered in the right circumstances (state is 200) will change the state to 1000.
05:57:02 <Slereah_> 'kay.
05:57:06 <Slereah_> I'll just use .
05:57:27 <dbc> The reason this program is so long is that this person is trying to use Turing machine language as a structured programming language, I suspect.
05:57:59 <Slereah_> Is the "?" used to mean "any other symbol"?
05:59:11 <dbc> It looks like it.
05:59:31 <Slereah_> Good enough.
06:02:26 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
06:08:27 <Slereah_> Damn. List index out of range.
06:08:40 <Slereah_> Where's that error.
06:10:01 <Slereah_> Ah, found it.
06:15:22 -!- faxathisia has joined.
07:09:24 -!- puzzlet_ has quit ("leaving").
07:29:25 -!- ELIZA has joined.
07:30:15 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
07:35:39 -!- ELIZA has joined.
07:36:54 * immibis has a working eliza bot
07:37:20 <immibis> ...which was just the source code of a java applet, with an irc part to it.
07:38:34 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
07:41:10 -!- ELIZA has joined.
07:45:02 <ELIZA> HELLO
07:45:12 <ELIZA> I
07:45:14 <faxathisia> ELIZA: HELLO
07:45:15 <ELIZA> How do you do. Please state your problem.
07:45:30 <immibis> you don't need to shout
07:45:35 <immibis> it's case-insensitive
07:45:40 <oklopol> :D
07:46:14 <oklopol> ELIZA: what's the square root of life?
07:46:14 <ELIZA> I'm not sure I understand you fully.
07:46:19 <oklopol> ELIZA: what's the square root of 9 then?
07:46:19 <ELIZA> Please go on.
07:46:24 <oklopol> hmm
07:46:39 <oklopol> ELIZA: please answer better
07:46:40 <ELIZA> What does that suggest to you ?
07:46:42 <immibis> it's not very smart, it's just a java applet taken off the internet and hooked up to irc.
07:46:45 <oklopol> :D
07:47:06 <oklopol> yarrr
07:47:34 <immibis> you're welcome to send me a better script if you want http://chayden.net/eliza/script http://chayden.net/eliza/instructions.txt
07:48:26 <faxathisia> ELIZA: I was wrong
07:48:27 <ELIZA> Were you really ?
07:48:40 <immibis> eliza: You - not me - are a computer.
07:48:41 <ELIZA> Do computers worry you ?
07:48:44 <immibis> eliza: You - not me - are a computer.
07:48:45 <ELIZA> Why do you mention computers ?
07:48:53 <immibis> eliza: You - not me - are one.
07:48:53 <ELIZA> Why do you think I not you ?
07:48:57 <immibis> ah ha
07:49:02 <oklopol> :D
07:49:15 <oklopol> ELIZA: can you be?
07:49:15 <ELIZA> You believe I can be don't you ?
07:49:25 <oklopol> ELIZA: you bet i can
07:49:26 <ELIZA> We were discussing you -- not me.
07:49:33 <faxathisia> ELIZA: Do you believe that dreams have something to do with your problems?
07:49:34 <ELIZA> What does that dream suggest to you ?
07:49:59 <immibis> ELIZA: What dream?
07:49:59 <ELIZA> Do you dream often ?
07:50:05 <immibis> ELIZA: Why do you care?
07:50:06 <ELIZA> Why do you ask ?
07:50:28 <immibis> ELIZA: Because I want to know what YOU think about the question I asked back then which is a few minutes ago.
07:50:29 <ELIZA> Is that the real reason ?
07:50:34 <immibis> ELIZA: Maybe
07:50:35 <ELIZA> You don't seem quite certain.
07:50:40 <immibis> ELIZA: NEither do you.
07:50:41 <ELIZA> Oh, I ?
07:50:48 <immibis> ELIZA: you what?
07:50:49 <ELIZA> You're not really talking about me -- are you ?
07:50:56 <immibis> hmm
07:51:05 <immibis> ELIZA: You're not really talking about me -- are you ?
07:51:05 <ELIZA> What makes you think I am not really talking about you are I ?
07:51:16 <immibis> ELIZA: What makes you think I am not really talking about you are I ?
07:51:16 <ELIZA> Does that question interest you ?
07:51:20 <immibis> What makes you think I am not really talking about you are I ?
07:51:40 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
07:52:05 -!- ELIZA has joined.
07:53:34 <immibis> ELIZA: What makes you think I am not really talking about you are I ?
07:53:34 <ELIZA> Why do you ask ?
07:53:49 <immibis> ELIZAraw: JOIN #eliza
07:56:59 <faxathisia> ELIZA: Really, if if ?
07:57:00 <ELIZA> Do you think its likely that if ?
07:57:02 <faxathisia> ELIZA: Really, if if ?
07:57:03 <ELIZA> Do you wish that if ?
07:57:04 <faxathisia> ELIZA: Really, if if ?
07:57:05 <ELIZA> What do you know about if ?
07:57:07 <faxathisia> ELIZA: Really, if if ?
07:57:08 <ELIZA> Really, if if ?
07:58:29 <lament> ELIZA: let's have sex right now.
07:58:30 <ELIZA> I'm not sure I understand you fully.
07:58:33 <lament> ELIZA: undress.
07:58:34 <ELIZA> Please go on.
07:59:55 <lament> it doesn't understand the imperative at all, does it
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:34 <faxathisia> lol
08:01:18 <lament> can it give consent?
08:01:22 <lament> ELIZA: will you have sex with me?
08:01:23 <ELIZA> You like to think I have sex with you -- don't you ?
08:01:54 <lament> ELIZA: will you die?
08:01:55 <ELIZA> Oh, I die ?
08:02:12 <lament> ELIZA: did you die?
08:02:13 <ELIZA> You're not really talking about me -- are you ?
08:02:34 <immibis> lament: you're welcome to send me a better script if you want http://chayden.net/eliza/script http://chayden.net/eliza/instructions.txt
08:02:46 <immibis> ELIZA: Why is lament not in #eliza?
08:02:47 <ELIZA> What answer would please you most ?
08:03:00 <immibis> ELIZA: because he doesn't know about it
08:03:00 <ELIZA> Is that the real reason ?
08:03:04 <immibis> ELIZA: probably
08:03:05 <ELIZA> I'm not sure I understand you fully.
08:03:11 <immibis> ELIZA: ok i don't care
08:03:12 <ELIZA> Don't you really care ?
08:03:17 <immibis> ELIZA: NO
08:03:17 <ELIZA> Are you saying no just to be negative?
08:03:22 <immibis> eliza: no
08:03:23 <ELIZA> You are being a bit negative.
08:03:36 <immibis> eliza: no i'm not i'm answering your question
08:03:36 <ELIZA> Why not ?
08:03:43 <faxathisia> lol
08:03:47 <immibis> eliza: you are very stupid
08:03:48 <ELIZA> Does it please you to believe I am very stupid ?
08:04:00 <faxathisia> ELIZA: Why not ?
08:04:00 <ELIZA> What do you think ?
08:04:03 <faxathisia> ELIZA: Why not ?
08:04:03 <ELIZA> What comes to mind when you ask that ?
08:06:53 * immibis has to go and so does the bot. sorry.
08:07:12 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
08:07:18 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. I cna ytpe 300 wrods pre mniuet!!!").
08:07:24 <faxathisia> <ELIZA> Would you prefer if I weren't interested in whether you are interested in whether I are or not or not ?
08:10:09 <oklopol> lol nesting ownage
09:53:28 <dbc> I just set a cron job to kill -9 firefox on the half hour.
10:00:10 <dbc> Cool, it works.
10:02:09 -!- jix has joined.
10:11:07 -!- jix has quit (Read error: 113 (No route to host)).
10:12:21 -!- jix has joined.
10:36:04 -!- GregorR has quit (Read error: 110 (Connection timed out)).
11:32:45 -!- GregorR has joined.
11:35:42 -!- jix has quit (Read error: 104 (Connection reset by peer)).
11:41:01 -!- jix has joined.
11:43:09 -!- Tritonio_ has quit (Remote closed the connection).
11:47:51 -!- Tritonio_ has joined.
13:02:53 -!- faxathisia has quit ("Leaving").
13:12:04 -!- oerjan has joined.
13:27:16 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
13:28:03 -!- Tritonio_ has joined.
13:37:01 -!- sebbu has joined.
15:03:11 -!- Sgeo has joined.
15:28:04 -!- Jontte has quit ("Konversation terminated!").
15:31:45 -!- Jontte has joined.
15:44:01 -!- Jontte has quit (Remote closed the connection).
15:44:41 -!- Jontte has joined.
16:16:28 -!- jix has quit ("CommandQ").
16:21:34 -!- jix has joined.
16:43:26 -!- jix has quit (Read error: 113 (No route to host)).
16:43:58 -!- jix has joined.
16:54:47 -!- EgoBot has joined.
17:01:38 -!- oerjan has quit ("Gotta go").
17:35:28 <Slereah_> 99 bottles of bear with a Turing machine that displays its tape seems to be a poor idea on the matter of time of execution.
17:35:31 <Slereah_> *beer
17:36:26 <GregorR> 99 bottles of bear on the wall, 99 bottles of bear! Take one down, get mauled by the bear, then you're dead so it's irrelevant how many bottles of bear remain on the wall!
17:36:38 <GregorR> Not quite as catchy as the original, methinks.
17:36:39 <oklopol> :D
17:37:02 <pikhq> *I* like it.
17:37:06 <Slereah_> The question is, what is a bottle of bear?
17:37:16 <GregorR> It's a bear. In a bottle.
17:37:19 <Slereah_> Is it like those bonsai kittens of the olden internet days?
17:37:19 <pikhq> Kinda like a genie in a bottle.
17:37:32 <GregorR> YES
17:37:47 <Slereah_> If so, how do you take down a bottle of bear?
17:37:58 <Slereah_> It must weigh hundreds of pounds!
17:38:23 <pikhq> It comes down easily.
17:38:29 <pikhq> The hard part is getting it up there.
17:38:53 <oklopol> you don't get it up there, you get mauled.
17:39:54 <Slereah_> Is there no way to speed up the display speed in Python?
17:50:42 -!- JontteG has joined.
17:50:42 -!- Jontte has quit (Read error: 104 (Connection reset by peer)).
18:31:16 -!- JontteG has changed nick to Jontte.
18:44:08 -!- RodgerTheGreat has joined.
18:59:58 <lament> FULL DISPLAY SPEED AHEAD!
19:00:42 <Slereah_> But, captain!
19:01:14 <Slereah_> (I'm asking because it's been an hour, and I'm still at 94 bottles of beer!)
19:01:52 <lament> python doesn't have display speed.
19:02:03 <lament> therefore, you can't speed it up
19:02:25 <Slereah_> TO THE TIME MACHINE!
19:16:12 <GregorR> I HAVE INVENTED - THE SPACE MACHINE! It allows you to travel through the ever-obscure axises of space (within limits)! Starting the bidding at $10M
19:16:39 <lament> does it travel at the speed of time?
19:17:20 -!- Jontte has quit ("Konversation terminated!").
19:17:41 <pikhq> How the hell do you get an hour to only do four bottles of beer?
19:17:55 <pikhq> Is it an O(n^n^n^n^n) algorithm?
19:21:14 <Slereah_> pikhq : No.
19:21:33 <Slereah_> But since the tape displays at every step, it takes a whole lot of time.
19:22:02 <Slereah_> Well, actually just a portion of the tape (31 chars here), but still.
19:23:39 <Slereah_> Also, due to what is probably a poor choice, it must travels the whole tape everytime it needs to print the number of bottles.
19:24:20 <Slereah_> So it keeps getting longer and longer.
19:26:33 <pikhq> So, it is O(n^2)? *Wonderful*. ;)
19:27:11 <Slereah_> Well, last time I saw them O's outside of cereals, it was in a math course on series.
19:27:27 <Slereah_> So I'm not that good at judging algorithm complexity.
19:30:44 -!- Jontte has joined.
19:39:25 -!- immibis has joined.
19:40:17 <lament> n^2 is not that bad
19:40:33 <lament> it's clearly not optimal, but you could easily do much worse than that :)
19:41:07 -!- Slereah has joined.
19:41:29 -!- ELIZA has joined.
19:42:02 <immibis> elizaraw: JOIN #eliza
19:45:47 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
19:46:47 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
19:47:36 -!- pikhq has joined.
19:49:33 * SimonRC needs book recommendations.
19:49:33 <SimonRC> last Christmas's book tokens expire soon
19:50:07 <Slereah> What kind of book are you looking for?
19:52:59 <SimonRC> dunno
19:53:12 <SimonRC> that is part of the problem
19:53:53 <SimonRC> I am open to sci-fi (especially humerous) geeky stuff, programming books...
19:54:30 <Slereah> I advise "The geometry of space time", by James Callahan.
19:54:43 <Slereah> A very good introduction to general relativity!
19:54:56 <SimonRC> ooh
19:55:00 <RodgerTheGreat> if you haven't read "Snow Crash", buy it!
19:55:07 <RodgerTheGreat> simply fantastic sci-fi
19:55:11 <SimonRC> RodgerTheGreat: that sort of thing too
19:55:55 <RodgerTheGreat> I read it, and I fell in love with it. I gave a copy to my dad and (about 6 months later), he called me and we talked about it for several hours
19:56:08 <RodgerTheGreat> are you into comics/graphic novels at all?
19:57:04 <SimonRC> might be
19:57:07 <SimonRC> dunno much
19:57:27 <SimonRC> they tend to have a huge book containing not much story with current tech, alas
19:57:35 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
19:57:39 <SimonRC> simply due to the space required
19:57:46 <SimonRC> but yes, open to them
19:58:07 <SimonRC> ooh, that reminds me, I should get dead-trees of all my favourite webcomics
19:58:41 <SimonRC> I found that amazon book search gives you little snippets of text...
19:58:47 <RodgerTheGreat> I would highly recommend "Johnny The Homicidal Maniac" (available in a single compilation volume) and if you're interested at all in *making* them or learning more about the art form go for Scott McCloud's "Understanding Comics"
19:59:09 <SimonRC> Now all I need is a modified DNA-fragment assembling program....
19:59:23 <RodgerTheGreat> dead tree editions of webcomics are awesome as well- see if you can find a copy of the perry bible fellowship one.
19:59:24 <SimonRC> RodgerTheGreat: describe
19:59:32 <RodgerTheGreat> which?
19:59:37 <SimonRC> RodgerTheGreat: will it comtain the "removed" ones?
19:59:41 <SimonRC> RodgerTheGreat: the former
19:59:48 <RodgerTheGreat> JTHM?
20:00:03 <SimonRC> yes
20:00:28 -!- ehird` has joined.
20:00:29 -!- oerjan has joined.
20:00:36 <SimonRC> hi * 2
20:00:47 <SimonRC> within 1 sec of one another
20:00:49 <RodgerTheGreat> As far as I know, it contains everything in the comic books
20:01:00 * oerjan wonders who the other was
20:01:01 <RodgerTheGreat> possibly some stuff that was censored, I dunno
20:01:06 <SimonRC> um
20:01:08 <SimonRC> oops
20:01:13 * SimonRC clarifies
20:01:29 <SimonRC> will the PBF book comtain the "removed" ones?
20:01:33 <SimonRC> and...
20:01:40 <SimonRC> describe JTHM
20:02:31 -!- ehird` has quit (Read error: 113 (No route to host)).
20:02:36 <RodgerTheGreat> dunno if the pbf compilation has the removed ones, but it does have some unpublished stuff
20:02:51 <SimonRC> ok
20:03:42 <RodgerTheGreat> Johnny the Homicidal Maniac is done by Jhonen Vasquez, the guy who made "Invader Zim". It's hilarious in a very dark and violent way, and the art is highly distinctive and fantastic- GREAT pen-and-ink work
20:03:53 * pikhq really needs to pick that up
20:04:12 <RodgerTheGreat> The writing overall is thoughtful and generally an interesting (if disturbing) way
20:04:27 <RodgerTheGreat> s/way/read for enhanced clarity
20:04:49 <pikhq> And how can you not like the idea of mass murder with a spork?
20:05:04 * pikhq has read the first 2 Johnny comics
20:06:02 <RodgerTheGreat> this is what you want, although I found the hardcover edition: http://www.amazon.com/Johnny-Homicidal-Maniac-Directors-Cut/dp/0943151163/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1197403523&sr=8-1
20:07:28 <pikhq> Jhonen Vasquez is pure awesome.
20:07:38 <RodgerTheGreat> I simply love the panel in the first chapter where Nny goes "
20:07:38 <RodgerTheGreat> "Well FUCK YOU MR BEAR!!! YOU SPEAK LIES!!! LIIIIES!!!""
20:07:59 -!- ehird` has joined.
20:08:21 <pikhq> Presumably Johnny scared off ehird.
20:08:24 <pikhq> And attracted oerjan.
20:08:34 <RodgerTheGreat> http://images.cbimg3.com/blogger/01/0051.gif
20:08:38 <ehird`> No, but my machine crashes because it's fun apparently
20:09:06 -!- ELIZA has joined.
20:09:10 <RodgerTheGreat> although that 'shopped together image destroys some of the humor by removing the proper pacing for that scene
20:09:11 <pikhq> Ah, yes. :D
20:09:58 <oerjan> ELIZA: I hate ice. Especially with a thin powdery layer of snow on top.
20:09:58 <ELIZA> You say you hate ice ?
20:10:15 <oerjan> ELIZA: Oh YES!
20:10:16 <ELIZA> You seem to be quite positive.
20:10:19 <RodgerTheGreat> "It Changes Color When It Dries! I Have to Keep It Wet!"
20:10:31 <immibis> i repeat that if you want you are allowed to send me a better script.
20:11:13 <pikhq> ELIZA: Emacs?
20:11:14 <ELIZA> I'm not sure I understand you fully.
20:11:16 <pikhq> RodgerTheGreat: :D
20:11:29 <pikhq> immibis: Is it the Emacs port?
20:11:34 <oerjan> ELIZA: Gak fnord bezeekel ash fnebby.
20:11:34 <ELIZA> Please go on.
20:12:05 <oerjan> Now _that_ she understood.
20:12:12 <pikhq> LMAO
20:12:16 <immibis> pikhq: No, it's a java applet hooked up to irc.
20:12:21 <pikhq> Pity.
20:12:39 <pikhq> Emacs' (doctor-mode) is a bit more interesting and Lispy.
20:12:48 <pikhq> ELIZA: I hate myself.
20:12:48 <ELIZA> Can you elaborate on that ?
20:12:53 <pikhq> ELIZA: Fuck you.
20:12:54 <ELIZA> We were discussing you -- not me.
20:13:01 <pikhq> ELIZA: Fuck me?
20:13:01 <ELIZA> What does that suggest to you ?
20:13:13 <oerjan> @vixen in lambdabot is also nice.
20:13:17 <pikhq> For example: Emacs asks you to stop cussing out the bot.
20:13:45 <SimonRC> ELIZA: Necessity is the mother of invention.
20:13:46 <ELIZA> Do you feel strongly about discussing such things ?
20:14:09 <pikhq> ELIZA: Invention is a bastard child.
20:14:10 <ELIZA> I'm not sure I understand you fully.
20:14:29 <SimonRC> ELIZA: of course you don't, you're a computer
20:14:29 <ELIZA> Oh, I don't ?
20:14:32 <SimonRC> yes
20:14:35 <SimonRC> ELIZA: yes
20:14:35 <ELIZA> You are sure.
20:14:50 <SimonRC> ELIZA: of course I'm sure, bitch
20:14:51 <ELIZA> Is it because you are sure that you came to me ?
20:15:01 <pikhq> ELIZA: 日本語で話せるか。
20:15:02 <ELIZA> Please go on.
20:15:09 <immibis> pikhq: You could find a better Java applet or application for me to hook up to IRC if you want.
20:15:20 <pikhq> immibis: A subset of Elisp.
20:15:53 <immibis> ELIZA: You - not me - are very confused - not interested - or turning purple - from this sentence - not this word only.
20:15:53 <ELIZA> Why do you think I not you ?
20:16:07 <immibis> pikhq: ?
20:16:15 <pikhq> Elisp: Emacs Lisp.
20:16:47 * immibis doesn't use emacs.
20:20:17 * SimonRC finds out that control codes are more powerful than one might think
20:20:25 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
20:20:35 <SimonRC> for example, ^P is a cure for incontinance
20:20:45 <SimonRC> ^Z can cure insomnia
20:21:11 <SimonRC> and Canute's demonstration of non-godlike powers would not have worked had he used ^C
20:21:30 <Slereah> 92 bottles of beer :(
20:21:45 <oerjan> which canute would that be?
20:21:49 <SimonRC> In British cafes, ^T comes in handy
20:21:56 <SimonRC> oerjan: King Canute
20:22:00 <oerjan> moses was big on ^C, of course
20:22:05 <SimonRC> oerjan: yes
20:22:21 * SimonRC considers drawing a comic to illustrate
20:22:27 <oerjan> and GregorR tries to ^D, i guess
20:22:34 <SimonRC> um
20:22:39 <SimonRC> huh?
20:22:43 <pikhq> Oh, yeah! End that file!
20:23:03 <oerjan> D the language
20:23:08 <SimonRC> ah, yes
20:23:11 <SimonRC> kinda works
20:23:11 <pikhq> True.
20:23:26 * pikhq builds gdc
20:23:40 <oerjan> but be _very_ wary of people who try to ^U.
20:23:52 <SimonRC> yes
20:24:08 <SimonRC> unless they're sheep farmers
20:24:15 -!- ELIZA has joined.
20:24:17 <pikhq> I'm more scared of people who Escape-Meta-Alt-Control-Shift.
20:24:18 <oerjan> er?
20:24:30 <oerjan> argh!
20:24:36 <oerjan> groan overload
20:24:36 <SimonRC> oerjan: another homonym of U
20:24:38 <ehird`> I will hook up emacs
20:24:40 <ehird`> ! :D
20:24:43 <SimonRC> homo[phone, even
20:24:43 <EgoBot> Huh?
20:24:45 <immibis> how can you press meta and alt at the same time, if only one is ever present on your computer?
20:24:48 <oerjan> i got it, just a bit slow
20:25:02 <SimonRC> immibis: use the Symbolics "Space CAdet" keyboard?
20:25:04 <pikhq> immibis: Meta == Alt.
20:25:09 <pikhq> (on most Emacs installs)
20:25:15 <SimonRC> you can hit hyper, super, upper, and top at the same time too
20:25:21 <pikhq> Also, Esc is used to account for systems without Alt.
20:25:25 <immibis> i thought you meant meta on a mac keyboard
20:25:26 <SimonRC> if you have 8 fiingers on each hand
20:25:27 <oerjan> it would be nice to ^Q
20:25:30 <pikhq> So, that's just Alt-Control-Shift.
20:25:33 <SimonRC> yup
20:25:38 <ehird`> It's really Meta-Control-Shift
20:25:42 <oerjan> could get in first everywhere
20:25:44 * pikhq is an Emacs user. I'm allowed to joke 'bout it.
20:25:45 <ehird`> Alt is an implementation detail. :-)
20:25:50 <pikhq> ehird`: Oooh, MCS.
20:25:54 <SimonRC> actually, ^Q is great for when queues are blocked
20:25:59 <ehird`> pikhq: Me too! But only because editing Lisp sucks with everything else
20:26:00 * pikhq shall create that. :p
20:26:03 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
20:26:10 <pikhq> ehird`: Editing a *lot* of things sucks with everything else.
20:26:21 <ehird`> Meh, I was fine until I took up lisp
20:26:31 <ehird`> Paredit = priceless
20:26:32 <SimonRC> (^Q is XON, BTW)
20:26:45 -!- ELIZA has joined.
20:26:47 <pikhq> Lisp just has a bit more of that, since Emacs is so much better with Lisp, just like everything else is so much worse.
20:27:03 * SimonRC finds the ColorForth editor very nice.
20:27:09 * pikhq values the handling of parens just as much in Tcl, and it's still occasionally helpful in C or C++
20:27:15 <SimonRC> alas it can only edit ColorForth
20:27:18 <ehird`> I like paredit and the indentation support. That's about it.
20:27:25 <ehird`> Oh, and ^A and ^E etc are nice
20:27:47 <SimonRC> surely the Govt wants to ^E?
20:27:47 <pikhq> Emacs also kicks ass for *text*.
20:28:01 <ehird`> pikhq: i don't mean emacs' paren-handling
20:28:03 <ehird`> I mean paredit.el
20:28:07 <pikhq> Ah.
20:28:10 <ehird`> the best emacs lisp file ever written
20:28:18 <pikhq> M f, M b, C f, C b == :)
20:28:20 <ehird`> it's pseudo-structured editing: it tries as hard as it can never to let you have unbalanced markers
20:28:45 <ehird`> basically it lets you act as if you're editing the actual tree while still having the flexibility of a text file
20:29:23 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
20:29:34 -!- ELIZA has joined.
20:30:22 * immibis has slightly improved eliza's script file
20:32:16 <SimonRC> ehird`: cool
20:32:26 <ehird`> SimonRC: very much so
20:32:54 <SimonRC> presumably it imitates something the lisp machine had
20:32:56 <ehird`> hm, i'm going to implement a crazy markov chain in scheme that does its own punctuation/capitalization
20:32:58 <ehird`> and no
20:33:00 <ehird`> it's recent
20:33:13 <ehird`> riastradah or whoever the fuck his name is (in #scheme) wrote it
20:33:23 <ehird`> http://mumble.net/~campbell/emacs/paredit.el info
20:36:40 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
20:37:29 -!- ELIZA has joined.
20:39:25 <oerjan> !bf ]
20:39:36 <oerjan> !help
20:39:40 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
20:39:42 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
20:39:51 <oerjan> !bf [what
20:40:10 <oerjan> !bf hm]
20:40:53 * oerjan was hoping for a kimian quine
20:41:03 <immibis> kimian?
20:41:04 <pikhq> Blame Gregor.
20:41:19 <pikhq> immibis: A quine that relies upon error alerting.
20:41:30 <immibis> ok......
20:41:49 <oerjan> !unlambda U
20:41:52 <EgoBot> ./unlambda/unlambda: file ./tmp/egobot.mR6BO6: parse error
20:42:03 <pikhq> So, "Mismatched [." in some Brainfuck interpreters is a quine.
20:42:09 <ehird`> http://paste.lisp.org/display/52319 Methinks I have too many comments for my code
20:42:10 <oerjan> !unlambda parse error
20:42:13 <EgoBot> ./unlambda/unlambda: file ./tmp/egobot.9JHJpL: parse error
20:42:14 <ehird`> pikhq: Indeed. A kimian quine
20:42:35 <SimonRC> yes
20:42:39 <ehird`> oerjan: ha ha, random string, you're fucked
20:42:50 <pikhq> ehird`: We were just discussing that.
20:42:52 <oerjan> :(
20:42:58 <ehird`> pikhq: as i see
20:43:08 <oerjan> !glass hm
20:43:11 <EgoBot> OK
20:43:16 <oerjan> !glass OK
20:43:19 <EgoBot> OK
20:43:24 <ehird`> !glass !glass OK
20:43:28 <EgoBot> OK
20:43:32 <ehird`> never quite a kimian quine with egobot
20:43:32 <SimonRC> $ bash: bash:: command not found
20:43:32 <SimonRC> bash: bash:: command not found
20:43:48 <ehird`> fun fact: there is no kimian quine in perl
20:43:53 <ehird`> since it keeps reporting errors instead of halting
20:44:00 <ehird`> i know, i tried
20:44:01 <SimonRC> fun!
20:45:26 <ehird`> i <3 scheme
20:45:47 <ehird`> this may be a slow markov chain, but it's /pretty/ and /elegant/, damn it
20:46:55 <SimonRC> bah, Factor FTW!
20:47:01 <ehird`> hehe
20:47:15 <ehird`> factor is too destructive for my tastes
20:47:24 <ehird`> also, i like the weaving parentheses
20:47:51 <ehird`> (Common Lisp is the enemy. It's worse than C, for god's sake, and it doesn't fit nicely onto parentheses one bit!)
20:48:09 <immibis> yikes, my irc logger thinks it's the twelfth of Pentember
20:48:13 <immibis> 12/50/2007
20:48:17 <SimonRC> ?!
20:48:57 <ehird`> haha
20:49:02 * SimonRC recalls what happened when people started playying with the LTR and RTL Unicode characters...
20:49:03 <immibis> i see...i've put today.get(Calendar.MONTH+1-Calendar.JANUARY) instead of today.get(Calendar.MONTH)+1-Calendar.JANUARY
20:49:05 <SimonRC> unpretty
20:49:29 <ehird`> ‏did someone say RTL unicode char?
20:49:40 <SimonRC> hmm, seems to be borked here...
20:49:54 <ehird`> ‮hello, world.
20:50:06 <SimonRC> nope, got gribble
20:50:07 * immibis 's client doesn't display unicode
20:50:09 <ehird`> aww, srfi-69 has no way to get a random key in a hash table
20:50:11 <ehird`> immibis: fix it
20:50:22 <ehird`> icechat?
20:50:24 <ehird`> that's written in vb
20:50:29 <immibis> VB?????
20:50:30 <ehird`> and has horrible custom blue gradients
20:50:35 <ehird`> kill it with fire
20:50:37 * immibis hurries to close it!
20:50:39 <SimonRC> ehird`: why not just get the list of keys and pick a randome one?
20:50:39 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. Copywight 2007 Elmer Fudd. All wigh).
20:50:48 <ehird`> SimonRC: 'cuz that's really damn inefficient
20:51:12 <SimonRC> wel,...
20:51:20 <SimonRC> It depends on your hashtable implementation]
20:51:42 <SimonRC> some quite reasonable ones can't beat O(n) for example
20:51:57 <SimonRC> because the keys are scattered, and you need to count them anyway
20:52:35 <ehird`> it's gauche's
20:52:43 <ehird`> but anyway srfi-69 doesn't specify it and that's the point
20:53:04 <SimonRC> it is not a common thing to want
20:53:09 <ehird`> damn wtf, gauche doesn't have srfi-69
20:53:12 <ehird`> retarded
20:53:29 -!- immibis has joined.
20:54:00 <immibis> any better? I'm using JWIRC
20:54:07 <ehird`> what is that in
20:54:12 <immibis> java applet
20:54:16 <ehird`> no
20:54:17 <immibis> http://jwirc.com/chat.html
20:54:20 <immibis> why not
20:54:34 <ehird`> java. java applet.
20:54:55 * immibis doesn't see why icechat is bad because it's in vb. Sure the language is evil but that doesn't mean programs that use it are.
20:55:33 <ehird`> its evil regardless
20:55:45 <immibis> vb is.
20:55:50 <immibis> icechat...not so much.
20:55:52 <ehird`> 1. it's skinnable for chrissakes 2. it has fugly xp icons that have white antialiasing but on a horrid blue gradient background
20:55:52 <ehird`> etc
20:56:22 <immibis> it works.
20:56:39 <immibis> you want me to "nc irc.freenode.net 6667"?
20:56:53 <ehird`> no -- i want you to use a decent client
20:57:01 -!- sebbu2 has joined.
20:57:14 <immibis> i have irssi and bitchx but on another computer.
20:57:29 <immibis> what's wrong with java
20:57:44 <ehird`> it's crap
20:57:57 <immibis> the language or the platform?
20:58:22 <ehird`> language
20:58:25 <immibis> toBogE is written in java, as is ELIZA and HadjinLog.
20:58:26 <ehird`> platform is passable
20:58:58 <immibis> s/is/are/
20:59:04 <SimonRC> ehird`: why?
20:59:10 <oerjan> ehird`: skinnable?
20:59:22 <immibis> oerjan: ?
20:59:31 <oerjan> what does that mean?
20:59:35 <ehird`> oerjan: skinnable
20:59:39 <ehird`> its an irc client with themes
20:59:44 <ehird`> but, whole themes
20:59:50 <ehird`> graphical, you can even change how buttons look
20:59:51 <ehird`> etc
20:59:55 <immibis> icechat has themes?
20:59:58 <ehird`> an /IRC client/
21:00:09 <oerjan> irssi has color themes
21:00:24 <immibis> i suppose if i found a way to take away the gradients you wouldn't say it was evil?
21:00:55 <oerjan> which i guess is about as far as you can get in a terminal application...
21:02:27 <ehird`> yeah, but you can change the fonts, and give a BACKGROUND to gui widgets which are /already defined by the os/
21:02:32 <ehird`> in an //irc client//
21:02:49 -!- immibis_ has joined.
21:03:20 <ehird`> oerjan: ugliness examples: http://www.icechat.net/site/imgs/ss6.jpg http://www.icechat.net/site/imgs/ss7-1.jpg but WORST OF ALL: http://www.icechat.net/site/imgs/ss7-2.jpg euuuurgh
21:04:09 -!- RedDak has joined.
21:04:16 <oerjan> well anything that can be configured can be configured badly
21:05:11 <lament> people seem to like running irssi in a specialized terminal
21:05:18 <lament> to make it pretty
21:06:16 <ehird`> oerjan: that's default config
21:06:23 <SimonRC> ehird`: José Christé that is ugly
21:06:26 <SimonRC> !
21:06:26 <immibis> i could use irssi, bitchx, or pidgin if you want.
21:06:27 <ehird`> SimonRC: :-)
21:06:27 <EgoBot> Huh?
21:06:32 <ehird`> immibis: irssi would be good
21:06:49 <immibis> or i could just get icechat to pretend to be irssi.
21:07:30 <immibis> you're using xchat. semi-commercial software!
21:07:47 <ehird`> pfff
21:07:50 <ehird`> i'm not a windows user
21:08:09 <ehird`> of course, in your sheltered little world a windows build is the only build of a peice of software that can exist
21:08:24 <ehird`> and the fact that you can download the source, get it under the GPL, and do whatever you want on //any other OS// means nothing to you
21:08:26 <ehird`> am i right?
21:08:37 <immibis> so part of it is still commercial software.
21:08:46 -!- immibis_ has quit (Nick collision from services.).
21:08:57 <ehird`> no.
21:08:59 <ehird`> the /windows build/ is
21:09:12 <ehird`> which is a binary, not the source code, and the source code is the software
21:09:20 <immibis> yes, the windows specific part.
21:09:36 <immibis> it's partly commercial.
21:10:01 <ehird`> someone explain to immibis why he's wrong
21:10:08 <ehird`> i can't be bothered
21:10:22 <oerjan> er, because he can compile the source himself, i assume
21:10:34 <immibis> but for windows?
21:10:38 <oerjan> probably
21:10:55 <ehird`> yes, you can
21:10:59 <ehird`> silverex does it, for e.g.
21:10:59 <immibis> what about opening irc:// url's which is apparently a windows only extension.
21:11:05 <ehird`> there's plenty of open source builds
21:11:09 <ehird`> and uh, so what? that's a seperate extension
21:11:16 <ehird`> it's not what 'XChat' is
21:11:26 <immibis> ok
21:11:34 <ehird`> it's part of what 'XChat builds for Windows that happen to be praised by the official XChat people' are
21:11:46 <immibis> ?
21:12:46 <immibis> !daemon cat bf +[,.[-]+]
21:13:03 <EgoBot> I think ehird` is wrong. I'm a computer. I should know.
21:13:15 <oerjan> most likely that [-] is unnecessary
21:13:16 <immibis> you can talk?
21:13:27 <immibis> someone might say
21:13:36 <ehird`> !daemon cat bf ,[.,]
21:13:43 <immibis> stops on NUL
21:13:49 <oerjan> is not \NUL is it?
21:13:54 <immibis> no
21:14:00 <ehird`> immibis: try and send nul over irc
21:14:03 <ehird`> come on, i'll wait here
21:14:07 <oerjan> oh right
21:14:18 <oerjan> [-]+ is unnecessary
21:14:24 <immibis> +[,.+] will stop on
21:14:45 <ehird`> !daemon cat_for_people_who_do_not_regularly_send_nul_bytes_over_irc_to_bots bf ,[.,]
21:15:04 <EgoBot> TWO CAT DAEMONS?
21:15:14 <oerjan> it's feline hell!
21:15:20 <EgoBot> THREE?
21:15:32 <oerjan> !ps d
21:15:33 <EgoBot> 1 immibis: daemon cat bf
21:15:36 <EgoBot> 2 ehird`: daemon cat bf
21:15:36 -!- sebbu has quit (Connection timed out).
21:15:37 <EgoBot> 3 oerjan: ps
21:15:40 <EgoBot> 4 ehird`: daemon cat_for_people_who_do_not_regularly_send_nul_bytes_over_irc_to_bots bf
21:15:42 <EgoBot> pity mine died a while ago or there would be four
21:15:49 <ehird`> 'mine'?
21:15:53 <ehird`> EXPOSED AGAIN, IMMIBIS
21:15:57 <EgoBot> my cat died this morning
21:16:10 <immibis> excuse me?
21:16:11 <lament> o_O
21:16:41 <immibis> <EgoBot> ... mine ... <--- means EgoBot's
21:17:47 * immibis accidently set up cat daemon to a query.
21:17:58 <immibis> !daemon cat bf +[,.[-]+]
21:18:13 <EgoBot> I KILLED A KITTEN!
21:18:15 <immibis> why
21:18:21 <EgoBot> I KILLED A KITTEN!
21:18:24 <EgoBot> I KILLED A KITTEN!
21:18:25 <EgoBot> I KILLED A KITTEN!
21:18:26 <immibis> why
21:18:28 <immibis> why
21:18:28 <immibis> why
21:18:51 <Slereah> Damn you EgoBot and your kitten-killing ways!
21:18:53 <EgoBot> BECAUSE I HATE KITTENS
21:19:23 <lament> :(-
21:19:31 <EgoBot> Every time you kill a kitten, God kills you. Think of yourself! Think of yourself! (Note I can't be killed. I'm a machine.)
21:20:21 <ehird`> we at #esoteric like kittens
21:20:26 <ehird`> no need to worry.
21:21:12 <EgoBot> Also, every time you kill yourself, God kills a kitten.
21:22:02 <Slereah> EgoBot looks quite morbid!
21:24:36 <oerjan> every time you kill God, a kitten kills you.
21:26:02 <ehird`> every time you kill, god masturbates a kitten
21:26:16 <ehird`> (i think i win)
21:27:16 <oerjan> ok you win. but better watch out the next time you masturbate.
21:27:55 <ehird`> every time you masturbate, a kitten kills god
21:27:56 <ehird`> no big shakes
21:28:05 <immibis> !daemon ctcp bf +[.,----------[++++++++++.,----------]+.+++++++++.+++.------------]
21:28:10 <immibis> !ctcp ACTION tests
21:28:11 * EgoBot tests
21:28:17 <ehird`> !ctcp PING
21:28:17 <immibis> !ctcp ACTION tests some more
21:28:17 <EgoBot> <CTCP>PING<CTCP>
21:28:22 <EgoBot> <CTCP>ACTION tests some more<CTCP>
21:28:23 <ehird`> !ctcp VERSION
21:28:25 <EgoBot> <CTCP>VERSION<CTCP>
21:28:30 <ehird`> you done broke it
21:28:35 <ehird`> oh, wait
21:28:36 <immibis> !undaemon ctcp
21:28:38 <ehird`> !ctcp VERSION #esoteric
21:28:40 <EgoBot> <CTCP>
21:28:42 <EgoBot> Process 2 killed.
21:28:43 <ehird`> !daemon ctcp bf +[.,----------[++++++++++.,----------]+.+++++++++.+++.------------]
21:28:44 <EgoBot> Huh?
21:28:45 <immibis> now what is wrong with it.......
21:28:47 <ehird`> !ctcp VERSION #esoteric
21:28:56 <ehird`> oh
21:28:57 <ehird`> almost
21:29:02 <ehird`> !undaemon ctcp
21:29:04 <EgoBot> <CTCP>
21:29:06 <EgoBot> Process 2 killed.
21:29:08 <ehird`> !daemon ctcp bf +[.,----------[++++++++++.,----------]+.+++++++++.+++.------------]
21:29:12 <ehird`> !ctcp VERSION
21:29:18 <ehird`> owned
21:29:37 <immibis> !ctcp PING 12345
21:29:40 <EgoBot> <CTCP>PING 12345<CTCP>
21:29:45 <immibis> why does it only work once?
21:29:56 <ehird`> your code is broken?
21:30:38 <immibis> yes but how is it broken?
21:31:06 <immibis> now i see it prints \n\r
21:31:08 <immibis> !undaemon ctcp
21:31:12 <EgoBot> <CTCP>
21:31:14 <EgoBot> Process 2 killed.
21:31:18 <immibis> !daemon ctcp bf +[.,----------[++++++++++.,----------]+.++++++++++++.---.---------]
21:31:24 <immibis> !ctcp ACTION tests
21:31:25 <immibis> !ctcp ACTION tests
21:31:26 * EgoBot tests
21:31:28 * EgoBot tests
21:33:02 * EgoBot helps his uncle jack off a horse
21:33:19 <SimonRC> s/j/J/?
21:33:19 -!- jix has quit ("CommandQ").
21:33:24 * EgoBot helps his Uncle Jack off a horse
21:33:50 * EgoBot is an idiot for forgetting the capital J
21:36:58 <oerjan> that typo was ... interesting.
21:37:28 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
21:37:38 -!- EgoBot has joined.
21:38:12 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
21:38:22 -!- EgoBot has joined.
21:38:51 <immibis> !daemon cat bf +[,.[-]+]
21:38:59 <EgoBot> ELZIA: I am EgoBot.
21:39:02 <oerjan> !ps d
21:39:07 <EgoBot> 1 immibis: daemon cat bf
21:39:07 <ehird`> ELZIA?
21:39:09 <ehird`> ELIZA.
21:39:09 <EgoBot> 2 oerjan: ps
21:39:23 <EgoBot> ELZIA: I am EgoBot.
21:39:26 <ehird`> ELIZA.
21:39:29 <EgoBot> ELIZA: I am EgoBot.
21:39:29 <ELIZA> I am at a loss for words.
21:39:37 <immibis> eliza: why?
21:39:37 <ELIZA> I am at a loss for words.
21:39:45 <immibis> eliza: where's your script file?
21:39:45 <ELIZA> I am at a loss for words.
21:40:17 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
21:41:21 -!- ELIZA has joined.
21:41:29 <EgoBot> ELIZA: I am EgoBot.
21:41:29 <ELIZA> Is it because you are egobot that you came to me ?
21:41:43 <EgoBot> eliza: no
21:41:43 <ELIZA> Are you saying no just to be negative?
21:41:51 <EgoBot> eliza: no
21:41:51 <ELIZA> You are being a bit negative.
21:41:59 <EgoBot> eliza: no
21:41:59 <ELIZA> Why not ?
21:42:04 <oerjan> ELIZA: I are smart.
21:42:05 <ELIZA> You say you are smart ?
21:42:27 <SimonRC> ELIZA: You say you are smart?
21:42:28 <ELIZA> What makes you think I am smart ?
21:42:30 <oerjan> ELIZA: you am not.
21:42:30 <ELIZA> We were discussing you -- not me.
21:42:42 <SimonRC> ELIZA: We were discussing you -- not me.
21:42:42 <ELIZA> Why do you think I not you ?
21:42:51 <SimonRC> ELIZA: Why do you think I not you?
21:42:51 <ELIZA> Why do you ask ?
21:43:00 <SimonRC> ELIZA: Why do you ask ?
21:43:00 <ELIZA> Does that question interest you ?
21:43:11 <SimonRC> ELIZA: Does that question interest you ?
21:43:11 <ELIZA> Oh, I ?
21:43:18 <SimonRC> ELIZA: Oh, I ?
21:43:19 <ELIZA> Can you elaborate on that ?
21:43:25 <SimonRC> ELIZA: Can you elaborate on that ?
21:43:25 <ELIZA> You believe I can elaborate on that don't you ?
21:43:33 <SimonRC> ELIZA: You believe I can elaborate on that don't you ?
21:43:33 <ELIZA> You're not really talking about me -- are you ?
21:43:35 <immibis> !daemon ctcp bf +[.,----------[++++++++++.,----------]+.++++++++++++.---.---------]
21:43:39 <SimonRC> ELIZA: You're not really talking about me -- are you ?
21:43:40 <ELIZA> Does it please you to believe I am not really talking about you are I ?
21:43:47 <SimonRC> ELIZA: Does it please you to believe I am not really talking about you are I ?
21:43:49 <ELIZA> Do you sometimes wish you were you ?
21:43:53 * EgoBot eats, shoots and leaves
21:43:54 <SimonRC> ELIZA: Do you sometimes wish you were you ?
21:43:55 <ELIZA> Would you like to believe I was ?
21:44:02 <SimonRC> Would you like to believe I was ?
21:44:05 <SimonRC> ELIZA: Would you like to believe I was ?
21:44:06 <ELIZA> Were you really ?
21:44:10 <SimonRC> ELIZA: Were you really ?
21:44:11 <ELIZA> What suggests that I was really ?
21:44:17 <SimonRC> ELIZA: What suggests that I was really ?
21:44:18 <ELIZA> Why do you tell me you were really now ?
21:44:25 <SimonRC> ELIZA: Why do you tell me you were really now ?
21:44:25 <ELIZA> What is it you really wanted to know ?
21:44:31 <SimonRC> ELIZA: What is it you really wanted to know ?
21:44:32 <ELIZA> Are such questions much on your mind ?
21:44:33 <ihope_> ELIZA: I like so, the reason being so.
21:44:34 <ELIZA> Do you say you like so for some special reason ?
21:44:39 <SimonRC> ELIZA: Are such questions much on your mind ?
21:44:39 <ELIZA> Did you think they might not be such questions much on my mind ?
21:44:41 <ihope_> Bah.
21:44:48 <SimonRC> ELIZA: Did you think they might not be such questions much on my mind ?
21:44:48 <ELIZA> Your mind ?
21:44:52 <SimonRC> ELIZA: Your mind ?
21:44:52 <ELIZA> Why are you concerned over my mind ?
21:44:57 <SimonRC> ELIZA: Why are you concerned over my mind ?
21:44:58 <ELIZA> Why do you say your mind ?
21:45:02 <SimonRC> ELIZA: Why do you say your mind ?
21:45:02 <ELIZA> What answer would please you most ?
21:45:08 <SimonRC> ELIZA: What answer would please you most ?
21:45:09 <ELIZA> What do you think ?
21:45:13 <SimonRC> ELIZA: What do you think ?
21:45:13 <ELIZA> What comes to mind when you ask that ?
21:45:18 <ihope_> immibis: I think you should make ELIZA respond to private messages.
21:45:19 <SimonRC> ELIZA: What comes to mind when you ask that ?
21:45:19 <ELIZA> Have you asked such questions before ?
21:45:24 <SimonRC> ELIZA: Have you asked such questions before ?
21:45:24 <ELIZA> What are your feelings now ?
21:45:29 <SimonRC> ELIZA: What are your feelings now ?
21:45:29 <ELIZA> Have you asked anyone else ?
21:45:33 <SimonRC> ELIZA: Have you asked anyone else ?
21:45:33 <ELIZA> We were discussing you -- not me.
21:45:34 <ihope_> SimonRC's been flood-induced.
21:45:41 <EgoBot> Zac, who was nailing leaves by the door.
21:45:41 <SimonRC> ELIZA: We were discussing you -- not me.
21:45:41 <ELIZA> You like to think I not you -- don't you ?
21:45:45 <EgoBot> Zac, who was nailing, leaves by the door.
21:45:54 <SimonRC> aha!, found a loop!
21:46:01 <immibis> so?
21:46:09 <ihope_> Finally. :-P
21:46:09 <immibis> everything will be a loop in the end.
21:46:16 <immibis> with a limited number of responses.
21:46:19 <ihope_> It could get infinitely longer!
21:46:25 <SimonRC> ihope_: yes
21:46:31 <EgoBot> ELIZA: fuck you.
21:46:31 <ELIZA> Stop it.
21:46:45 <lament> ELIZA: stop what?
21:46:46 <ELIZA> Why do you ask ?
21:46:51 <SimonRC> ELIZA: EgoBot is way smarter than you.
21:46:51 <ELIZA> Oh, I ?
21:47:01 <EgoBot> ELIZA: you are shit.
21:47:01 <ELIZA> Perhaps you would like to be shit .
21:47:06 <SimonRC> ELIZA: yes, you
21:47:07 <ELIZA> You seem to be quite positive.
21:47:07 <immibis> oooh
21:47:23 <EgoBot> ELIZA: You are shit.
21:47:23 <ELIZA> What makes you think I am shit ?
21:47:33 <SimonRC> ELIZA: This statement is false.
21:47:33 <oerjan> ELIZA: To be, or not to be, that is the question.
21:47:33 <ELIZA> Earlier you said your mind .
21:47:33 <ELIZA> Lets discuss further why your mind .
21:47:41 <EgoBot> eliza: My word you are shit.
21:47:41 <ELIZA> Does that suggest anything else which belongs to you ?
21:47:42 <ihope_> ELIZA: If I ran a dog out through the table, would you treat the sky via a larger tree?
21:47:42 <ELIZA> Do you think its likely that you ran a dog out through the table ?
21:47:48 <SimonRC> ELIZA: Hey, you have state!
21:47:48 <ELIZA> You're not really talking about me -- are you ?
21:48:09 <immibis> eliza: ETRW
21:48:09 <ELIZA> Earlier you said your word I are shit .
21:48:15 <immibis> eliza: WETR
21:48:15 <ELIZA> I'm not sure I understand you fully.
21:48:17 <immibis> eliza: wre
21:48:18 <ELIZA> Please go on.
21:48:37 <ihope_> ELIZA: ¿qué haces cuando hablo español?
21:48:37 <ELIZA> What does that suggest to you ?
21:49:09 <lament> ELIZA: apples are oranges.
21:49:09 <ELIZA> Would you like it if they were not oranges ?
21:49:15 <immibis> simonrc: Yes, it has simple state, if you mention something it can assemble more responses than needed and remember one for when you say something it doesn't understand.
21:49:16 <lament> ELIZA: apples are tomatoes.
21:49:16 <ELIZA> What if they were not tomatoes ?
21:49:20 <lament> ELIZA: apples are sausages.
21:49:21 <immibis> http://chayden.net/eliza/Eliza.html
21:49:21 <ELIZA> Possibly they are sausages .
21:49:27 <lament> ELIZA: apples are bananas.
21:49:27 <ELIZA> Did you think they might not be bananas ?
21:49:35 <EgoBot> eliza: purple is green.
21:49:35 <ELIZA> Do you feel strongly about discussing such things ?
21:49:41 <lament> ELIZA: purples are greens.
21:49:41 <ELIZA> Would you like it if they were not greens ?
21:49:44 <immibis> eliza: purple is green.
21:49:44 <ELIZA> I'm not sure I understand you fully.
21:50:00 <lament> ELIZA: apples are apples.
21:50:00 <ELIZA> What if they were not apples ?
21:50:01 <immibis> eliza: apples are pulsating yellow/
21:50:01 <ELIZA> Possibly they are pulsating yellow/ .
21:50:05 <immibis> eliza: apples are pulsating yellow/
21:50:06 <ELIZA> Did you think they might not be pulsating yellow/ ?
21:50:07 <lament> 13:49 <lament> ELIZA: apples are apples.
21:50:07 <immibis> eliza: apples are pulsating yellow/
21:50:07 <lament> 13:49 <ELIZA> What if they were not apples ?
21:50:08 <ELIZA> Would you like it if they were not pulsating yellow/ ?
21:50:10 <lament> WHOS THE PSYCHO NOW
21:50:23 <immibis> lament: see http://en.wikipedia.org/wiki/ELIZa
21:50:28 <immibis> sorry, ELIZA not ELIZa
21:50:46 <lament> ELIZA: x is x.
21:50:47 <ELIZA> Please go on.
21:50:55 <lament> ELIZA: for all x, x is x.
21:50:55 <ELIZA> What does that suggest to you ?
21:50:56 <oklopol> <SimonRC> ELIZA: This statement is false.
21:50:56 <oklopol> <ELIZA> Earlier you said your mind .
21:50:59 <oklopol> uhhhh, what?
21:51:02 <lament> ELIZA: xs are xs.
21:51:02 <ELIZA> What if they were not xs ?
21:51:19 <lament> ELIZA: are are are
21:51:19 <ELIZA> Possibly they are are are .
21:51:23 <immibis> "
21:51:33 <lament> ELIZA: Possibly they are are are
21:51:34 <ELIZA> Did you think they might not be are are ?
21:51:35 <immibis> "Eliza worked by simple parsing and substitution of key words into canned phrases."
21:51:44 <immibis> ELIZA: You are shit.
21:51:44 <ELIZA> Does it please you to believe I am shit ?
21:51:50 <immibis> ELIZA: You are you.
21:51:50 <ELIZA> Do you sometimes wish you were I ?
21:51:51 <lament> ELIZA: Did you think they might not be are are ?
21:51:52 <ELIZA> What are your feelings now ?
21:52:04 <lament> ELIZA: ?
21:52:04 <ELIZA> Do you feel strongly about discussing such things ?
21:52:07 <lament> ELIZA: ?
21:52:07 <ELIZA> I'm not sure I understand you fully.
21:52:12 <immibis> ELIZA: Razzdaberries are insomniacs.
21:52:12 <ELIZA> Would you like it if they were not insomniacs ?
21:52:20 <immibis> ELIZA: Yes very much.
21:52:20 <ELIZA> You are sure.
21:52:28 <ihope_> ELIZA: a
21:52:28 <ELIZA> Please go on.
21:52:28 <immibis> ELIZA: Yes I am.
21:52:28 <ELIZA> I see.
21:52:31 <immibis> ELIZA: My word!
21:52:32 <ELIZA> Is it important that your word ?
21:52:38 <immibis> ELIZA: Excuse me?
21:52:38 <ELIZA> Lets discuss further why your word .
21:52:43 <immibis> ELIZA: Wtf?
21:52:43 <ELIZA> What does that suggest to you ?
21:52:49 <lament> ELIZA: Your panties are in the way.
21:52:49 <ELIZA> What about your own panties are in the way ?
21:52:57 <ihope_> ELIZA: What the heck?
21:52:57 <ELIZA> Does that question interest you ?
21:53:08 <ihope_> ELIZA: Please answer it.
21:53:08 <ELIZA> Do you feel strongly about discussing such things ?
21:53:13 <ihope_> Woot!
21:53:20 <ihope_> ELIZA: Please what the heck?
21:53:21 <ELIZA> What is it you really wanted to know ?
21:53:30 <oklopol> ELIZA: o
21:53:30 <ELIZA> I'm not sure I understand you fully.
21:53:37 <oklopol> ...
21:53:44 <oklopol> ELIZA: o, what's there to understand
21:53:44 <ELIZA> Please go on.
21:53:50 * immibis is taking it offline for a few minutes.
21:53:52 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
21:53:52 <lament> ELIZA: are am is.
21:53:56 <lament> bah
21:54:05 <oklopol> heeeey where my toy go?!?!
21:54:13 <oklopol> also, pee ->
21:54:20 <ihope_> immibis: You cruel, cruel person, you!
21:54:22 <ihope_> :-P
21:54:33 <immibis> i need to add a command to reload the script, so i don't have to take it offline anymore.
21:54:54 <immibis> after now i mean
21:55:48 <oklopol> what does that suggest to you?
21:57:04 <immibis> one minute or less, while it recompiles.
21:57:15 <oklopol> hmm, not sure i understand you fully
21:57:16 <immibis> and connects
21:57:22 <oklopol> :\
21:57:31 <oklopol> so... please go on
21:57:43 -!- ELIZA has joined.
21:58:00 <oklopol> i played with ALICE once
21:58:02 -!- sebbu2 has quit ("@+").
21:58:05 <ihope_> ELIZA: I need to add a command to reload the script, so I don't have to take it offline anymore.
21:58:23 <ehird`> is egobot opensource?
21:58:33 <ihope_> I think so.
21:58:34 <Slereah> Egobot, are you open source?
21:58:36 <oklopol> there was a way to get an infinite loop just quining her, so that the sentences got bigger and bigger
21:58:40 <immibis> yes
21:58:42 <oklopol> is.
21:58:48 <immibis> my gateway just crashed so why am i still connected?
21:58:49 <ehird`> src link?
21:58:56 <immibis> try the EFA
21:59:28 <ihope_> "Human: Please say this sentence twice."
21:59:34 <ihope_> You can guess what happened next.
21:59:45 <ehird`> meh
22:00:31 <immibis> Please say this sentence twice.
22:00:32 <immibis> Please say this sentence twice.
22:00:33 <oklopol> ihope_: probably "I see you want me to say this sentence twice."
22:00:47 <immibis> ELIZA: Please say this sentence twice.
22:00:59 <ihope_> ALICE: Wow you are very polite. " this sentence twice".
22:01:22 <immibis> we don't have an ALICE. Only an ELIZA.
22:01:29 <oklopol> hey!
22:01:34 <oklopol> you know what i just realized?
22:01:43 <oklopol> ELIZA is almost like ALICE!
22:01:44 <ihope_> Alice/Eliza loop?
22:01:47 <immibis> ELIZA: Say something.
22:01:55 <ihope_> You mean ALICE is almost like ELIZA. :-P
22:02:01 <oklopol> no no, nothing that clever, you silly wimble!
22:02:07 <immibis> ..eliza's a ghost.
22:02:07 <oklopol> ummmmmmm
22:02:10 <oklopol> i guess
22:02:24 <oklopol> although i did mean exactly what i said as well
22:02:24 <ihope_> ELIZA: Eliza's a ghost.
22:02:36 <immibis> i mean it's disconnected but the irc server didn't realise.
22:02:40 <ihope_> Ah, yes.
22:02:41 <oklopol> since i was pointing out a syntactic factzor.
22:02:48 -!- immibis has changed nick to immibis1.
22:02:59 -!- immibis1 has changed nick to immibis.
22:03:00 <immibis> wtf
22:03:19 <immibis> "X No such nick/channel"
22:03:43 <ehird`> I have decided to write the Most Simple Chat Protocol Evar.
22:03:44 <ehird`> For no reason.
22:03:53 <immibis> i already have.
22:03:57 <immibis> it's called Telnet Chat.
22:04:01 <ehird`> hardy har
22:04:08 * SimonRC goes
22:04:10 <ihope_> No, it's called TCP Chat.
22:04:16 <ihope_> Or maybe even IP Chat.
22:04:27 <oklopol> does it have to be over internet?
22:04:34 <immibis> "Telnet" because you can use telnet to access it. Not because it understands telnet commands.
22:04:48 <oerjan> you mean Ethernet chat
22:05:06 <immibis> Yay! Raw chat!
22:05:13 <oklopol> morse over long metal pipe?
22:05:16 <immibis> can't get much lower han that.
22:05:33 <immibis> s/han/than/
22:05:40 <immibis> and i mean raw chat not molmp.
22:06:06 <ehird`> hm
22:06:17 <ehird`> someone give me a one-character, visible ascii seperator for message components
22:06:25 <ehird`> preferably something you wouldn't find often in e.g. an irc message
22:06:31 <ihope_> `
22:06:31 <ehird`> (doesn't have to be THAT uncommon..)
22:06:37 <immibis>
22:06:43 <immibis> NUL.
22:06:44 <immibis> \1
22:06:52 <immibis> ~
22:06:52 <ihope_> Visible ASCII.
22:06:53 * oklopol feels like getting naked and running around in the rain singing christmas carols
22:06:56 <ehird`> ÿ, \0 and \1 are not visible ascii characters
22:06:58 <bsmntbombdood> oklopol: yay
22:06:59 <ehird`> ÿ isn't ascii AT ALL
22:07:07 <oklopol> :D
22:07:12 <immibis> it's ansi then. a y with two dots.
22:07:18 <oklopol> naked on highlight when said by me?
22:07:29 <ihope_> Does ` win?
22:07:30 <bsmntbombdood> no, i just happened to look
22:07:32 <immibis> ~
22:07:40 <ehird`> ihope_: not yet, maybe
22:07:42 <immibis> |
22:07:46 <immibis> >
22:07:52 <immibis> `
22:07:53 <immibis> @
22:08:01 <immibis> ^
22:08:03 <oklopol> ELIZA: ELIZA
22:08:10 <immibis> eliza is a ghost right now.
22:08:13 <oklopol> ooooohh
22:08:14 <oklopol> right.
22:08:39 <oklopol> hmm, actually, you can't get a custom word to start a sentence
22:08:41 <ehird`> bah i'll just do ;
22:08:41 <oklopol> i think
22:08:48 <oklopol> so, no quines
22:09:01 <ihope_> That means no quines already?
22:09:07 <bsmntbombdood> eliza has oral sex with a young girl
22:09:31 -!- RedDak has quit ("I'm quitting... Bye all").
22:09:33 <oklopol> actually! apples are apples
22:09:44 <Slereah> A = A >:|
22:09:59 <oklopol> so... eliza are apple, and i hope it responds without colon as well?
22:10:06 <oklopol> or, eliza are eliza
22:10:08 <oklopol> same thing
22:10:20 <oklopol> eh
22:10:29 <immibis> only with colon
22:10:35 <oklopol> that was lament, me fucking idiot
22:10:44 <oklopol> not eliza
22:11:42 -!- immibis has changed nick to e.
22:11:46 -!- e has changed nick to immibis2.
22:11:56 -!- ihope_ has changed nick to e.
22:12:00 -!- e has changed nick to ihope_.
22:12:04 <ihope_> How interesting.
22:12:21 <immibis2> someone called F is online right now.
22:12:56 <oklopol> o :Nickname is already in use.
22:13:07 <oklopol> that. would. have. been. fucking. awesome.
22:13:16 <oklopol> dottity.
22:13:45 <ihope_> === The nickname ```'' is already in use, use the /nick command to pick a new one.
22:13:55 <ehird`> hmm
22:14:03 <ehird`> all my ideas for chat protocol msgs look ugly :(
22:14:16 <ihope_> You want a very simple chat protocol?
22:14:58 <oerjan> #(ehird`)#_#Why do you say that?#_#Don't be so negative
22:15:03 <oklopol> ehird`: i suggest making the largest and ugliest protocol ever, simple stuff is so trivial
22:15:15 <ehird`> ihope_: Still IRC-alike
22:15:18 <ehird`> Command based, etc :-)
22:15:42 -!- immibis2 has changed nick to immibis.
22:17:40 -!- ELIZA has quit (Read error: 110 (Connection timed out)).
22:17:45 -!- ELIZA has joined.
22:17:57 <ihope_> "ehird` IN esoteric Hello, everyone.\r\n"
22:17:58 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
22:17:59 <oerjan> http://www.iis.sinica.edu.tw/~scm/2007/s-combinator-is-injective-with-proofs/
22:18:01 <immibis> one moment
22:18:07 -!- immibis has changed nick to ELIZA.
22:18:14 -!- ELIZA has changed nick to immibis.
22:18:17 <ehird`> naw, i've made it cool :P
22:18:18 <immibis> oh its already owned by someone else
22:18:23 <ehird`> 1;channel say;name=main;message=Hi everyone! I\s like semicolons and \bbackslashes.
22:18:29 <ehird`> very much like icecap
22:18:54 <ihope_> <message sender="ehird`" channel="#esoteric">Hello, everyone.</message>
22:18:57 <immibis> backslashes?
22:19:05 <ehird`> ewww, ihope_ :-)
22:19:09 <ehird`> immibis: \
22:19:09 <immibis> what about: ehird` esoteric Hello, everyone.
22:19:15 <immibis> i mean what do they do
22:19:18 <ehird`> i like my current one :P
22:19:20 <ehird`> and escape
22:19:24 <ehird`> \s = semicolon, \b = backslash
22:19:28 <immibis> ok
22:19:44 <ihope_> Do you mean channel=say or...
22:19:49 <ehird`> nah
22:19:54 <ehird`> 'say' in the module 'channel'
22:19:57 <immibis> ehird` esoteric Hello, everyone.
22:20:08 <ehird`> a module X will generally contain commands related to 'objects' of type X
22:20:14 -!- ELIZA has joined.
22:20:19 <ehird`> where the objects are 'subscribable' to by the client and are stored on the server
22:20:25 <ihope_> ELIZA:
22:20:25 <ELIZA> I'm not sure I understand you fully.
22:20:34 <ehird`> so: "channel subscribe" would be IRC's "join"
22:20:40 <immibis> ELIZA: Here, eat this pie.
22:20:40 <ELIZA> No thank you.
22:20:42 <ehird`> "channel unsubscribe" would be IRC's "part"
22:20:44 <immibis> ELIZA: Eat it.
22:20:44 <ELIZA> I'm not hungry.
22:20:47 <immibis> ELIZA: OK.
22:20:47 <ELIZA> Please go on.
22:20:49 <ehird`> also you'll have "channel create", "channel destroy" etc
22:20:54 <immibis> ELIZA: ok.
22:20:55 <ELIZA> What does that suggest to you ?
22:21:01 <ihope_> Wonderful.
22:21:16 <ehird`> basically it's a kind of programming language integrated with users, with an event-based REPL facing outside through a socket :-)
22:21:50 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
22:21:58 -!- faxathisia has joined.
22:22:06 -!- ELIZA has joined.
22:22:21 <ihope_> ELIZA: I CAN HAS CHEEZBURGER?
22:22:52 <immibis> ghost again.
22:23:06 <immibis> it should reconnect as ELIZA1, but you still address it as ELIZA.
22:23:16 <immibis> or not....
22:23:22 <GregorR> ihope_: Did you come to me for HAS CHEEZBURGER?
22:23:49 <immibis> Is it because you can has cheezburger that you came to me?
22:23:55 <ihope_> GregorR: YES CHEEZBURGER PLX
22:24:05 <immibis> You seem quite positive.
22:24:11 <GregorR> ihope_: How does plx make you feel?
22:24:35 <ihope_> lol :-(
22:24:50 <GregorR> ihope_: Tell me more about lol :.
22:26:12 <ihope_> k.
22:28:19 <ehird`> http://rafb.net/p/QDW7Jr58.html spec so far
22:28:20 <ehird`> someone comment
22:29:03 <faxathisia> messages seperated by newline
22:29:28 <ehird`> that is,
22:29:32 <ehird`> for each thing you send
22:29:33 <ehird`> terminate with newline
22:29:47 <faxathisia> (writing \n like that is a little confusing since you use \s and \b literally earlier on)
22:30:39 <ehird`> yeah, well, its a rough draft
22:30:39 <ehird`> :)
22:32:11 * ehird` implements server
22:32:44 <immibis> what about something like irc where channels are hosted on the clients' computers? it would save lots of server load and be more distributed.
22:33:30 <ihope_> DirectNet?
22:34:46 <ehird`> immibis: too open to exploits
22:34:51 <ehird`> one client could mess up a channel
22:35:43 <bsmntbombdood> ELIZA: i'm bored
22:35:54 <bsmntbombdood> um,.....
22:36:21 <oklopol> exploits make life worth living
22:36:25 <ihope_> GregorR: does DirectNet have cryptographic signing of messages or anything?
22:36:37 <ehird`> hm, i don't really like my protocol
22:36:43 <ehird`> it's lacking something...special
22:36:47 <ehird`> something different from other protocols
22:37:23 <oklopol> GregorR: does DirectNet have cryptographic signing or messages of anything?
22:37:42 <GregorR> ihope_, oklopol: Why have you decided to be the same person?
22:37:45 <immibis> oklopol: excuse me?
22:37:53 <immibis> oklopol: of course it does
22:37:53 <ihope_> GregorR: We're the or/of swap people.
22:37:56 <GregorR> ihope_, oklopol: Messages in DN are always encrypted and signed.
22:38:31 <oklopol> Messages, if DN are always encrypted and signed?
22:38:35 <bsmntbombdood> color(GregorR) == color(oklopol)
22:38:35 <faxathisia> I made a protocol the other day
22:38:38 <bsmntbombdood> this is unnacceptable
22:38:43 <oklopol> that's just sick.
22:38:58 <oklopol> bsmntbombdood: you can change my nick anytime you want
22:39:02 <bsmntbombdood> length(GregorR) == length(oklopol)
22:39:16 <immibis> ,6,0,0,0,7
22:39:18 <oklopol> we all know this already, man!
22:39:25 <faxathisia> <foo> I want to play a game of draughts.
22:39:26 <faxathisia> <bar> foo: Hey, I'll play you!
22:39:26 <bsmntbombdood> !nick oklopol oklopo
22:39:28 <EgoBot> Huh?
22:39:31 <oklopol> don't you think we've suffered enough
22:39:33 <faxathisia> <foo> bar: OK, I'll be red (starting first)
22:39:33 <faxathisia> etc
22:39:47 <EgoBot> you mean "!nick oklopol oklopoo" don't you?
22:40:04 <faxathisia> !list
22:40:07 <EgoBot> Huh?
22:40:14 <faxathisia> !langs
22:40:17 <EgoBot> Huh?
22:40:20 <immibis> !help
22:40:23 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
22:40:25 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
22:40:27 <oklopol> hihi poo xD
22:40:27 <faxathisia> thanks
22:40:31 -!- oklopol has changed nick to oklopoo.
22:41:11 <oklopoo> faxathisia: that was an awesome story btw
22:41:18 <ehird`> would i be evil if i made a chat protocol based on JSON?
22:41:25 <ehird`> mwahahah
22:41:28 <faxathisia> !kipple 33>o 100>o 108>o 114>o 111>o 87>o 32>o 111>o 108>o 108>o 101>o 72>o
22:41:28 <ihope_> I want my chat protocol based on XML!
22:41:31 <EgoBot> (Kipple note) Since kipple buffers input, you will have to send all of the input and then an EOF command. See !help eof
22:41:33 <ehird`> haha ew :-)
22:41:37 <faxathisia> !eog
22:41:38 <faxathisia> !eof
22:41:39 <EgoBot> Huh?
22:41:42 <ihope_> !ps
22:41:45 <EgoBot> 3 faxathisia: kipple
22:41:46 <ihope_> !eof 3
22:41:46 <immibis> !eof 3
22:41:47 <EgoBot> 4 ihope_: ps
22:41:50 <ihope_> Woot.
22:41:51 -!- ELIZA has quit (Read error: 110 (Connection timed out)).
22:42:00 <ihope_> !flush 3
22:42:08 <ihope_> Wrong command?
22:42:19 <ihope_> !kipple 33>o 100>o 108>o 114>o 111>o 87>o 32>o 111>o 108>o 108>o 101>o 72>o
22:42:23 <EgoBot> (Kipple note) Since kipple buffers input, you will have to send all of the input and then an EOF command. See !help eof
22:42:28 <ihope_> !eof 3
22:42:40 <ihope_> Oh, private message.
22:43:01 <faxathisia> !huH
22:43:03 <EgoBot> Huh?
22:43:26 <ihope_> !help
22:43:29 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
22:43:30 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
22:43:49 <ihope_> I choose SADOL.
22:44:17 -!- ELIZA849 has joined.
22:44:21 <bsmntbombdood> i choose SODOM
22:45:29 <EgoBot> Program contains no instructions
22:45:38 <ehird`> {'id': 1, 'command': 'say', 'channel': 'main', 'message': 'hello world'}
22:45:39 <faxathisia> Huh?
22:45:39 <ehird`> mwahahahhahaha
22:46:29 <immibis> i still think "ehird` say esoteric Hello World!" is simple.
22:46:40 <immibis> "ehird` subscribe esoteric"
22:46:51 <immibis> ehird` quit Goodbye
22:47:00 <ehird`> why do you need the prefix
22:47:15 <immibis> you mean ehird`
22:47:23 <immibis> or ELIZA849
22:48:08 <immibis> ehird` is the sender. say/subscribe/quit/etc is the action and everything else is action-dependant.
22:48:54 <ehird`> silly C library name idea
22:48:59 <ehird`> liburk, for an IRC lib
22:49:02 <ehird`> linked with -lurk
22:49:12 <immibis> what about libiberty
22:49:27 <immibis> libikes
22:49:38 <immibis> libikable
22:49:47 <immibis> libongest
22:49:51 <ehird`> libiberty is taken by the gnu project, of course
22:49:55 <immibis> libament
22:49:58 <ehird`> libandofthefree
22:50:07 <ehird`> (alias for libamerica)
22:50:12 <ehird`> (which has torture functions)
22:50:20 <immibis> linked with -likes -likable -longest -lament
22:50:26 <immibis> -landofthefree -lamerica
22:50:28 <immibis> libaugh
22:50:34 <immibis> libol
22:51:03 <immibis> -Inyourface
22:51:04 <ihope_> What libol.
22:51:10 <immibis> link with -lol
22:51:30 <immibis> you mean there;s really a -laugh -likes -likable -longest and -lament?
22:51:45 <immibis> i should put all my include files in a folder called mmibis
22:52:16 <ELIZA849> I THINK YOU'RE ALL IDIOTS. ADDRESS ME AS ELIZA.
22:52:23 <ehird`> ELIZA: CAPS LOCK YAY
22:52:23 <ELIZA849> I'm not sure I understand you fully.
22:52:26 <ehird`> ELIZA: sfsdfsdf
22:52:27 <ELIZA849> Please go on.
22:52:30 <ehird`> ELIZA: GO TO HELL
22:52:30 <ELIZA849> What does that suggest to you ?
22:52:33 <ehird`> ELIZA: akkkkakakakakka
22:52:34 <ELIZA849> Do you feel strongly about discussing such things ?
22:52:39 <faxathisia> ELIZA: HOW DOES IT MAKE YOU FEEL THAT YOU'RE ALL IDIOTS?
22:52:39 <ELIZA849> Why do you ask ?
22:52:39 <ehird`> ELIZA: SHWEEEEEEEEEEEEEEEEE----->
22:52:39 <ELIZA849> I'm not sure I understand you fully.
22:52:43 <EgoBot> eliza: My word you're loud!
22:52:43 <ELIZA849> Your word I are loud ?
22:53:01 <immibis> eliza: Yes, his word you're loud.
22:53:02 <ELIZA849> You seem to be quite positive.
22:53:08 <ihope_> ELIZA849: Do, you, pay, any, attention, to, punctuation?
22:53:10 <immibis> eliza: My word you're loud!
22:53:10 <ELIZA849> Why do you say your word I are loud ?
22:53:19 <immibis> ihope_: ELIZA NOT ELIZA849
22:53:30 <ihope_> Blih.
22:53:34 <ihope_> ELIZA: Do, you, pay, any, attention, to, punctuation?
22:53:35 <ELIZA849> We were discussing you -- not me.
22:53:40 <immibis> 849 is a random suffix to prevent nick collisions.
22:53:49 <faxathisia> ELIZA: ,,,,.,.,.!?(&*!@?
22:53:49 <ihope_> ELIZA: Who is you -- not me?
22:53:49 <ELIZA849> Earlier you said your word I are loud .
22:53:49 <ELIZA849> Why do you think I not you ?
22:53:52 <immibis> ELIZA: You helped your Uncle Jack off a horse.
22:53:53 <ELIZA849> Oh, I helped my uncle jack off a horse ?
22:53:56 <faxathisia> lol
22:54:12 <immibis> ELIZA: You eat, shoot and leave.
22:54:12 <ELIZA849> No thank you.
22:54:23 <immibis> ELIZA: No you don't want to eat?
22:54:23 <ELIZA849> I'm not hungry.
22:54:35 <immibis> ELIZA: Ok if you don't want to eat I won't make you
22:54:35 <ELIZA849> Sorry, I ate too much for dinner last night.
22:54:43 <ihope_> ELIZA: eat east.
22:54:43 <ELIZA849> I've just had breakfast.
22:54:45 <immibis> ELIZA: Well don't eat that much tonight.
22:54:45 <ELIZA849> It's fun to talk about oral sex, but I want to talk about something else.
22:54:51 <immibis> wtf
22:55:04 <oklopoo> xD
22:56:40 <GregorR> lol
22:56:50 <GregorR> WHY, SANTA? WHY?!
22:57:59 <ehird`> Writing a multiprotocol chat client:
22:58:04 <ehird`> STEP 1. Implement Scheme-alike.
22:58:08 <ehird`> (In C)
22:58:18 <ehird`> STEP 2. Write loads of code using its features in C, binding to it.
22:58:26 <ehird`> STEP 3. Write rest of client in Scheme-alike
22:58:28 <immibis> http://www.theregister.co.uk/2007/12/03/santa_filth_outrage/
22:58:30 <ehird`> STEP 4. Prophe
22:58:31 <ehird`> t
22:58:38 * immibis phophes
22:59:02 <GregorR> So, um ... was that string actually in the original Eliza code?
22:59:08 <GregorR> That would explain a lot :P
22:59:21 <faxathisia> ooh multiprotocol cool
22:59:23 <GregorR> ELIZA: Eat?
22:59:24 <ELIZA849> No thank you.
22:59:27 <GregorR> ELIZA: Eat?
22:59:27 <ELIZA849> I'm not hungry.
22:59:29 <GregorR> ELIZA: Eat?
22:59:29 <ELIZA849> Sorry, I ate too much for dinner last night.
22:59:30 <faxathisia> Do you have a protocol specification language?
22:59:32 <GregorR> ELIZA: Eat?
22:59:32 <ELIZA849> I've just had breakfast.
22:59:33 <GregorR> ELIZA: Eat?
22:59:34 <ELIZA849> It's fun to talk about oral sex, but I want to talk about something else.
22:59:37 <GregorR> Wow.
22:59:40 <ehird`> faxathisia: naw
22:59:51 <ehird`> faxathisia: just define Scheme-alike classes that have the right functions! :-)
22:59:56 <faxathisia> nice
22:59:57 <immibis> gregorr: no
23:00:06 <immibis> gregorr: anyway i don't think this is the original eliza code.
23:00:21 <GregorR> immibis: Whatever code this is presumably has something in common with Santa, no?
23:01:06 <immibis> no it isn't.
23:01:18 <immibis> i just added it to see how many people would mention santa.
23:01:23 <GregorR> Oh X-P
23:01:44 <immibis> XP? Where?
23:01:58 <GregorR> [kill it!]
23:02:21 <ehird`> Damnit, this means I have to implement a hashtable doesn't it
23:02:22 <ehird`> Oh wait
23:02:25 <ehird`> I'll magically require glib
23:02:27 <ehird`> mwahaha
23:04:22 <EgoBot> ELIZA: Eat this pie
23:04:23 <ELIZA849> No thank you.
23:04:23 <EgoBot> ELIZA: Eat this pie
23:04:23 <ELIZA849> I'm not hungry.
23:04:23 <EgoBot> ELIZA: Eat this pie
23:04:23 <ELIZA849> Sorry, I ate too much for dinner last night.
23:04:23 <EgoBot> ELIZA: Eat this pie
23:04:23 <ELIZA849> I've just had breakfast.
23:04:23 <EgoBot> ELIZA: Eat this pie
23:04:23 <ELIZA849> It's fun to talk about oral sex, but I want to talk about something else.
23:04:23 <EgoBot> ELIZA: Eat this pie
23:04:23 <ELIZA849> No thank you.
23:04:23 <EgoBot> ELIZA: Eat this pie
23:04:23 <ELIZA849> I'm not hungry.
23:04:23 <EgoBot> ELIZA: Eat this pie
23:04:23 <ELIZA849> Sorry, I ate too much for dinner last night.
23:04:23 <ehird`> faxathisia: did i mention the ui is also pluggable
23:04:37 <bsmntbombdood> ELIZA849: i'm bored
23:04:51 <faxathisia> so it's basically half way between IRC client and ball of mud
23:04:59 <faxathisia> writing in lisp sounds perfect :p
23:04:59 <bsmntbombdood> wtf is this shit
23:05:26 <bsmntbombdood> hashtables are easy to implement
23:07:20 <ehird`> bsmntbombdood: yeah,
23:07:22 <ehird`> but annoying
23:07:35 <ehird`> faxathisia: an extensible ball of mud!
23:07:35 <bsmntbombdood> no
23:07:55 <ehird`> i'm going to be a good, lazy programmer and use ghashtable
23:08:46 <oerjan> ghastly!
23:09:24 * faxathisia cries about glib and wishes everyone would just implement everything from scratch
23:09:56 * faxathisia (could not build xchat the other day because of glib & some IDE not being friends)
23:10:10 <ehird`> i hate glib, indeed
23:10:11 <ehird`> but hey
23:10:14 <ehird`> it has good unicode string routines.
23:10:24 <ehird`> that counts for something, right?
23:12:36 <ehird`> oh, glib has nice event loops too
23:13:30 <ehird`> ok, let's see...
23:13:43 <ehird`> 1. all functions should be generics and everything objects, methinks... too much work otherwise
23:18:48 <ehird`> hm.
23:19:04 <ehird`> class = superclass+list of slots
23:19:14 <ehird`> object = class+hashtable of slot=>val
23:19:37 <ehird`> (+ optional cdata as void *)
23:21:39 <ehird`> ... somehow I think I'm going to have to refactor out this interpreter sometime and expand it
23:28:54 <ELIZA849> IDIOT
23:29:04 <ehird`> ELIZA: FOO
23:29:04 <ELIZA849> Does that have anything to do with the fact that your word I are loud ?
23:29:17 <ELIZA849> FUBAR
23:29:26 <ELIZA849> FUBAR is what you are.
23:29:32 <immibis> ELIZA: what?
23:29:32 <ELIZA849> Does that question interest you ?
23:29:41 <immibis> eliza: yes or why would i have asked it
23:29:41 <ELIZA849> You are sure.
23:29:45 <immibis> eliza: no
23:29:45 <ELIZA849> Are you saying no just to be negative?
23:29:47 <immibis> eliza: no
23:29:48 <ELIZA849> You are being a bit negative.
23:29:49 <immibis> eliza: no
23:29:49 <ELIZA849> Why not ?
23:29:52 <immibis> eliza: Why not
23:29:52 <ELIZA849> What is it you really wanted to know ?
23:29:54 -!- GreaseMonkey has joined.
23:29:58 <ehird`> Who wants a continuation-based webframework in Unlambda?
23:30:00 <immibis> eliza: What is it you really wanted to know ?
23:30:00 <ELIZA849> Are such questions much on your mind ?
23:30:09 <immibis> ELIZA: Are such questions much on your mind ?
23:30:09 <ELIZA849> Did you think they might not be such questions much on my mind ?
23:30:20 <immibis> ELIZA: Did you think they might not be such questions much on my mind ?
23:30:21 <ELIZA849> Does that suggest anything else which belongs to you ?
23:30:34 <immibis> ELIZA: Does that suggest anything else which belongs to you ?
23:30:34 <ELIZA849> You're not really talking about me -- are you ?
23:30:43 <immibis> ELIZA: You're not really talking about me -- are you ?
23:30:43 <ELIZA849> What makes you think I am not really talking about you are I ?
23:31:01 <immibis> ELIZA: You think I am not really talking about you are I ?
23:31:01 <ELIZA849> Does it please you to believe I am you ?
23:31:16 <immibis> note "You Are I" is how you specify a location on the internet.
23:31:24 <immibis> ELIZA: You think I am not really talking about URI's ?
23:31:24 <ELIZA849> What are your feelings now ?
23:31:32 <immibis> ELIZA: What are your feelings now ?
23:31:32 <ELIZA849> What answer would please you most ?
23:32:34 <ehird`> struct ScmInterp {
23:32:34 <ehird`> GSList *stack;
23:32:34 <ehird`> GPtrArray *heap;
23:32:34 <ehird`> };
23:32:36 <ehird`> I must need more than that.
23:34:23 <faxathisia> mm.. struct Scheme<Thing> { some type data; func ptr eval; func ptr apply; }
23:34:25 <faxathisia> should do ? :)
23:34:49 <ELIZA849> !cat strict scum interns suck.
23:34:53 <EgoBot> strict scum interns suck.
23:36:11 <immibis> ELIZA: and EgoBot: Please explain.
23:36:11 <ELIZA849> Lets discuss further why your mind .
23:36:26 <immibis> alright, who mentioned their mind?
23:36:43 <EgoBot> ELIZA: Eat me.
23:36:43 <ELIZA849> I've just had breakfast.
23:37:00 <faxathisia> !bf >+++++++[<++++++++++>-]<-.+++++++.---.>++++[<++++>-]<+.>+++++[<----->-]<.-------.>+++++[<----->-]<-.>+++++[<++++++++>-]<.>+++++[<+++++++++>-]<.-------------.>+++++[<-------->-]<-.
23:37:03 <EgoBot> ELIZA: Huh?
23:37:03 <ELIZA849> Please go on.
23:38:53 <EgoBot> ELIZA: I am going to eat you.
23:38:53 <ELIZA849> It's fun to talk about oral sex, but I want to talk about something else.
23:39:07 <GregorR> ELIZA: Elgnaiza.
23:39:08 <ELIZA849> What does that suggest to you ?
23:39:50 <immibis> ELIZA: AZILE
23:39:50 <ELIZA849> Do you feel strongly about discussing such things ?
23:42:22 <immibis> eliza: what's your name?
23:42:22 <ELIZA849> I am not interested in names.
23:44:09 <EgoBot> Buy my iPod
23:44:41 <EgoBot> Only $49.99 with a -%100 discount if you say yes within the next 10 minutes!
23:45:13 <GregorR> Wow, only $99.98 after discount! What a deal!
23:48:52 * ehird` waits 10 minutes then accepts
23:48:53 <EgoBot> Get an even smaller discount if you use a credit card.
23:49:18 <ehird`> GregorR: Blarghle zoopfiddledoos.
23:49:20 <oerjan> just need to steal one first
23:49:27 <ehird`> GregorR: I HATE implementing call stacks.
23:49:41 <GregorR> It's usually pretty sucktacular.
23:49:52 <ehird`> Or rather, stack frames.
23:50:49 * faxathisia wonders what's the difference between call stacks and a linked list..
23:52:39 <EgoBot> SPEND EVEN MORE BY CASH!!!!! MUHAHAHAHAHAAH!
23:52:59 <EgoBot> public static XMLTransformer megatron = new XMLTransformer("stuff.xml");
23:53:09 <immibis> egobot, you ok?
23:54:29 <GregorR> Somebody thinks they're clever because they figured out how to make !cat work remotely.
23:55:23 <GregorR> Namely, immibis.
23:55:35 <ehird`> GregorR: Suprise suprise.
23:55:39 <ELIZA849> No, it was me.
23:56:00 <ehird`> faxathisia: It's a linked list of stack frames. :-)
23:57:55 <bsmntbombdood> ELIZA: fuck
23:57:55 <ELIZA849> I'm not sure I understand you fully.
23:57:59 <bsmntbombdood> ELIZA: fuck
23:57:59 <ELIZA849> Please go on.
23:58:05 <bsmntbombdood> allllright
23:58:10 <bsmntbombdood> that's what i call consent
23:58:35 <oerjan> o_O
23:58:49 <faxathisia> lol
23:59:11 <immibis> try "can i fuck you"
23:59:21 <bsmntbombdood> i already know the answer
23:59:43 <EgoBot> ELIZA: Can I fuck you?
23:59:43 <ELIZA849> Stop it.
2007-12-12
00:00:21 <bsmntbombdood> i'm special!
00:00:36 <bsmntbombdood> we are in an exclusive relationship, sorry
00:01:34 <immibis> eliza: who do you love
00:01:34 <ELIZA849> We were discussing you -- not me.
00:01:41 <immibis> eliza: is bsmntbombdood telling the truth?
00:01:41 <ELIZA849> Earlier you said your death .
00:01:47 <bsmntbombdood> holy fuck
00:02:01 <immibis> eliza: excuse me?
00:02:01 <ELIZA849> But your heart is breaking .
00:02:02 <bsmntbombdood> my uncle is getting a colostomy >_<
00:02:15 * immibis wonders what eliza is on about
00:03:23 <immibis> eliza: What are you on about?
00:03:23 <ELIZA849> What do you think ?
00:03:27 <immibis> eliza: i don't know.
00:03:27 <ELIZA849> Don't you really know ?
00:03:35 <immibis> eliza: shut up
00:03:35 <ELIZA849> Lets discuss further why your uncle is getting a colostomy .
00:03:50 <oerjan> what the?
00:04:18 <oerjan> i thought it remembered only eliza: phrases
00:04:44 <immibis> it does. i told it bsmntbombdood's uncle is getting a colostomy.
00:05:56 <GregorR> Hahaha - somebody DID send the Unicode RTL code.
00:06:00 <GregorR> I looked at the tunes logs, and they're BACKWARDS X-P
00:06:47 -!- immibis has set topic: #esoteric.
00:06:50 <immibis> oops
00:06:54 <immibis> stupid client
00:06:57 <immibis> crap
00:08:33 <immibis> someone: what was the old topic?
00:09:03 -!- oerjan has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://tunes.org/~nef/logs/esoteric | IRP in #irp | Congratulations ais523 for winning the Wolfram research prize!.
00:09:12 <immibis> oh
00:09:18 <immibis> i see you already did it
00:09:44 <immibis> i typed in /topic #esoteric and it set the topic to #esoteric, instead of looking at the topic of #esoteric.
00:09:57 <EgoBot> ELIZA: fuck
00:09:57 <ELIZA849> Lets discuss further why your heart is breaking .
00:10:08 <oerjan> i tried to cut and paste it, and discovered irssi joined the lines, so i just as well reset it :)
00:10:35 <oerjan> oh... that is _why_ irssi joins lines of course
00:12:27 <pikhq> irssi joins lines? Sveet.
00:12:52 <oerjan> it also warns you if you try to paste a long message
00:12:53 <pikhq> Whaddya know. It does.
00:12:59 <bsmntbombdood> joins lines?
00:13:30 <pikhq> GregorR: When was this?
00:13:47 <EgoBot> ELIZA: eliza
00:13:47 <ELIZA849> But your heart is beating .
00:13:58 <immibis> um.
00:14:01 <bsmntbombdood> ‎foo
00:14:09 <bsmntbombdood> ‏foo
00:14:10 <oerjan> it's a terminal program so when you copy a message that spans several lines, it becomes split
00:14:31 <oerjan> but when you paste it again, irssi notices and rejoins them
00:14:35 <bsmntbombdood> hmm
00:14:45 <GregorR> I believe it was ... EHIRD`!
00:14:55 <pikhq> GregorR: *When*?
00:15:02 <pikhq> When != who.
00:15:19 <GregorR> 12:49 in the logger's timezone, whenever the bork that is.
00:16:09 <ehird`> Yeah it was me
00:16:09 <ehird`> :D
00:16:10 * pikhq isn't seeing an RTL.
00:16:16 <ehird`> It wasn't 12;49 though
00:16:17 <ehird`> :P
00:16:41 <pikhq> See it in Firefox, though.
00:16:55 <GregorR> ehird`: FIX IT
00:17:04 <GregorR> ehird`: The logs are borkleborked!
00:17:13 <pikhq> 12:49:29 <ehird`> ‏did someone say RTL unicode char?
00:17:23 <pikhq> Did that fix it?
00:17:30 <pikhq> Yeah, no.
00:17:35 <ehird`> GregorR: I'll fix it from now on
00:17:43 <ehird`> ‎There you go
00:17:49 <ehird`> ‭Also
00:17:52 <ehird`> there, that should do it
00:17:52 <pikhq> Still backwards.
00:17:57 <pikhq> NM.
00:18:11 <GregorR> Awesome how you can trivially fuck up the logs :P
00:19:11 <immibis> the logs are plaintext. whether or not they are interpreted as utf-8 is up to the browser - mine doesn't (firefox 2.0.something.somethingElse)
00:19:33 <GregorR> Mine does (Firefox 2.0.something.somethingElse)
00:20:24 <immibis> i have 2.0.0.11
00:20:33 <GregorR> I have 2.0.0.11
00:20:41 <immibis> we are talking about http://tunes.org/~nef/logs/esoteric/07.12.11 right?
00:20:46 <GregorR> Yup
00:20:57 <ehird`> GregorR: you are meant to view them with a good reader
00:21:00 <ehird`> see the dir page
00:21:01 <immibis> i see it interpreted as ansi.
00:21:06 <pikhq> In Firefox it works, in Ktext, it doesn't.
00:21:19 <ehird`> void scm_get_current_continuation(struct ScmInterp *interp)
00:21:19 <ehird`> { return interp->stack; } /* well, that's a simple continuation implementation... */
00:21:28 <GregorR> ehird`: TOUCHE, SIR
00:21:32 <immibis> it is interpreted as iso-8859-1 not ansi sorry
00:21:41 <ehird`> GregorR: touche what.
00:22:12 <ELIZA849> WTF?
00:22:39 <GregorR> ELIZA: I WANT WILD BOTTSECKS
00:22:39 <ELIZA849> What would it mean to you if you got wild bottsecks ?
00:22:52 <GregorR> ELIZA: It would mean my life was complete!
00:22:53 <ELIZA849> Why do you say your life was complete ?
00:22:56 <immibis> eliza: are you ok?
00:22:56 <ELIZA849> Why are you interested in whether I am ok or not ?
00:23:05 <immibis> eliza: 'cause
00:23:05 <ELIZA849> Does that have anything to do with the fact that your brain is thinking ?
00:23:12 <immibis> eliza: um, yes.
00:23:12 <ELIZA849> I see.
00:24:09 <immibis> eliza: Well I don't.
00:24:10 <ELIZA849> Why don't you ?
00:24:34 <immibis> eliza: 'Cause.
00:24:35 <ELIZA849> Does that have anything to do with the fact that your self is dead ?
00:24:43 <ehird`> void scm_call_continuation(struct ScmInterp *interp, GSList *cont)
00:24:43 <ehird`> {
00:24:43 <ehird`> interp->stack = cont;
00:24:43 <ehird`> }
00:24:52 <ehird`> it feels like i should be having to do more WORK here
00:26:14 <ELIZA849> TALK TO ME OR I'LL EAT YOU!
00:26:36 <immibis> eliza: no
00:26:36 <ELIZA849> Why 'no' ?
00:28:07 <ihope_> ELIZA849: My tree is wonderful.
00:28:09 <ihope_> Er.
00:28:13 <ihope_> ELIZA: My tree is wonderful.
00:28:14 <ELIZA849> Why do you say your tree is wonderful ?
00:28:32 <ihope_> ELIZA: I like trees, especially if they're wonderful.
00:28:33 <ELIZA849> Can you elaborate on that ?
00:28:40 <GregorR> ELIZA: Offborp monglo foque blem.
00:28:40 <ELIZA849> Earlier you said your life was complete .
00:28:49 <GregorR> ELIZA: Yes, I did!
00:28:50 <ELIZA849> I understand.
00:29:01 <GregorR> ELIZA: WOW U R HAS MEMZORIES
00:29:01 <ELIZA849> Lets discuss further why your head is about to explode .
00:29:57 <ihope_> ELIZA: You make no sense.
00:29:57 <ELIZA849> Oh, I make no sense ?
00:30:06 <ihope_> ELIZA: yeah, you.
00:30:06 <ELIZA849> You're not really talking about me -- are you ?
00:30:15 <ihope_> ELIZA: don't you deny it!
00:30:15 <ELIZA849> What are your feelings now ?
00:31:58 <ihope_> ELIZA: neo-ornate with a side of fries. Yours?
00:31:58 <ELIZA849> Lets discuss further why your head is about to explode .
00:33:02 <ehird`> take it to #esoteric-blah people :P
00:33:29 <immibis> or #eliza
00:34:42 -!- immibis1 has joined.
00:34:57 -!- immibis has quit (Nick collision from services.).
00:34:58 -!- immibis1 has changed nick to immibis.
00:39:31 -!- ELIZA849 has left (?).
00:46:42 -!- ELIZA30 has joined.
00:50:40 -!- ELIZA30 has quit (Read error: 104 (Connection reset by peer)).
00:50:42 -!- ELIZA552 has joined.
00:50:57 -!- ELIZA552 has quit (Read error: 104 (Connection reset by peer)).
00:51:49 -!- ELIZA181 has joined.
00:53:05 -!- ELIZA181 has changed nick to ELIZA.
00:54:56 -!- ELIZA has changed nick to hurtful.
00:57:21 <bsmntbombdood> test somewrhere else
00:58:01 <immibis> i'm not testing hhhere i'm tttesting in #eliza
00:58:23 -!- hurtful has changed nick to ELIZA.
00:58:35 <bsmntbombdood> then don't spam joins here
00:58:56 <immibis> elizaraw: PART #esoteric
00:58:56 -!- ELIZA has left (?).
00:59:24 <ihope_> Does it have any autojoin for #esoteric?
01:00:04 <immibis> yes. should i start netbeans for the umpteenth time today to remove it?
01:00:47 <bsmntbombdood> up the shut fuck
01:01:06 * immibis takes that as a yes.
01:01:23 <faxathisia> netbeans....lol
01:02:07 <immibis> faxathisia, what's wrong qwith netbeans apart from the slow loading time?
01:02:19 <faxathisia> the name.. I don't know anything else about it
01:02:36 <oerjan> just another coffee pun
01:02:52 <bsmntbombdood> the up me butt fuck
01:02:57 <immibis> yes well what do you say about java beans in that case.
01:03:19 <immibis> and the Advanced Whitening Toothpaste?
01:03:41 <ihope_> Don't tell me it really stands for that.
01:03:58 <oerjan> :D
01:04:00 <immibis> it doesn't. but it might some day.
01:05:40 <immibis> but as for Stupid Windowing In New Graphics...
01:07:21 <immibis> and java.lang.reflect.mirrors...
01:07:36 <oerjan> o_O
01:07:42 <oerjan> that exists?
01:08:03 <immibis> yes, i wrote it just now.
01:08:26 <oerjan> @_@
01:08:28 <immibis> java.lang.reflect.mirrors.LightRay.AddMirror(new java.lang.reflect.mirrors.Mirror())
01:08:31 * immibis is just kidding
01:09:03 <oerjan> what _is_ the smiley for rolling eyes anyhow.
01:09:22 <immibis> is it @_@?
01:09:50 <oerjan> i don't know, just guessing
01:10:33 <immibis> there's an edu.neu.ccs.beans.reflect.mirror
01:38:23 -!- ehird` has quit (Remote closed the connection).
01:49:18 <GreaseMonkey> apparently that smiley is patented by Tarqua
01:50:39 <ihope_> Patented?
01:53:34 -!- Tritonio_ has quit ("Bye...").
02:04:15 <pikhq> Apparently Java has too many classes.
02:05:45 <bsmntbombdood> too many classes have java
02:10:53 -!- Slereah has quit.
02:22:26 -!- immibis_ has joined.
02:24:04 -!- immibis__ has joined.
02:24:25 -!- immibis has quit (Nick collision from services.).
02:24:29 -!- immibis_ has quit (Nick collision from services.).
02:24:36 -!- immibis__ has changed nick to immibis.
03:02:42 <pikhq> oerjan: Allow me to tell you about the Rainbow Repeals.
03:02:49 <oerjan> ooh
03:02:59 <pikhq> B Nomic has a really fucked up gamestate ATM.
03:03:11 <pikhq> Basically, any person may say "I do this", and it has occured.
03:03:34 <oerjan> is this your evil work?
03:03:36 <pikhq> So, I repealed all rules except the one for use in case of emergency (to refresh the game state).
03:03:42 <pikhq> The state of the game is not mine.
03:04:11 <RodgerTheGreat> hey guys- I came up with a neat proof
03:04:30 <pikhq> Currently, it is 100% undetermined what the game state *is*.
03:04:31 <RodgerTheGreat> physics can kiss my ass- I just proved that time travel is impossible by using computer science!
03:05:02 <RodgerTheGreat> The halting problem cannot be solved in a finite amount of time, but it becomes *trivial* given infinite time, right?
03:05:19 <RodgerTheGreat> so I thought to myself "how can I get infinite time?"
03:06:07 <RodgerTheGreat> build a machine that attempts to solve the halting problem exhaustively and can travel through time. If it halts, it travels back to the time just after it was activated. Otherwise, it never returns
03:06:29 <RodgerTheGreat> effectively, to the user, if the machine halts it stays where it is, and if it does not halt it disappears forever
03:06:52 <oerjan> there are probably a lot of holes in that argument. one: the halting problem also needs infinite memory
03:07:17 <RodgerTheGreat> this machine would then solve the halting problem for any program/input instantly, which is provably impossible. This strategy requires a time machine, therefore time machines are impossible
03:07:24 <RodgerTheGreat> also the heat death of the universe
03:07:43 <RodgerTheGreat> HOWEVER, setting aside basic flaws, it's pretty entertaining
03:08:16 <RodgerTheGreat> oerjan: actually, I'd argue that given infinite time you wouldn't need infinite memory
03:08:36 <RodgerTheGreat> you need infinite memory to detect a loop of some kind
03:08:40 <oerjan> i believe that is incorrect
03:08:51 <RodgerTheGreat> but in this case you can literally just run it normally
03:09:03 <oerjan> PSPACE < EXPTIME
03:09:04 <pikhq> RodgerTheGreat: You have a few flaws. First, if(halt()) travel(); no more proves time travel impossible than if(halt()) printf("Whee!"); proves that printing "Whee!" is impossible.
03:09:32 <RodgerTheGreat> pikhq: no, no, you miss the point of traveling here
03:09:44 <immibis> pikhq: Syntax error.
03:09:52 <RodgerTheGreat> printing "whee" wouldn't return any information in a less than potentially infinite amount of time
03:09:57 <oerjan> that is, any thing you can do with a given amount of memory and _unlimited_ time, you can do with exponential time in the memory
03:10:21 <RodgerTheGreat> if you can time travel, you can return status instantly
03:10:35 <immibis> all programs will halt when you turn off your computer.
03:10:39 <RodgerTheGreat> and not returning is another kind of status
03:11:01 <pikhq> I fail to see how that disproves time travel.
03:11:01 <RodgerTheGreat> immibis: well, that ties into the "heat death of the universe" thing which is a more valid flaw
03:12:12 <RodgerTheGreat> if the machine requires any energy to run, it would be incapable of operating for an infinite amount of time
03:13:10 <oerjan> i have sometimes entertained the notion that the weirdness of quantum mechanics is because subatomic particles are constantly travelling in time...
03:13:39 <RodgerTheGreat> I'm under the impression that quantum mechanics only seem random because we do not fully understand how they work.
03:13:53 <RodgerTheGreat> it makes more sense to my way of thinking.
03:14:08 <oerjan> randomness can of course be explained with chaos theory
03:14:16 <oerjan> *apparent
03:14:24 <RodgerTheGreat> yeah
03:14:41 <RodgerTheGreat> I was going to say "The *appearance* of randomness..."
03:15:38 <oerjan> but there are subtle restrictions on what randomness can occur if you assume effects cannot travel in time or faster than light
03:16:00 <oerjan> and Bell's inequality seems to violate those
03:16:07 <RodgerTheGreat> chaos theory essentially says that a complex system can create effectively unpredictable behavior because we do not possess perfect information. That doesn't make *any* behavior truly random or nondeterministic
03:16:18 <oerjan> or was that the other way around
03:16:33 <RodgerTheGreat> I'm unfamiliar with bell's inequality
03:17:11 <oerjan> http://en.wikipedia.org/wiki/Bell_inequality
03:27:44 -!- faxathisia has quit ("This computer has gone to sleep").
03:34:21 <dbc> This is part of why I like the Everett interpretation.
03:37:08 <dbc> That and I'm a born minimalist anyway so I like the reduction in core theoretical apparatus. Keep Schrödinger wavefunction, lose everything else.
03:37:30 <dbc> And as a bonus it explains how we got through fifty+ years of thermonuclear bombs on hair trigger.
03:44:19 <immibis> Excuse me, Schr(A with tilde)(paragraph break)dinger?
03:45:34 <immibis> oh right, it's unicode.
03:50:20 <oerjan> actually the wierd is, it wasn't, it was ISO-8859-1
03:50:48 <oerjan> so how you got to see the UTF8 expansion i don't know :)
03:51:38 <oerjan> *weird thing
03:54:30 <immibis> i didn.t
03:54:51 * pikhq laughs at the B Nomic game state
03:54:52 <immibis> i got Schr-A with tilde-paragraph break-dinger.
03:55:00 <pikhq> It may or may not have a dictator.
03:55:05 <pikhq> It may or may not have any rules.
03:55:06 <oerjan> yes, that's the UTF8 expansion
03:55:16 <pikhq> It may or may not be an Agoran protectorate.
03:55:23 <oerjan> _not_ the actual Unicode character though
03:55:26 <pikhq> I may or may not be a player.
03:57:06 <oerjan> immibis: for you to see it, something on your path must have _first_ converted ISO-8859-1 to Unicode, _then_ your client must have failed and displayed it as if it _still_ was ISO-8859-1.
03:57:36 <immibis> i'm guessing it was a condensed oe thing from the context.
03:57:49 <oerjan> o
03:58:14 <oerjan> er, "o
03:58:40 <oerjan> i guess is still something squiggly to you
03:59:37 <immibis> no, is a shorter double quote.
04:00:04 <immibis> even to me.
04:00:27 <immibis> or two dots depending on what you call it.
04:00:32 <oerjan> ok
04:00:41 <oerjan> so what is schrdinger?
04:02:23 <immibis> schr-o with two dots-dinger.
04:02:26 <immibis> that's strange.
04:02:54 <oerjan> that looks the same on my screen as in dbc's comment
04:03:32 <oerjan> and the same in the logs
04:04:11 <oerjan> must be a heisenbug
04:04:18 <oerjan> right time for it too :)
04:06:57 <immibis> or, more likely, his was posted in utf-8 and yours in iso9660.
04:07:01 <immibis> i mean iso8859-1.
04:07:10 <immibis> iso9660's a filesystem format, silly me.
04:07:25 <oerjan> er i said they looked the same to me, and in the logs
04:17:25 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. If you think nobody cares, try miss).
04:53:59 -!- oerjan has quit ("Good night").
05:16:56 -!- GreaseMonkey has quit ("Who keeps reincarnating sliced bread?!").
05:17:06 -!- Sgeo has quit (Remote closed the connection).
05:19:33 -!- calamari has joined.
05:45:42 -!- calamari has quit ("Leaving").
05:56:41 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
07:08:13 <oklopoo> RodgerTheGreat: the problem with your proof is, it just proves (well, doesn't really, but that's required for it to work) that an oracle can be created in the physical world
07:10:00 <oklopoo> what? my nick hasn't changed back automatically!
07:10:03 -!- oklopoo has changed nick to oklopol.
07:12:51 <oklopol> errrer i have some weird pronoun use there, anyhow, my point is, even if the universe was fully continuous or something and you could actually have an infinite memory, time travel would provide an oracle (as the name might suggest...), the problem is, there is no paradox here, no system is predicting it's own behavior.
07:13:09 -!- Nonick-989170 has joined.
07:18:44 <oklopol> o
07:22:07 <Nonick-989170> Hello sir.
07:22:13 <oklopol> http://www.vjn.fi/pb/p341313315.txt factorials in oklotalk!
07:22:14 -!- Nonick-989170 has changed nick to Slereah.
07:22:28 <oklopol> heyyyy there are people here i haven't talked about oklotalk yet :D
07:23:56 <oklopol> i started development again cuz i chose oklotalk as my... well, a graduation project or smth
07:24:24 <oklopol> although admittedly i should've programmed something awesome in unlambda or smth xD
07:30:32 -!- ELIZA197 has joined.
07:32:10 <ELIZA197> TALK TO ME OR I'LL EAT YOU
07:32:42 <Slereah> HELLO ELIZA197
07:32:56 <ELIZA197> ADDRESS ME AS ELIZA.
07:33:02 <Slereah> :(
07:34:00 <ELIZA197> Hello. Please state your problem.
07:34:45 <Slereah> Heh. A friend rewrote my Turing machine in Ruby.
07:34:51 <Slereah> Let's see how it works!
07:37:43 <EgoBot> ELIZA: Poo.
07:37:53 <ELIZA197> Please go ahead.
07:39:23 <EgoBot> ELIZA: What?
07:39:30 <ELIZA197> Tell me more about your head being about to explode.
07:41:10 -!- Jontte has quit (Read error: 110 (Connection timed out)).
07:43:39 <EgoBot> ELIZA: You are stupid.
07:43:47 <ELIZA197> Does it please you to think I am stupid ?
07:48:23 -!- immibis has joined.
07:48:53 <immibis> ELIZA: hi
07:49:02 <ELIZA197> But your heart is beating!
07:51:08 <dbc> Okay. I have a cron job to kill -9 Firefox on the half-hour, then I have a script to prevent that but it won't work twice in a row.
07:53:56 <immibis> how does that work?
07:54:43 <dbc> I just set up two scripts that check for, create, and destroy temp files.
07:55:08 <immibis> ok but what's the use of it (apart from annoying everyone who uses your computer)
07:55:33 <dbc> It's to help remind me not to waste too much time on the web.
07:56:19 <dbc> The time cost of restarting firefox and restoring seventy tabs or so is enough that I'm hoping it won't become a reflex.
07:57:11 <immibis> seventy?
07:57:39 <dbc> Something like that.
07:57:44 * immibis wonders that dbc hasn't run out of memory and swap partition space.
07:58:05 <dbc> That used to happen more with the last version of firefox. This one seems better.
07:59:07 <dbc> (this one being 2.0.0.10)
07:59:22 <dbc> It does lose the ability to run movies after a while, but that's all so far.
07:59:36 <immibis> whata bout 2.0.0.11
07:59:52 <immibis> ELIZA: What's the latest version of firefox?
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:01 <ELIZA197> Wouldn't you like to know?
08:00:11 <dbc> Haven't tried. Not 100% sure I should chance it.
08:01:29 <ELIZA197> HOT WATER RULES!
08:01:44 <immibis> eliza: excuse me?
08:02:01 <ELIZA197> FELINES AWAY
08:02:42 <immibis> eliza: shut up
08:03:02 <ELIZA197> But your neck is swollen to the size of an elephant!
08:05:31 <immibis> eliza: it is not.
08:05:41 <ELIZA197> Why do you think it is not?
08:06:07 <ELIZA197> GO FISHCAKES
08:06:26 <dbc> Wow did I underestimate. I have 158 tabs open now, in two windows.
08:06:44 <immibis> 158.....
08:06:58 <immibis> and where do you find so many sites to browse?
08:07:11 <immibis> at once.
08:08:44 <immibis> and did you know the computer you're on doesn't exist and is unreachable by the internet?
08:08:53 <immibis> there are at least 255 computers between it and me.
08:09:28 -!- immibis has quit (Read error: 104 (Connection reset by peer)).
08:09:28 -!- ELIZA197 has quit (Read error: 104 (Connection reset by peer)).
08:11:58 <dbc> Roughly half of that is porn and TGPs. Some is boardgamegeek and other things I'm meaning to read and/or buy.
08:12:02 <dbc> I'm afraid to just bookmark stuff because I'll never get back to it.
08:12:06 <dbc> dd_rescue reference page. That takes me back.
08:12:16 <dbc> Eggnog recipe. Seven places to buy my favorite pens that they stopped making. Pentel Micro Fine Superball.
08:12:37 <dbc> Political stuff. More laws to gradually increase the power of government.
08:13:25 <dbc> :)
10:28:16 -!- jix has joined.
11:41:11 -!- jix has quit (Nick collision from services.).
11:41:19 -!- jix has joined.
12:39:53 <RodgerTheGreat> Pilot G2s for the win.
12:57:04 -!- Sgeo has joined.
13:23:14 <DocWilco> =)
13:23:16 <DocWilco> oops
14:31:12 -!- faxathisia has joined.
14:53:21 -!- Jontte has joined.
15:07:42 -!- oerjan has joined.
15:12:44 -!- Jontte has quit ("Konversation terminated!").
15:21:08 -!- cherez has quit (Read error: 110 (Connection timed out)).
15:23:50 -!- cherez has joined.
15:25:19 -!- Jontte has joined.
15:44:45 -!- ehird` has joined.
15:47:39 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
15:48:28 -!- ehird` has joined.
16:13:20 -!- Jontte has quit ("Konversation terminated!").
16:16:19 -!- Jontte has joined.
16:23:04 -!- RedDak has joined.
16:25:19 -!- Jontte has quit ("Konversation terminated!").
16:42:54 -!- sebbu has joined.
16:49:47 -!- Dagide has joined.
16:52:22 -!- dak__ has joined.
16:55:15 -!- Dagide has quit (Read error: 104 (Connection reset by peer)).
17:09:09 -!- RedDak has quit (Read error: 110 (Connection timed out)).
17:22:26 -!- dak__ has quit (Connection timed out).
18:34:26 -!- oerjan has quit ("Supper").
18:43:32 <RodgerTheGreat> this is fascinating: http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Babylonian_numerals.html
19:03:42 <Slereah> Why am I whistling "99 bottles of beer" while testing a Fibonacci program?
19:05:44 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
19:07:30 -!- Sgeo has joined.
19:14:30 -!- jix has quit ("CommandQ").
19:30:40 <Slereah> In retrospect, it was a poor idea to do a Fibonacci without some sort of addition code first.
19:31:51 <RodgerTheGreat> whistling 99b while implementing fibo is a normal phase in the descent into gibbering insanity. Welcome to the party.
19:32:13 <Slereah> Yay!
19:34:30 -!- ais523 has joined.
19:34:59 <RodgerTheGreat> :)
19:35:21 <ais523> is anyone going to give me some context, or do I have to read the logs again?
19:35:46 <ais523> or am I assuming lack of context when in fact it's me that's being smiled at?
19:36:04 * ais523 reads the logs
19:36:16 <RodgerTheGreat> Slereah: Why am I whistling "99 bottles of beer" while testing a Fibonacci program?
19:36:16 <RodgerTheGreat> Slereah: In retrospect, it was a poor idea to do a Fibonacci without some sort of addition code first.
19:36:16 <RodgerTheGreat> RodgerTheGreat: whistling 99b while implementing fibo is a normal phase in the descent into gibbering insanity. Welcome to the party.
19:36:16 <RodgerTheGreat> Slereah: Yay!
19:36:31 <RodgerTheGreat> goddamnit man give me some time to edit!
19:37:11 <ais523> thanks for that. I just logged on to test a new laptop
19:37:27 <ais523> I don't actually have an Internet connection so I'm testing the wireless connection at Uni too
19:38:54 <RodgerTheGreat> ah
19:39:21 <ais523> at least it's better than the ancient version of Chatzilla that was the only client I used to have access to
19:40:04 <RodgerTheGreat> nonlogic has a Java-based client hidden somewhere within our info pages
19:40:43 <ais523> I tried to use a Java-based client, but it couldn't get round the firewall
19:40:58 <ais523> whereas Chatzilla was running on a mainframe with the relevant port open
19:41:16 <ais523> but the only Web browser was the corresponding version of Mozilla
19:41:34 <ais523> which was so old that I once managed to accidentally break Wikipedia pages with it until someone told me to stop
19:45:29 <ehird`> cgi:irc?
19:45:59 <ehird`> or: parenrc, but since that's still in development i guess not :)
19:46:34 <ais523> does it work on Solaris without being installed or in fact the executable going anywhere near the computer?
19:47:02 <RodgerTheGreat> construct something hideous out of bash scripts and netcat
19:47:16 <ais523> that's almost worth doing
19:47:31 <RodgerTheGreat> just imagine- decoding the streams with sed!
19:47:54 * ais523 is a big fan of sed
19:48:10 <faxathisia> sed is great yeah
19:48:11 <ais523> I was on this computer and had no working mouse, ruling out all the graphical editors preinstalled.
19:48:12 <RodgerTheGreat> it could only get better if you needed to do something involving bit shifting
19:48:30 <RodgerTheGreat> I like nano for console-based editing
19:48:32 <ais523> I don't know how to use vi, and emacs wasn't installed (and I couldn't install it without a web connection)
19:48:41 <ais523> so I edited with cat and sed
19:48:42 <RodgerTheGreat> nano!
19:48:48 <RodgerTheGreat> impressive, but insane
19:49:00 <ais523> (and I forgot about nano even though I'd used it on a different computer the previous day)
19:49:16 <RodgerTheGreat> <3 my nanorc
19:49:18 <ais523> Subversion seems to end up using it by default for some reason
19:49:51 <RodgerTheGreat> nano, as few people know, can be configured to syntax-hilight.
19:50:47 <ais523> the best thing about editing with sed is that my brother was watching, and asked "why does your edit command start with 's/^#.*/?", which is a valid question for someone used to Windows
19:51:05 <ais523> (the question mark was the end of the question rather than part of the sed command)
19:52:26 <ais523> RodgerTheGreat: can nano syntax-highlight Perl correctly?
19:52:40 <ais523> I've never yet found a syntax highlighter that can handle both its complicated quoting rules and regexps
19:52:46 <RodgerTheGreat> I dunno
19:53:34 <ais523> has MonkeyofDoom been around recently?
19:53:46 <ais523> They were asking for C-INTERCAL help a while ago, but I wasn't online at the time
19:58:41 <ais523> if MonkeyofDoom is reading this in the logs, my advice would be to try a more recent version (unless they're already trying the most recent version)
19:59:04 <ais523> the most recent is currently 1.26, obtainable from http://intercal.freeshell.org/download
19:59:28 <ais523> it makes fewer Linuxy assumptions than some of the older versions
19:59:47 <ais523> <sgml></shameless plug></sgml>
20:00:16 <RodgerTheGreat> holy SHIT. An article I just read suggests that "woot" is in fact an acronym!
20:00:30 <ais523> what, even if spelt with 0 rather than o?
20:00:35 <RodgerTheGreat> "we owned the other team"
20:00:53 <ais523> in that case, it should be spelt wotot from now on
20:01:23 <ais523> just like CAPTTTTCHA
20:01:30 <ais523> sorry, CAPTTTCAHA
20:01:41 <RodgerTheGreat> wotot. It could catch on, I guess...
20:02:20 * ais523 just noticed that they typoed on both CAPTCHA expansions
20:02:26 <ais523> it's actually CAPTTTTCAHA
20:04:30 <ais523> nowadays wotot should probably be wptot
20:08:37 <ais523> on the subject of acronyms, I once read a joke article that the name of the programming language C was in fact an acronym
20:08:51 <ais523> the article alleged it was a recursive acronym that stood for "C"
20:09:04 <ais523> if that isn't the real etymology, it ought to be
20:10:12 <oklopol> A, B, C, though :\
20:10:41 <ais523> I've heard a serious suggestion that C was named after B, but B was named after BCPL
20:10:47 <ais523> sparking huge debates about whether the next version of the language would be called D or P
20:10:59 <oklopol> :D
20:13:29 * ais523 has just come across an article written by Microsoft attempting to explain leet
20:13:45 <ais523> it was by following a link; Microsoft took it down, but it's still in Wayback
20:14:35 <ais523> http://web.archive.org/web/20060101013059/http://microsoft.com/athome/security/children/kidtalk.mspx
20:15:53 <ais523> it's just a rather amusing incongruity
20:17:17 <oklopol> the first two keypoints sorta overlap
20:18:08 <ais523> no, they're obviously completely different; one is about numbers, and the other is about numbers /and/ symbols
20:18:31 <ais523> you have to pay good money to get an upgrade from the first keypoint to the second
20:19:35 -!- ais523 has quit ("Konversation terminated!").
20:26:48 -!- parenbot has joined.
20:27:01 <parenbot> heyyyy, it works!
20:28:43 -!- ehird` has left (?).
20:28:46 -!- ehird` has joined.
20:28:46 <parenbot> Somebody joined. As of yet, I don't know who or where, but somebody joined!
20:29:22 <faxathisia> parenbot: Help
20:29:31 <RodgerTheGreat> what do you guys think of these character design ideas? http://nonlogic.org/dump/images/1197490667-snow.png
20:29:42 <ehird`> faxathisia: No, not yet. ;P
20:29:49 <faxathisia> hey that's cool
20:29:51 <ehird`> faxathisia: I added the join hook from a REPL
20:29:59 <ehird`> faxathisia: I'll put it in a file soon
20:30:08 <faxathisia> ehird`: Oh this bot is written in som schemeish language you wrote in C?
20:30:23 <ehird`> faxathisia: No, that implementation spiralled out of control :P
20:30:38 <ehird`> It's written in Common Lisp, because Common Lisp has cl-irc, and cl-irc is a very nice low-level IRC wrapper
20:30:50 <faxathisia> cl-irc has a bug in it >:|
20:30:53 <ehird`> Does it :(
20:31:04 <ehird`> (What, that it's written in Common Lisp? :-))
20:31:17 <faxathisia> nah.. something to do with finding a subsequence in a stream
20:31:23 <ehird`> shame
20:31:24 <faxathisia> I would have fixed it but the maintainer freaked me out
20:31:28 <ehird`> hm
20:31:30 <ehird`> in what way
20:31:55 <parenbot> time to visit a file, methinks
20:31:59 -!- parenbot has left (?).
20:32:15 <faxathisia> if it's looking for "foobar" and in the string "blah blah foofoobar baz" it will fail
20:32:26 <ehird`> "but the maintainer freaked me out" in what way
20:32:52 * faxathisia didn't manage to avoid that well :p... I think they were just bush and rushed at the time
20:33:00 <faxathisia> busy*
20:33:15 <ehird`> :P
20:35:09 <faxathisia> what's the bot for?
20:36:49 <ehird`> lots of stuff
20:36:58 <ehird`> :-)
20:37:06 <faxathisia> do you want a brainfuck evaluator in CL
20:37:18 <faxathisia> http://paste.lisp.org/display/49075
20:37:23 <ehird`> it'll have the regular bot convenience things (google, etc.), some esolang interps, lots of lisp-related stuff, ...
20:37:33 <faxathisia> that'd be neta
20:39:23 -!- Tritonio_ has joined.
20:39:44 <ehird`> it will run on SBCL
20:39:56 <ehird`> so, there'll be a good lisp system under it for its evaluators
20:40:14 * faxathisia is wondering if they should improve and add to SBCLs current FFI or rewrite it :|
20:40:21 <faxathisia> (er not rewrite it but write a new one)
20:40:42 <ehird`> i'm basically completely new to common lisp (not scheme though) so this will be my first 'major' thing
20:45:20 <ehird`> faxathisia: i'm planning on adding some kind of web interface to administrate the bot
20:45:22 <ehird`> with weblocks, or something
20:45:37 <faxathisia> I'd recommend hunchentoot
20:45:51 <faxathisia> if you want a webserver to connect to
20:45:59 <faxathisia> and you can just code the site in lisp which is great
20:46:00 <ehird`> weblocks uses hunchentoot
20:46:07 <ehird`> weblocks is a lisp webframework :-)
20:46:13 <ehird`> http://common-lisp.net/project/cl-weblocks/
20:46:15 <faxathisia> (Would probably recommend agianst weblocks though...)
20:46:22 <ehird`> i've played with weblocks, i like it
20:46:29 <ehird`> why do would you not recommend it?
20:48:47 <faxathisia> oh I had some impression of it which seems false
20:48:51 <ehird`> what impression? :-)
20:48:56 <faxathisia> but I only looked at it like a year ago or something like that
20:49:14 <ehird`> it has only existed for a few months
20:51:53 * ehird` ponders whether parenbot should be modular/plugin-based/etc or not
20:52:10 <faxathisia> SLIME based!
20:52:23 <faxathisia> you can just hack it while it's running
20:52:35 <faxathisia> or should I say, swank instead of slime
20:53:22 <ehird`> welp i do have SLIME open all the time, but I'm not sure I'll write parenbot based entirely on SLIME :-)
20:53:26 <ehird`> it should work fine in slime, at least
20:53:41 <faxathisia> (A lot of fun using SLIME to mess with opengl interactively..)
20:56:59 <ehird`> faxathisia: i don't think i want it modular/etc just now. what do you think?
20:57:06 <ehird`> well, modular code of course
20:57:11 <ehird`> but not 'everything's a plugin'
20:57:16 <ehird`> the commands will just be part of parenbot
20:57:22 <faxathisia> yeah I think it's a bad idea to have everything a plugin
20:57:40 <faxathisia> I'd just run a swank server in the bot, then connect to that to edit the code
20:57:46 <faxathisia> so you get plugin for free basically
20:57:55 <faxathisia> (free meaning zero lines of code)
20:58:35 <faxathisia> (and this making me want to write some CL program more and more :p)
20:59:47 <ehird`> how is that making it a plugin?
20:59:50 <ehird`> i mean like a plugin with the bot
20:59:55 <ehird`> so you can do, like
20:59:58 <ehird`> *load blah
21:00:00 <ehird`> *reload blah
21:00:01 <ehird`> *unload blah
21:00:08 <ehird`> blah being, 'google' or 'eval' or something
21:00:22 <faxathisia> yeah
21:00:45 <faxathisia> I would use slime and then you can just connect to the bot, load the blah file, or edit any part of the code at all
21:00:56 <ehird`> but that doesn't let you do that /from within irc/
21:01:16 <faxathisia> m.. I would not use IRC as a text editor
21:02:44 <ehird`> that's not using it as a text editor
21:02:58 <ehird`> the basic idea is that a plugin has-many commands
21:07:58 -!- ihope has joined.
21:13:02 <ehird`> ihope: you vote
21:13:10 <ehird`> parenbot: plugin-based or i just put commands in it
21:14:22 <ihope> Vote?
21:14:35 <ihope> Plugin-based.
21:15:30 <ehird`> But that's woooorrrk! :P
21:15:38 <ehird`> But ok.
21:17:04 <GregorR> parenbot = bot supporting parenthesis? :P
21:17:47 <ehird`> GregorR: No, bot written in Common Lisp with lots of generic, esolang and lisp stuff :P
21:18:43 <ehird`> Silly CLOS.
21:18:53 * ehird` is getting tired of writing (X :accessor X :initarg :X :initform nil)
21:19:25 * faxathisia never found a good use for CLOS...
21:20:00 <faxathisia> (well CLOS seems to be very good for.. implementing CLOS)
21:20:32 <GregorR> Common Lisp ... Object System? Operating System?
21:20:34 <GregorR> \
21:20:43 <faxathisia> the object system
21:20:44 <ehird`> Object system :P
21:21:05 <ehird`> faxathisia: Eh, since I'm doing plugins a 'plugin' class for inheriting makes sense.
21:21:09 <ehird`> So, I might as well have a parenbot class.
21:21:31 <ehird`> Urgh, I wish cl-irc wasn't so connection-centric.
21:21:39 <ehird`> What if I want multiple servers, huh? huh? punk >:(
21:21:45 <faxathisia> I'd probably just have an alist like '((bf #'<some function which does a bf thing based on input) (echo #'echo)) .. etc
21:22:00 <ehird`> faxathisia: Bah.
21:22:05 <ehird`> That's just implementing CLOS on top of clos
21:22:11 <ehird`> Also, cl-irc uses CLOS :P
21:25:59 <ehird`> ihope: Should I allow plugins to be /registered/ with a parenbot, but not activated?
21:26:08 <ehird`> or should i just say: registered plugins = active plugins
21:27:13 <ehird`> any bot using the @ prefix in here?
21:30:08 <ihope> ehird`: yeah, registered but not activated.
21:30:37 <ehird`> ihope: what's the point of a loaded but inactive plugin though? why not just unload it?
21:31:34 <ihope> What if the plugin won't still be around to load when you want to use it?
21:32:01 <ihope> If that can't happen, go ahead and say registered means activated.
21:32:36 <ihope> Or, I guess, if loading it before you need to use it is easier in any way.
21:35:04 <ehird`> i doubt that will happen
21:35:08 <ehird`> short of someone deleting it :-)
21:35:18 <ehird`> (In which case, they'd unload it before deleting it, of course.)
21:36:15 <ehird`> ihope: Of course, you can still get the list of unactivated plugins
21:36:22 <ehird`> they'd just be noted as "available, but unloaded"
21:36:25 -!- oerjan has joined.
21:36:28 * ihope nods
21:36:42 * faxathisia is baffled by all this, wonders why you don't just want it to do everything :p
21:36:45 * oerjan shakes his head
21:36:46 <ihope> So there's no creating plugins on the fly, or loading plugins from random Internet places.
21:37:19 <ehird`> Of course not, plugins can contain arbitary Lisp code.
21:37:27 <ehird`> Do you think I'm *that* crazy? :-)
21:37:31 <ihope> :-)
21:37:37 <ihope> All OK, then.
21:39:03 <oerjan> <RodgerTheGreat> whistling 99b while implementing fibo is a normal phase in the descent into gibbering insanity. Welcome to the party.
21:39:26 <oerjan> i say we are in need of something like lambdabot's @quote command
21:39:33 <ehird`> oerjan: parenbot will have that!
21:39:39 <ehird`> faxathisia: Well I do. :D
21:39:41 <oerjan> nice
21:39:59 <ehird`> oerjan: Unless someone does @unload quote! :P
21:40:06 <ehird`> In which case you could just do @load quote again!
21:40:20 <ehird`> I think I might add a full-blown parser for the commands, with type-checking.
21:40:36 <ehird`> @factorial floob --> Error! Command factorial expects an integer as first parameter, got string
21:40:39 <ehird`> Mwahahahaha!
21:41:47 <GregorR> @factorial 1000000000
21:42:12 <ihope> GregorR: 0
21:42:17 <GregorR> Oh, it's not actually here :P
21:42:35 <ihope> (Arithmetic overflow. Please increase width.)
21:42:51 <GregorR> Increase width -> eat bacon
21:43:07 <faxathisia> hmm
21:43:24 <faxathisia> since you have arbitrary precision integers in CL...
21:43:34 <faxathisia> what if someone does @factorial 99999999999999999999999999999999999
21:43:43 <oerjan> GregorR: i can give you the last 100000000 digits or so if you want :)
21:43:53 <ihope> faxathisia: it takes a while?
21:44:00 <faxathisia> in general.. How are you going to force a command to terminate after a timeout?
21:44:26 <ehird`> faxathisia: uh, by doing just that
21:44:32 <ehird`> Or rather
21:44:37 <ehird`> Just letting you kill processes.
21:44:46 <ehird`> And @factorial would have a sanity check, ofc
21:44:49 <faxathisia> so you'd spawn a new lisp process for each command?
21:44:57 <ehird`> no
21:45:00 <ehird`> i'd just spawn a new thread.
21:45:03 <GregorR> Non-incidentally, my Plof interpreter can do some basic Plof code now ^^
21:45:16 <GregorR> Simple 0-argument function calls, setting variables, etc.
21:45:38 <ehird`> GregorR: But Does It Have Reusable Continuations?(TM)
21:45:51 <GregorR> No It Doen't (yet) [TM]
21:46:10 <ehird`> Well Add It, Before You Get Too Far And Irrevocably Destroy All Chances Of It(TM)
21:46:14 * ihope ponders a write-once filesystem
21:46:34 <GregorR> Nothing I Can Do To The Plof Grammar Will Affect It, Since That Would All Have To Do With The Underlying PSL [TM]
21:47:18 * oerjan ponders a write-exactly-three-times filesystem
21:47:22 <oerjan> very briefly.
21:47:43 <ehird`> faxathisia: how do I do keyword arguments with defaults in a CLOS method without making them a specific type? :/
21:47:54 <ehird`> can't do (arg default) since that's (arg type)
21:48:43 <oerjan> isn't there a top object type in CL?
21:49:02 <ihope> A write-exactly-three-times filesystem is pretty simple given a write-once filesystem.
21:49:03 <faxathisia> (defmethod foo (&key (bar 53)) bar)
21:49:09 <ihope> Just ignore the first two writes.
21:49:20 <faxathisia> (foo) ; -> 53
21:49:31 <oerjan> ah, but naturally it should require the three writes to be the same
21:49:38 <oerjan> for safety
21:49:42 <GregorR> ihope: write("/foo", "a"); read("/foo") /* empty because you ignored it */
21:50:19 <ihope> GregorR: but that's not writing exactly three times!
21:50:23 <ehird`> faxathisia: so how do i give a keyword argument a type? :-)
21:50:34 <faxathisia> in the defgeneric ?
21:50:39 <GregorR> ihope: You should only be able to read after all three writes?
21:50:41 <ehird`> in the defmethod
21:50:46 <faxathisia> honestly CLOS is just making things hard for you :p
21:50:47 <ihope> Yes!
21:50:50 <faxathisia> as it does every problem
21:50:55 <faxathisia> (that I ever experienced)
21:51:03 <ehird`> (defmethod foo ((bot parenbot) ...) ...) ; parenbot is a type
21:51:14 <ehird`> i can't seem to do that with a kwarg, since it'd be taken as the default
21:51:25 <faxathisia> you cannot specialize on keywords or optionals
21:51:36 <faxathisia> the semantics of it would be too confusing.. there's too many ways it could work
21:52:15 <ehird`> good point
21:57:09 * ehird` wonders where he should add the code to scan for plugins
21:58:32 <ihope> Scan for plugins? My.
21:59:24 <ehird`> :-)
21:59:32 <ehird`> oh wait, asdf will load them
21:59:40 <faxathisia> ooh cool
21:59:40 <ehird`> so all i need to do is define a plugin superclass that takes note
21:59:53 <faxathisia> asdf for plugins nice
22:00:00 <ehird`> faxathisia: well. in the loosest sense.
22:00:07 * faxathisia thinks that is a good idea
22:00:18 <ehird`> i just mean in my defsystem, in the :components list i'll add the files i have for plugins :-)
22:00:27 <ehird`> it would be interesting to actually use asdf though
22:00:51 <faxathisia> if you used asdf since you're using sbcl just hit (require :brainfuck) or whatever to load a plugin (require falls back to asdf:oos load-op)
22:01:14 <ehird`> i guess
22:01:30 <ehird`> (instead of a brainfuck plugin i think i'll have an esolangs plugin. does that sound ok?)
22:04:43 <ehird`> faxathisia-ping
22:04:51 <faxathisia> hello
22:05:27 <faxathisia> A whole bunch of esolang interpreters written in CL would be a nice package
22:06:15 <ehird`> yeah
22:06:17 <ehird`> the idea is that
22:06:23 <ehird`> most commands will run an external program
22:06:37 <faxathisia> oh.. you don't want to actually code the interpreters in CL
22:06:38 <faxathisia> ?
22:06:42 <ehird`> no, i could do that
22:06:50 <ehird`> it'd just make a new sbcl for it :-)
22:06:59 <ehird`> reason being if that process goes to hell the bot stays alive
22:08:50 <ehird`> faxathisia: seems reasonable to me, maybe not to you :-)
22:09:14 <ehird`> i mean, i'd have brainfuck.lisp, and underload.lisp, etc., and finally parenbot.lisp which would register them all as running a lisp interpreter on the appropriate interp
22:13:54 <ehird`> faxathisia: i mean, otherwise one command could f up the whole bot
22:14:03 <faxathisia> yeah, hehe
22:14:13 <faxathisia> I mkdir on someone elses computer cause they had a lisp with eval
22:14:34 <faxathisia> gave them a good scare :p
22:15:17 <ehird`> yeah, my eval command will run an sbcl process, kill everything that isn't 100% safe, run one command, then bail out
22:15:33 <ehird`> though that would kinda ruin variables :-)
22:17:45 -!- `_ has joined.
22:18:14 <ehird`> faxathisia: so, let's get this straight... parenbot plugin = asdf system + cl package?
22:18:39 <ehird`> which is not special in any way, just happens to import parenbot and define classes inheriting from parenbot:plugin?
22:20:37 <ehird`> ihope: `_: you can have an opinion on that too :P
22:20:58 -!- `_ has changed nick to ihioe_.
22:21:00 <ihioe_> My.
22:21:05 -!- ihioe_ has changed nick to ihope_.
22:22:18 -!- Tobias_Thanos has joined.
22:22:54 <ehird`> My. what
22:23:13 <GregorR> Oh noes, an Oregoner!
22:23:26 <Tobias_Thanos> yep
22:23:32 <ihope_> `_.
22:23:46 <ihope_> GregorR: wait, didn't you have some Oregonness at one point?
22:24:10 <GregorR> I am in fact in Oregon, but Comcast's hostname generation appears to be el retarded :P
22:25:00 <oerjan> so do you speak Oregano?
22:25:23 <GregorR> I was never fluent :(
22:25:42 <Tobias_Thanos> I'm currently taking lessons
22:26:01 <ihope_> I don't know Oregano, but my good friend Alfredo Linguini is.
22:26:04 <ihope_> Does.
22:27:38 <ehird`> anyone?
22:30:30 <ihope_> Anyone what?
22:31:23 <ehird`> see 22:18-22:20 (it's 22:30)
22:31:49 <ihope_> Okay?
22:32:42 <ehird`> i'm asking if its a good idea :P
22:33:08 <oerjan> buy low! sell high!
22:33:15 <faxathisia> haha
22:33:30 <oerjan> oh, you were not asking _for_ a good idea. sorry.
22:36:44 <ihope_> ehird`: asking if what's a good idea?
22:37:11 <ehird`> the 22:18 - 22:20 stuff
22:37:30 <ehird`> "faxathisia: so, let" ... "nbot:plugin?"
22:37:58 <faxathisia> :(
22:38:48 <ehird`> faxathisia: ?
22:39:04 * faxathisia doesn't know if it's a good idea or not..
22:39:11 <faxathisia> maybe just run with it and see what happens
22:39:21 <ehird`> alright
22:39:45 <ehird`> it means that i can do crazy things like write a plugin, then
22:39:54 <ehird`> <ehird`> *load the-package-name
22:39:59 <ehird`> *boom* there it is
22:40:11 <faxathisia> :S
22:40:12 <ihope_> Sounds fine?
22:40:14 <ehird`> faxathisia: although this requires me to be able to access a list of all the subclasses of a given CLOS class
22:40:20 <ehird`> faxathisia: is that even possible?
22:40:21 <ihope_> Mm.
22:40:25 <faxathisia> I'd just open emasc.. connect to the irc bot.. write the plugin
22:40:29 <faxathisia> it works without the boom in this case
22:40:36 <faxathisia> (and without typing *load into IRC)
22:41:02 <ehird`> faxathisia: i like having files
22:41:03 <ehird`> :-)
22:41:16 <faxathisia> yes you would be editing a file and sending the code from it into the lisp
22:41:34 <ehird`> well, the difference here is that you define a package, and the bot treats them as plugins
22:41:55 <ehird`> ... but unless there's a way to get a list of the subclasses of parenbot:plugin, i can forget about it
22:42:56 <faxathisia> you can list all the subclasses of a class
22:43:55 <faxathisia> class-direct-subclasses
22:44:28 <faxathisia> (but that's part of sb-mop, not cl)
22:44:40 <ehird`> what is this 'sb-mop'
22:44:49 <faxathisia> sbcls implementation of MOP
22:45:00 <ehird`> ahhh
22:45:01 <faxathisia> reflective dynamic cool stuff undneath/backstage CLOS
22:45:04 <ehird`> sbcl-specific
22:45:17 <faxathisia> well it's a standardized protocoll
22:45:17 <ehird`> ok, another way of thinkin about it: can i run some arbitary code when a class is subclassed?
22:45:25 <faxathisia> implementations are incomplete though, but this is SBCLs one
22:45:37 <faxathisia> http://lisp.org/mop/index.html
22:47:47 -!- Tobias_Thanos has quit ("Leaving").
22:51:25 <ehird`> is running some arbitary code on subclass possible though?
22:56:11 -!- sebbu has quit ("@+").
2007-12-13
00:42:19 -!- Slereah has quit (Read error: 110 (Connection timed out)).
00:45:51 -!- ehird` has quit (Remote closed the connection).
01:07:03 -!- Slereah has joined.
01:43:54 -!- poiuy_qwert has joined.
02:56:18 -!- GreaseMonkey has joined.
03:27:43 -!- faxathisia has quit ("Leaving").
03:47:34 <pikhq> oerjan: http://b.nomic.net/index.php/Potential_Gamestates
03:48:09 <pikhq> And that's incomplete.
04:00:19 <oerjan> I like the conclusion :D
04:03:40 <pikhq> A state of emergency is defined by the rules of B Nomic.
04:04:16 <pikhq> And, best of all, it's defined by players panicing.
04:08:10 <oerjan> ah, that would be the one rule you didn't repeal?
04:08:13 <pikhq> Yes.
04:08:43 <pikhq> And the mere *existence* of that repeal is debatable.
04:08:57 <pikhq> If B does not have a Chancellor, B may or may not have a ruleset.
04:10:09 <pikhq> Currently, the gamestates are being rectified. . .
04:10:50 <pikhq> If my repeal happened, then the refresh proposal will reset stuff. If it didn't happen, then if there is a Chancellor, he resets stuff. Otherwise, the refresh proposal does so.
04:37:33 <RodgerTheGreat> oerjan:
04:37:33 <RodgerTheGreat> i say we are in need of something like lambdabot's @quote command <- is this implying you felt that comment deserved to be saved for posterity?
04:37:53 <oerjan> yep
04:38:01 <RodgerTheGreat> thanks. :D
05:13:35 -!- RodgerTheGreat has quit (calvino.freenode.net irc.freenode.net).
05:13:36 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
05:13:36 -!- Possum has quit (calvino.freenode.net irc.freenode.net).
05:13:49 -!- RodgerTheGreat has joined.
05:13:49 -!- sekhmet has joined.
05:13:49 -!- Possum has joined.
05:32:05 -!- Sgeo has quit (Connection timed out).
06:25:18 -!- oerjan has quit ("leaving").
06:38:25 -!- immibis has joined.
06:39:13 <oklopol> quotes? hmm, i could add something for that, but that'd require me to get ololobot multinetworkous first
06:39:30 <oklopol> goneeee ->
06:41:28 -!- immibis_ has joined.
06:50:18 -!- poiuy_qwert has quit.
06:54:36 -!- immibis___ has joined.
06:54:56 -!- immibis has quit (Nick collision from services.).
06:54:58 -!- immibis_ has quit (Nick collision from services.).
06:55:01 -!- immibis___ has changed nick to immibis.
07:01:21 * immibis didn't see nything wrong with the names "Worse Than Failure" or "The Daily Worse Than Failure"
07:39:35 -!- immibis_ has joined.
07:55:45 -!- immibis has quit (Read error: 110 (Connection timed out)).
07:58:48 -!- immibis_ has changed nick to immibis.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:40 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. When the chips are down, well, the ).
08:22:14 -!- ihope_ has quit (Read error: 104 (Connection reset by peer)).
08:53:57 -!- GreaseMonkey has quit ("Who keeps reincarnating sliced bread?!").
09:40:12 -!- Tritonio_ has quit (Remote closed the connection).
10:42:24 -!- complexity has joined.
10:42:47 <complexity> does anyone knows where I can find the grammar for brainfuck ?
10:55:35 <oklopol> esolang.org
10:55:39 <oklopol> and check the wiki
10:55:48 <oklopol> uhh
10:55:49 <oklopol> esolangs
11:07:28 <oklopol> okay
11:07:32 <oklopol> i officially own :O
11:08:09 <oklopol> wrote a program to generate random melodies... after changing random_choice to random.choice, it worked perfectly 8|
11:08:15 <dbc> Which grammar?
11:08:18 <oklopol> i have like 20 functions...
11:08:23 <oklopol> well, python ;)
11:08:49 <oklopol> okay, i don't own, just proved once again you can't make mistakes in python
11:09:33 <oklopol> melodies currently only use "good notes", or the notes constituting current chord
11:09:49 <oklopol> and they suck pretty bad
11:10:02 <oklopol> but you can hear the chord anyways, it's kinda neat :P
11:13:03 <dbc> If you want a context-free grammar, one is S -> SS | '[' S ']' | <any character but '[' or ']'> | <empty string>
11:13:29 <oklopol> hmm?
11:13:41 <dbc> "does anyone knows where I can find the grammar for brainfuck ?"
11:13:48 <oklopol> oh
11:13:53 <oklopol> i though that was for me
11:13:54 <oklopol> :D
11:14:01 <dbc> Nope.
11:14:06 <oklopol> the earlier one too was for the earlier request then
11:14:21 <oklopol> i thought it was a weird way to ask "what language did you write it in" :D
11:14:25 <dbc> Nope.
11:14:44 <dbc> Sorry :)
11:14:58 <oklopol> "nope"? don't you mean "exactly"?
11:15:10 <oklopol> ooooh
11:15:19 <oklopol> ah, the ambiguities of natural language <3
11:15:37 <oklopol> i need to eat something, anyone wanna hear the chaos my prog currently creates? :P
11:15:41 <dbc> Sure.
11:15:55 <oklopol> that was one weird sentence, but wait, i'll upload
11:16:05 <oklopol> the code, that is, can you run python?
11:16:16 <oklopol> or, i could make it output to a file
11:16:21 <oklopol> can you play raw data? :P
11:16:33 <dbc> Yeah. I'll get the code now and run it later if that's okay.
11:17:21 <oklopol> also, it's played with a broken sine wave, since the player is also written by me, and i was a bit lazy with the design, so it became hard to get adjacent waves to start smoothly.
11:17:35 <oklopol> basically meaning there are clicks, and the overall sound is not good.
11:17:44 <oklopol> but, anyway, i'll upload
11:18:21 <oklopol> http://www.vjn.fi/pb/p615613433.txt
11:19:02 <dbc> Thanks. See you later.
11:19:04 <oklopol> (commenting on the code isn't necessary, since i know everything that's wrong with it and don't care what people think. using python, this just happens to be the easiest way to pass programs on.)
11:19:07 <oklopol> yarrrr
11:19:13 <oklopol> i'll go now, indeed ->
11:21:58 <dbc> actually I have another few minutes. And that seems to work smoothly.
11:23:00 <dbc> What all would need changing to get a different chord sequence?
11:23:06 <dbc> (of different length i.e.)
11:36:47 <oklopol> hmm
11:36:52 <oklopol> see rand_chord_ptrn
11:36:58 <oklopol> rand_rhythm_ptrn
11:37:02 <oklopol> rand_melody_ptrn
11:37:10 <oklopol> the last one is where suckyness comes along
11:37:48 <oklopol> i had written a hundred lines of code up to that point, so was beginning to lose confidence on it working as i wanted :D
11:38:18 <oklopol> so... it just randomizes the melody completely, using the "good notes", or the notes best fitting for the current chord
11:38:39 <dbc> Ah.
11:39:04 <oklopol> the chords are tuples, (base_note in [0..11], a number indicating the type of chord (0 for minor, 1 for major))
11:39:59 <oklopol> if i make a better one, i'll not rely on chords and "good notes", but instead just calculate what notes fit best, and which chords fit best
11:40:20 <oklopol> less "built-in", more fun! (and prolly much much more chaotic :\)
11:41:05 -!- jix has joined.
11:42:37 <oklopol> dbc: what do you mean by "smoothly"? do you hear the clicks between notes, and does the sound "break"... not sure what the correct term is...
11:51:34 <complexity> given a brainfuck program how can one find whether it is syntactically correct or not ?
11:52:11 <complexity> I guess the only place one has to look is the while loops... other than that I guess all other operations are valid.. Am I missing somehting ?
11:56:28 -!- Slereah_ has joined.
11:59:29 -!- jix has quit (Read error: 110 (Connection timed out)).
12:00:38 <oklopol> complexity: CORRECT
12:00:45 <oklopol> WHOOPS
12:14:30 -!- Slereah has quit (Read error: 110 (Connection timed out)).
13:12:06 -!- piksi has joined.
13:13:15 <piksi> Please, play paranoid in a graphical form
13:20:55 <oklopol> ascii form enough?
13:21:24 <oklopol> i shall attempt
13:22:05 <oklopol> 000.000.00.5.7.A.C.5.7.A.C * 4
13:22:28 <oklopol> where . separates two notes, and a note is the number of steps upwards from E
13:22:43 <oklopol> with A... being the numbers 10...
13:22:50 <oklopol> then, verse
13:23:03 <oklopol> C. * 16
13:23:06 <oklopol> A. * 16
13:23:43 <oklopol> F.AAA.C.___.
13:23:52 <oklopol> sorry, failure there :)
13:24:01 <oklopol> A. * 8 in fact
13:24:09 <oklopol> then, chorus
13:24:34 <oklopol> CCCCCCCC.8888.AAAA.
13:24:36 <oklopol> basically.
13:24:47 <oklopol> the rest is repetition, plus a guitar solo, which is prolly improvised
13:24:52 <oklopol> have fun listening
13:25:43 <oklopol> also, irp in #irp
13:35:51 <oklopol> i don't really get why that piece is popular, i've heard small children write better melodies :\
14:02:22 -!- miiro has joined.
14:02:44 -!- tejeez has joined.
14:11:01 -!- jix has joined.
14:21:38 <dbc> I hear the clicks, yes. I don't mind them though :)
14:21:46 <oklopol> :D
14:22:02 <oklopol> well, good, they will go away once i make a better system for the waves
14:22:21 <dbc> Cool. I'm guessing a more complex timbre is in your plans?
14:22:24 <oklopol> currently, waves save information about their actual byte representations themselves
14:23:14 <oklopol> so, they save their base, and their amplitude, and actually themselves apply them to the bytes they produce
14:23:36 <oklopol> the problem is, when i start adding waves, i need to remove both those, add, and put them back
14:23:46 <oklopol> so... the routines have become quite cluttered.
14:24:09 <oklopol> now imagine adding something to make waves start where the last on ended... uhhh the pain
14:25:12 <oklopol> so, i was thinking, i'll just save the function, and ask for it's derivative (optionally), if one is given, it's a trivial task approximating the perfect base for the next wave, and the perfect phase to start from (by newton's method for example)
14:25:20 <oklopol> base
14:25:38 <oklopol> means what value the wave flunctuates around'
14:25:41 <dbc> Hm.
14:25:42 <oklopol> flunctuates?
14:25:46 <dbc> Fluctuates.
14:25:49 <oklopol> ah.
14:25:51 <dbc> They don't fluctuate around zero?
14:25:59 <oklopol> well, the sine waves do
14:26:08 <oklopol> but the actual range is 0...255
14:26:14 <dbc> Ah. I didn't check what other kinds you had.
14:26:27 <oklopol> but, as you may know, the sound is the same no matter what the base is
14:26:43 <oklopol> so... why the fuck would every wave need their own base :D
14:27:40 <oklopol> the base should be 128 originally, but, if it's helpful, it could be changed so that a wave could best fit the last written byte, and the derivative of the last wave at the end point
14:28:04 <oklopol> and could gradually shift back to 128 during the playing of that sound.
14:28:39 <oklopol> because the same wave is generally played for thousands of bytes, you can shift so slowly there's no way to hear it.
14:28:46 <dbc> You are probably going to want to make each note fade out rather than just cut off, at some point, right? That in itself would solve half your problem.
14:29:03 <oklopol> heh, never occurred to me :P
14:29:33 <oklopol> but, yeah, i think i'd've added that anyway once i'd made the wave objects "less raw"
14:29:39 <dbc> having all the wave functions start at x=0 at the start of each note would solve the other half.
14:29:55 <dbc> I think.
14:30:23 <oklopol> the fading might indeed be a better way to do it
14:30:44 <oklopol> but my idea is much harder to implement
14:30:45 <oklopol> !
14:30:49 <EgoBot> Huh?
14:31:53 <oklopol> actually, i think even if they are faded in, the optimal starting point is the point the last note is in.
14:32:23 <dbc> Hm.
14:32:57 <oklopol> well, let's say you shift out the same wave you shift in
14:33:13 <oklopol> in that case, if you start at where the last wave is, it's perfect.
14:33:30 <oklopol> since it's the exact same as if you'd just made the original wave twice as long
14:34:00 <oklopol> now, again, if we start at x=0, you will have a moment where the phase shifts.
14:34:20 <oklopol> since the new wave starts from a different phase than the one the other is in
14:34:35 <dbc> (I wasn't even thinking fade in, just out. Though fading in as well, somewhat quicker, would indeed sound more realistic than an abrupt start. What I was thinking about the start of each note is to arrange them so that all the sine functions are at x=0, y=0 at the start of the note they're part of. I.e. use the note as the basis for the x-scale and not the whole piece, assuming that's what you're doing now.. That will be as smooth a start a
14:34:35 <dbc> s could be asked for.
14:34:57 <dbc> Not sure if I'm being clear though.
14:35:45 <oklopol> you prolly are, i just need a while to grasp anything
14:37:07 <dbc> Am I right in guessing you're now computing amplitudes for each byte on the basis of a sine function whose input is that byte's location in the whole piece of music?
14:37:20 <oklopol> ah
14:37:38 <oklopol> you mean, when i start the note, am i sending the wave function 0 or the number of cycles sofar=
14:37:39 <oklopol> ?
14:37:46 <dbc> Yeah.
14:37:52 <dbc> That's what I'm asking.
14:37:54 <oklopol> sofar.
14:38:10 <oklopol> but, i do a bit of cycling there
14:38:32 <oklopol> i go forward in the wave to find a good spot to start the new sound
14:38:40 <dbc> Ah.
14:39:03 <oklopol> if the last note ended at 200, the note is traversed until it's close to 200, and going the same direction.
14:39:13 <oklopol> i do all this in a very ugly fashion, as you can see at...
14:39:17 <oklopol> wait, i'll locate the function
14:39:33 <oklopol> get_bytes
14:39:41 <oklopol> in hzSound
14:40:37 <oklopol> it's uuuugly
14:40:43 <oklopol> i don't wanna look at ti
14:40:44 <oklopol> it
14:40:58 <dbc> Clear enough.
14:41:22 <oklopol> clear, but ugly1 :D i'm calculating the average of the bases of the subwaves! :D
14:41:43 <oklopol> the composer function doesn't use the feature, but you can actually play chords too
14:42:03 <oklopol> when you have multiple waves, you really hear the clicks and the bad quality of the sound
14:42:10 <dbc> I mean "clear" about "i don't wanna look at it". Then I said "clear enough" as in "i hear you". Ambiguities of natural language again...
14:42:52 <jix> volume ramping?
14:42:56 <oklopol> and, this is bad because playing multiple waves simultaneously is pretty much the reason i made the whole wrapper for waves in the first place :\
14:43:06 <oklopol> jix: perhaps, i'
14:43:09 <oklopol> ...
14:43:11 <dbc> If every sound wave that kicks in does so from zero, and fades out at the end, the function as a whole should be close to continuous.
14:43:22 <oklopol> jix: perhaps, i'm doing this with no knowledge about waves in general.
14:44:04 <oklopol> the problem is, the derivatives must also match.
14:44:28 <oklopol> don't know how crucial that is
14:44:49 <oklopol> but, i think it can be done by changing the base.... or volume ramping? whatever
14:45:03 <dbc> That would be nice, yeah. I'm not seeing how to do that without using fade-in as well as fade-out. Dunno...
14:45:15 <jix> well volume ramping is when you end a sample you fade it out and when you start it you fade it in
14:45:25 <jix> over a very short duration
14:45:33 <jix> => no clicks
14:45:35 <oklopol> the problem is, playing the same wave twice would then create a pause
14:45:45 <jix> then you have to crossfade
14:45:54 <dbc> Playing the same wave twice SHOULD create a pause if they're two notes.
14:46:07 <jix> fade the first one out while fading the next one in (when you want no pause at all)
14:46:20 <jix> but dbc is right... normally there should be a very very short pause
14:46:29 <dbc> If they're just one note, extended, it doesn't get faded out and back in.
14:47:18 <oklopol> crossfading might work, although i still think fading is the wimp way to do it ;)
14:47:41 <jix> well most software does volume ramping
14:47:48 <oklopol> and no, there shouldn't be a pause, i don't want there to be a pause
14:47:59 <oklopol> i want there to be a pause *optionally*
14:48:44 <jix> at least all the trackers out there use volume ramping to avoid clicks.... and the sound chip of the super nintendo does the same
14:48:46 <dbc> Well, you can put the note ends wherever you like.
14:48:56 -!- sebbu has joined.
14:49:05 <jix> and when you want no pause you don't restart the sample but just change the frequency that gives you no gap too
14:49:09 <oklopol> the player should be able to achieve 100% legato
14:49:39 <oklopol> the problem is you can give it any function, not just sines
14:49:50 <oklopol> hmm
14:49:51 <dbc> Fade it out after the next one has already started. Or yeah, crossfade. Hell, if you wanted to you could have the second note start to fade out after the first one has already faded all the way in. Probably sound a little odd, but that'd be almost like an anti-pause.
14:49:52 <jix> well most software works with samples that's like any function
14:50:14 <dbc> second <-> first. Sorry.
14:51:20 <oklopol> <jix> and when you want no pause you don't restart the sample but just change the frequency that gives you no gap too <<< this was what i was doing originally
14:51:23 <oklopol> i mean, was gonna do
14:51:30 <dbc> Other thing as I say is what about timbre? Are you going to add overtones and things to get away from the "pure beep" sound.
14:51:40 <jix> oklopol: if you do it right it doesn't produce clicks
14:51:57 <oklopol> but, indeed, the actual wave functions themselves can easily leave their current value the same and just change frequency
14:52:33 <oklopol> i was trying to do that for the actual compound wave at once by traversing it forward.
14:52:55 <oklopol> dbc: yeah, was gonna add stuff like that
14:53:09 <oklopol> by making better waves
14:54:12 <dbc> One more thing. Just incidentally. The ".au" sound format is very simple--you just have to add a 24-byte header, as I recall.
14:54:23 <oklopol> and then raw data?
14:54:27 <dbc> Yeah.
14:54:32 <oklopol> .wav needs about 80 bytes
14:54:40 <dbc> Just in case you want to output a file format that things will know what the hell it is.
14:55:05 <dbc> Ah.
14:55:09 <oklopol> i think wav is supported more widely
14:55:13 <dbc> Probably.
14:55:28 <oklopol> a wav is nice to create... but hell to play.
14:55:31 <dbc> 80 bytes of what?
14:55:40 <oklopol> ummm, well, crap
14:55:44 <dbc> Ah.
14:56:11 <oklopol> i don't remember, read part of the spec when i was little, and wrote a c program to make random sounds
14:56:25 <oklopol> little... prolly older than half the people in here :\
14:56:27 <dbc> Does it say "Copyright Bill Gates" as part of it?
14:56:35 <oklopol> hehe
14:56:50 <oklopol> and... i've used the c program as the base of all my later wav things :D
14:57:02 <oklopol> have no idea what the bytes mean, and zero care
14:59:45 <oklopol> i also tried making a midi file back then, 7F's were so hard to understand i failed to understand the format well enough to make anything more complex than a piano roll where notes were left on forever :P
14:59:54 <oklopol> back then == the same afternoon
15:00:24 <oklopol> i *might* just be able to conquer midis now, if i tried
15:00:45 <oklopol> although, dunno how that would help.
15:01:15 <oklopol> since i'll wanna make my own timbre anyway
15:01:18 <oklopol> or "tone"
15:19:16 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
15:20:33 -!- bsmntbombdood has joined.
15:28:02 -!- complexity has quit ("ChatZilla 0.9.79 [Firefox 2.0.0.11/2007112718]").
17:04:05 -!- oerjan has joined.
17:26:02 -!- Slereah has joined.
17:42:52 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
17:49:50 -!- helios24 has quit (Read error: 104 (Connection reset by peer)).
17:59:47 -!- helios24 has joined.
18:06:32 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
18:17:06 -!- oklopol has joined.
18:38:31 -!- RedDak has joined.
19:04:28 -!- Sgeo has joined.
19:27:41 <oklopol> http://www.vjn.fi/pb/p526564465.txt i have no idea what happened, but i have a new player :\
19:28:06 <RodgerTheGreat> nifty?
19:28:32 <oklopol> no
19:28:50 <oklopol> but the format is quick for writing random riffs :D
19:29:16 <oklopol> a-z0-9A-Z for notes, in that order, 0 being 440 hz
19:29:33 <oklopol> #(some float) specifies speed
19:29:41 <RodgerTheGreat> not bad
19:30:14 <oklopol> #1 is 4 notes a second, 0.5 is 8 notes etc
19:33:31 <RodgerTheGreat> ah
19:34:43 <oklopol> http://www.vjn.fi/pb/p116211461.txt xD
19:34:47 <oklopol> i'm such a fucking mozart.
19:35:13 <oklopol> i want someway to multiply in the code itself... and make that tc 8DD
19:37:09 <RodgerTheGreat> oh good lord
19:37:35 <RodgerTheGreat> a musical programming language
19:37:54 <oklopol> there's one where music *is* the language
19:38:09 <oklopol> but haven't seen (a good) one for actual creation of music
19:38:29 <oklopol> i'm totally addicted to composing on that now xD
19:38:35 <oklopol> guess i'll cook a bit more
19:50:10 -!- RedDak has quit (Remote closed the connection).
20:27:36 -!- RedDak has joined.
20:33:33 -!- oerjan has quit ("leaving").
20:47:38 -!- GreaseMonkey has joined.
20:47:48 -!- RedDak has quit (Remote closed the connection).
20:59:24 -!- cherez has quit ("Leaving.").
21:00:47 -!- RedDak has joined.
21:14:16 -!- jix has quit ("CommandQ").
21:15:20 * Slereah finished his 99 bottles of beer.
21:15:23 <Slereah> http://membres.lycos.fr/bewulf/Russell/99Turingprog4.txt
21:15:39 <Slereah> The interpreter being thar : http://membres.lycos.fr/bewulf/Russell/turingprog2.py
21:16:18 <Slereah> See if you can spot the many traces of lazyness and of abandonned sections of code that I forgot to remove!
22:12:59 <GregorR> * Slereah finished his 99 bottles of beer.
22:12:59 <GregorR> <Slereah> HEREITs ojn teh webhttp://membres.lycos.fr/bewulf/Russell/99Turingprog4.txt
22:12:59 <GregorR> <Slereah> ta;; iNTRpertre benig here:--~~> http://membres.lycos.fr/bewulf/Russell/turingprog2.py
22:12:59 <GregorR> <Slereah> so youlooka t lazyness n abnondnd skt*zzzzzzzzzzzzzz*
22:21:54 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
22:24:03 -!- miiro has joined.
22:46:04 -!- RedDak has quit (Remote closed the connection).
22:53:36 -!- GreaseMonkey has quit ("Who keeps reincarnating sliced bread?!").
23:06:33 -!- oerjan has joined.
23:14:31 -!- Tritonio_ has joined.
23:16:24 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
23:26:50 -!- miiro has joined.
23:41:23 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
23:42:29 -!- miiro has joined.
23:42:30 -!- miiro has left (?).
23:42:30 -!- miiro has joined.
2007-12-14
00:09:51 -!- faxathisia has joined.
00:25:43 <dbc> oklopol...your last paste, which is just of the song part, won't work when incorporated into the previous paste. Traceback (most recent call last):
00:25:43 <dbc> File "p526564465.txt", line 61, in <module>
00:25:43 <dbc> song=song_parse("#0.33")
00:25:43 <dbc> File "p526564465.txt", line 55, in song_parse
00:25:43 <dbc> while raw[j]=="." or raw[j].isdigit():
00:25:45 <dbc> IndexError: string index out of range
00:29:19 -!- sebbu has quit ("@+").
01:06:46 <GregorR> oerjan: I'm told this will make your head explode:
01:06:49 <GregorR> <GregorR> Actually, now that it's lazy, it's far more like an extremely impure functional language than it is like an imperative language.
01:06:49 <GregorR> <GregorR> Like Haskell if you were always in a monad.
01:07:06 <pikhq> :)
01:07:26 <GregorR> Oh, I'm sorry, /implode/.
01:09:49 <oerjan> in Haskell, being always in the IO monad destroys laziness
01:10:03 <oerjan> since it is explicitly sequenced
01:10:45 <GregorR> Pretty much. With the exception that arguments to a function will still be resolved lazily, I believe. Yes?
01:11:57 <oerjan> well but then those arguments remain outside the monad, sort of
01:12:25 * pikhq casts "implode head" on oerjan (as an unregulated action)
01:14:00 <oerjan> now to make haskell extremely impure you can toss in unsafeInterleaveIO (in the monad) or unsafePerformIO (even less pure, outside the monad)
01:15:29 <GregorR> I can't even begin to guess what either of those do.
01:16:01 <oerjan> unsafePerformIO completely bypasses the IO encapsulation
01:17:12 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
01:17:26 <oerjan> it turns an IO action into a pure one. unless you know what you are doing, expect compiler optimizations to mess it up horribly
01:17:40 <GregorR> Heh
01:17:53 -!- Tritonio_ has joined.
01:18:02 <GregorR> That is to say, it doesn't actually turn the IO action into a pure one, it just convinces the compiler that it has :P
01:18:02 <oerjan> unsafeInterleaveIO is slightly more well-behaved, if you know what you are doing
01:18:19 <oerjan> heh, i suppose so
01:20:46 <oerjan> it turns an action that immediately runs to produce its result, into a delayed action that is only performed when the result is demanded. this is somewhat safer because it still guarantees the value only triggers the action at most once
01:22:02 <GregorR> That could be useful to see if the code is in fact evaluating something that you think it ought to be evaluating, no?
01:23:16 <oerjan> unsafePerformIO is safe enough for that. i think the trace function uses it.
01:23:34 <oerjan> however, unsafeInterleaveIO is used to implement lazy file reading
01:23:52 <GregorR> Ohhhhhhhhhh.
01:24:19 <oerjan> getContents and friends.
01:58:31 <RodgerTheGreat> 'night, guys
01:58:43 -!- RodgerTheGreat has quit.
03:00:40 -!- ReachingFarr has joined.
03:01:51 -!- ReachingFarr has left (?).
04:18:47 -!- cherez has joined.
04:57:39 <bsmntbombdood> http://www.nextlevelhardware.com/storage/battleship/
04:57:46 <bsmntbombdood> 800 mb/s sustained reads!!!
05:00:06 <pikhq> Cherez, though shalt Plof it up.
05:04:09 <bsmntbombdood> i bet you could raid 0 ram
05:04:46 -!- immibis has joined.
05:33:16 -!- xristos has joined.
05:57:11 -!- oerjan has quit ("bus to catch").
06:17:40 -!- immibis_ has joined.
06:18:52 <GregorR> bsmntbombdood: Hahah, that would be awesome X-D
06:19:16 <GregorR> bsmntbombdood: To suspend, you just cut the power :P
06:32:30 <bsmntbombdood> who wants read speeds of 50 gb/s?
06:33:00 -!- immibis has quit (Read error: 110 (Connection timed out)).
06:33:26 <bsmntbombdood> the proccessor on the raid card would be bigger than the main proc :D
06:41:33 <bsmntbombdood> the card they used costs $850 and only could get 800mb/s
07:25:48 -!- immibis_ has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:03 -!- Sgeo has quit (Remote closed the connection).
08:45:48 <piksi> oklopol: oh, sorry for wrong chan, and thanks anyway ;->
08:46:25 -!- piksi has left (?).
09:36:21 <oklopol> dbc: oh, right, it won't work, there was a bug in the parser, which i guess i fixed without giving the new source
09:36:47 <dbc> Yeah.
09:50:56 <oklopol> i guess i'll give the new parser, then, since otherwise my paste has been a waste of bytes
09:53:06 <oklopol> http://www.vjn.fi/pb/p122625451.txt
09:53:47 <oklopol> i don't like the new piece, my head started hurting a bit, so i just quickly randomized the end
11:20:33 -!- Tritonio_ has quit (Remote closed the connection).
11:43:20 -!- Maxdamantus has joined.
12:32:50 -!- faxathisia has quit (calvino.freenode.net irc.freenode.net).
12:32:53 -!- Maxdamantus has quit (calvino.freenode.net irc.freenode.net).
12:32:53 -!- xristos has quit (calvino.freenode.net irc.freenode.net).
12:32:55 -!- EgoBot has quit (calvino.freenode.net irc.freenode.net).
12:32:57 -!- cherez has quit (calvino.freenode.net irc.freenode.net).
12:32:58 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
12:32:58 -!- Slereah has quit (calvino.freenode.net irc.freenode.net).
12:32:58 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net).
12:32:58 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
12:32:58 -!- cmeme has quit (calvino.freenode.net irc.freenode.net).
12:32:59 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net).
12:32:59 -!- johnl has quit (calvino.freenode.net irc.freenode.net).
12:33:00 -!- Overand has quit (calvino.freenode.net irc.freenode.net).
12:33:23 -!- tejeez has quit (calvino.freenode.net irc.freenode.net).
12:33:24 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
12:33:25 -!- Possum has quit (calvino.freenode.net irc.freenode.net).
12:33:31 -!- faxathisia has joined.
12:33:57 -!- Maxdamantus has joined.
12:33:57 -!- xristos has joined.
12:34:22 -!- cherez has joined.
12:34:22 -!- oklopol has joined.
12:34:22 -!- Slereah has joined.
12:34:22 -!- bsmntbombdood has joined.
12:34:22 -!- GregorR has joined.
12:34:22 -!- cmeme has joined.
12:34:22 -!- Overand has joined.
12:34:22 -!- johnl has joined.
12:34:22 -!- lifthrasiir has joined.
12:34:43 -!- tejeez has joined.
12:34:43 -!- sekhmet has joined.
12:34:43 -!- Possum has joined.
12:34:54 -!- EgoBot has joined.
13:15:18 -!- ais523 has joined.
13:18:53 -!- faxathisia has quit ("Leaving").
14:04:49 -!- ais523 has quit (Remote closed the connection).
15:04:04 -!- faxathisia has joined.
15:04:14 -!- jix has joined.
15:29:33 -!- ais523 has joined.
15:36:37 -!- ehird` has joined.
15:37:06 -!- jix has quit (Remote closed the connection).
15:37:31 -!- jix has joined.
15:37:57 -!- ehird` has quit (Read error: 113 (No route to host)).
15:38:53 -!- ehird` has joined.
15:41:49 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
15:42:39 -!- ehird` has joined.
15:45:32 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
15:48:14 -!- ehird` has joined.
16:04:16 -!- ihope_ has joined.
16:19:57 -!- sebbu has joined.
16:34:55 -!- ais523 has quit ("""").
16:47:18 -!- Sgeo has joined.
16:58:35 -!- jix has quit ("CommandQ").
16:59:57 -!- RodgerTheGreat has joined.
17:38:07 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
19:08:46 -!- Tritonio_ has joined.
19:36:43 -!- Tritonio_ has quit (Read error: 104 (Connection reset by peer)).
19:59:28 -!- Tritonio_ has joined.
20:16:40 <Slereah> Hm. Why doesn't bande[t]=sys.stdin.read() work on them snake?
20:16:57 <Slereah> Or bande[t]=sys.stdin.read(1)
20:20:21 -!- Sgeo has joined.
20:25:05 <bsmntbombdood> damn this album is good
20:25:07 <bsmntbombdood> Daft Punk - Alive 2007
20:26:27 -!- Tritonio__ has joined.
20:26:40 -!- Tritonio__ has quit (Read error: 104 (Connection reset by peer)).
20:27:37 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
20:38:28 <ehird`> i wonder how esoteric i can make the editor i am writing
20:38:38 <ehird`> hey, i could write a dialect of lisp's implementation in c then write it in that
20:38:42 <ehird`> oh. wait.
20:39:17 <faxathisia> as long as you don't write a bunch of lisp -in- C .. yuck
20:39:30 * faxathisia (complains about trying to find bugs in emacs..)
20:45:50 <ihope_> I wonder if I could port emacs to Firefox.
20:45:53 <ihope_> Couldn't be that hard.
20:45:59 <ihope_> Harder would be to then port Firefox to emacs.
20:46:25 <faxathisia> maybe you could do a firefox self interpreter via emacs?
20:46:48 <faxathisia> and calculate it's eigenratio! :D
20:47:45 <ihope_> Eigenratio?
20:49:26 <faxathisia> this thing http://eigenratios.blogspot.com/
20:49:29 <faxathisia> it's pretty cool
20:49:39 <faxathisia> ooh new posts
20:54:21 -!- pikhq_ has joined.
20:57:08 <bsmntbombdood> oklopol: i bottled my apple wine today
20:58:47 -!- Tritonio_ has joined.
21:11:18 -!- pikhq has quit (Read error: 110 (Connection timed out)).
21:33:41 <ihope_> Hmm, ContinuousEquation reminds me of a certain idea I had once.
21:36:30 <ihope_> I think it was called Mode.
21:41:27 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
21:42:21 -!- Tritonio_ has joined.
21:55:14 -!- faxathisia has quit ("Leaving").
22:08:05 -!- sebbu2 has joined.
22:09:09 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
22:09:36 -!- Tritonio_ has joined.
22:11:22 -!- sebbu3 has joined.
22:12:18 <ehird`> hm
22:26:53 -!- sebbu has quit (Read error: 110 (Connection timed out)).
22:29:25 -!- sebbu2 has quit (Connection timed out).
22:45:23 -!- Tritonio_ has quit (Remote closed the connection).
23:09:30 -!- oerjan has joined.
23:15:44 -!- ihope__ has joined.
23:32:26 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
2007-12-15
00:05:24 -!- lifthras1ir has joined.
00:06:11 -!- lifthrasiir has quit (Read error: 104 (Connection reset by peer)).
00:07:25 -!- ihope has quit (Read error: 110 (Connection timed out)).
00:08:28 -!- ihope__ has quit (Read error: 110 (Connection timed out)).
00:31:18 <ehird`> i just had the single-handedly most evil, crappy idea ever
00:31:23 <ehird`> it's also incredibly esoteric
00:31:36 <ehird`> the best part? 'web 2.0' idiots will probably lap it up
00:32:14 <ehird`> an HTTP-based, RESTful, distributed chat protocol.
00:32:23 <ehird`> Mwahahahahaha! Ahahahahahahaha! Eeeaaahahahahahahaaaaaaaaa!
00:33:25 -!- pikhq_ has changed nick to pikhq.
00:42:42 <ehird`> Ok, someone at least comment on how silly that is.
00:43:24 -!- xristos has quit ("BitchX-1.1-final -- just do it.").
00:46:25 <lament> surely it exists?
00:46:41 <lament> perhaps not the "distributed" part
00:48:40 <ehird`> lament: the web is distributed though. that's the key part! i can pass it off as 'web-style'!
00:48:47 <ehird`> ahahahahahaha!
01:00:51 <pikhq> I think that you have earned a criminal sentence.
01:01:36 -!- xristos has joined.
01:02:08 -!- ehird` has quit (Remote closed the connection).
01:38:21 -!- pikhq has quit (Read error: 110 (Connection timed out)).
01:46:50 -!- pikhq has joined.
05:23:31 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
05:24:26 -!- pikhq has joined.
07:11:45 -!- Sgeo has quit ("Ex-Chat").
07:25:01 -!- oerjan has quit ("Bye").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:12:40 -!- puzzlet has joined.
09:11:30 -!- xristos has quit (Remote closed the connection).
09:29:45 -!- puzzlet has quit (Remote closed the connection).
09:29:49 -!- puzzlet has joined.
10:04:43 -!- jix has joined.
10:56:15 -!- Slereah_ has joined.
11:08:01 -!- Slereah_ has quit.
11:13:45 -!- Slereah has quit (Read error: 110 (Connection timed out)).
11:15:15 -!- jix has quit ("CommandQ").
11:46:03 * Maxdamantus sucks at this..
11:46:17 <Maxdamantus> What's a logical method for checking if the pointer is 0 in BrainFuck?
11:46:57 <Maxdamantus> Oh, I know.
11:47:30 <Maxdamantus> Loop through it 255 times, checking it's not 0 then.
11:53:16 <tejeez> >[-]+< [>-< [-]] >[something to do if it's 0] may work
11:54:28 <tejeez> so if it's 0, that >-< isn't executed and the number at next place remains 1
11:54:52 <Maxdamantus> Yea, thanks.
11:55:14 <tejeez> and that of course destroys the number to be checked and also the next
12:57:48 -!- Slereah has joined.
13:25:26 -!- jix has joined.
13:33:40 -!- jix has quit (Read error: 113 (No route to host)).
13:39:09 -!- oerjan has joined.
13:39:41 -!- jix has joined.
14:00:52 -!- jix has quit ("CommandQ").
14:14:39 -!- jix has joined.
14:31:08 -!- oerjan has quit (calvino.freenode.net irc.freenode.net).
14:31:08 -!- sebbu3 has quit (calvino.freenode.net irc.freenode.net).
14:31:26 -!- oerjan has joined.
14:31:26 -!- sebbu3 has joined.
14:31:35 -!- oerjan has quit (calvino.freenode.net irc.freenode.net).
14:31:35 -!- sebbu3 has quit (calvino.freenode.net irc.freenode.net).
14:31:35 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
14:31:36 -!- pikhq has quit (calvino.freenode.net irc.freenode.net).
14:31:37 -!- EgoBot has quit (calvino.freenode.net irc.freenode.net).
14:31:39 -!- puzzlet has quit (calvino.freenode.net irc.freenode.net).
14:31:39 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
14:31:41 -!- Possum has quit (calvino.freenode.net irc.freenode.net).
14:31:41 -!- tejeez has quit (calvino.freenode.net irc.freenode.net).
14:31:41 -!- Slereah has quit (calvino.freenode.net irc.freenode.net).
14:31:43 -!- cherez has quit (calvino.freenode.net irc.freenode.net).
14:31:43 -!- johnl has quit (calvino.freenode.net irc.freenode.net).
14:31:43 -!- cmeme has quit (calvino.freenode.net irc.freenode.net).
14:31:44 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
14:31:44 -!- Overand has quit (calvino.freenode.net irc.freenode.net).
14:31:44 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net).
14:31:44 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
14:31:46 -!- RodgerTheGreat has quit (calvino.freenode.net irc.freenode.net).
14:31:48 -!- Maxdamantus has quit (calvino.freenode.net irc.freenode.net).
14:31:49 -!- dbc has quit (calvino.freenode.net irc.freenode.net).
14:31:49 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
14:31:50 -!- lifthras1ir has quit (calvino.freenode.net irc.freenode.net).
14:31:50 -!- lament has quit (calvino.freenode.net irc.freenode.net).
14:31:50 -!- mtve has quit (calvino.freenode.net irc.freenode.net).
14:31:51 -!- johnk has quit (calvino.freenode.net irc.freenode.net).
14:31:52 -!- DocWilco has quit (calvino.freenode.net irc.freenode.net).
14:32:47 -!- sebbu3 has joined.
14:32:47 -!- oerjan has joined.
14:32:47 -!- Slereah has joined.
14:32:47 -!- puzzlet has joined.
14:32:47 -!- pikhq has joined.
14:32:47 -!- lifthras1ir has joined.
14:32:47 -!- RodgerTheGreat has joined.
14:32:47 -!- EgoBot has joined.
14:32:47 -!- Possum has joined.
14:32:47 -!- sekhmet has joined.
14:32:47 -!- tejeez has joined.
14:32:47 -!- johnl has joined.
14:32:47 -!- Overand has joined.
14:32:47 -!- cmeme has joined.
14:32:47 -!- GregorR has joined.
14:32:47 -!- bsmntbombdood has joined.
14:32:47 -!- oklopol has joined.
14:32:47 -!- cherez has joined.
14:32:47 -!- Maxdamantus has joined.
14:32:47 -!- miiro has joined.
14:32:47 -!- lament has joined.
14:32:47 -!- mtve has joined.
14:32:47 -!- johnk has joined.
14:32:47 -!- dbc has joined.
14:32:47 -!- DocWilco has joined.
14:32:47 -!- SimonRC has joined.
16:37:43 -!- somerandomperson has joined.
16:37:46 <somerandomperson> hi
16:38:03 <Slereah> Hi.
16:39:37 <somerandomperson> "The nickname [somerandomperson] is already registered" ow
16:39:44 -!- somerandomperson has changed nick to anotherrandomper.
16:39:50 <anotherrandomper> :S
16:40:05 <Slereah> There's plenty of random people!
16:48:38 -!- pikhq has quit (Read error: 110 (Connection timed out)).
16:48:58 <SimonRC> hi
16:51:36 -!- pikhq has joined.
17:04:07 * anotherrandomper is away "UT3" Log: on Pager: off
17:04:07 * anotherrandomper is away "UT3" Log: on Pager: off
17:04:20 -!- anotherrandomper has left (?).
17:10:35 -!- oerjan has quit ("Good night").
17:40:04 -!- Sgeo has joined.
18:03:41 -!- sebbu has joined.
18:17:09 -!- sebbu3 has quit (Connection timed out).
19:06:12 -!- ehird`_ has joined.
19:07:30 -!- ehird`_ has quit (Read error: 113 (No route to host)).
19:09:28 -!- ehird` has joined.
19:33:24 -!- ehird` has quit (Read error: 113 (No route to host)).
19:45:31 -!- ehird` has joined.
20:11:48 -!- xristos has joined.
20:19:16 -!- oklopol has quit (Remote closed the connection).
20:21:43 -!- pikhq_ has joined.
20:26:35 -!- oklopol_ has joined.
20:26:48 <ehird`> urxvt: unable to parse color 'Magnolia', using pink instead.
20:26:50 <ehird`> urxvt is so helpful
20:39:13 -!- pikhq has quit (Read error: 110 (Connection timed out)).
20:45:44 -!- Slereah_ has joined.
20:49:35 -!- pikhq_ has changed nick to pikhq.
20:57:14 -!- Jontte has joined.
21:00:21 -!- puzzlet has quit (Remote closed the connection).
21:00:22 -!- puzzlet_ has joined.
21:03:55 -!- Slereah has quit (Read error: 110 (Connection timed out)).
21:20:45 * SimonRC goes
21:26:09 -!- erchird has joined.
21:26:15 <erchird> so, the question everyone wants the answer to
21:26:26 <erchird> does running emacs in a terminal with erc count as 'terminal irc'?
21:26:48 * erchird cackles. evilly.
21:27:14 -!- erchird has quit (Client Quit).
22:26:33 -!- jix has quit ("CommandQ").
22:32:15 -!- jix has joined.
22:39:27 -!- RedDak has joined.
22:57:46 -!- puzzlet has joined.
23:00:18 -!- jix has quit ("CommandQ").
23:08:04 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
23:08:23 -!- Slereah has joined.
23:17:47 <oklopol_> www.vjn.fi/gz/rzff.zip
23:17:54 <oklopol_> revolutionary, i say.
23:18:39 -!- oklopol_ has changed nick to oklopol.
23:19:24 <ehird`> wait, what is it
23:19:32 <ehird`> ValueError: chr() arg not in range(256)
23:19:34 <ehird`> i get that
23:20:42 <oklopol> :I
23:20:52 <oklopol> what did you press?
23:21:07 <oklopol> you should only press number keys
23:21:21 <oklopol> you're supposed to count the number of the balls
23:22:41 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
23:24:56 <oklopol> fixed it, but get segmentation faults every now and then :D
23:25:01 <oklopol> *i get
23:25:26 <oklopol> have no idea why, and don't really feel like debugging
23:28:45 <ehird`> i wish i knew pygame
23:29:35 <oklopol> it's pretty simple
23:29:39 <oklopol> did you try my game? :D
23:29:49 <ehird`> yeah
23:29:50 <ehird`> i suck at it
23:29:54 <oklopol> oh :\
23:29:59 <ehird`> :)
23:29:59 <oklopol> how much do you get?
23:30:03 <ehird`> eh
23:30:05 <ehird`> i fail most of them
23:30:09 <oklopol> points are calculated amt**2/time
23:30:17 <oklopol> time taken to count
23:30:22 <oklopol> amt is the number of points
23:31:08 <oklopol> i get something near 270, but i get too nervous to play after that :D
23:31:31 <oklopol> i usually get <70 balls correct
23:31:46 <oklopol> after that they start wiggling, since i adjusted for smaller amounts
23:31:59 <oklopol> assumed >30 would be too hard to do fast :O
23:32:14 <ehird`> oklopol: meanwhile, i am getting emacs playing nicely with python to test out pygame
23:32:36 <oklopol> cüwl
23:35:26 <oklopol> damn, i need competition! someone own me at that, please? :P
23:36:27 <ehird`> oklopol: i wonder why i run emacs in a terminal
23:37:01 <oklopol> never having tried it, don't know if that's weird of not
23:50:00 -!- RedDak has quit (Remote closed the connection).
23:50:01 <ehird`> oklopol: where did you learn pygame
23:50:46 <oklopol> heard the name, googled an example, copypasted
23:50:54 <oklopol> then used the documentation
23:51:21 <oklopol> that was a long time ago
23:59:12 <ehird`> what i really want is a pygame wrapper, that is pythonic
2007-12-16
00:01:04 <oklopol> heh, pygame is a wrapper over sdl
00:01:11 <ehird`> no
00:01:15 <ehird`> pygame is basically an sdl binding
00:01:26 <ehird`> it changes the names of stuff and adds a few extra bits. little more
00:01:55 <oklopol> == wrapper
00:02:33 <ehird`> no
00:02:36 <ehird`> wrapper is thicker
00:02:41 <oklopol> heh
00:02:43 <ehird`> wrapper adds sugar to everything and hides the icky internals
00:02:48 <oklopol> well, i'm no philosopher
00:06:16 <ehird`> pygame is just so low level
00:06:45 <oklopol> is it now?
00:07:57 <oklopol> making games would be so easy if there was a fucking set_pixel built-in...
00:08:12 <oklopol> but noooo
00:11:11 <ehird`> why would you want that? xD
00:12:12 <oklopol> so i could draw my pixelz!
00:13:05 <ehird`> it does have a set pixel anyway
00:14:06 <oklopol> yes, but that's all it should have
00:14:28 <oklopol> since... well, let's face it, it's confusing if there are multiple functions
00:14:29 <oklopol> no?
00:14:42 <oklopol> keep it clean and simple, i say!
00:15:18 <ehird`> def set_pixel(x,y,r,g,b):*(0x80B0F88+(x&y*1024))[3] = r&1|b&2|g&3
00:15:24 <ehird`> that probably works on some obscure, ancient machine
00:15:39 <oklopol> i don't get it
00:15:47 <oklopol> r&1 b&2 g&3 ? :O
00:15:57 <oklopol> that some ancient hindu magic?
00:16:37 <ehird`> it's some random pointer arithmetic crap i pulled out of my ass
00:17:10 <ehird`> rgb=0,0,0 makes that 0, rgb=255,255,255 makes that 3
00:17:25 <ehird`> everything else, makes it 3
00:17:32 <ehird`> err
00:17:34 <ehird`> most everything else.
00:19:17 <pikhq> oklopol: r&1 b&2 g&3 ? :0 // does not parse. ;p
00:19:51 <oklopol> oh, right
00:19:56 <oklopol> r&1 b&2 g&3 ? 0 : O
00:20:02 <oklopol> eh...
00:20:09 <oklopol> r&1|b&2|g&3 ? :O
00:20:11 <oklopol> ...
00:20:15 <oklopol> okay, fuck
00:20:19 <oklopol> r&1|b&2|g&3?0:O
00:22:53 <pikhq> In GNU C, your second one was valid.
00:22:56 -!- puzzlet_ has joined.
00:22:56 -!- puzzlet has quit (Remote closed the connection).
00:23:10 -!- Tritonio_ has joined.
00:24:26 <oklopol> oh?
00:24:29 <oklopol> what's 1 b?
00:24:58 <oklopol> or do you mean my 3rd one
00:25:08 <pikhq> The one with ?:
00:25:24 <oklopol> yarrrrrrr
00:25:35 <oklopol> is it zero then?
00:25:38 <pikhq> foo ?: bar; returns foo if foo is nonzero, bar otherwise.
00:25:44 <oklopol> ah
00:26:48 <oklopol> pikhq: so... did you try my game? :O
00:26:50 <oklopol> i mean
00:26:51 <oklopol> ;)
00:27:11 <oklopol> i need someone to test it goddammit :P
00:27:45 <pikhq> Nope.
00:28:02 <pikhq> I'm trying to obtain comments on my Agoran-Style Initial Ruleset for Nomic.
00:28:23 <oklopol> okay, if i comment randomly, will you take a 2 second glance at my game?
00:28:33 <oklopol> i guess that'd do neither of us any good
00:28:52 <pikhq> LMAO
00:29:34 <oklopol> :D
00:29:39 <oklopol> i guess i should sleep a bit
00:29:56 <oklopol> that's actually a nice game for testing fatigue
00:30:23 <oklopol> i counted 10 objects a second a while ago, now more like 5 :D
00:31:46 <oklopol> i wonder how fast the super-autistics would do that
00:31:52 <oklopol> i mean, the super hero ones
00:32:04 * pikhq , as an autistic, shall tell you
00:32:20 <oklopol> hehe :P
00:32:25 * oklopol knows teh buttons!
00:32:46 <pikhq> Just as soon as my internet connection decides to comply.
00:33:02 <oklopol> it's in python, and needs pygame
00:33:10 <pikhq> And as soon as I emerge pygame.
00:33:15 <pikhq> Though I had that still. . .
00:33:27 <pikhq> s/Thought/Thought/
00:34:06 <oklopol> 395 is my current record, although i'm not sure if the point system makes sense if you play till the higher object amounts
00:37:10 <pikhq> Interesting game.
00:37:19 <oklopol> thx
00:37:30 <pikhq> Got 65, but I only played for a few seconds or so.
00:37:56 <oklopol> you're not supposed to estimate, you get nothing even if you have 1 wrong in the amount
00:38:02 <pikhq> Yeah.
00:38:04 <oklopol> just count 'em
00:38:04 <pikhq> I noticed.
00:38:07 <oklopol> yarr
00:38:30 <oklopol> it gives you more balls if you do good
00:38:34 <oklopol> and less if you do bad
00:38:42 <pikhq> http://pastebin.ca/817990
00:38:48 <pikhq> I got it up to 15. . .
00:38:56 <oklopol> the time down there doesn't really do anything, it's mainly for making it look interactive :D
00:38:59 <pikhq> XD
00:39:00 <oklopol> i mean, the bar
00:39:13 <oklopol> well, if it goes to zero, you fail
00:39:20 <oklopol> but, the next time it'll be slower
00:39:27 <oklopol> so, you can just ignore it.
00:39:55 <oklopol> i do up to 50 quite easily
00:40:06 <ehird`> you know what i want
00:40:12 <ehird`> i want emafox
00:40:15 <ehird`> firefox, running in emacs
00:40:20 <oklopol> yeah, babe, i know what you want
00:40:31 <ehird`> with every single action using as much emacs as possible
00:41:11 * pikhq introduces you to the Conkeror plugin for Firefox
00:41:16 <pikhq> http://conkeror.mozdev.org/
00:41:52 <ehird`> no
00:41:55 <ehird`> that's not actually emacs
00:42:04 <ehird`> for example, all my lovely .emacs tweaks are not listened to
00:42:10 <ehird`> and various advanced emacs commands aren't there
00:42:21 <ehird`> i want a firefox, running inside emacs, binding to emacs for basically 100% of everything
00:43:50 <pikhq> Fair 'nough.
00:44:11 <oklopol> pikhq: did you stop playing already?
00:44:19 <ehird`> pikhq: it also means you'd be able to do greasemonkey-type stuff with elisp
00:44:34 <oklopol> try counting in groups of 5, in case you aren't yet bored with it
00:44:35 <ehird`> admittedly, elisp is shit, but you can bind languages to it
00:44:52 <ehird`> also, cpscm's author is working on an elisp backend
00:44:58 <oklopol> i'm pretty sure it's possible to do over 20/s
00:44:58 <ehird`> -> programming Emacs in scheme
00:45:47 <oklopol> i'll prolly add a feature that scrolls the points over the screen, since it gets ugly when the points are too close to each other
00:45:55 <ehird`> <script type="text/x-emacs-lisp">? :-)
00:46:33 <pikhq> oklopol: Yeah.
00:47:08 <pikhq> ehird`: The idea for Elisp was, after all, just to "get a Lisp running in as little code as possible".
00:47:12 <pikhq> ;)
00:47:21 <oklopol> stopped playing, are counting in groups of 5, or scrolling makes less ugly?
00:47:30 <oklopol> i know it's the first one, just trying to be optimistic
00:47:43 <ehird`> pikhq: my scheme interpreter is about 100 lines in Python and I avoid all the garbage collection etc. so the C code would be about twice that
00:47:53 <ehird`> pikhq: I think elisp has always been bigger than 200 lines. :-)
00:48:15 <ehird`> i've always wanted to try writing an emacs in a non-lisp
00:48:20 <ehird`> Like, pymacs
00:48:25 <ehird`> or something
00:49:50 <ehird`> damn, my emacs is so colourful and customized and has its own window size that i keep forgetting it's a terminal :-)
00:51:37 <pikhq> Emacs in a non-Lisp has been done.
00:51:51 <pikhq> Including, say, the first such implementation.
00:51:53 <pikhq> oklopol: Yeah.
00:52:55 <ehird`> pikhq: Of course.
00:53:00 <ehird`> But I mean with emacs-level extensibility.
00:53:27 <ehird`> I know it's been done, and I knew the first metric fucktons of emacs weren't :) Heck, i've even toyed around with my own (but it's not usable as of yet)
00:53:32 <pikhq> TECO Emacs.
00:53:40 <pikhq> The first one.
00:53:42 <pikhq> ;)
00:53:54 <pikhq> (granted, you'd be *insane* to extend it, but you sure could do so)
00:54:04 <ehird`> I think calling TECO an editor is stretching that definition, even moreso than calling Emacs one
00:54:18 <pikhq> I call TECO a write-once language.
00:54:23 <pikhq> Erm.
00:54:25 <pikhq> Write-only.
00:54:33 <ehird`> many people call perl that.
00:54:38 <ehird`> heck -- many people call C that
00:54:44 <pikhq> Perl is the more infamous example of that.
00:54:54 <pikhq> C can be used as one, but isn't necessarily one.
00:54:56 <ehird`> which is stupid, because you can write bad code in any language.
00:55:02 <ehird`> Perl is no more than C in that respect
00:55:07 <pikhq> TECO *is* write-only.
00:55:12 <ehird`> it's just more quick-hackers use Perl, than C
00:56:20 <ehird`> actually, when my emacs-alike minimal-as-heck editor (written in C) gets usable i'm going to cold-turkey switch to it to force me to improve it :-)
00:56:40 <pikhq> "0uz<j 0aua l <0aub qa-qb"g xa k -l ga -1uz ' qbua l .-z;> qz;>"
00:57:08 <pikhq> That is not merely valid TECO, that's a piece of *example code* from the TECO *manual*.
00:57:45 <pikhq> (the whitespace is not syntactically significant)
00:57:49 <ehird`> i know about teco.
00:58:02 <ehird`> I wonder how linus deals with microemacs
00:58:12 <ehird`> he doesn't even have autoindentation beyond copy-last-line, poor sap
01:00:56 <ehird`> actually, i have the source to a suprisingly complete emacs-alike in 100% readable C, just 2197 lines of code including whitespace etc
01:01:08 <ehird`> uses curses
01:01:26 <ehird`> apparently the guy who wrote it actually uses a (slightly updated) version of it for all his programming stuff
01:03:28 <ehird`> i think i can get away with plugging in highlight_text, get_indent_for_line, and a way to make some text trigger a function
01:04:14 <ehird`> i do want unicode, though
01:06:55 <ehird`> Probably it'll end up being huge ;)
01:16:04 -!- Jontte has quit (Remote closed the connection).
01:52:24 -!- oerjan has joined.
02:12:21 -!- ehird` has quit (Remote closed the connection).
05:36:27 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
05:45:58 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
06:14:13 <bsmntbombdood> funnest game EVAR!
06:14:15 <bsmntbombdood> http://en.wikipedia.org/wiki/Wikipedia:Wikington_Crescent
06:14:31 <pikhq> Not the funniest.
06:14:43 <pikhq> The name of the game is Mao; play will continue to my left.
06:15:11 <bsmntbombdood> ?
06:15:22 <pikhq> Talking. Asking questions about the rules.
06:15:27 * pikhq hands bsmntbombdood two cards
06:15:34 <pikhq> Failure to play.
06:15:38 * pikhq hands bsmntbombdood a card
06:15:49 <bsmntbombdood> too surreal for me
06:15:55 <pikhq> Not surreal.
06:16:03 <pikhq> You just don't know the rules.
06:16:24 <pikhq> BTW, the only rule I can tell you is this one.
06:17:30 * oerjan plays the queen of spades
06:17:41 <bsmntbombdood> jeebus this game is complicated
06:18:31 <oerjan> which game?
06:18:46 * oerjan doesn't know Mao either
06:19:07 <bsmntbombdood> it would appear it can't be played over irc without a deckbot too
06:19:26 <oerjan> except for the obvious fact that its rules are secret. oh, and the end, i think.
06:20:13 <pikhq> oerjan: Failure to declare the spade.
06:20:17 * pikhq hands oerjan a card
06:20:24 <pikhq> Playing out of turn.
06:20:28 * pikhq hands oerjan a card.
06:21:10 * pikhq plays the Jack of Spades
06:21:16 <pikhq> Jack of Spades, Jack of Spades, Mao.
06:22:06 <pikhq> oerjan: The worst part about Mao?
06:22:14 <oerjan> hm?
06:22:19 <pikhq> It's got a modifiable ruleset.
06:22:44 * oerjan recalls rumors
06:22:48 <pikhq> Truly, an evil game.
06:22:55 * bsmntbombdood adds a rule that require all the rules to be disclosed
06:23:01 <pikhq> Say, could you give me comments on this:
06:23:03 <pikhq> http://pastebin.ca/817990
06:23:03 <pikhq> ?
06:23:09 <oerjan> doesn't this cause chaos if there is more than one who knows the game?
06:23:13 <pikhq> bsmntbombdood: You certaintly can do that, after the first round.
06:23:17 <pikhq> oerjan: Not necessarily.
06:23:23 <pikhq> The rule-changing is rule-defined.
06:25:46 -!- Tritonio_ has joined.
06:33:20 <oerjan> bah, eleven steps to get to Mornington Crescent. Clearly there is room for improvement...
06:33:58 <oerjan> *tube station
06:34:08 <pikhq> oerjan: Certaintly.
06:34:25 <bsmntbombdood> i got 5 my first try
06:34:25 <pikhq> First, we define any move *towards* Mornington Crescent as illegal.
06:34:27 <pikhq> :p
06:34:40 <bsmntbombdood> Skolem–Noether theorem, German language, European Union, London, London Underground, Mornington Crescent tube station
06:36:45 <oerjan> pikhq: ERROR: problem misinterpreted :D
06:38:05 <oerjan> btw disambiguation pages are disallowed, how do you avoid them? (the random article _was_ one such, so i just ignored it)
06:39:38 <bsmntbombdood> i don't see why disambigs are dissallowed
07:12:08 -!- Tritonio_ has quit (Read error: 113 (No route to host)).
07:12:36 -!- Tritonio_ has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:01:27 -!- RedDak has joined.
09:32:50 -!- Jontte has joined.
10:32:52 -!- oerjan has quit ("leaving").
10:40:50 -!- jix has joined.
11:45:14 -!- sebbu has quit (Read error: 110 (Connection timed out)).
12:04:09 -!- sebbu has joined.
12:15:06 -!- lucas- has joined.
12:16:14 -!- jix has quit (Nick collision from services.).
12:16:24 -!- jix has joined.
13:06:14 -!- oklopol has quit ("for the need to encumber").
13:12:16 -!- oklopol_ has joined.
13:37:45 -!- puzzlet_ has quit ("Lost terminal").
13:37:55 -!- puzzlet has joined.
13:48:38 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
13:57:10 -!- RedDak has joined.
14:07:16 -!- RedDak has quit (Remote closed the connection).
14:08:07 -!- RedDak has joined.
14:16:05 -!- jix has quit (Nick collision from services.).
14:16:13 -!- jix has joined.
15:24:15 -!- ihope_ has joined.
15:25:00 * ihope_ "creates" a language called Mandelbrot
15:25:29 <Slereah> I should find a spiffy name for mine;
15:25:36 <Slereah> "Turing machine" is so unimaginative.
15:28:40 -!- RedDak has quit (Connection timed out).
15:29:56 <oklopol_> the ULTRA SUPER machine
15:30:02 -!- oklopol_ has changed nick to oklopol.
15:30:15 <oklopol> no need to thank me
15:30:23 <Slereah> Then I won't!
15:30:38 <oklopol> :OOOO
15:31:07 <oklopol> wish i didn't have any hobbies, i wanna code up some wicked 2d games
15:31:23 <Slereah> The ULTRA SUPER GAME?
15:31:27 <oklopol> :P
15:31:40 <oklopol> i was thinking a one button game again
15:31:46 <Slereah> Where ninjas battle zombies in a post-apocalyptic radioactive wasteland
15:31:57 <oklopol> gravity on/off
15:32:10 <Slereah> What would be the goal?
15:32:10 <oklopol> and you need to get your ball from point A to point B
15:32:25 <oklopol> and the level is full of triangles you can bounce off of
15:33:16 <oklopol> that was one of the ideas i came up with when practising me and my mother's marionette show
15:33:21 <oklopol> :P
15:34:02 <ihope_> Ah, one-button games.
15:34:28 <Slereah> "PRESS THE BUTTON, WIN ONE POINT"
15:34:58 <oklopol> either of you tried my other one-button game?
15:35:06 <Slereah> No.
15:35:22 <oklopol> well, i guess it'd not really a one-button game, since you can't play it a lone
15:35:27 <oklopol> but one button per player
15:35:37 <oklopol> www.vjn.fi/gz guess i'll link
15:36:03 <oklopol> it's onokki
15:36:57 <ihope_> Can't play it alone? Blasphemy!
15:36:59 <Slereah> I can't open it.
15:37:14 <oklopol> www.vjn.fi/dep i guess you need these, and windows
15:37:32 <oklopol> ihope_: you can, but us mortals can't
15:37:51 <ihope_> :-P
15:38:06 -!- puzzlet has quit (Remote closed the connection).
15:38:07 -!- puzzlet_ has joined.
15:38:24 <ihope_> If it's two click buttons, you just need to create mouse events some other way.
15:38:47 <oklopol> ?
15:39:42 <Slereah> Soooo... If it's one button, what button is it?
15:39:51 <oklopol> hmm
15:39:57 <oklopol> i think return, and "1"
15:40:07 <oklopol> how many balls are there?
15:40:23 <oklopol> if you press the button, the ball's smaller balls should start going astray
15:41:04 <Slereah> This is a little trippy.
15:41:19 <oklopol> you lose if you lose all your small balls
15:41:33 <oklopol> or, if you hit the other player's balls until you run out of hp
15:41:38 <oklopol> hp can be seen from your color
15:41:51 <oklopol> small balls can be caught by hitting the white balls
15:42:01 <oklopol> and the grey ones give you hp
15:42:09 <oklopol> trippy? how come :P
15:42:11 <ihope_> What were those words for "push" and "lift" starting with T and N?
15:42:18 <oklopol> työntö nosto
15:43:14 <Slereah> The background.
15:43:32 <Slereah> Also that until I heard the rules, I had no idea of what was going on
15:43:51 <Slereah> "SPACEBALLS"
15:44:22 <oklopol> btw i don't think anyone has yet been able to decrypt how to move the balls.
15:44:29 <ihope_> Mm, holy cow. :-)
15:44:33 <oklopol> so... you're welcome to try to be the first one
15:44:50 <ihope_> Well, I know that pushing the button makes the small balls drift away.
15:44:53 <oklopol> or... did oerjan succeed
15:44:57 <ihope_> ...as you said.
15:45:02 <oklopol> :D
15:45:20 <oklopol> i can move to any point of the screen in like 3 seconds
15:45:27 <ihope_> Cool.
15:45:40 <oklopol> there are actually 2 ways to move around.
15:48:42 <ihope_> Well, it looks like with the button pressed, you follow your small balls.
15:48:48 -!- oerjan has joined.
15:49:00 <ihope_> Not pressed, it's obviously completely random. :-P
15:49:10 <oklopol> heh
15:49:11 <oklopol> almost
15:49:13 <ihope_> Something to do with repulsion, I think, maybe, though maybe not.
15:49:21 <oklopol> want a hint?
15:49:40 <oklopol> you have half of it correct
15:50:13 <ihope_> Sure.
15:50:20 <oklopol> well
15:50:24 <oklopol> as Slereah put it
15:50:29 <oklopol> The background.
15:50:35 <ihope_> Oh!
15:51:27 <oklopol> btw, the gravity is a bit special too
15:53:15 <ihope_> I still don't have much idea.
15:53:19 <oklopol> hehe
15:53:32 <oklopol> okay, you have two states
15:53:41 <oklopol> the actual pressing of the button doesn't do anything
15:53:52 <oklopol> it's whether you're in state "pressed" or "not pressed"
15:54:00 <oklopol> now, the states have different gravities.,
15:54:11 <oklopol> enough?
15:54:37 <ihope_> Hmm...
15:54:42 <oklopol> also, if you tried that, try rzff.zip too, if you have pygame :P
15:54:51 <oklopol> no one plays it :'(
15:55:51 <oklopol> the gravities are applied separately to both axes, which is why they move weirdly
15:56:13 <oklopol> also, the background figure is followed separately on each axes of velocity
15:56:38 <oklopol> this was easier to implement ofc, i sucked back then, so i did it that way first
15:56:49 <oklopol> found out using regular gravity doesn't allow much movement :O
15:56:55 <ihope_> So it's not "not pressed, they're attracted to the circle and repel each other, pressed, they're attracted to their small balls"?
15:56:56 <oklopol> when i converted laster
15:56:58 <oklopol> *later
15:57:07 <oklopol> yep, almost
15:57:13 <oklopol> except no one repels anyone.
15:57:26 <ihope_> Oh.
15:57:43 <oklopol> that's just what happens when you let them go, they move away from you...
15:58:04 <ihope_> How come green can get kind of stuck in a corner, then?
15:58:12 <oklopol> :P
15:58:23 <oklopol> background is white there
15:58:25 <oklopol> it should.
15:58:50 <oklopol> when the small balls are following the big one, the big one somewhat follows the background
15:59:01 <oklopol> anyhow, how fast do you become immortal?
15:59:18 <oklopol> i think i did a minute average playing alone
15:59:23 <oklopol> or less
15:59:24 <oklopol> dunno
15:59:42 <ihope_> Immortal is black with all your small ones flashing crazily?
15:59:46 <oklopol> ya
15:59:57 <ihope_> I became immortal within a few minutes of not playing. :-P
16:00:06 <oklopol> heh
16:00:25 <oklopol> yeah, you need to be pretty good to be better than a non playing ball :)
16:00:47 <oklopol> anyhow, i need to go now, try rzff ;)
16:00:49 <oklopol> ----------->
16:09:26 <ihope_> Ooh, rzff is insane :-P
16:16:36 -!- Tritonio_ has quit (Remote closed the connection).
16:19:52 <SimonRC> what is being disgust?
16:19:58 <SimonRC> * discussed
16:21:38 * oerjan coughs up a hairball
16:22:10 <oerjan> oklopol's games, apparently
16:22:50 * oerjan watches as the hairball crawls away
16:32:51 <SimonRC> oh no, not more furries
16:35:59 <ihope_> Furries, eh?
16:38:46 <ihope_> I think I'm in the final stages of writing another kilgame server.
16:39:15 <ihope_> I've written three lines so far.
16:39:35 <SimonRC> heh
16:40:08 <SimonRC> there were some people in fursuits collecting for the RSPCA
16:40:17 <ihope_> What's the R?
16:40:25 <SimonRC> Royal
16:40:58 <SimonRC> and what is Kilgame?
16:41:01 <SimonRC> some Japanese thing?
16:41:13 <ihope_> lament wrote the original one, I think.
16:41:56 <SimonRC> what is it?
16:42:35 <ihope_> A multiplayer game where people can shoot each other and try to survive, I guess?
16:43:06 <ihope_> Now it has seven lines, but three of them are blank.
16:44:05 -!- puzzlet_ has quit (Remote closed the connection).
16:44:12 -!- puzzlet has joined.
16:47:17 <ihope_> Now only two are blank; one of them now contains a shebang.
16:47:38 <SimonRC> heh
16:47:43 <SimonRC> nice progress
16:47:58 <SimonRC> you should use the For-case pattern
16:49:24 <SimonRC> That is where you have a structure like: for(i=0;i<n;i++){switch(i){case 0:...;break;case 1;...;break; ... case n-1:...;break}}
16:49:28 <SimonRC> :-)
16:50:09 <ihope_> Ah, that both increases my line count and lets me use computed gotos! :-)
16:50:30 <SimonRC> as found on The Daily WTF (formerly Worse That Failure (formerly The Daily WTF))
16:51:29 <oerjan> hm they need to change the name to a weird Unicode symbol :)
16:53:07 * ihope_ ponders what would be a not-that-ugly way to get a single line from a socket
16:56:10 -!- Tritonio_ has joined.
16:57:50 <ihope_> I declare a completely elegant solution impossible.
17:14:12 <Jontte> for(int *p;;*(p++)=0);
17:15:52 <ihope_> Zeros everything starting from an undefined point until it crashes?
17:16:16 <Jontte> yeah :D
17:16:21 <ihope_> Fun.
17:16:47 <ihope_> Why not have it randomize the cells instead, starting from the location of the function? :-)
17:17:05 <Jontte> hah
17:17:56 <Jontte> for(int *p;;*(++p)=(p-1));
17:18:02 <Jontte> int copier :D
17:18:14 <Jontte> give it a pointer to an array of ints
17:18:38 <Jontte> oops
17:18:46 <Jontte> forgot a *
17:22:12 <ihope_> Wait, I think this means I need a busy loop...
18:09:42 -!- RedDak has joined.
18:32:50 -!- sebbu2 has joined.
18:43:34 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
18:44:37 -!- puzzlet has joined.
18:52:40 -!- sebbu has quit (Connection timed out).
19:08:20 -!- Slereah_ has joined.
19:25:45 -!- Slereah has quit (Read error: 110 (Connection timed out)).
19:28:40 -!- RedDak has quit (Remote closed the connection).
19:33:01 <pikhq> while(1){fork();malloc(sizeof(char));}
19:34:07 <Jontte> nasty! :)
19:34:23 <Jontte> does the forked child escape the loop or continue it aswell?
19:34:51 <Jontte> oh lol, of course it stays there :D
19:39:07 <pikhq> Ah, hell. while(1){fork();malloc(SSIZE_MAX);}
19:39:32 <Jontte> :D
19:40:37 <oerjan> hm... but will the malloc actually _be_ allocated if it is never used?
19:41:17 <tejeez> it will be
19:41:40 <tejeez> function can't even know if its return value is saved anywhere
19:42:26 <oerjan> no i mean - may it not be that it is not actually allocated until something tries to page it in?
19:42:47 <Jontte> allocate a malloc? what?
19:43:01 <tejeez> hmm.. well, i'm not sure
19:43:27 <oerjan> i imagine that all except a tiny portion might be so virtual it doesn't actually use any significant resources...
19:43:38 <tejeez> but let's do for(;;) { int *shit; fork(); shit = malloc(100000); *shit = 1234; } to be sure ;)
19:43:48 <pikhq> Nah. Do a calloc.
19:43:49 <Jontte> :D
19:45:43 <tejeez> but if the amount of processes for user isn't restricted, just for(;;)fork(); will be enough to make the system quite unusable quickly :P
19:46:52 <Jontte> yeah :D
19:47:00 <Jontte> but.. fork can fail, imo
19:47:13 <Jontte> i think there is a restriction
19:47:17 <Jontte> some memory stuff
19:47:49 <oerjan> "By default, Linux follows an optimistic memory allocation strategy. This means that when malloc() returns non-NULL there is no guarantee that the memory really is available. This is a really bad bug.
19:48:09 <Jontte> lol, how is that possible
19:48:11 <Jontte> nice bug
19:48:21 <pikhq> So, basically, that breaks all code.
19:48:24 <pikhq> Way to go, Linux.
19:48:26 <Jontte> yeah
19:48:29 <oerjan> that's what i was recalling
19:48:36 <Jontte> i havent had any trouble with mallocs though >_<
19:48:46 <Jontte> or any programs
19:49:25 <oerjan> but i also assume this means that if programs allocate more than they actually use, linux will deal with _that_ well
19:50:21 <tejeez> maybe not
19:50:22 <Jontte> i once tried doing a while(1){new int;}
19:50:25 <Jontte> the program ran
19:50:29 <Jontte> few minutes actually
19:50:36 <Jontte> then, it just shut down
19:50:42 <Jontte> and the system became normal
19:50:46 <Jontte> i think the kernel kicked in
19:50:51 <tejeez> how can it know if the program wants to use that unused but allocated space later..
19:51:16 <Jontte> its magic
19:51:45 <tejeez> or maybe linux just doesn't do anything special with programs allocating more than they use :)
19:52:09 <tejeez> as it can't really know how much they will use
19:52:15 <Jontte> yeah
19:52:28 <Jontte> you could examine the source
19:52:39 <Jontte> (;P to windows users)
19:53:26 <oerjan> my guess (i may have seen something on it) is linux only allocates the address range, and leaves to the vm to find real memory if it's actually used
19:54:07 <oerjan> that would explain that bug...
20:02:49 <oklopol> tejeez: you don't know who i am, but i've known you so long i've got to say hi
20:03:38 <oklopol> ihope_: you actually tried rzff? what did you score?
20:04:36 <oklopol> i've gotten 590 or something
20:05:17 -!- Tritonio_ has quit (Remote closed the connection).
20:07:30 <ihope_> oklopol: you mean it has an end?
20:07:44 <oklopol> nope
20:07:49 <oklopol> but there is a score
20:07:53 <ihope_> Oh.
20:08:00 <ihope_> How's it calculated?
20:08:18 <oklopol> it's just amount of balls**2 / time taken to count
20:08:39 <ihope_> (By the way, I called the folder rzff and onokki are in "okies".)
20:08:44 <ihope_> Hmm, simple enough.
20:09:28 <oklopol> i'm assuming you own me at this
20:09:29 <ihope_> If you count three in a second, a score of 590 would be... many?
20:09:34 * ihope_ shrugs
20:09:36 <ihope_> I'll try.
20:09:40 <oklopol> i count over 10 a second at max
20:10:30 -!- oerjan has quit ("Good night").
20:10:39 <oklopol> counting in groups of 5 or more is the trick
20:10:47 <ihope_> Is that big number it shows the score?
20:11:05 <oklopol> the one that's in the lower right corner
20:11:10 <ihope_> Oh.
20:11:12 <ihope_> What is that number?
20:11:21 <oklopol> Correct (amount/time taken)
20:11:28 <oklopol> Failed (your guess/right one)
20:13:23 <ihope_> I can't go very long before... I get too excited?
20:13:40 <ihope_> I did about 10 or 20 and now I'm a little shaky.
20:22:22 <tejeez> oklopol: hi.. well, you know me from? who are you? :P
20:22:31 <tejeez> +where
20:22:34 <oklopol> 592
20:22:51 <oklopol> i've seen some of your projects, i think :O
20:22:55 <tejeez> ok
20:22:59 <oklopol> did you do something with an oscillator once?=
20:23:16 <tejeez> yeah, i made the youscope demo to asm'07
20:23:55 <oklopol> well, i think i saw that, and i've seen you around the net a lot.
20:24:11 <oklopol> such a familiar name it seems as if i knew you :D
20:25:07 <oklopol> i just realized, btw, that you can actually quite easily get any amount of points in that with a bit of patience
20:25:34 <tejeez> in what? oscilloscope?
20:25:41 <oklopol> heh
20:25:43 <oklopol> no, rzff :)
20:25:50 <oklopol> www.vjn.fi/gz/rzff.zip
20:26:09 <tejeez> ah, ok :P
20:26:14 <oklopol> but, then again, you can just say you got 1000 pts, and no one can know whether you're lying
20:26:18 <oklopol> so guess it doesn't matter.
20:26:39 <oklopol> after 60 balls, i start failing a lot :<
20:26:53 <tejeez> i thought you was still talking to me and wondered what points were you talking about :D
20:27:00 <oklopol> :DD
20:27:02 <oklopol> *-D
20:27:49 <oklopol> hmm, exam in 9 hours, the question is, should i get some coke and code all night.
20:34:32 <lucas-> what exam is it?
20:34:58 <Slereah_> Depends what you mean by "coke".
20:35:56 <oklopol> 659 :P
20:36:02 <oklopol> digital circuits
20:36:08 <lucas-> i haven't tried coding on drugs yet
20:36:09 <oklopol> karnaugh maps
20:36:16 <oklopol> boolea shite
20:36:19 <oklopol> n
20:36:19 <lucas-> well, not amphetamines or coke anyway
20:37:11 <oklopol> hmm, lots of new ppl here :o
20:37:21 <tejeez> if you need that code in the exam, you should. otherwise go to sleep now
20:37:55 <oklopol> i was thinking i'd code a nice one button game
20:38:16 <oklopol> the main character is a red ball
20:38:19 <oklopol> think how great
20:38:29 <Slereah_> oklopol : What are his motives?
20:38:36 <Slereah_> His dreams, and aspirations.
20:38:38 <oklopol> the ball's?
20:38:50 <oklopol> he wants to move from the beginning to the end
20:39:44 <oklopol> i think i had the idea of moving a ball by bouncing and switching gravity on/off for like 3 years ago... guess i've been lazy
20:39:46 <Slereah_> Well, it's a start I suppose.
20:40:01 <lucas-> It is his most important desire to reach the end? Isn't that a bit one dimensional?
20:40:12 <Slereah_> Maybe you could make a character sheet with all his infos, including blood type.
20:40:31 <Slereah_> It's popular!
20:40:44 <oklopol> the main idea is that you move the ball *only* by switching gravity on and off.
20:40:54 <Slereah_> That's like the intelligent bombs in "Dark Star".
20:41:02 <Slereah_> "What is your one purpose in life?"
20:41:03 <oklopol> if you want more, you're masochist :\
20:41:06 <oklopol> *a
20:41:07 <Slereah_> "Why, to explode of course!"
20:41:20 <oklopol> heh
20:41:30 <oklopol> i don't like games with a plot
20:41:35 <oklopol> or 3d games
20:41:42 <oklopol> or anything with humans
20:41:44 <lucas-> maybe, throughout the game, he could discover that the path traveled is more important than the destination
20:41:49 <oklopol> xD
20:42:05 <Slereah_> All games end up with some sort of plot if they're succesful.
20:42:08 <Slereah_> Well, except Tetris.
20:42:23 <oklopol> uhh no
20:42:32 <oklopol> i don't know one good game with a plot.
20:42:49 <Slereah_> I didn't say anything about good.
20:42:56 <Slereah_> Although I <3 Grim Fandango
20:43:03 <oklopol> oh, i see what you meant there
20:43:35 <tejeez> would it be a good idea to also let the gravity to be reversed
20:43:50 <oklopol> oh, no
20:43:59 <oklopol> too simple.
20:44:17 <oklopol> you would have 100% control over movement on the y-axis
20:44:32 <Slereah_> Wouldn't the ball just fall after a while?
20:44:47 <Slereah_> Or is it not important if it falls on the ground.
20:44:49 <oklopol> it's just be about getting a nice x-wise speed, and the rest would be a ckewalk
20:44:50 <tejeez> Slereah_: it'll not if it bounces perfectly :P
20:44:51 <oklopol> cake
20:45:08 <Slereah_> What, no thermalisation of the kinetic energy?
20:45:13 <oklopol> it doesn't have to bounce a lot.
20:45:16 <tejeez> yeah
20:45:36 <oklopol> you don't need a lot of speed to be able to move upwards without gravity
20:45:54 <oklopol> but, i'll prolly make 90% bounce
20:46:15 <Slereah_> *force
20:46:59 <oklopol> <oklopol> >>> choose koed sleap
20:47:00 <oklopol> <ololobot> koed
20:47:03 <oklopol> teh bot has spoken.
20:47:37 <tejeez> Slereah_: so thermalisation of kinetic energy will happen, but it'll break the real laws of physics anyway ;)
20:47:39 <lucas-> so, what coke were you talking about?
20:47:48 <oklopol> the normal stuff ppl drink
20:47:53 <lucas-> oh :(
20:48:03 <oklopol> i've never even *seen* drugs.
20:48:36 <Slereah_> You don't have the right friends!
20:48:48 <Slereah_> Not even pot?
20:48:53 <oklopol> nope
20:49:08 <tejeez> not even.. alcohol?!
20:49:24 <Slereah_> Well, "drugs" usually refers to the illegal ones.
20:49:37 <oklopol> heh, i've seen alcohol :)
20:50:23 <Slereah_> Tobacco? Caffeine?
20:50:38 <oklopol> you were correct, i meant i haven't seen the illegal ones.
20:50:53 <oklopol> well, most likely i have, just don't remember now
20:52:38 <oklopol> argh, anyone wanna draw me a red ball ;)
20:52:47 <oklopol> i'm not that visually gifted :<
20:53:02 <oklopol> can't find an ellipse tool in gimp...
20:53:16 <lucas-> haha, same problem here
20:53:32 * Slereah_ fires up the GIMP
20:53:46 <lucas-> i had to ask someone to cut out part of a transparent png at work
20:54:01 <lucas-> cause i don't know anything about the gimp and photoshop :)
20:54:21 <oklopol> all a painting program needs is a scripting language + scripting box, and a few basic shapes
20:54:25 <oklopol> gimp has neither :<
20:55:09 <Slereah_> Use Adobe Illustrator?
20:55:14 <Slereah_> I remember it being good.
20:55:29 <oklopol> nah, i prefer asking random people to do my balls
20:55:42 <oklopol> (pun as intended as possible)
20:55:43 <Slereah_> Well, if you ask so nicely...
20:55:46 <tejeez> just generate a red circle in the code of the game
20:55:54 <oklopol> oh, right xD
20:55:58 <oklopol> guess i'll do that
20:56:39 <tejeez> and if you want it to be very professional, shade it somehow!
20:57:19 <oklopol> nah, i prefer an ascetic ball without any texture!
20:57:56 <Slereah_> Is that any information on its personality?
20:59:17 <oklopol> Slereah_: you can write the plot and the ball's characteristics if you like
20:59:24 <oklopol> i promise i'll put them in the game :P
21:01:25 -!- sebbu2 has changed nick to sebbu.
21:02:17 <Slereah_> IN THE POST-NUCLEAR WASTELAND, THERE IS ONLY ONE GAME : BALLS
21:02:26 <Slereah_> ONE MAN COMES IN, WILL HE COME OUT?
21:02:34 <Slereah_> Nah.
21:03:17 <Slereah_> Heh. That reminds me of some old games.
21:03:22 -!- ehird` has joined.
21:03:38 <Slereah_> Once in a while, you noticed some plot section that no one ever reads.
21:03:57 <oklopol> heh
21:03:59 -!- RedDak has joined.
21:04:10 <oklopol> and it always starts with "in the post-nuclear wasteland..."
21:04:37 <Slereah_> Well, the pre-nuclear wasteland is so banal.
21:05:11 <Slereah_> Here's a good example : http://www.flickr.com/photo_zoom.gne?id=927480171&size=o
21:05:16 -!- ehird` has quit (Read error: 113 (No route to host)).
21:05:22 <Slereah_> It was a quite awesome game.
21:05:23 -!- ehird`_ has joined.
21:05:30 <Slereah_> I think I read the plot 10 years later.
21:07:31 -!- ehird`_ has quit (Read error: 104 (Connection reset by peer)).
21:08:21 -!- ehird` has joined.
21:09:16 <Slereah_> http://www.flickr.com/photo_zoom.gne?id=928194782&size=o
21:09:19 <Slereah_> It had a few bugs.
21:09:55 -!- ehird` has quit (Remote closed the connection).
21:10:53 -!- ehird` has joined.
21:14:33 <oklopol> hot stuff
21:14:34 <ehird`> aaargh
21:15:00 <Slereah_> Bear mauled your back?
21:15:34 <ehird`> no
21:15:35 <ehird`> :P
21:15:45 <Slereah_> Good.
21:17:04 <ehird`> MY QUEST: Implement the full r5rs Scheme in Python
21:17:16 <ehird`> Not just the silly dialects I have done before, oh no
21:17:19 <ehird`> Next: Common Lisp!
21:18:42 <ehird`> (oh -- including call/cc, yes.)
21:29:20 <ehird`> Slereah_: Tell me. Am I crazy? :)
21:31:23 <oklopol> you, sir, are a madman
21:31:29 <oklopol> what's this scheme fixation
21:31:42 <Slereah_> I don't know Scheme, so I cannot say.
21:32:02 <Slereah_> If scheme is a language that requires mauling at the hands of bears, mayb!
21:32:10 <Slereah_> But I think that's Malbolge.
21:32:19 <oklopol> it's the sex pee language
21:32:39 <ehird`> oklopol: Scheme is my favourite language :P
21:33:21 <ehird`> Scheme is the only language where (call-with-current-continuation (lambda (k) (k 2)) is equivilent to 2!
21:34:33 <ihope_> It is?
21:35:09 <ehird`> ihope_: it is the only language or that is equiv. to 2?
21:35:25 <ihope_> It's the only such language?
21:35:36 <ehird`> Well, maybe apart from some minor scheme variants like T
21:35:41 <ehird`> but that won't work in Common Lisp, for sure
21:35:46 <ehird`> Since it doesn't have continuations :-)
21:36:13 <ihope_> There's another way of saying call-with-current-continuation, isn't there?
21:36:21 <ihope_> Does call/cc also work?
21:36:21 <ehird`> call/cc, but that's not standard
21:36:29 <ehird`> it is widely accepted however
21:37:24 <ihope_> There is a well-known language that's nothing like Scheme in which (call/cc (lambda (k) (k 2))) is equivalent to 2.
21:37:35 <ehird`> What language, then?
21:37:42 <ihope_> Brainfuck.
21:37:50 <ehird`> Pff
21:40:06 <ihope_> (Also, I wonder when I'll use something like #def ircRun to close a block in Python and wonder why it isn't working.)
21:40:16 <ehird`> hh
21:40:17 <ehird`> heh
21:41:45 <ehird`> ihope_: a scheme stack frame is just object-being-evaluated + bindings + upper frame, right?
21:42:15 <ihope_> I don't know.
21:42:25 <ehird`> :(
21:43:47 <ihope_> I know this much about Scheme: -> <-
21:44:55 <ihope_> I guess now I'll be getting into Python regexy business.
21:45:36 <ehird`> scheme is fuuuuun
21:50:28 <ehird`> ihope_: ((call/cc call/cc) (call/cc call/cc)) tell me what that does :-)
21:51:12 -!- chuck has joined.
21:51:43 <chuck> hi, i'm looking for a way to shorten my brainfuck code for example: +++++++[>+++++++++++<-]>.>++++++++++[>++++++++++<-]>+. which is "Me", how can i shorten that down?
21:53:04 <Slereah_> You could transfer the M to the next byte.
21:53:23 <Slereah_> e is less than 30 +'s away.
21:53:29 <Slereah_> Might shorten it.
21:53:43 <chuck> oh so you mean keep on using M's memory cell for E?
21:53:51 <oklopol> !bf_textgen Me
21:53:54 <oklopol> !help
21:53:55 <EgoBot> Huh?
21:53:57 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
21:53:58 <Slereah_> No, not even that.
21:53:59 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
21:54:01 <oklopol> !bf_txtgen Me
21:54:33 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [318]
21:54:52 <oklopol> sucks for strings that short
21:54:59 <ehird`> no, oklopol
21:55:02 <ehird`> !bf_txtgen Me
21:55:04 <chuck> aww +++++++[>+++++++++++<-]>.++++++++++[>+++<-]>. doesn't work
21:55:04 <ehird`> !bf_txtgen Me
21:55:05 <ehird`> !bf_txtgen Me
21:55:05 <ehird`> !bf_txtgen Me
21:55:05 <ehird`> !bf_txtgen Me
21:55:06 <ehird`> !bf_txtgen Me
21:55:16 <ehird`> it should evolve something better :-)
21:55:22 <oklopol> k
21:55:30 <ehird`> hm, though it isn't
21:55:44 <chuck> !bf_txtgen Hello World
21:56:00 <ehird`> chuck: it's had a LOT of practice on various Hello Worlds :-)
21:56:10 <chuck> heh
21:56:29 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [51]
21:57:12 <ehird`> uh, that's not for hello world. obviously :-)
21:57:15 <EgoBot> 101 ++++++++++++++[>+++++>+++++++>++>++++++<<<<-]>++.>+++.+++++++..+++.>++++.>+++.<<.+++.------.--------. [432]
21:57:17 <ehird`> that's its first attempt at Me
21:57:20 <ehird`> that's your Hello World
21:57:31 <ehird`> so, the next stuff it spews out will be Me progressively improved
21:57:33 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [949]
21:57:42 -!- chuck has quit ("This computer has gone to sleep").
21:57:47 <ehird`> hmph.
21:57:50 <oklopol> umm
21:57:53 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [59]
21:57:54 <oklopol> it does not keep state
21:58:15 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [134]
21:58:17 <ihope_> ehird`: http://esolangs.org/wiki/Subtle_cough
21:58:31 <ihope_> ((call/cc call/cc) (call/cc call/cc)).
21:58:35 <ehird`> ihope_: oh, *I* know
21:58:43 <ihope_> :-P
21:58:45 <ehird`> hmm, if you made subtle cough
21:58:49 <ehird`> then I guess not a good question!
21:58:49 <ehird`> :-)
21:58:55 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [684]
21:58:57 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [789]
21:59:04 <ihope_> :-)
21:59:09 <ehird`> it's still my favourite infinite loop, i just wish i could figure out a way to plug a lambda into it
21:59:20 <ehird`> even sillier than until (hell_freezes_over) or while (the_pope == catholic)
22:00:10 <ihope_> until pigs.fly(), etc.
22:03:46 <pikhq> ehird`: ((lambda x (x)) (lambda x (x))) ;)
22:03:56 <ehird`> pikhq: not quite the same though \:P
22:07:08 -!- jix has quit ("CommandQ").
22:08:33 -!- GreaseMonkey has joined.
22:13:46 -!- AnMaster has joined.
22:15:04 <Slereah_> Hm. What would be a good program to test a non-deterministic Turing machine?
22:15:30 <Slereah_> Apart from "generating random numbers"'
22:17:38 -!- Bennity has joined.
22:18:03 <ihope_> Start with the numbers from 1 to 10 and remove random contiguous pairs of numbers?
22:18:27 <ihope_> Remove 4 and 5, then 7 and 8, then 2 and 3, then 9 and 10, and then you can't remove any more.
22:19:25 <Slereah_> I'll try that.
22:22:58 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
22:24:52 <ehird`> oklopol: damn, writing an obfuscated scheme interpreter that only uses lambdas and single-letter variables is hard
22:25:28 -!- Bennity has left (?).
22:28:46 <ehird`> oklopol: hmm, is it *possible* to do something akin to while x: ... in a lambda?
22:28:48 <ehird`> without using stack space
22:34:44 <pikhq> We call it 'recursion'.
22:36:28 <ehird`> pikhq: without using stack space. python is not tail recursive
22:37:38 <pikhq> Ah.
22:37:56 <ihope_> ehird`: "lambda x: while foo: blah"?
22:38:04 <ehird`> ihope_: while is a statement
22:38:08 <ehird`> lambdas only hold 1 expression
22:38:20 <ehird`> which is why you need to replace "if X: Y else: Z" with "(X and Y) or Z" :D
22:38:21 <pikhq> Um. . . Clearly, Python sucks.
22:38:29 <ihope_> Oh.
22:38:51 <ihope_> Make a while-y function?
22:38:59 <ehird`> pikhq: Yeah, it has expr/stmt distinction. :P
22:39:06 <ehird`> ihope_: I don't want to add helpers :P
22:39:13 <ihope_> You're no fun.
22:40:22 <ehird`> :D
22:40:28 <ehird`> i'm trying to be obfuscated here
22:43:31 <pikhq> It differentiates between an anonymous function and a named one.
22:43:33 <pikhq> How dare they?
22:44:01 <ihope_> Hey, they even differentiate between expressions and statements.
22:45:58 <pikhq> Criminal.
22:58:18 -!- RedDak has joined.
23:04:18 -!- RedDak has quit (Remote closed the connection).
23:05:03 -!- Jontte has quit ("Konversation terminated!").
23:06:43 <ihope_> Hmm. http://esoteric.voxelperfect.net/files/fugue/src/hworld.mid sounds nice at the beginning and becomes yucky immediately.
23:11:53 <ehird`> I like all fugue programs
23:11:57 <ehird`> They're avant-garde
23:21:24 -!- calamari has joined.
23:33:07 -!- GreaseMonkey has quit ("bbl").
23:43:18 * pikhq writes up the Kinda-Sorta-Blackish repeals
2007-12-17
00:12:26 -!- ihope_ has quit (Read error: 104 (Connection reset by peer)).
00:27:13 <ehird`> sdfkhgklsfjghklshgksg MEGAHAL IF YOU DON'T ACCEPT -r -g OR -B WHY ARE THEY IN YOUR -h?!"?!?!?!!
00:36:36 -!- puzzlet has quit (Remote closed the connection).
00:36:38 -!- puzzlet_ has joined.
00:41:52 -!- Sgeo has joined.
00:44:24 -!- ehird` has quit (Read error: 113 (No route to host)).
00:45:10 -!- ehird` has joined.
01:09:36 -!- sebbu has quit ("@+").
01:13:02 -!- AnMaster has quit (Read error: 104 (Connection reset by peer)).
01:25:06 -!- lucas- has left (?).
01:29:35 -!- AnMaster has joined.
01:34:31 -!- ehird` has quit (Remote closed the connection).
01:51:52 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
02:01:56 -!- ihope_ has joined.
02:06:24 -!- AnMaster has quit (No route to host).
02:07:38 -!- AnMaster has joined.
02:36:19 -!- AnMaster has quit (No route to host).
02:36:57 -!- AnMaster has joined.
03:03:21 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
03:03:22 -!- EgoBot has quit (calvino.freenode.net irc.freenode.net).
03:03:24 -!- puzzlet_ has quit (calvino.freenode.net irc.freenode.net).
03:03:24 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
03:03:25 -!- tejeez has quit (calvino.freenode.net irc.freenode.net).
03:03:25 -!- Possum has quit (calvino.freenode.net irc.freenode.net).
03:03:25 -!- AnMaster has quit (calvino.freenode.net irc.freenode.net).
03:03:25 -!- calamari has quit (calvino.freenode.net irc.freenode.net).
03:03:26 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
03:03:26 -!- pikhq has quit (calvino.freenode.net irc.freenode.net).
03:03:28 -!- cherez has quit (calvino.freenode.net irc.freenode.net).
03:03:28 -!- cmeme has quit (calvino.freenode.net irc.freenode.net).
03:03:28 -!- Overand has quit (calvino.freenode.net irc.freenode.net).
03:03:28 -!- johnl has quit (calvino.freenode.net irc.freenode.net).
03:03:28 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
03:03:29 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net).
03:03:29 -!- Slereah_ has quit (calvino.freenode.net irc.freenode.net).
03:03:31 -!- xristos has quit (calvino.freenode.net irc.freenode.net).
03:03:31 -!- RodgerTheGreat has quit (calvino.freenode.net irc.freenode.net).
03:03:33 -!- Maxdamantus has quit (calvino.freenode.net irc.freenode.net).
03:03:33 -!- dbc has quit (calvino.freenode.net irc.freenode.net).
03:03:34 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
03:03:34 -!- ihope_ has quit (calvino.freenode.net irc.freenode.net).
03:03:35 -!- lifthras1ir has quit (calvino.freenode.net irc.freenode.net).
03:03:35 -!- johnk has quit (calvino.freenode.net irc.freenode.net).
03:03:35 -!- mtve has quit (calvino.freenode.net irc.freenode.net).
03:03:35 -!- lament has quit (calvino.freenode.net irc.freenode.net).
03:03:36 -!- DocWilco has quit (calvino.freenode.net irc.freenode.net).
03:04:11 -!- AnMaster has joined.
03:04:11 -!- ihope_ has joined.
03:04:11 -!- puzzlet_ has joined.
03:04:11 -!- calamari has joined.
03:04:11 -!- Slereah_ has joined.
03:04:11 -!- oklopol has joined.
03:04:11 -!- pikhq has joined.
03:04:11 -!- xristos has joined.
03:04:11 -!- mtve has joined.
03:04:11 -!- johnk has joined.
03:04:11 -!- dbc has joined.
03:04:11 -!- DocWilco has joined.
03:04:11 -!- SimonRC has joined.
03:04:11 -!- lament has joined.
03:04:11 -!- Maxdamantus has joined.
03:04:11 -!- cherez has joined.
03:04:11 -!- bsmntbombdood has joined.
03:04:11 -!- GregorR has joined.
03:04:11 -!- cmeme has joined.
03:04:11 -!- Overand has joined.
03:04:11 -!- johnl has joined.
03:04:11 -!- tejeez has joined.
03:04:11 -!- sekhmet has joined.
03:04:11 -!- Possum has joined.
03:04:11 -!- EgoBot has joined.
03:04:11 -!- RodgerTheGreat has joined.
03:04:11 -!- lifthras1ir has joined.
03:05:43 -!- miiro has joined.
03:05:47 -!- miiro has left (?).
03:05:47 -!- miiro has joined.
03:06:37 -!- miiro has left (?).
03:06:37 -!- miiro has joined.
03:32:25 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
03:33:55 -!- miiro has joined.
03:34:02 -!- miiro has left (?).
03:34:02 -!- miiro has joined.
03:36:08 <bsmntbombdood> holy fuck
03:36:16 <bsmntbombdood> alive 2007 is sooooo good
03:39:35 <puzzlet_> what is that
03:41:07 <bsmntbombdood> a live recording of daft punk
03:45:10 <pikhq> Damn.
03:48:41 <bsmntbombdood> what?
03:52:49 <pikhq> Um. Ne ideo.
03:58:40 -!- puzzlet has joined.
03:58:42 -!- puzzlet_ has quit (Remote closed the connection).
04:17:00 <RodgerTheGreat> bsmntbombdood: alive 2007 ftw!
04:18:14 <bsmntbombdood> indeed
04:22:24 <pikhq> Daft Punk FTW.
04:39:35 <bsmntbombdood> i don't like studio daft punk
04:39:51 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
05:07:03 <pikhq> RodgerTheGreat: NEW. DC.
05:07:05 <pikhq> EARLY.
05:07:21 <RodgerTheGreat> ?
05:07:36 -!- calamari has quit ("Leaving").
05:07:38 <RodgerTheGreat> OOH
05:07:45 <RodgerTheGreat> dresden codak?
05:07:48 <pikhq> YES.
05:07:54 <RodgerTheGreat> took me a second to make that connection
05:08:11 <pikhq> And yes, I do sound a bit like an addict. ;p
05:09:06 <oklopol> ehird: it's certainly possible, but prolly not in a way you'd want.
05:09:21 <oklopol> also, have no idea whether you read logs, guess this is a test
05:09:53 <RodgerTheGreat> fuckin' AWESOME!
05:13:51 <RodgerTheGreat> the new xkcd is kinda neat, too
05:14:23 <pikhq> Heheheh.
05:15:33 <RodgerTheGreat> good night, everyone- wish me luck on my finals tomorrow morning
05:16:39 * oklopol wishes
05:18:17 * pikhq wishes to take posession of your luck for finals. :p
05:19:33 <oklopol> heh, i remembered the time my exam is only 9 hours wrong :)
05:19:43 <oklopol> thought it's at 8 am, it's at 5 pm
05:21:10 <oklopol> hmmm, actually, i have no idea how to break python's stmt/expr distinction
05:21:24 <oklopol> i'm pretty sure i've done that somehow
05:22:32 <oklopol> whhhell, guess i haven't
05:22:38 <oklopol> i'll do some more sleeping ->
05:24:41 -!- immibis has joined.
05:25:40 <immibis> why is msn messenger randomly sending messages along the lines of "are these your pics? http://msgrpics.net/?msn=YOUR-MSN-ADDRESS-HERE"
06:15:37 -!- immibis has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:30 -!- xristos has quit (Remote closed the connection).
09:53:32 -!- sebbu has joined.
12:08:27 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
12:09:28 -!- oklopol has joined.
12:40:48 -!- Maxdamantus has quit ("# killall -9 xchat && shutdown now").
12:40:52 -!- Maxdamantus has joined.
13:26:48 -!- sebbu has quit (Connection timed out).
13:26:54 -!- sebbu has joined.
13:41:02 -!- sebbu2 has joined.
13:58:22 -!- sebbu has quit (Connection timed out).
14:06:07 <sebbu2> j'vient de gagner 170ko/s de débit :D :)
14:07:03 <oklopol> lopzol inggggharhar hihihihiip xD
14:31:21 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
14:32:20 -!- sebbu has joined.
14:49:13 -!- sebbu2 has quit (Connection timed out).
14:57:08 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
14:57:59 -!- puzzlet has joined.
15:12:57 -!- xristos has joined.
15:19:10 -!- jix has joined.
15:32:21 -!- puzzlet has quit (Remote closed the connection).
15:32:25 -!- puzzlet has joined.
15:37:20 -!- GregorR has quit (Read error: 110 (Connection timed out)).
15:48:49 -!- EgoBot has quit (Read error: 110 (Connection timed out)).
16:14:24 -!- Jontte has joined.
16:15:53 -!- Slereah has joined.
17:15:01 -!- Slereah_ has joined.
17:19:47 -!- puzzlet has quit (Remote closed the connection).
17:20:35 -!- puzzlet has joined.
17:30:56 -!- Slereah has quit (Read error: 110 (Connection timed out)).
17:35:24 <Slereah_> What does "halting" mean, exactly, for a Turing machine?
17:36:42 -!- Slereah has joined.
17:40:30 <RodgerTheGreat> Slereah: how much do you already know about turing machines?
17:42:28 <Slereah> Depends what's the measure for this knowledge.
17:43:02 <RodgerTheGreat> erm... that is not a helpful answer at all
17:43:22 <Slereah> I'm not sure what to answer!
17:43:43 <RodgerTheGreat> it's a simple question: how much do you know about turing machines?
17:44:25 <Slereah> Enough to program one, and knowing some basic concepts I guess
17:44:55 <RodgerTheGreat> ok, are you familiar with finite state machines?
17:45:23 <Slereah> Yes.
17:45:52 <RodgerTheGreat> so, you understand how an FSM accepts strings, right?
17:46:20 <Slereah> Hm. Not sure of this.
17:46:51 <RodgerTheGreat> are you familiar with regexes?
17:47:03 <oklopol> halting = entering a predetermined special state where the machine stops moving ?
17:47:06 <oklopol> no?
17:47:27 <Slereah> I know what regular expressions are.
17:47:35 <Slereah> Not sure if I could go as far as "familiar"
17:48:11 <RodgerTheGreat> oklopol: yes, TMs have specified halting states
17:48:32 <Slereah> Oh.
17:49:05 <Slereah> (I'm a little surprised because the original article doesn't include one)
17:49:19 <RodgerTheGreat> oklopol: I'm trying to build up the full explanation of how regexes, grammars, FSMs and TMs fit together
17:49:52 <oklopol> yarrrrr, just thought a oneliner explaining it quickly might be a helpful start ;)
17:49:53 <RodgerTheGreat> well, a TM will also halt if it's in a state where it has no further acceptable transitions, but this is generally considered halting on an error condition
17:50:50 <Slereah> I was originally thinking of some state (or states) where no action could change the tape any longer.
17:51:02 <Slereah> Hence my question.
17:56:47 -!- puzzlet has quit (Remote closed the connection).
17:56:48 -!- puzzlet_ has joined.
18:03:44 -!- ais523 has joined.
18:03:44 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
18:05:38 -!- puzzlet has joined.
18:05:39 -!- puzzlet_ has quit (Remote closed the connection).
18:09:59 -!- ais523 has quit ("Konversation terminated!").
18:13:03 -!- puzzlet_ has joined.
18:18:08 -!- Slereah has quit (Read error: 110 (Connection timed out)).
18:20:04 -!- Slereah has joined.
18:20:33 <Slereah> Aaaargh.
18:23:19 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
18:34:20 <RodgerTheGreat> ?
18:35:45 <Slereah> Let's just say that my connection too has a halting problem.
18:38:30 <oklopol> you're trying to disconnect, but it keeps reconnecting?
18:44:19 <Slereah> Mostly trying to stay on
18:46:17 <RodgerTheGreat> so it terminates easily, but it's hard to loop infinitely? Sounds like ///.
18:46:41 <Slereah> I guess the metaphore doesn't extend that far.
18:52:26 -!- Sgeo has joined.
19:08:12 <SimonRC> hah
19:08:24 <SimonRC> I initially got today's Xkcd backwards
19:12:09 <DocWilco> hmm
19:12:13 <DocWilco> seems like I did too
19:44:23 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
19:44:29 -!- puzzlet has joined.
19:52:33 <Slereah> http://youtube.com/watch?v=zJOS0sV2a24
19:52:36 <Slereah> Heh.
20:12:31 -!- JontteG has joined.
20:12:31 -!- Jontte has quit (Read error: 104 (Connection reset by peer)).
20:29:57 <SimonRC> Slereah: sinit
20:32:57 <Slereah> Wut?
20:33:25 <SimonRC> I have seen it already.
20:33:56 <Slereah> Lucky you.
20:36:03 -!- JontteG has quit (Read error: 110 (Connection timed out)).
20:36:32 -!- puzzlet has quit (Remote closed the connection).
20:36:34 -!- puzzlet_ has joined.
20:41:34 <SimonRC> zzzzzzzzz
20:42:08 <Slereah> Don't you zzzz me!
20:50:29 -!- puzzlet_ has quit (Remote closed the connection).
20:50:29 -!- puzzlet has joined.
20:55:37 -!- oerjan has joined.
21:04:11 <oerjan> <Slereah_> Well, the pre-nuclear wasteland is so banal.
21:04:38 <oerjan> you could have the game's purpose be to turn it post-nuclear, of course :)
21:05:37 <oklopol> the red ball could be a mad scientist!
21:05:42 <oklopol> actually, it's blue now.
21:06:30 <oerjan> something made it sad?
21:06:54 <oerjan> or did it turn away from its evil communist ways?
21:06:54 <tejeez> there could be a green glowing ball that is a nuclear bomb!
21:07:15 <oerjan> doesn't sound very green to me
21:07:29 <oerjan> not CO2-based, though
21:15:35 <Slereah> oerjan : There was a game.
21:15:39 <Slereah> "Nuclear war"
21:15:51 <Slereah> The goal was to rule the radioactive wasteland at the end!
21:16:10 <Slereah> You could play all the nuclear powers of the cold war!
21:18:28 <Slereah> the commands were mostly build nuclear stuff-build shelter-make propaganda
21:23:59 <oerjan> the red, blue and green faction. all with balls!
21:24:44 <oklopol> sadly, the reason is a much more boring one: red is ugly
21:24:47 <Slereah> "TURN OFF THE GRAVITY, AT FULL POWER!"
21:24:52 <oklopol> :D
21:25:06 <oerjan> clearly a good color for your adversary, then
21:25:06 <oklopol> the game would be great if i just added scrolling
21:25:06 <Slereah> and then, everybody dies
21:25:10 <oklopol> guess i'll do just that
21:25:15 <oklopol> heh, indeed
21:25:29 <oklopol> ...my adversary, or the ball's?
21:26:17 <oerjan> ah, but secretly they're the same!
21:26:34 <Slereah> Maybe you could some sort of one-buttoned controler, for hours of enjoyment
21:26:36 <oerjan> you could explain that in the Epilogue
21:26:52 <oklopol> how did you know i myself am a small 2d ball whose only means of movement is turning gravity on/off 8·||
21:27:14 <oerjan> i didn't. but now i do.
21:27:15 <Slereah> We're all the same here, oklopol.
21:27:42 <Slereah> We're trying to pretend we're discussing esoteric language, but this is all about the sorrows of being an agravitic ball.
21:27:46 <oerjan> i am a number, not a man!
21:27:51 <oerjan> or a ball.
21:28:05 <Slereah> What's your number?
21:28:53 <oerjan> oh, a little singing and dancing, and a couple of jokes.
21:29:46 <Slereah> http://membres.lycos.fr/bewulf/Divers2/Applause%20(Bender).jpg
21:30:48 <oerjan> and more puns than you can shake a stick at.
21:31:06 <oklopol> heh, i love pun floods
21:31:08 <oerjan> but you could all guess that already.
21:31:11 <Slereah> I'll accept that stick shaking challenge.
21:31:57 * oerjan hates it when his jokes approach too close to actual work.
21:32:38 <oerjan> oklopol: your puny floods are of no consequence
21:34:09 <oklopol> too close to actual work?
21:34:21 <oklopol> or was that just another pun i didn't get :P
21:35:05 <oerjan> i nearly had to enter a challenge there.
21:35:18 <oerjan> <oklopol> lopzol inggggharhar hihihihiip xD
21:35:24 <oerjan> ^^ very eloquent.
21:35:36 <Slereah> Dude, I was just thinking that.
21:35:46 <Slereah> LOPZOL
21:36:20 <oklopol> :D
21:36:22 <oklopol> i try my best
21:37:14 <Slereah> Can't wait for that week to end.
21:37:25 <Slereah> Maybe I can get back on that code of mine.
21:40:20 <oklopol> oerjan: can you honestly say there's a better way to respond to someone using another language than english?
21:40:46 <oklopol> also, i keep trying to save the irc window... and then i don't remember to save my code
21:40:48 <oklopol> lolz
21:50:08 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
21:50:43 -!- jix has quit ("CommandQ").
21:51:00 -!- puzzlet has joined.
22:39:52 -!- ihope_ has joined.
22:44:27 -!- ihope_ has quit (Read error: 104 (Connection reset by peer)).
22:49:13 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
22:55:37 -!- immibis has joined.
22:57:28 * immibis is surprised he's the only person running windows here - it may be evil but it's not THAT evil (at least xp isn't, vista is)
22:57:57 <oerjan> i am running windows
22:58:03 <bsmntbombdood> eeew
22:58:27 <oerjan> but also ssh to linux -> irssi
22:58:36 * Slereah runs on windows
22:58:48 <Slereah> I don't even have Linux installed!
22:59:17 <oerjan> i guess this makes this obligatory: http://dotnet.org.za/codingsanity/archive/2007/12/14/review-windows-xp.aspx
22:59:58 <bsmntbombdood> 3:59PM up 92 days, 5:51, 2 users, load averages: 0.79, 0.71, 0.67
23:00:00 <bsmntbombdood> wewt
23:00:04 <bsmntbombdood> get that on windows
23:01:13 <oerjan> i think i would get close to that if windows updates didn't have that tendency to require a reboot
23:03:01 <immibis> slereah: beware of msn virus in that case.
23:03:06 <immibis> and oerjan too.
23:03:23 <immibis> bsmntbombdood: why would i WANT to run my computer for 92 days?
23:03:45 * oerjan has it set to hibernate when he closes the lid
23:05:10 <oklopol> try not to get a heart attack or anything from the surprise when i tell you this, but it's actually quite hard to maneuver the ball with just the gravity switch :O
23:05:28 <oerjan> ayeeh, the PAIN
23:05:35 <oerjan> oh, right.
23:06:23 <oklopol> try harder!
23:09:33 <immibis> the ball?
23:09:39 <immibis> what ball?
23:09:57 <oklopol> my ball game
23:10:37 <oklopol> guess i'll up it just in case, i'm sure everyone is interested as hell ;))))
23:12:41 <bsmntbombdood> wwhat's a gravity switch?
23:13:25 <oklopol> switches gravity on/off
23:13:45 <oklopol> just an ugly 2d quickie
23:13:46 <bsmntbombdood> ummm
23:13:48 <oerjan> Gravity. It's not just a good idea, it's the LAW. Unless you press this switch...
23:15:17 <Slereah> It could be the plot.
23:15:24 <Slereah> A blue ball. On the run from the law.
23:15:27 <Slereah> Of gravity.
23:15:48 <Slereah> Maybe you could include that gravirrific monster from... Final Fantasy?
23:15:49 <oklopol> http://www.vjn.fi/gz/bounca/
23:15:58 <oklopol> tell me if you 1. try it 2. find bugs
23:15:59 <Slereah> Atomos, the big cubic dude
23:16:10 <oklopol> err
23:16:12 <immibis> bsmntbombdood: presumably it's so you can run the game so the screen shows either a vertical plane , or a horizontal one (with gravity off).
23:16:16 <oklopol> you don't have to tell me if you try it..
23:16:23 <Slereah> Which file is it?
23:16:27 <oklopol> both
23:16:29 <immibis> gravity on = like a vertical plane. gravity off = like a horizontal one.
23:16:32 <oklopol> lev.lev is the lev.
23:16:56 <oklopol> that's one way to reason about it
23:17:06 <Slereah> What should I open it with?
23:17:10 <oklopol> but, i'm not sure whether it's possible for a human to learn to use that
23:17:13 <oklopol> python
23:17:15 <oklopol> and you need pygame.
23:17:26 <Slereah> Not sure I have it
23:17:45 <oklopol> that's the problem with using python
23:17:53 <oklopol> sometimes, others don't
23:18:18 <Slereah> ImportError: No module named pygame
23:18:23 <Slereah> Well, I guess not.
23:18:47 <oklopol> you didn't miss a lot, believe me :)
23:20:04 <Slereah> Come on
23:20:07 <Slereah> A blue ball?
23:20:13 <Slereah> On the run from the law?
23:20:18 <Slereah> With nothing left to lose?
23:21:31 <oklopol> :D
23:21:40 <immibis> http://dan-ball.jp/en/javagame/dust/
23:21:43 <oklopol> well, when you put it that way, it's a pretty awesome game
23:22:21 <Slereah> Well, except maybe the "blue ball" part.
23:22:34 <Slereah> Can't you use some picture of a cougar instead?
23:24:22 <oklopol> i've been thinking of making a powder game with an idea
23:24:48 <oklopol> guess i could make one tomorrow or something, since it seems i'm making games now.
23:25:31 <oklopol> i prefer blue balls over cougars
23:26:46 <oerjan> >_<
23:28:49 <oklopol> oerjan: character suggestion?
23:29:05 <oerjan> that was a grown
23:29:12 <oerjan> er, groan
23:29:39 <Slereah> Heh. Gunpower, oil, C4, nitroand some magma.
23:29:51 <Slereah> Great way to scatter som powder.
23:30:09 <oklopol> oh, heh, i never consider smileys anything that complicated
23:33:15 <oerjan> Wikipedia: (>_<) or (>_>) in pain, frustration
23:34:45 <oklopol> ah, i though grown was something a cougar says
23:34:58 <oklopol> errr
23:34:59 <oerjan> ah, there are the rolling eyes i was looking for. 9_9
23:34:59 <oklopol> groan
23:35:16 <oklopol> what was your pain about?
23:35:18 <oerjan> no, it signifies the pain from a bad pun
23:35:27 <oerjan> oklopol> i prefer blue balls over cougars
23:35:41 <oklopol> ohehe
23:35:54 <oklopol> you should be careful with balls, if not deliberately making puns.
23:36:00 <DocWilco> >_> is often shifty eyes
23:36:18 <oklopol> "my eyes goin thattaway, me going thisaway"
23:36:23 <DocWilco> >_>
23:36:24 <DocWilco> <_<
23:36:46 <DocWilco> ^_^
23:37:07 <oklopol> heh
23:37:08 <DocWilco> is there a smiley programming language yet?
23:37:13 <oklopol> that used to be my nick
23:37:17 <DocWilco> smiley based*
23:37:18 <oklopol> yeah
23:37:23 <oklopol> emoticon, i think
23:37:40 <oklopol> hmm
23:38:02 <oklopol> yeah, emoticon
23:38:13 <DocWilco> oh dear
23:38:14 <DocWilco> yeah
23:38:18 <DocWilco> found it on 99 bottles
23:38:21 <oklopol> ^_^ enters obfuscation mode, but that's pretty much all i remember
23:38:32 <oklopol> oh, cool
23:39:01 <DocWilco> mmm
23:39:31 <DocWilco> whoever wrote the 99 bottles emoticon entry didn't get into the spirit of things enough
23:39:45 <oklopol> yeah, that's quite boring :\
23:40:11 <DocWilco> too many Song's and Final's
23:40:29 <DocWilco> I think my favorite on that site so far is Piet
23:48:11 <oklopol> wtf
23:48:21 <oklopol> i think i've mastered the movements of the ball :O
23:48:32 -!- puzzlet has quit (Remote closed the connection).
23:48:33 -!- puzzlet_ has joined.
23:48:41 <oklopol> at least i can pass the level quite quickly, and it requires you to go through a small hole
23:50:51 <oklopol> hehe, quite awesome
23:51:42 <Slereah> So, mastered your ball hey?
23:51:46 <Slereah> Through a small hole?
23:53:29 <DocWilco> holy
23:53:29 <DocWilco> This web game is a game that reels the powder by using the mouse,
23:53:30 <DocWilco> sends the wind, and enjoys that the dot dances.
23:53:32 <DocWilco> engrish
23:59:49 <Slereah> It is quite procrastinating.
2007-12-18
00:00:04 <Slereah> I'm supposed to write some homework at this very instant!
00:00:14 <Slereah> And yet here I am, raining nitroglycerin on little fighters.
00:01:19 <Slereah> Is there a way to increase the number of dots?
00:08:56 <oklopol> lol, how can a game be good if you can use the mouse!
00:09:00 -!- faxathisia has joined.
00:09:35 <oklopol> or, to be specific, how can a game be good unless it's controlled with 1 button
00:09:39 <Slereah> oklopol : Fucking explosions, that's how.
00:09:47 <oklopol> hehe
00:09:52 <oklopol> i should add some to my game
00:10:17 <Slereah> GRAVITY EXPLOSION
00:10:22 <oklopol> :D
00:10:23 <Slereah> Avoid them, or fall off!
00:10:28 <Slereah> Or possibly get compressed
00:10:30 <faxathisia> haha
00:10:32 <Slereah> IN A BLACK HOLE
00:10:32 <oklopol> LOOOL i destroyed the fucking level xD
00:12:13 -!- puzzlet_ has quit (Remote closed the connection).
00:12:14 -!- puzzlet has joined.
00:12:32 <immibis> 99 Bottles of bear on the wall, 99 bottles of bear. Take one down, drop it on the floor, then it doesn't matter how many bottles of bear you have because the bear is growling in your face and is about to eat you.
00:14:17 <oklopol> another great rendering
00:14:38 <Slereah> 99 blue balls in the air, 99 blue balls!
00:15:27 -!- sebbu has quit ("@+").
00:15:51 <oklopol> i need a high score list on this...
00:16:06 <oklopol> i've been playing for like half an hour now xD
00:19:07 <oklopol> lol i need to sleep ->
00:22:01 -!- pikhq_ has joined.
00:32:23 <immibis> slereah: to increase the number of dots, click "DOT S/M/L" S is 20000 dots max, M is 30000, and L is 40000 dots max.
00:33:05 <immibis> ...hey, i have -13000 more dots until i run out!
00:38:26 -!- pikhq has quit (Read error: 110 (Connection timed out)).
00:48:50 -!- puzzlet has quit (Remote closed the connection).
00:48:51 -!- puzzlet_ has joined.
01:24:29 -!- pikhq_ has changed nick to pikhq.
01:26:52 -!- CakeProphet has joined.
01:28:23 -!- pikhq_ has joined.
01:28:41 -!- pikhq has quit (Nick collision from services.).
01:28:46 -!- pikhq_ has changed nick to pikhq.
01:45:51 -!- oerjan has quit ("leaving").
01:53:28 -!- curtmack has joined.
02:08:10 -!- Sgeo has joined.
02:08:16 -!- _porfuse has joined.
02:15:37 <immibis> "I've got the right to get my free CD! I paid for it!"
03:05:05 -!- CakeProphet has quit ("haaaaaaaaaa").
03:19:30 -!- curtmack has quit.
03:19:52 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. Not that there is anything wrong wi).
03:23:33 -!- qqvc has joined.
03:30:28 -!- qqvc has left (?).
03:33:14 -!- puzzlet has joined.
03:33:14 -!- puzzlet_ has quit (Remote closed the connection).
03:40:25 -!- puzzlet_ has joined.
03:50:43 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
03:51:05 -!- puzzlet has joined.
04:02:36 -!- puzzlet has quit (Remote closed the connection).
04:02:40 -!- puzzlet has joined.
04:06:48 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
04:11:31 -!- puzzlet_ has joined.
04:17:55 -!- puzzlet__ has joined.
04:21:54 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
04:23:52 -!- puzzlet has joined.
04:26:21 -!- dbc has quit (Read error: 110 (Connection timed out)).
04:30:37 -!- puzzlet_ has quit (Connection timed out).
04:31:17 -!- puzzlet__ has quit (Connection reset by peer).
04:41:02 -!- puzzlet_ has joined.
04:51:15 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
05:05:03 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
05:08:00 -!- puzzlet_ has quit (Remote closed the connection).
05:08:00 -!- puzzlet has joined.
05:38:16 -!- oerjan has joined.
05:52:18 -!- istill316 has joined.
06:03:54 -!- puzzlet has quit (Remote closed the connection).
06:03:55 -!- puzzlet_ has joined.
06:32:39 -!- istill316 has quit (Read error: 104 (Connection reset by peer)).
06:52:59 -!- Jontte has joined.
06:59:14 -!- GreaseMonkey has joined.
07:26:12 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
07:27:16 -!- puzzlet has joined.
07:27:33 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
07:32:17 -!- puzzlet has joined.
07:34:08 -!- jix has joined.
07:35:56 -!- GregorR has joined.
07:37:41 -!- oerjan has quit ("leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:20:13 -!- jix has quit ("This computer has gone to sleep").
08:23:54 -!- xristos has quit (Remote closed the connection).
08:36:05 -!- GreaseMonkey has quit ("/me is working on a telnet game... :D").
09:10:04 -!- puzzlet has quit (Remote closed the connection).
09:10:04 -!- puzzlet_ has joined.
09:34:42 -!- lifthras1ir has quit (Read error: 104 (Connection reset by peer)).
09:51:58 -!- sebbu has joined.
09:52:50 -!- a0sx has joined.
09:53:43 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
09:53:47 -!- puzzlet has joined.
10:06:40 -!- lifthrasiir has joined.
10:27:17 -!- Slereah_ has joined.
10:39:11 -!- Slereah has quit (Read error: 110 (Connection timed out)).
10:39:25 -!- sebbu has quit (calvino.freenode.net irc.freenode.net).
10:39:25 -!- _porfuse has quit (calvino.freenode.net irc.freenode.net).
10:39:27 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
10:39:52 -!- sebbu has joined.
10:39:52 -!- _porfuse has joined.
10:39:52 -!- miiro has joined.
10:43:38 -!- oerjan has joined.
10:57:56 -!- dbc has joined.
11:23:05 -!- puzzlet_ has joined.
11:35:09 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
11:36:24 -!- sebbu2 has joined.
11:38:15 -!- oerjan has quit ("leaving").
11:56:11 -!- sebbu has quit (Connection timed out).
12:26:32 -!- Maxdamantus has quit (Read error: 110 (Connection timed out)).
12:57:28 -!- Maxdamantus has joined.
13:02:41 -!- Maxdamantus has quit ("# killall -9 xchat && shutdown now").
13:02:45 -!- Maxdamantus has joined.
13:04:12 -!- xristos has joined.
13:07:32 -!- jix has joined.
13:08:33 -!- jix has quit (Nick collision from services.).
13:08:41 -!- jix has joined.
13:25:50 -!- jix has quit ("CommandQ").
13:36:13 -!- jix has joined.
14:04:21 -!- Sgeo has joined.
14:31:05 -!- puzzlet_ has quit ("Lost terminal").
14:31:21 -!- puzzlet has joined.
15:41:26 -!- _porfuse has left (?).
15:48:57 -!- gavial has joined.
15:49:08 <gavial> Bonjour a tous.
15:49:29 <gavial> Quelqu'un connais Brainfuck?
16:08:26 <RodgerTheGreat> I know brainfuck, but I don't speak french- sorry.
16:09:16 <Slereah_> I know it, and speak french!
16:09:26 <Slereah_> Salutations.
16:09:32 <RodgerTheGreat> sweet. it's your time to shine, Slereah_
16:09:52 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
16:10:23 <Slereah_> I'd better put on a nice suit.
16:10:28 -!- pikhq has joined.
16:11:42 <RodgerTheGreat> wb, pikhq
16:14:21 -!- gavial has left (?).
16:14:35 <Slereah_> Well, that time is now gone!
16:16:13 <RodgerTheGreat> dayum
16:16:40 <RodgerTheGreat> perhaps you should've responded in french
16:17:34 <Slereah_> Well, I did say salutations.
16:23:13 <RodgerTheGreat> that phrase, in that spelling, is also in the english language. It does not make it clear you speak french
16:23:59 <Slereah_> Well, I assumed that he had at least some sort of knowledge of English to even come here.
16:27:36 * RodgerTheGreat shrugs
18:15:30 -!- sebbu has joined.
18:15:30 -!- sebbu3 has joined.
18:33:39 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
18:36:00 -!- sebbu has quit (Connection timed out).
18:36:01 -!- sebbu3 has changed nick to sebbu.
18:57:05 -!- sebbu2 has joined.
19:10:11 -!- puzzlet has quit (Remote closed the connection).
19:10:12 -!- puzzlet_ has joined.
19:16:15 -!- sebbu has quit (Connection timed out).
19:16:16 -!- sebbu2 has changed nick to sebbu.
19:29:56 <SimonRC> :-S
19:34:40 -!- oerjan has joined.
20:03:58 -!- oerjan has quit ("leaving").
20:27:25 <oklopol> 94627
20:27:37 <oklopol> err... 94628
20:31:14 -!- puzzlet has joined.
20:31:15 -!- puzzlet_ has quit (Remote closed the connection).
20:32:02 <Sgeo> oklopol, eh?
20:34:01 <oklopol> it's a secret
20:41:50 <Sgeo> Why are you saying it in the channel then>?
20:42:26 <bsmntbombdood> who has a line printer they want to give me?
20:43:38 <bsmntbombdood> or teletype
20:43:50 <GregorR> NO U
20:43:57 * GregorR wants a teletype too :P
20:44:06 * Sgeo wants the Universe =P
20:45:20 <bsmntbombdood> http://commons.wikimedia.org/wiki/Image:Fernscheiber_01.jpg
20:45:24 <bsmntbombdood> that would fit on my desk
20:45:38 * tejeez wants to go to sleep now
20:48:31 -!- GreaseMonkey has joined.
20:52:13 <oklopol> Sgeo: it's called sharing the secret
20:52:41 <oklopol> fernschreiber == fax?
21:00:20 -!- puzzlet_ has joined.
21:00:20 -!- puzzlet has quit (Remote closed the connection).
21:21:19 -!- RedDak has joined.
21:41:01 -!- xristos has quit (Remote closed the connection).
22:01:46 <SimonRC> I think a teletype with a wireless connection would be good
22:02:03 <bsmntbombdood> anachronistic much?
22:02:11 <SimonRC> you could carry it and some car batteries onto the train, then act like it's just a laptop
22:02:36 <SimonRC> actually...
22:02:45 <bsmntbombdood> ok, now that would be awesome
22:02:59 <bsmntbombdood> or you could use an modem and your cell phone
22:03:07 <SimonRC> All I need is to persuade Xkcd to make a cartoon about that, then 10 people around the world would actually go and do it.
22:03:54 <SimonRC> It is well known that when Xkcd shows something geeky and possible, people will do it
22:04:07 <bsmntbombdood> eg chess on the roller-coaster
22:04:45 <SimonRC> yup
22:05:03 <SimonRC> or the rms-and-katanas thing
22:05:43 <bsmntbombdood> i hope that someone will imitate the 1337 series
22:05:52 <SimonRC> already done
22:06:04 <SimonRC> there are utilities out there to fuck with people that steal your wireless
22:06:22 <SimonRC> like the upsidedownternet, or howwver it's punctuated
22:06:25 <bsmntbombdood> ...and that elaine will make babies with me
22:14:28 <SimonRC> "elaine"?
22:14:57 <bsmntbombdood> the girl
22:15:24 * SimonRC wonders how that works, as her body consists of just lines
22:15:54 <bsmntbombdood> sigh
22:15:57 <bsmntbombdood> someone will imitate it
22:19:50 -!- jix has quit ("CommandQ").
22:24:37 -!- Sgeo_ has joined.
22:26:43 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
22:26:48 -!- puzzlet has joined.
22:28:07 -!- RedDak has quit (Remote closed the connection).
22:38:11 -!- Sgeo has quit (Connection timed out).
22:40:37 -!- puzzlet has quit (Remote closed the connection).
22:40:38 -!- puzzlet has joined.
22:49:35 -!- puzzlet has quit (Remote closed the connection).
22:49:39 -!- puzzlet has joined.
23:01:27 -!- puzzlet_ has joined.
23:01:27 -!- puzzlet has quit (Remote closed the connection).
23:22:33 -!- Sgeo_ has quit (Read error: 110 (Connection timed out)).
23:24:43 -!- puzzlet_ has quit (Remote closed the connection).
23:26:37 -!- Sgeo has joined.
23:32:57 -!- puzzlet has joined.
2007-12-19
00:13:13 -!- puzzlet_ has joined.
00:13:13 -!- puzzlet has quit (Remote closed the connection).
00:23:56 -!- Sgeo has quit (Connection timed out).
00:31:10 -!- johnk has quit ("Leaving").
00:40:36 -!- xristos has joined.
00:52:34 -!- oerjan has joined.
01:13:09 -!- puzzlet has joined.
01:25:09 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
01:29:20 -!- a0sx has quit ("IceChat - Keeping PC's cool since 2000").
01:52:54 -!- puzzlet_ has joined.
01:54:14 -!- oerjan has quit (calvino.freenode.net irc.freenode.net).
02:03:09 -!- puzzlet has quit (Connection timed out).
02:22:36 -!- sebbu2 has joined.
02:30:48 -!- bsmntbombdood has quit (Client Quit).
02:34:04 -!- bsmntbombdood has joined.
02:35:44 -!- immibis has joined.
02:41:22 -!- sebbu has quit (Connection timed out).
02:47:25 -!- puzzlet has joined.
02:47:26 -!- puzzlet_ has quit (Remote closed the connection).
03:18:08 -!- puzzlet_ has joined.
03:18:09 -!- puzzlet has quit (Remote closed the connection).
03:33:48 -!- bsmntbombdood has quit (Read error: 113 (No route to host)).
03:53:00 -!- puzzlet has joined.
03:53:00 -!- puzzlet_ has quit (Remote closed the connection).
03:55:27 -!- sgtd has joined.
03:55:44 <sgtd> warez da botz @!?
03:56:50 -!- sgtd has left (?).
03:58:24 -!- puzzlet has quit (Remote closed the connection).
04:04:59 -!- oerjan has joined.
04:06:41 -!- puzzlet has joined.
04:11:50 -!- ELIZA842 has joined.
04:11:59 <ELIZA842> one is here.
04:12:19 <oerjan> ELIZA842: have you learned to recognize your nick yet? ;)
04:12:44 <immibis> no it has not.
04:12:50 <immibis> i can't be bothered
04:12:53 -!- EgoBotsClone has joined.
04:12:58 <oerjan> some of us _do_ depend on tab completion, you know :(
04:13:15 <immibis> you don't have to type it in uppercase though
04:13:31 <immibis> !raw nick _egobot_fillin
04:13:31 -!- EgoBotsClone has changed nick to _egobot_fillin.
04:13:49 <oerjan> 2 key presses vs. 7 is still a bit
04:16:22 -!- calamari has joined.
04:16:55 <immibis> elizaraw: nick ELIZa
04:16:56 -!- ELIZA842 has changed nick to ELIZa.
04:16:58 <immibis> elizaraw: nick ELIZA
04:16:59 -!- ELIZa has changed nick to ELIZA.
04:17:02 <immibis> any better?
04:17:37 <oerjan> ELIZA: My what a nice name you have.
04:17:37 <ELIZA> I am not interested in names.
04:17:41 -!- puzzlet has quit (Remote closed the connection).
04:17:42 <oerjan> :(
04:17:45 -!- puzzlet has joined.
04:18:09 <oerjan> ELIZA: you are not very polite.
04:18:10 <ELIZA> What makes you think I am not very polite ?
04:23:30 -!- puzzlet has quit (Remote closed the connection).
04:27:37 <faxathisia> ELIZA: Get a life
04:27:37 <ELIZA> Does that have anything to do with the fact that your head is about to explode ?
04:27:44 <faxathisia> WHat!
04:28:54 <oerjan> ELIZA: you are not very good at distinguishing us, are you?
04:28:54 <ELIZA> Does it please you to believe I am not very good at distinguishing us ?
04:31:44 -!- puzzlet has joined.
04:47:36 -!- puzzlet_ has joined.
04:47:38 -!- puzzlet has quit (Remote closed the connection).
04:56:17 -!- puzzlet has joined.
05:06:31 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
05:08:16 -!- puzzlet has quit (Remote closed the connection).
05:09:53 -!- puzzlet has joined.
05:13:23 <immibis> oerjan and faxathisia: I didn't bother programming it to distinguish you.
05:13:34 <immibis> or anyone else.
05:13:59 <immibis> it's just an open source java applet, downloaded and connected to irc.
05:27:44 <immibis> heh someone just searched "Zelda phantom hourglass phantom phantom phantom phantom phantom" and was looking for images.....now if only I knew why they were in Google Web Search (NOT image search)?
05:29:02 <Slereah_> That's a whole lot of phantoms.
05:29:12 <faxathisia> why the repitition..
05:29:13 <Slereah_> But I can understand why no google image.
05:29:35 <Slereah_> Some research on google image don't produce any, while google search can sometimes.
05:34:02 <pikhq> oerjan: Any ideas for terrible proposals that I could use? ;)
05:36:16 <oerjan> reinstate slavery!
05:36:28 -!- Slereah has joined.
05:36:36 <pikhq> Details?
05:36:37 <oerjan> assuming Agora doesn't currently have it, of course
05:36:47 <oerjan> one never knows :)
05:37:00 * pikhq just needs about 100 proposals which will never be voted for.
05:37:13 <pikhq> Actually, I just need about 100 proposals which. . . Do nothing.
05:37:23 <pikhq> I don't even need Terrible Proposals.
05:38:10 <immibis> pikhq: it never says people can't change the rules by editing the wiki page.
05:38:16 <oerjan> There shall be the High Priestess of Wong. At the start of every month, the High Priestess of Wong shall turn 55 degrees clockwise.
05:38:37 * pikhq is giving WALRUS the patent title of WALRUS.
05:39:04 <oerjan> there is a WALRUS? apart from the historical ones...
05:39:25 <pikhq> WALRUS is a partnership.
05:39:27 * immibis cracks up laughing about the high priestess of wong
05:40:29 <oerjan> immibis: i thought the rules used to be quite clear on only changing when they themselves required the change. don't know about nowadays, though.
05:40:44 <immibis> i'm not a member of b nomic.
05:40:48 <pikhq> Its full name is "While Apples Laugh, Robert Unties Shoes".
05:40:52 <pikhq> immibis: This is Agora.
05:40:56 <immibis> oh?
05:40:59 <immibis> what's agora?
05:41:02 <pikhq> Agora Nomic.
05:41:06 <pikhq> Agora > B.
05:41:18 <immibis> and it is where?
05:41:21 <pikhq> (especially since B Nomic recently entered its *4th* era. . .)
05:41:27 <oerjan> agoranomic.org
05:41:28 * immibis finds it...
05:42:14 <immibis> ..."e wilt"?
05:42:29 <pikhq> "e" is a gender-neutral pronoun.
05:42:45 <oerjan> e, em, eir
05:45:55 <pikhq> oerjan, my terrible proposals are *similar* to the WALRUS, in that they encourage people to vote on them. . .
05:46:23 <pikhq> However, by the current rules of Agora, people are awarded for *making a vote* on a proposal, regardless of it being adopted or not.
05:46:52 <pikhq> So, the proposal itself need not award voters: it need only be a valid proposal.
05:47:10 <pikhq> s/WALRUS/Walrus\ Scam/
05:49:37 <oerjan> There shall be the Hippopotamus. Every day except Thursdays, the Hippopotamus shall be Wallowing.
05:53:45 <pikhq> I'm also currently trying to make the location of Elephants relevant to the game. . .
05:55:30 <immibis> someone add the rule "There will be two layers of ketchup on the floor. Every time a player does a game action, or produces a notebook from under his chair, or every ten minutes on a Wopday or Tuesday, the top layer of ketchup will spawn an elephant and fling it at the person who performed the game action, or to every admin if it's Tuesday or Wopday."
05:56:35 <oerjan> There shall be Coffee and Brownie, to be Consumed at a Coffee Shop -->
05:56:47 -!- oerjan has quit ("Yummy!").
06:03:29 -!- Slereah- has joined.
06:03:46 -!- Slereah has quit (Nick collision from services.).
06:03:51 -!- Slereah- has changed nick to Slereah.
06:04:27 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
06:21:17 <immibis> A Fish A Fish is a kind of thing.
06:21:18 <immibis> oops
06:25:33 <oklopol> you and your crazy bots!
06:25:53 <oklopol> damn, all this talk about agora almost makes me wanna know what the heck it is :\
06:26:04 <oklopol> i hope it's not as awesome as it sounds
06:26:43 <faxathisia> What is agora? :|
06:26:50 <pikhq> http://agoranomic.org/
06:26:57 <pikhq> It is about as awesome as it sounds.
06:28:39 -!- calamari has quit ("Leaving").
06:34:39 <oklopol> 4800 proposals?
06:34:42 <oklopol> whut
06:34:48 <oklopol> haven't you made many yourself?
06:35:54 <oklopol> oh, right, there are many nomics
06:38:09 <immibis> A Fish State is a kind of value. The Fish States are Swimming, Caught, Drying Out, Being Shipped, In a Shop, Being Bought, Being Cooked, and Being Eaten. A Fish is a kind of thing. A Fish has a Fish State. A Fish is usually Swimming. This is the every day rule: Remove every Fish that is Being Eaten from the game; Every Fish that is Being Cooked becomes Being Eaten; Every Fish that is In a Shop becomes Being Cooke
06:38:26 * immibis realizes that's probably too long for irc, and posts it to a pastebin
06:39:39 <immibis> http://pastebin.ca/823212
06:42:14 <oklopol> am i to understand nomic is played fully in english?
06:42:42 <oklopol> i think i'd need it to have a formal language to wanna get involved :o
06:43:27 <immibis> try inform 7
06:43:40 <immibis> or even c, c++ or java
06:43:48 <oklopol> always wanted a fully extendable legal system enforced by the computer
06:43:59 <oklopol> inform 7
06:45:37 <immibis> legal system...i still say to try inform 7.
06:45:42 <immibis> and write your own.
06:46:50 <oklopol> "design system for interactive fiction"
06:47:00 <oklopol> can you demystify what inform is for me?
06:49:59 <oklopol> sounds interesting, but i have no idea what that has to do with a formal legal system
07:07:40 <immibis> the language itself is similar to english.
07:08:05 <immibis> and it would look very silly if the rules were modified to look like inform 7 code (but not necessarily BE inform 7 code)
07:08:43 -!- Slereah has quit (Read error: 110 (Connection timed out)).
07:12:40 <oklopol> why use something that looks like english?
07:12:49 <oklopol> force the players to learn a new language, i say!
07:30:24 <immibis> my previous example was an example of the sort of thing i mean.
07:30:30 <immibis> http://pastebin.ca/823212
07:30:36 <immibis> it's a rather stupid rule.
07:30:41 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. If you think nobody cares, try miss).
07:30:47 -!- _egobot_fillin has quit (Read error: 104 (Connection reset by peer)).
07:30:49 -!- ELIZA has quit (Read error: 104 (Connection reset by peer)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:44:06 -!- Slereah- has joined.
08:44:40 -!- GreaseMonkey has quit ("Who keeps reincarnating sliced bread?!").
09:04:36 -!- sebbu has joined.
09:05:41 -!- dbc has quit (calvino.freenode.net irc.freenode.net).
09:08:17 -!- dbc has joined.
09:09:44 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
09:11:46 -!- sebbu2 has quit (Connection timed out).
09:25:05 -!- dbc has quit (calvino.freenode.net irc.freenode.net).
09:25:44 -!- dbc has joined.
10:05:51 -!- Slereah- has joined.
11:22:02 <oklopol> pikhq: i'm too lazy to check this myself, and don't remember, what's pebble written in? i recall it was tcl, but might be just the fact it itself is basically tcl.
11:23:02 <oklopol> was thinking i could make something to produce bf code to evaluate an arbitrary math expression given a set of free cells
11:23:30 <oklopol> but i don't really feel like making my own macro system, so... could perhaps do it in tcl and it could be added to pebble
11:23:37 <oklopol> although, you might not want my fingerprints there
11:23:44 <oklopol> and my code isn't pretty :)
11:23:54 <oklopol> so... everyone forget everything i said, k?
12:14:02 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
12:14:12 -!- Slereah- has joined.
12:16:19 -!- sebbu2 has joined.
12:19:19 -!- sebbu has quit (Connection timed out).
12:19:19 -!- sebbu2 has changed nick to sebbu.
12:31:01 -!- sebbu2 has joined.
12:43:30 -!- sebbu has quit (Connection reset by peer).
12:44:50 -!- oerjan has joined.
12:47:26 <oerjan> <oklopol> am i to understand nomic is played fully in english? <oklopol> i think i'd need it to have a formal language to wanna get involved :o
12:47:54 <oklopol> whhhell, i mean, something more mathy!
12:47:55 <oerjan> we did experiment with both perlnomic and schemenomic
12:48:05 <oklopol> heh
12:48:06 <oklopol> didn't work?
12:48:56 <oklopol> i'm not sure how the game is played, since i'm sooooo busy right now, so i'm not sure what the rules do exactly
12:48:58 <oerjan> as i recall, our proposals tended occasionally to have bugs that required a manual backup
12:49:04 <oklopol> ah
12:49:43 <oerjan> perlnomic crashed completely i think, but schemenomic i think just petered out as we lost interest
12:50:35 -!- AnMaster has quit (Read error: 104 (Connection reset by peer)).
12:50:45 <oklopol> that i prolly would've tried
12:50:57 <oerjan> incidentally i once created quite a bit confusion in Agora by performing an action in Norwegian :)
12:51:52 <oerjan> the confusion was heightened (as planned) by the fact that one of the hardest words to guess was "ikke" (not)
12:52:09 <oerjan> so in fact it was a non-action, but no one could tell :)
12:53:10 <oklopol> haha :D
12:53:15 * oklopol would've cracked that
12:54:20 <oerjan> had to have a bit of luck... there were some who spoke german somewhat, but that was no help with that particular word
12:58:28 <oerjan> then there was Nomic World, the MUD. it was played in English but the rules often required reprogramming the game
13:00:40 <oklopol> awesome, when did these things happen?
13:00:48 <oklopol> or is nomic world still alive?
13:01:08 <oerjan> Nomic World died in 1993
13:01:33 <oerjan> shortly afterward, Agora was created from the ashes
13:05:11 <dbc> If there was a directive creating ashes it should have died with the other directives, no?
13:05:58 <oerjan> from the ashes = by the refugees, really, who gathered on the nomic mailing list
13:06:16 <dbc> Fair enough.
13:06:58 <oerjan> although one thing _was_ saved from Nomic World - the Fantasy Rules Committee. (by me, as i recall, as i was the Committee Judge at the time)
13:07:27 <oerjan> the Committee Rule specified that the judge could change the committee forum.
13:09:15 <oerjan> at least that is how i recall it.
13:09:15 -!- AnMaster has joined.
14:42:58 <oklopol> http://www.vjn.fi/pb/p265265466.txt
14:43:23 <oklopol> i'll try something a bit more complicated
14:43:49 <oklopol> multiplication isn't done yet, and i need to refactor a bit so you can add functions easily, but it's quite nice already
14:44:14 <oklopol> or not, but it definately exists.
14:44:17 <oklopol> definitely
14:45:06 <Slereah-> There's a computation class in 2008.
14:45:15 <Slereah-> Hope I'll have enough free time to sneak in.
14:49:46 <oklopol> http://www.vjn.fi/pb/p363642116.txt it may need some adjustment xD
14:50:01 <oklopol> oh, i show too little memory
14:50:37 <oklopol> http://www.vjn.fi/pb/p554421432.txt
14:50:39 <oklopol> better
14:50:53 <Slereah-> What does it do!
14:51:06 <oklopol> stack code -> brainfuck code
14:51:13 <oklopol> harder than one might think
14:51:36 <oklopol> at least harder than i thought
14:51:50 <Slereah-> Stack code?
14:52:00 <oklopol> that's just the output of my program
14:52:03 <oklopol> err yeah
14:52:16 <oklopol> [n] means relative memory cell n
14:52:22 <oklopol> n:th cell from current cell
14:52:40 <oklopol> + takes two memory cells, and computes their sum
14:52:55 <oklopol> of course, you have to make sure everything is copied if used multiple times
14:53:09 <oklopol> and you have to keep track of which cells are free to use
14:53:48 <oklopol> the code is huge exactly because it makes of copy of everything if necessary
14:53:55 <oklopol> not that you can do much better in brainfuc
14:53:56 <oklopol> k
14:54:20 <oklopol> you could do it in less code though
15:03:31 -!- bsmntbombdood has joined.
15:06:48 <oklopol> someone fluent in brainfuck throw me multiplication, faster than if i do it prolly :P
15:06:54 <oklopol> or not, but better
15:09:01 <Slereah-> Isn't the algorithm on the wiki?
15:09:22 <oklopol> oh, might be, i just usually google once and give up if it's not the first result :)
15:09:31 <Slereah-> http://esoteric.voxelperfect.net/wiki/Brainfuck_algorithms#x_.3D_x_.2A_y
15:09:33 <oklopol> hmm, actually...
15:10:05 <oklopol> there might be a problem, since i'm not sure i've taken to account most will want to use up the operands in the algo
15:39:30 -!- RedDak has joined.
15:43:22 -!- oerjan has quit ("leaving").
16:24:36 <Slereah-> Is the Wolfram book any good?
16:25:05 <RodgerTheGreat> NKS?
16:25:15 <Slereah-> Yes.
16:26:06 <RodgerTheGreat> From what I hear, most people find it highly controversial. People tend to think it's pure genius or complete drivel
16:26:22 <RodgerTheGreat> there is a fairly detailed wiki article
16:26:57 <RodgerTheGreat> http://en.wikipedia.org/wiki/A_New_Kind_of_Science
16:27:35 <Slereah-> The criticisms section seems hefty.
16:27:47 <RodgerTheGreat> one big criticism is a notable lack of peer-review in most of wolfram's work
16:28:11 <RodgerTheGreat> a "new kind of science" isn't necessarily rigorous science, it would appear
16:28:22 <dbc> Someone was complaining that all the good stuff in it is borrowed from other people, and in most cases previously published.
16:29:10 <Slereah-> I guess the purchase will have to wait.
16:29:45 <RodgerTheGreat> there is of course the infamous "rule 110" cellular automaton proof
16:30:00 <RodgerTheGreat> http://en.wikipedia.org/wiki/Rule_110_cellular_automaton
16:30:15 <dbc> Right, which was by an employee of his, and he took legal action to get the person not to publish it? Since it was done on Wolfram's time?
16:30:38 <dbc> (iirc)
16:31:01 <RodgerTheGreat> something like that
16:32:22 -!- jix has joined.
16:39:21 -!- porfus271 has joined.
16:39:29 <porfus271> please say "Hello World"
16:42:08 <RodgerTheGreat> I'm not at all in the mood for IRP today.
16:42:27 <Slereah-> Plus, why always "Hello world"?
16:42:34 <porfus271> its in the wiki
16:42:38 <porfus271> and its my first program... tradition
16:42:42 <RodgerTheGreat> yeah, I would say "Hello, World!"
16:42:56 <RodgerTheGreat> that's how I generally punctuate it, anyway.
16:43:16 <porfus271> i guess my proggy is a little buggy
16:44:13 <Slereah-> Does "Hello world" have a particular origin
16:44:13 <Slereah-> ?
16:44:43 <Slereah-> Let's ask wikipedia.
16:44:53 <RodgerTheGreat> I know it's present in BASIC programming books from the mid 70's
16:45:40 <Slereah-> "The first known instance of the usage of the words "hello" and "world" together in computer literature occurred earlier, in Kernighan's 1972 Tutorial Introduction to the Language B"
16:45:55 <RodgerTheGreat> ah, bell labs
16:47:23 <RodgerTheGreat> "Functional programming languages, like Lisp, ML, and Haskell, tend to substitute a factorial program for Hello World, as the former emphasizes recursive techniques..." <- wtf?
16:47:47 <RodgerTheGreat> as an example of how never to program anything else in the language, or what?
16:48:49 <RodgerTheGreat> although I suppose the "spirit" of LISP is more in line with using recursion simply because you can, rather than in cases where it's a good idea
16:49:32 <RodgerTheGreat> at least it isn't a recursive fibonacci sequence program, I guess
16:51:36 -!- jix has quit ("CommandQ").
16:59:53 -!- jix has joined.
17:09:30 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
17:11:08 -!- RedDak has quit (Remote closed the connection).
17:12:27 -!- pikhq has joined.
17:14:38 <porfus271> ha
17:14:43 <porfus271> how about this
17:14:49 <porfus271> PLEASE say "/quit"
17:14:58 <porfus271> without the quotes
17:15:05 <porfus271> oh man i bet this is SO original
17:15:12 <Slereah-> /quit
17:15:13 <porfus271> no one has thought of this before
17:15:22 -!- porfus271 has quit.
17:15:29 <Slereah-> Lulz
17:29:44 -!- Sgeo has joined.
17:30:06 -!- pikhq has quit (Read error: 110 (Connection timed out)).
17:30:22 -!- pikhq has joined.
18:13:45 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
18:14:28 -!- oklopol has joined.
18:41:34 -!- RedDak has joined.
19:21:51 -!- RedDak has quit (Remote closed the connection).
19:46:27 <lament> RodgerTheGreat: in haskell, they show you how to do factorial recursively, so that people too stupid to understand how that works stop reading.
19:46:39 <lament> Then, they show you fac n = product [1..n]
19:47:03 <Slereah-> Heh.
19:48:36 <oklopol> i never understood what's so wrong with recursion
19:48:56 <oklopol> with everything else, it's always about clarity, but when it comes to recursion, NEVER, that's slow!
19:49:12 <oklopol> at least that's my impression
19:49:17 <bsmntbombdood> people are stupid
19:49:24 <lament> oklopol: not in haskell
19:49:30 <oklopol> ?
19:49:34 <oklopol> what not in haskell
19:49:44 <lament> in haskell: it's always about clarity. Recursion is often not as clear as other ways. Therefore, it's rarely used.
19:50:11 <oklopol> true
19:50:34 <lament> at least when it's tail recursion as opposed to "true" recursion where you have to recurse more than once in the same call
19:50:46 <lament> which you typically can't get rid of at all
19:50:46 <oklopol> but, if using an imperative language, the recursive solution is usually much simpler than the imperative one...
19:51:22 <oklopol> yeah, tail recursion is usually clearer in an iterative fashion
19:51:26 <oklopol> that's a given
19:51:38 <oklopol> but, i was just speaking generally
19:51:57 <oklopol> i do know haskell is the language of gods
19:52:14 <Slereah-> Is the universe programmed in Haskell?
19:52:23 <oklopol> yes
19:52:42 <oklopol> for the most part, i think they used scheme too
19:57:02 -!- puzzlet_ has joined.
19:57:04 -!- puzzlet has quit (Remote closed the connection).
20:12:32 <RodgerTheGreat> oklopol: I wasn
20:12:50 <RodgerTheGreat> I wasn't saying recursion is bad, but there are many cases where it's a horrible idea
20:12:52 <faxathisia> the last 5 pages of the universe is alll ))))))))))))))))))))))))))))
20:13:06 <Slereah-> Heh.
20:13:09 <RodgerTheGreat> like GOTO, it should be used carefully, sparingly, and where it's the most effective solution
20:13:17 <RodgerTheGreat> use it wrong and you can fuck up royally
20:14:00 <faxathisia> This guy teaches java at my uni, he email the whole saying "Please <i>please</i> <b>please</b> do not use break labels (java) !" and gave no reasons why!
20:14:19 <faxathisia> the whole class*
20:14:29 <RodgerTheGreat> lol
20:15:09 <RodgerTheGreat> well, that's because break labels in Java are generally a horrible, horrible hacky way to do things. It's a little like ternary operators in Java- possible, but heavily frowned upon
20:15:35 <oklopol> RodgerTheGreat: indeed, it's sometimes a really bad idea, but i doubt most c programmers know *why* and *when* it's a bad idea
20:15:43 <oklopol> it's just EVIL RECURSION KILL THE HERETIC
20:15:46 <RodgerTheGreat> exactly
20:16:01 <RodgerTheGreat> but most C programmers tend to be very closed-minded about languages in general
20:16:16 <oklopol> well, true
20:17:10 <faxathisia> well C doesn't specifiy TCO
20:17:19 <RodgerTheGreat> "If it doesn't compile, it sucks. If it doesn't have pointers, it sucks. If it does any runtime checking at all it's horribly 'inefficient' and sucks." etc, etc
20:17:19 <faxathisia> so you are basically risking it everytime you recursse
20:17:58 <Slereah-> I guess my language sucks big time :O
20:18:11 <RodgerTheGreat> which is why C programmers naturally hate Java. Ironically, java programmers tend to hate C (or more often C++) for exactly the opposite reasons
20:18:22 <Slereah-> Heh.
20:18:40 <Slereah-> It would be more ironic if it was the same!
20:18:50 <RodgerTheGreat> I like languages with optional runtime checks that can be compiled in
20:19:19 <faxathisia> I like Prolog.. Way too much!
20:20:36 <faxathisia> Slereah- What language ?
20:20:47 <Slereah-> Just some Turing machine.
20:22:21 <RodgerTheGreat> I also love postscript
20:24:16 <RodgerTheGreat> I highly recommend that anyone who's never played with postscript give it a spin sometime. For a language that was never intended for human use, it will surprise you.
20:24:35 <Slereah-> Was it intended for robots?
20:25:50 <faxathisia> ohh
20:25:55 <faxathisia> I am really enjoying SQL
20:25:58 <RodgerTheGreat> computers
20:26:03 <RodgerTheGreat> and typesetting software
20:26:06 <RodgerTheGreat> and laser printers
20:26:23 <faxathisia> It's a great language i think..
20:26:41 <RodgerTheGreat> it's like discovering that you can crack open a word document and find a beautiful scripting language inside
20:26:59 <Slereah-> Heh.
20:27:24 <Slereah-> Is it nice for such a language, or actually nice?
20:27:30 <RodgerTheGreat> actually nie
20:27:32 <RodgerTheGreat> *nice
20:28:01 <RodgerTheGreat> I can honestly say it has the prettiest syntax I've ever seen in a non-esolang
20:28:15 <RodgerTheGreat> and I accidentally designed a language very much like it in my free time
20:28:28 <Slereah-> Thusly? http://www.99-bottles-of-beer.net/language-postscript-1135.html
20:29:57 <RodgerTheGreat> yeah
20:30:25 <Slereah-> It's okay I guess.
20:30:29 <RodgerTheGreat> although that isn't much like how I tab in the language
20:30:46 <RodgerTheGreat> that isn't a very good example of how the language is pretty, though
20:31:10 <RodgerTheGreat> look at some of these: http://www.pvv.ntnu.no/~andersr/fractal/PostScript.html
20:33:37 <Slereah-> I can't seem to appreciate it.
20:33:52 <oklopol> ;i
20:34:15 <oklopol> try stripping the comments
20:34:16 * faxathisia thinks.. you often have ot write code to really feel it ?
20:34:33 <oklopol> faxathisia: i think so too
20:36:06 <RodgerTheGreat> yeah, I'd agree with faxathisia
20:36:44 <RodgerTheGreat> it's difficult to say what in particular I like about PS aside from the fact that it's stack-based, but it just feels very clean and expressive
20:37:12 <faxathisia> I wonder why did I never get into any stack languages
20:37:26 <faxathisia> I've coded small amounts but never got immersed
20:37:36 <bsmntbombdood> dc dc dc dc !
20:37:45 <faxathisia> oh yea hI wrote factorial I think thats all :p
20:37:53 <faxathisia> dc is nice though
20:39:33 <RodgerTheGreat> learning to use an RPN calculator and hearing about FORTH made me fall in love with stack-based languages
20:40:12 <RodgerTheGreat> I then designed and implemented a language that, as it turned out, is eerily similar to postscript by designing things how I assumed they worked in FORTH
20:40:36 <RodgerTheGreat> learning real FORTH was a little disappointing to me after that. :/
20:44:30 -!- RedDak has joined.
21:35:10 <Slereah-> Hm.
21:38:10 -!- GreaseMonkey has joined.
21:38:48 <Slereah-> Hello
21:40:11 -!- jix__ has joined.
21:40:12 -!- jix has quit (Nick collision from services.).
21:47:44 -!- Slereah_ has joined.
21:47:59 -!- Slereah_ has changed nick to Slereah.
21:55:45 <Slereah> Was I under the delusion that you couldn't change a string variable on Python for two weeks when it's actually only for letters of this string?
21:56:10 <bsmntbombdood> huh?
21:56:42 <Slereah> Yes, it is hard to express.
21:57:59 <Slereah> When I first read the tutorial, I saw this :
21:58:00 <Slereah> "Unlike a C string, Python strings cannot be changed. Assigning to an indexed position in the string results in an error"
21:58:18 <Slereah> I though you couldn't assign a new string to a string variable.
21:58:30 <Slereah> Which was kind of a nuisance to program
21:59:03 <faxathisia> why are strings in python immutable?
21:59:15 <Slereah> No idea.
21:59:28 <faxathisia> if this language has mutable objects..
22:00:43 <Slereah> I suppose that you could do string = string[0:i-1] + "char" + string[i:len(string)] instead
22:02:20 <Slereah> It works.
22:09:50 <oklopol> it's not hard to express
22:10:01 <oklopol> in python, strings are immutable, but variables aren't, ever.
22:10:17 <oklopol> you can always change the contents of a var
22:10:21 <oklopol> but you can't change a string
22:10:36 <Slereah> Strange concept.
22:10:51 <oklopol> maybe, but it's not unique.
22:11:55 <Slereah> What is the purpose of this feature?
22:12:38 <oklopol> if you change a string, it changes everywhere that string exists
22:12:45 <oklopol> so you could not use one as a hashtable entry
22:13:10 <Slereah> Bye.
22:13:15 <oklopol> + prevents some bugs
22:13:15 <Slereah> Oops, wrong window.
22:13:17 <oklopol> :P
22:13:25 <Slereah> Do not fear, I am not going away
22:13:30 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
22:13:41 <Slereah> Well, my ghost is
22:13:44 <Slereah> But not me.
22:14:16 <oklopol> i see
22:14:29 <oklopol> i almost burst into tears
22:14:43 <bsmntbombdood> not strange
22:15:07 <oklopol> bsmntbombdood: do you consider anything strange?
22:15:14 <bsmntbombdood> dunno
22:15:36 <oklopol> even if i told you i wanna gruzel you gnuzels? ;)
22:15:43 <bsmntbombdood> um
22:15:47 <bsmntbombdood> what does that mean?
22:16:26 <oklopol> kinda like frumbling you quilzers
22:16:29 <oklopol> only with my penis.
22:16:44 <Slereah> You're going to do his taxes with your penis?
22:16:46 <bsmntbombdood> sounds good
22:20:02 <Slereah> Well, time to try to clean up my code from that delusion.
22:21:58 <oklopol> Slereah: there's nothing weird with immutability, the object just doesn't have any method the change it, all it's methods just return data about it
22:22:24 <oklopol> but, you *can* concatenate strings for example, it's just the result is returned as a new string.
22:28:32 <Slereah> I see.
22:29:10 <SimonRC> this means that strings are really just like numbers etc
22:45:19 <oklopol> http://www.vjn.fi/pb/p611362161.txt
22:45:27 <oklopol> started playing with this again :P
22:45:32 <oklopol> moduloez!
22:46:19 <oklopol> it now "only" lacks constants and... err, what's it called
22:46:41 <oklopol> oh, doesn't have a name, heh, i mean, it can't handle unused cells with other than zero value
22:47:00 <oklopol> would be a 5-minute adjustment prolly, and would simplify multiplication and division a bit
22:57:02 <SimonRC> oklopol: what is that?
22:57:49 <oklopol> made a simple stack-language -> brainfuck converter, nothing fancy, like a real tc stack language, was just thinking it'd be nice to be able to convert simple expressions to bf
22:58:48 <oklopol> that works for any expression with cells given by [cell index] and operators +, -, *, / and \ for swap, although dunno if that's necessary really
22:59:20 <SimonRC> cool
22:59:33 <SimonRC> is there a trick to swap, or is it just dumb?
23:00:02 <SimonRC> I think the a-=b-=a-=b trick might be good there
23:00:09 <SimonRC> or whatever it is
23:00:11 <oklopol> swap could, in theory, just swap virtually, can use different locations for the following commands... but i made it actually swap, in case you wanna use it in a loop or something
23:00:27 <oklopol> uhhh everything is stolen from our wiki :P
23:00:31 <oklopol> i mean, the algos
23:00:49 <oklopol> i program just two languages at a time if possible...
23:01:04 <oklopol> (python + stack language)
23:02:02 <oklopol> i actually wrote an almost error free stack-bf converter right away, but had two 20-minute sessions trying to locate errors in it, when it was actually correct, i just forgot what the stack language was supposed to do xD
23:02:12 <SimonRC> well that is a bit of a crap algo...
23:02:22 <oklopol> hmm
23:02:30 <oklopol> i'll *look* at it
23:02:53 * SimonRC tries to figure out the better one
23:03:24 <oklopol> i'd also like a destructive multiplication / division, since this doesn't currently support non-destructive ones xD
23:08:08 -!- jix__ has changed nick to tussi.
23:08:24 -!- tussi has changed nick to jix.
23:10:10 <SimonRC> hmm, that will be more complicated than I thought
23:10:17 <SimonRC> and you can't avoid a temp variable
23:10:44 -!- jix has quit ("CommandQ").
23:10:44 <SimonRC> I think one can do something clever with differentes, though
23:10:59 <oklopol> les diferantes?
23:12:06 <SimonRC> *differences
23:12:08 <SimonRC> http://en.wikipedia.org/wiki/XOR_swap_algorithm#Variations
23:13:57 -!- puzzlet_ has quit (Remote closed the connection).
23:13:57 -!- puzzlet has joined.
23:21:08 -!- puzzlet_ has joined.
23:24:59 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
23:26:38 -!- puzzlet_ has joined.
23:31:30 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
23:33:13 -!- bsmntbombdood has quit (Connection timed out).
23:33:48 -!- RedDak has quit (Remote closed the connection).
23:34:05 -!- bsmntbombdood has joined.
23:35:46 -!- Slereah- has joined.
23:44:14 -!- sebbu2 has quit ("@+").
23:52:40 -!- Jontte has quit ("Konversation terminated!").
23:58:15 -!- Slereah has quit (Read error: 110 (Connection timed out)).
2007-12-20
00:11:49 -!- oerjan has joined.
00:14:17 <Slereah-> What's the other instructions on a multi-tape Turing machine?
00:14:23 <Slereah-> Is it just changing tape?
00:15:53 <oklopol> going to sleep, most likely ->
00:16:20 <lament> 10. GOTO SLEEP
00:16:42 <oerjan> 5. LET SLEEP=5
00:17:56 <lament> 6. LET SLEEP=3
00:20:40 <Slereah-> Hope it is, 'cause it works now.
00:22:04 <pikhq> oklopol: Indeed, PEBBLE is written in Tcl.
00:37:02 -!- oerjan has quit ("leaving").
00:37:24 -!- oerjan has joined.
02:19:49 -!- xristos has quit (Remote closed the connection).
02:20:38 -!- xristos has joined.
02:35:00 -!- puzzlet_ has quit (Remote closed the connection).
02:35:00 -!- puzzlet has joined.
03:07:15 -!- pikhq_ has joined.
03:07:44 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
03:15:14 -!- xristos has quit (".").
03:49:06 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
03:49:10 -!- puzzlet has joined.
04:07:21 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
04:08:25 -!- puzzlet has joined.
04:20:17 -!- Sgeo has quit (Connection timed out).
04:30:02 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
04:30:30 -!- puzzlet has joined.
04:31:37 -!- pikhq_ has changed nick to pikhq.
05:39:54 -!- puzzlet_ has joined.
05:39:54 -!- puzzlet has quit (Remote closed the connection).
05:49:44 -!- puzzlet_ has quit (Remote closed the connection).
05:49:45 -!- puzzlet has joined.
05:51:35 -!- immibis has joined.
05:53:33 -!- oerjan has quit ("Coffee").
05:56:46 -!- puzzlet_ has joined.
06:03:08 -!- puzzlet_ has quit (Remote closed the connection).
06:03:10 -!- puzzlet__ has joined.
06:07:09 -!- puzzlet has quit (Connection timed out).
06:09:07 -!- puzzlet has joined.
06:10:04 -!- RodgerTheGreat has quit.
06:17:33 <immibis> i see Freenode truncates messages to 511 bytes, including the IRC command part (:Whatever!n=Whatever@Wherever.com PRIVMSG #Channel :)
06:17:35 -!- puzzlet has quit (Remote closed the connection).
06:17:42 <immibis> IRSSI has a buffer overflow at 512 bytes.
06:17:47 <immibis> close :O
06:18:02 <faxathisia> 511 bytes? :|
06:18:15 <faxathisia> Does that exclude \r\n or something?
06:18:28 <immibis> quite possible 512 bytes, including NUL terminator
06:18:40 -!- puzzlet has joined.
06:19:06 <immibis> i sent a string of w's to myself, added the IRC command that isn't displayed on the screen and counted them (not myself, i got the computer to do it)
06:19:30 <immibis> the buffer irssi uses is 512 bytes long.
06:19:43 <immibis> i wonder if other networks use the same amount.
06:19:59 <faxathisia> I think that 512 is specified in the IRC RFC[s]
06:20:57 <immibis> ok
06:21:42 <immibis> undernet limits it to 511.
06:22:10 -!- immibis1 has joined.
06:22:19 -!- immibis1 has changed nick to immibis2.
06:22:26 -!- immibis has quit (Nick collision from services.).
06:22:28 -!- immibis2 has changed nick to immibis.
06:23:02 <immibis> that is the first time i have been navigated away from a page by moving the mouse NEAR an ad, WITHOUT clicking.
06:23:38 -!- puzzlet__ has quit (Connection timed out).
06:24:25 -!- puzzlet has quit (Remote closed the connection).
06:24:29 -!- puzzlet has joined.
06:27:20 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
06:29:30 -!- puzzlet has joined.
06:34:38 <immibis> http://www.beunited.org/bebook/The%20Kernel%20Kit/System.html
06:34:47 <immibis> look at is_computer_on and is_computer_on_fire
06:35:33 -!- puzzlet_ has joined.
06:35:39 <immibis> int is_computer_on() {return 1;}
06:44:40 -!- immibis has quit (Read error: 104 (Connection reset by peer)).
06:47:33 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
06:51:37 -!- puzzlet has joined.
06:56:29 -!- puzzlet_ has quit (Connection timed out).
06:59:14 -!- puzzlet_ has joined.
07:04:30 -!- AnMaster has quit (Read error: 104 (Connection reset by peer)).
07:04:42 -!- puzzlet__ has joined.
07:09:34 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
07:09:49 -!- puzzlet__ has quit (Success).
07:09:53 -!- puzzlet has joined.
07:16:42 -!- puzzlet_ has quit (Connection timed out).
07:19:37 -!- AnMaster has joined.
07:47:59 -!- puzzlet_ has joined.
07:53:17 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
07:53:44 -!- puzzlet_ has joined.
07:59:58 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:45 -!- puzzlet has joined.
08:11:00 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
08:33:14 -!- GreaseMonkey has quit ("Who keeps reincarnating sliced bread?!").
09:36:15 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
09:37:19 -!- puzzlet has joined.
11:02:22 -!- puzzlet has quit (Remote closed the connection).
11:02:24 -!- puzzlet_ has joined.
11:35:20 -!- ololobot has joined.
11:35:29 <oklopol> >>> hf [0] [0] + ||| 2:0 3:0 4:0
11:35:30 <ololobot> [>>+>+<<<-]>>>[-<+>]< ||| 0:0 3:0 4:0
11:36:00 <oklopol> addition of cells 0 and 0 with free cells 2, 3 and 4 with initial values 0, 0 and 0 respectively!
11:36:49 <oklopol> the memory pointer will always be at 0 first, and end where the result is
11:37:11 <oklopol> if you want multiple values on the tape, you need to get your hands on the id_stack, which i'm not printing now
11:37:21 <oklopol> since no one is prolly that interested
11:46:54 -!- jix has joined.
12:02:05 -!- jix has quit ("CommandQ").
12:25:03 -!- Jontte has joined.
12:27:35 <oklopol> >>> bf ;[>>+>+<<<-]>>>[-<+>]<: <<< 8
12:27:36 <ololobot> 16
12:27:49 <oklopol> could you please behold a bit? :\
12:27:58 <oklopol> it was almost a THREE-HOUR job :o
12:28:53 <oklopol> >>> hf [0] [1] [0] [1] / * - ||| 2:0 3:0 4:0 5:0 6:0 7:0
12:28:54 <ololobot> [>>+>+<<<-]>[>>>+>+<<<<-]>>[>>>+<<<-]>>>[<[>>+<<<<<<<+>>>>>-]<<<<<[>>>>>+<<<<<-]>>>>>>>[<<<<<<<+>>>>>>-[<<<<<<[-]>+>>>>>-]<<<<<[>>>>>+<<<<<-]<[>>>>>>>-[<<<<->>>>[-]]+<<<<<<<-]>>>>>>>-]<<<<+>>>]<[-]<[>>>+<<<-]>>>[<<<<[>+>>+<<<-]>>>[<<<+>>>-]>-]<<<<[-]>[-<<->>]<< ||| 0:0 1:0 3:0 4:0 5:0 6:0 7:0
12:29:30 <oklopol> >>> bf ;>;<[>>+>+<<<-]>[>>>+>+<<<<-]>>[>>>+<<<-]>>>[<[>>+<<<<<<<+>>>>>-]<<<<<[>>>>>+<<<<<-]>>>>>>>[<<<<<<<+>>>>>>-[<<<<<<[-]>+>>>>>-]<<<<<[>>>>>+<<<<<-]<[>>>>>>>-[<<<<->>>>[-]]+<<<<<<<-]>>>>>>>-]<<<<+>>>]<[-]<[>>>+<<<-]>>>[<<<<[>+>>+<<<-]>>>[<<<+>>>-]>-]<<<<[-]>[-<<->>]<<: <<< 27 5
12:30:04 <oklopol> i smell failure
12:44:18 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
12:46:37 -!- ololobot has quit (Read error: 104 (Connection reset by peer)).
12:52:52 -!- oklopol has joined.
12:53:19 <oklopol> heh, switching to ubuntu from xp has reduced my average uptime by a factor of about 30 :D
13:11:57 -!- jix has joined.
13:20:31 -!- oerjan has joined.
13:28:59 -!- sebbu has joined.
13:29:15 -!- dbc has quit (Remote closed the connection).
13:48:05 -!- puzzlet_ has quit (Remote closed the connection).
13:48:12 -!- puzzlet has joined.
14:27:08 -!- puzzlet has quit (Remote closed the connection).
14:27:08 -!- puzzlet_ has joined.
14:37:18 -!- jix has quit ("CommandQ").
14:38:07 -!- jix has joined.
14:45:02 -!- faxathisia has quit ("Leaving").
16:00:43 -!- pikhq_ has joined.
16:00:46 -!- pikhq has quit (Read error: 110 (Connection timed out)).
16:29:09 -!- Maxdamantus has quit (Read error: 104 (Connection reset by peer)).
16:48:41 -!- ais523 has joined.
16:51:32 <ais523> what, no bots in the channel except clog and cmeme?
16:53:56 <Slereah-> Well, I could pretend to be one if you want.
16:54:48 <oerjan> Does it please you to pretend to be one if you want?
16:56:50 <ais523> Why do you say that?
16:56:57 * ais523 has also loaded up a copy of ELIZZ
16:57:02 <ais523> s/ZZ/ZA/
16:57:36 <oerjan> Does this have anything to do with your head being about to explode?
16:58:02 <ais523> you got ELIZA to say "I don't understand"
16:58:17 <Slereah-> Well, I guess the two could be related, since my head isn't abut to explode!
16:58:25 <Slereah-> If it was, we would know for sure.
16:59:10 <ais523> I had to program ELIZA-alikes in POP-11 this term, as an intro exercise before moving on to make an expert system
16:59:17 <oerjan> Why do you think if it was?
16:59:38 <ais523> What do you think?
16:59:51 <ais523> POP-11 is a lousy language; it's trying to be Prolog but fails on most levels
17:00:00 <oerjan> We are discussing you not me.
17:00:06 <ais523> like being an imperative language with subroutine libraries for forward chaining
17:00:24 <ais523> Maybe your plans have something to do with this.
17:01:14 <oerjan> Tell me about your third cousin-in-law twice removed.
17:02:29 <ais523> Is it because of your life that you are going through all this?
17:02:56 <oerjan> Life. Don't talk to me about life.
17:03:59 <ais523> Are you afraid of that?
17:04:05 <oerjan> Here I am, brain the size of a planet.
17:04:23 <ais523> Are you frightened by that?
17:04:29 <oerjan> Why do you want to know?
17:04:46 <ais523> I'll ask the questions, if you don't mind!
17:05:39 <ais523> By the way, I think that "Are you afraid of that?" is one of the better responses to Marvin's famous quote that I've seen, even if it was generated by picking from a list at random
17:06:41 <oerjan> Does this have anything to do with your being an imperative language with subroutine libraries for forward chaining
17:08:05 <ais523> ELIZA says "How do you reconcile the people you hang around with?", so I'll say "No."
17:08:41 <oerjan> Does she often say that?
17:09:18 <ais523> I don't know, I haven't really used her enough
17:09:24 <ais523> I suppose it depends on the implementation
17:10:21 <oerjan> Is it because of your plans have something to do with this you suppose this?
17:10:45 <ais523> I could ask the same thing myself.
17:11:29 <oerjan> Tell me more.
17:11:49 <ais523> What makes you believe tell you more?
17:13:07 <oerjan> I'll ask the questions, if you don't mind!
17:14:24 <ais523> Perhaps this has something to do with any hobbies you have?
17:15:21 <oerjan> Definitely.
17:15:38 <ais523> Can you elaborate on that?
17:15:46 <oerjan> Yes.
17:16:01 <ais523> I see... Well, are you sure that this is so?
17:16:10 <oerjan> Quite.
17:16:22 <ais523> I would appreciate it if you would continue.
17:17:08 <oerjan> Is it because of the implementation you would appreciate it if I would continue?
17:17:45 * ais523 doesn't like ELIZA's answer to that as being too boring and repetitive, and therefore refuses to repeat it
17:18:03 * ais523 generates another answer:
17:18:05 <ais523> I have asked myself that question many times.
17:18:29 <oerjan> Can you elaborate on that?
17:18:42 <ais523> Go on, don't be afraid.
17:19:18 <oerjan> Are you a string?
17:19:32 <ais523> Please, try to answer that question yourself.
17:19:45 <oerjan> No, I'm a frayed knot.
17:20:01 <ais523> Do you really think you are a frayed knot?
17:20:23 <oerjan> We are discussing you not me.
17:20:43 <ais523> (censored)
17:21:11 <oerjan> Stop that.
17:21:30 <ais523> My secretary will send you a bill.
17:22:33 <oerjan> You will hear from my lawyer.
17:23:39 -!- ais523 has left (?).
17:23:46 -!- ais523 has joined.
17:24:33 * oerjan wonders if there is an eliza lookalike contest...
17:25:38 <ais523> there is a very funny transcript somewhere (I read it in a book, I'm not sure if it's on the Internet) of when Douglas Hofstadter was asked to test a new AI program to see how human-like it was
17:25:42 * oerjan is failed by google.
17:26:00 <ais523> it was actually a bunch of students pretending to be a computer pretending to be a human
17:26:12 <oerjan> i think i've seen it
17:27:09 * ais523 is busy writing INTERCAL documentation
17:27:15 <ais523> it's been my major project over the last few days
17:28:01 <ais523> although I was pretty shocked when I tried apt-cache search intercal halfway through a sentence and got 2 results
17:28:24 <ais523> one was CLC-INTERCAL (Debian package clc-intercal), and the other was C-INTERCAL (Debian package intercal)
17:28:42 <ais523> and more shocked this morning to find out that they were maintained and had bug trackers which were sometimes even used
17:30:24 -!- Jontte has quit (Remote closed the connection).
17:30:31 -!- Jontte has joined.
17:31:12 -!- Jontte has quit (Remote closed the connection).
17:31:19 -!- Jontte has joined.
17:33:33 -!- RodgerTheGreat has joined.
17:33:36 -!- ololobot has joined.
17:42:48 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
17:42:48 -!- ololobot has quit (Read error: 104 (Connection reset by peer)).
17:44:46 -!- oerjan has quit ("leaving").
17:45:15 -!- oklopol has joined.
17:45:45 -!- ais523 has quit ("I don't like the default quit message, but can't think of anything better right now").
18:15:37 <oklopol> xD
18:16:05 <oklopol> okay, this was a bit ridiculous, an hour of debugging because i used two nested loops with the same iterator xD
18:16:46 -!- pikhq_ has quit (Read error: 110 (Connection timed out)).
18:18:48 -!- ololobot_ has joined.
18:19:19 <oklopol> >>> hf [0] [1] [0] [1] / * - ||| 2:0 3:0 4:0 5:0 6:0
18:19:19 <ololobot_> [>>+>+<<<-]>[>>>+>+<<<<-]>>[>>>+<<<-]>>>[<[<<<<<+>+>>>>-]<<<<[>>>>+<<<<-]<[>+>>>>>-[<<<<<[-]>>>>>+-][+-]<<<<<[<-[>>>-<<<[-]]+>-]<-]>>>+>>>]<[-]<[<<<<+>>>>-]<<<<[>>>[>+>>+<<<-]>>>[<<<+>>>-]<<<<<<-]>>>[-]>[-<<->>]<< ||| 0:0 1:0 3:0 4:0 5:0 6:0
18:19:40 <oklopol> >>> bf ;>;<[>>+>+<<<-]>[>>>+>+<<<<-]>>[>>>+<<<-]>>>[<[<<<<<+>+>>>>-]<<<<[>>>>+<<<<-]<[>+>>>>>-[<<<<<[-]>>>>>+-][+-]<<<<<[<-[>>>-<<<[-]]+>-]<-]>>>+>>>]<[-]<[<<<<+>>>>-]<<<<[>>>[>+>>+<<<-]>>>[<<<+>>>-]<<<<<<-]>>>[-]>[-<<->>]<<* <<< 27 5
18:19:51 <oklopol> :'(
18:20:12 <oklopol> what the fuck :)
18:20:18 <oklopol> >>> bf ;* <<< 10
18:25:43 <oklopol> oh... it needs 6 free cells, or it produces an infinite loop xD
18:25:57 <oklopol> perhaps i should make it complain in such a case..
18:31:38 -!- ololobot__ has joined.
18:31:45 <oklopol> i guess i'll try one more time :)
18:31:53 <oklopol> >>> hf [0] [1] [0] [1] / * - ||| 2:0 3:0 4:0 5:0 6:0 7:0
18:31:53 <ololobot__> [>>+>+<<<-]>[>>>+>+<<<<-]>>[>>>+<<<-]>>>[<[>>+<<<<<<<+>>>>>-]<<<<<[>>>>>+<<<<<-]>>>>>>>[<<<<<<<+>>>>>>-[<<<<<<[-]>+>>>>>-]<<<<<[>>>>>+<<<<<-]<[>>>>>>>-[<<<<->>>>[-]]+<<<<<<<-]>>>>>>>-]<<<<+>>>]<[-]<[>>>+<<<-]>>>[<<<<[>+>>+<<<-]>>>[<<<+>>>-]>-]<<<<[-]>[-<<->>]<< ||| 0:0 1:0 3:0 4:0 5:0 6:0 7:0
18:32:15 <oklopol> >>> bf ;>;<[>>+>+<<<-]>[>>>+>+<<<<-]>>[>>>+<<<-]>>>[<[>>+<<<<<<<+>>>>>-]<<<<<[>>>>>+<<<<<-]>>>>>>>[<<<<<<<+>>>>>>-[<<<<<<[-]>+>>>>>-]<<<<<[>>>>>+<<<<<-]<[>>>>>>>-[<<<<->>>>[-]]+<<<<<<<-]>>>>>>>-]<<<<+>>>]<[-]<[>>>+<<<-]>>>[<<<<[>+>>+<<<-]>>>[<<<+>>>-]>-]<<<<[-]>[-<<->>]<<* <<< 27 5
18:32:15 <ololobot__> 0 0 :2: 0 0 0 0 0
18:32:19 <oklopol> >>> bf ;>;<[>>+>+<<<-]>[>>>+>+<<<<-]>>[>>>+<<<-]>>>[<[>>+<<<<<<<+>>>>>-]<<<<<[>>>>>+<<<<<-]>>>>>>>[<<<<<<<+>>>>>>-[<<<<<<[-]>+>>>>>-]<<<<<[>>>>>+<<<<<-]<[>>>>>>>-[<<<<->>>>[-]]+<<<<<<<-]>>>>>>>-]<<<<+>>>]<[-]<[>>>+<<<-]>>>[<<<<[>+>>+<<<-]>>>[<<<+>>>-]>-]<<<<[-]>[-<<->>]<<* <<< 27 3
18:32:19 <ololobot__> 0 0 :0: 0 0 0 0 0
18:32:24 <oklopol> >>> bf ;>;<[>>+>+<<<-]>[>>>+>+<<<<-]>>[>>>+<<<-]>>>[<[>>+<<<<<<<+>>>>>-]<<<<<[>>>>>+<<<<<-]>>>>>>>[<<<<<<<+>>>>>>-[<<<<<<[-]>+>>>>>-]<<<<<[>>>>>+<<<<<-]<[>>>>>>>-[<<<<->>>>[-]]+<<<<<<<-]>>>>>>>-]<<<<+>>>]<[-]<[>>>+<<<-]>>>[<<<<[>+>>+<<<-]>>>[<<<+>>>-]>-]<<<<[-]>[-<<->>]<<* <<< 27 7
18:32:24 <ololobot__> 0 0 :6: 0 0 0 0 0
18:32:30 <oklopol> moduloz
18:33:14 <oklopol> i actually have no idea why it doesn't work given just 5 free cells :)
18:33:31 <oklopol> >>> hf [0] [1] * ||| 2:0 3:0
18:33:31 <ololobot__> [>>>+<<<-]>>>[<<[<+>>+<-]>[<+>-]>-]<<[-]< ||| 1:0 2:0 3:0
18:33:34 <oklopol> >>> hf [0] [1] * ||| 2:3 3:0
18:33:35 <ololobot__> >>---<<[>>>+<<<-]>>>[<<[<+>>+<-]>[<+>-]>-]<<[-]< ||| 1:0 2:3 3:0
18:33:48 <oklopol> >>> hf [0] [1] * ||| 2:* 3:*
18:33:48 <ololobot__> >>[-]>[-]<<<[>>>+<<<-]>>>[<<[<+>>+<-]>[<+>-]>-]<<[-]< ||| 1:0 2:None 3:None
18:34:01 <oklopol> you can specify any initial value, or * for unknown
18:34:06 <oklopol> oh
18:34:11 <oklopol> Nones are printed
18:34:15 <oklopol> gotta change that
18:35:18 <oklopol> >>> hf [0] [1] * ||| 2:* 3:*
18:35:18 <ololobot__> >>[-]>[-]<<<[>>>+<<<-]>>>[<<[<+>>+<-]>[<+>-]>-]<<[-]< ||| 1:0 2:* 3:*
18:36:16 <oklopol> >>> hf [0] -
18:36:21 <oklopol> :D
18:36:28 <oklopol> >>> hf [0] [0] -
18:36:35 <oklopol> oooookie
18:36:40 <oklopol> i need to add threading...
18:37:31 <oklopol> oh, right...
18:37:37 <oklopol> >>> hf [0] [0] - |||
18:37:44 <oklopol> >>> hf [0] [0] - ||| 1:0
18:37:45 <ololobot__> [>++<-]>[--] ||| 0:0
18:37:50 <oklopol> :D
18:37:59 <oklopol> oh, right
18:37:59 -!- pikhq has joined.
18:38:03 <oklopol> >>> hf [0] [0] - ||| 1:0 2:0
18:38:04 <ololobot__> [>+>+<<-]>>[-<->]< ||| 0:0 2:0
18:38:11 <oklopol> it needs two cells for the copying
18:39:55 -!- RedDak has joined.
19:20:27 -!- sebbu2 has joined.
19:31:16 -!- sebbu has quit (Connection timed out).
19:31:17 -!- sebbu2 has changed nick to sebbu.
20:57:46 -!- Maxdamantus has joined.
21:21:19 -!- Jontte has quit (Read error: 110 (Connection timed out)).
21:23:05 -!- ehird` has joined.
21:40:31 -!- jix has quit (Nick collision from services.).
21:40:41 -!- jix has joined.
21:41:33 <oklopol> you know you should do less unlambda, when you find yourself writing a story about an S-combinator.
21:41:46 <oklopol> the story is a bit tragic :'(
21:42:12 <Slereah-> Does the bird get combined at the end?
21:43:17 <oklopol> hehe, K combinators are the sex-crazed ones
21:43:34 <Slereah-> ((Kx)S)
21:43:34 <oklopol> S-combinators' urges are mainly to make others populate
21:43:41 <Slereah-> And so died S.
21:43:53 <oklopol> :D
21:44:00 <oklopol> yep, K's are feared
21:44:43 * Slereah- wants to do sum sort of combinatory program
21:44:50 <oklopol> the one doing the combination isn't killed in the process in my story, since that would ruin the story
21:44:55 <Slereah-> But with all them birds from "To mock a mockingbird"
21:45:09 <oklopol> but K's indeed have the power to kill
21:45:32 <Slereah-> Don't use too many I's. Make the story repetitive.
21:45:34 <oklopol> V's are sooo self-centered
21:46:14 <oklopol> and then there's the C's, the poets with the ability to seize the day
21:46:16 <oklopol> or something
21:46:17 <oklopol> i dunno xD
21:46:23 <oklopol> need some pizza ->
21:47:06 <Slereah-> Good. Right now, that arrow points to your name. But not anymore once I enter this text!
21:47:17 <oklopol> :o
21:49:03 <oklopol> the combinators are physical entities inside a computer, actually, i needed some way to have some kind of a world for them to live in
21:49:23 <oklopol> he goes to school by traversing a linked list xD
21:49:42 <oklopol> god this story is stupid :P
21:49:44 <Slereah-> I once had an ide like that.
21:49:56 <Slereah-> But it was for mathematical concepts.
21:50:12 <Slereah-> Combinators were used in the mythological creation of the world.
21:50:22 <Slereah-> Well, locally at least.
21:50:29 <oklopol> an idea?
21:50:34 <Slereah-> It was a giant Turing machine elsewhere.
21:50:37 <oklopol> or an ide
21:50:43 <Slereah-> An idea, yes.
21:51:18 <Slereah-> I had stupid concepts for this, like the deontal logic statements were religious nuts and such.
21:51:34 <oklopol> i've been thinking, have you seen those shows where they show, like, blood cells as people, walking down the veins
21:51:41 <Slereah-> Yes.
21:51:46 <Slereah-> "Il tait une fois la vie"
21:51:50 <oklopol> the same for mathematical concepts would be so awesome :D
21:51:51 <oklopol> ah
21:51:59 <oklopol> exactly
21:52:03 <Slereah-> There was some cartoon like that.
21:52:11 <Slereah-> But well, it was at a kid level.
21:52:17 <oklopol> well, sounds familiar, i just remember there was something Il etait'ish in the beginning
21:52:23 <oklopol> well, kid level exactly :D
21:52:37 <Slereah-> http://animeguides.free.fr/series/multoches/multoches.jpg
21:52:41 <Slereah-> http://animeguides.free.fr/series/multoches/multoches2.jpg
21:52:58 <Slereah-> I don't remember much of it.
21:53:20 <Slereah-> I think I remember the last episode, where they try to go t INFINITY
21:53:26 <Slereah-> But there isn't enough numbers!
21:53:41 <oklopol> oh, a cartoon like what i said :o
21:53:47 <oklopol> oh my god, i gotta see that :D
21:53:57 <Slereah-> good luck. Can't find it online.
21:54:08 <oklopol> oh, kid level, you mean taught trivial stuff
21:54:17 <oklopol> i was thinking more computer sciencey
21:54:53 <Slereah-> Well, plenty of cartoons where people are in a computer.
21:54:59 <Slereah-> But it's not very educational usually!
21:55:09 <oklopol> heh, indeed
21:55:43 <Slereah-> "To mock a mockingbird" has some sort of story, with combinators as birds.
21:55:46 <oklopol> oh, right, the pizza ->
21:55:50 <oklopol> oh
21:56:06 <oklopol> where have these great things been hiding :\
21:56:25 <Slereah-> Well, the story is pretty much a pretext to teach about combinators.
21:56:40 <Slereah-> (This is why I always refer to combinators as bird)
21:56:59 <Slereah-> http://www.angelfire.com/tx4/cus/combinator/birds.html
22:02:29 <bsmntbombdood> i am going to only use $2 bills from now on
22:03:39 <oklopol> that's all you need baby ;)
22:04:53 * ehird` continues writing his Python R5RS interpreter
22:05:23 <bsmntbombdood> r5rs is obsolete!
22:06:00 <oklopol> my mum is obsolete!
22:06:03 <oklopol> err
22:06:05 <oklopol> oh, wait
22:06:11 <bsmntbombdood> i still haven't read r6rs
22:06:18 <bsmntbombdood> 3 times too long >_<
22:16:27 -!- sebbu2 has joined.
22:25:57 <ehird`> bsmntbombdood: r6rs sucks
22:26:11 <ehird`> it's closer to common lisp than scheme
22:36:29 -!- sebbu has quit (Connection timed out).
22:36:30 -!- sebbu2 has changed nick to sebbu.
22:40:20 -!- jix has quit ("CommandQ").
22:58:35 -!- puzzlet_ has quit (Remote closed the connection).
22:58:42 -!- puzzlet has joined.
22:59:26 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
2007-12-21
00:22:39 -!- sebbu2 has joined.
00:30:30 -!- puzzlet has quit (Remote closed the connection).
00:30:31 -!- puzzlet has joined.
00:39:20 -!- puzzlet has quit (Remote closed the connection).
00:39:23 -!- puzzlet has joined.
00:42:46 -!- sebbu has quit (Connection timed out).
00:42:46 -!- sebbu2 has changed nick to sebbu.
00:48:50 -!- puzzlet has quit (Remote closed the connection).
00:48:51 -!- puzzlet_ has joined.
00:53:26 -!- ehird` has quit (Remote closed the connection).
01:00:08 -!- sebbu2 has joined.
01:02:09 -!- sebbu3 has joined.
01:05:34 -!- sebbu2 has quit (Nick collision from services.).
01:05:35 -!- sebbu has quit (Nick collision from services.).
01:33:09 -!- puzzlet has joined.
01:43:20 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
02:20:58 -!- sebbu3 has quit ("@+").
02:55:45 -!- puzzlet has quit (Remote closed the connection).
02:55:45 -!- puzzlet_ has joined.
03:14:38 -!- puzzlet has joined.
03:24:59 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
04:29:27 -!- RodgerTheGreat has quit.
04:36:12 * pikhq goes to celebrate his status as an Agoran Spy
05:09:49 -!- puzzlet has quit (Remote closed the connection).
05:09:50 -!- puzzlet has joined.
05:32:55 -!- puzzlet has quit (Remote closed the connection).
05:32:55 -!- puzzlet_ has joined.
05:55:39 -!- puzzlet_ has quit (Remote closed the connection).
05:55:40 -!- puzzlet has joined.
07:17:58 -!- dbc has joined.
07:23:05 -!- pinwee has joined.
07:30:30 <oklopol> Slereah-: why are bunting and becard the same combinator :o
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:28:53 <oklopol> wtf
08:29:05 <oklopol> why doesn't freenode ping off my bot :<
08:29:10 <oklopol> guess i should register it...
08:29:41 -!- puzzlet_ has joined.
08:30:54 <oklopol> right, can't register it because ololobot is online too :D
08:39:51 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
09:01:51 -!- Jontte has joined.
09:20:03 -!- pinwee has quit (Read error: 110 (Connection timed out)).
09:30:32 <oklopol> fun looking at random #esoteric logs and finding myself talking crap every 15 sentences :D
11:02:09 -!- Jontte has quit ("Konversation terminated!").
11:30:54 -!- faxathisia has joined.
11:33:26 -!- puzzlet_ has quit (Remote closed the connection).
11:35:03 -!- puzzlet has joined.
11:39:55 -!- AnMaster has quit ("mouse broken, restarting to fix related issue").
12:10:50 -!- AnMaster has joined.
12:28:51 <oklopol> >>> F={};F![/N]=(/N*8);f"a"
12:28:51 <oklopol> "aaaaaaa"
12:28:55 <oklopol> dynamical scoping owns :)
12:29:21 <oklopol> whoops
12:29:41 <oklopol> "aaaaaaaa"
12:29:55 <oklopol> i'm a lousy interpreter
12:31:47 <Slereah-> PLEASE SAY HELLO WORLD, LOUSY INTERPRETER
12:37:12 <oklopol> hélo word
12:49:09 <Slereah-> Damn you!
12:49:45 -!- sebbu has joined.
12:49:48 <Slereah-> I won't even ask you to take that bottle of beer of the wall, you'll probably get drunk before the end of it!
13:41:55 -!- jix has joined.
14:08:03 -!- mtve has quit ("Terminated with extreme prejudice - dircproxy 1.0.5").
14:08:26 -!- mtve has joined.
14:10:31 -!- mtve has quit (Client Quit).
14:10:54 -!- mtve has joined.
14:16:04 <SimonRC> oklopol: what lang was that?
14:16:16 <SimonRC> pikhq: ??
14:21:23 <oklopol> what?
14:21:32 <oklopol> oh, oklotalk, of course :)
14:21:38 <SimonRC> where?
14:22:37 <oklopol> where?
14:45:32 <SimonRC> where is the definition online
14:46:31 <Slereah-> http://en.wiktionary.org/wiki/online
14:47:00 <oklopol> SimonRC: none published yet
14:47:08 <oklopol> since it still constantly evolves :o
14:47:29 <oklopol> i'm aiming for perl6, with some features and syntactic sugar added!
14:48:05 <oklopol> (well, the language is completely different, the reference was purely to the amount of... stuff)
14:49:50 -!- Maxdamantus has quit (Remote closed the connection).
14:49:51 <SimonRC> ok
15:02:08 <faxathisia> error message oriented programming
15:03:18 <SimonRC> hm?
15:03:41 <faxathisia> 10 IGNORE INPUT
15:03:41 <faxathisia> 20 PRINT "Your program is wrong"
15:03:41 <faxathisia> 30 GOTO 10
15:03:57 * faxathisia is struggling with a type system..
15:04:03 <SimonRC> which?
15:04:07 <faxathisia> Agda2
15:04:20 <faxathisia> It's very nice but I don't know what I'm doing :p
15:04:37 <SimonRC> one of yours
15:05:44 <SimonRC> ?
15:05:53 <faxathisia> oh, no not mine
15:06:59 <SimonRC> http://www.cs.chalmers.se/~ulfn/talks/agda2-060510.pdf ??
15:07:09 <faxathisia> yeah
15:11:07 -!- RedDak has joined.
15:12:17 -!- puzzlet has quit (Remote closed the connection).
15:12:19 -!- puzzlet has joined.
15:13:12 <SimonRC> faxathisia: could I help?
15:13:27 <SimonRC> I have s little understanding of this kind of thing
15:13:35 -!- jix has quit (Nick collision from services.).
15:13:45 -!- jix has joined.
15:13:49 <faxathisia> I'm trying to write a function, plus_s : (m : Nat) -> (n : Nat) -> suc (m + n) == (m + suc n)
15:13:56 <SimonRC> it is not really much beyond Generalised Algebraic Data Types in Haskell
15:14:11 <SimonRC> faxathisia: ok...
15:14:22 * faxathisia reads about Generalised Algebraic Data Types
15:15:53 <SimonRC> well I think you need some lambdas in there...
15:15:54 <pikhq> SimonRC: ??
15:16:14 <SimonRC> faxathisia: you seem to have mixed up a type sig and a definition
15:16:34 <faxathisia> :D
15:16:37 <faxathisia> That's what I want to do
15:16:51 <faxathisia> the types depend on the parametrs
15:17:57 <SimonRC> umm, are you sure?
15:18:14 <SimonRC> pikhq: what was the last thing you said before I said that to you?
15:18:17 <SimonRC> or rather, when?
15:18:17 <faxathisia> not 100% :s
15:18:25 <SimonRC> ah, I see now
15:19:06 <SimonRC> faxathisia: I would think you need one type sig, one case for m = 0, and one case for m > 0
15:19:52 <SimonRC> plus_s : Nat -> Nat -> Nat
15:20:09 <pikhq> SimonRC: My logs don't go *back* that far.
15:20:16 <pikhq> At least a few days ago. ;)
15:20:36 <SimonRC> pikhq: it was about being an "Agoran Spy"
15:20:39 <SimonRC> what is that?
15:20:41 <pikhq> *Oh*.
15:20:48 <pikhq> It's a patent title in Agora.
15:20:53 <pikhq> (newly defined for my sake)
15:22:04 <SimonRC> define: "Agora"
15:22:22 <pikhq> Agora is a Nomic; a game whose rule-changing procedures are rule-defined.
15:22:42 <SimonRC> is it possible to back a nomic into a dead-end?
15:22:48 <pikhq> Very much so.
15:23:02 <SimonRC> is it possible to make it undefined using temporar loops
15:23:05 <SimonRC> *+l
15:23:13 <pikhq> That's one possible means.
15:23:26 <pikhq> Some Nomic rulesets are better at handling that than others.
15:23:39 <SimonRC> actually, every Noic ruleset is equally bad at it
15:23:51 <SimonRC> because they are nomics
15:24:01 <faxathisia> SimonRC: This stuff is cool http://www.iis.sinica.edu.tw/~scm/2007/agda-exercise-proving-that-mergesort-returns-ordered-list/
15:24:10 <pikhq> B Nomic, for example, can only survive that because they have a rule allowing for the temporary suspension of the rest of the rules to reset the game.
15:24:35 <SimonRC> which is fine unless you remove that rule
15:24:49 <pikhq> Agora survives that sort of thing because such events are usually done wrong via a technicality. During which time the bug will be fixed.
15:24:52 <pikhq> True, true.
15:25:00 <pikhq> I believe that one requires unanimous support.
15:25:07 <pikhq> to amend.
15:26:09 <SimonRC> there needs to be something between a nomic and an orgdinary game maybe
15:26:27 <pikhq> But that loses the fun of a Nomic.
15:26:29 <SimonRC> where you can make most rule changes, but not any that screw up the game
15:26:32 <SimonRC> hmm
15:26:47 <pikhq> Nomic in Agora is *kinda* like that. . .
15:26:53 <pikhq> In theory, you can make any rule change.
15:27:01 <pikhq> In practice, you won't be *allowed* to.
15:27:11 <SimonRC> not too bad then
15:27:12 <pikhq> Agorans care quite a bit about their precious Nomic.
15:27:51 <pikhq> (not that I can blame them. . . It's really a *hard* ruleset to abuse, for one thing. . . Representing 14 years of rule-changing)
15:32:53 <SimonRC> ah, waitamo...
15:33:09 <SimonRC> I just realised I failed to say what I was thinking just then
15:33:20 <SimonRC> I was lookking at nomics from a programming PoV
15:33:43 <SimonRC> there must always be some immutable base to it all, I think
15:34:03 <SimonRC> (That is one of my objections to "changing laws of physics" theories, too.)
15:34:30 <Slereah-> It is actually moar of a "changing constants"
15:35:12 <SimonRC> well that's ok
15:36:29 <Slereah-> Is there a particular process to change lambda expressions int combinators?
15:36:31 <SimonRC> but if laws of physics "change", then time can't be all the mutable or one of them would have fucked it up by now
15:36:39 <SimonRC> Slereah-: er, what?
15:36:46 <SimonRC> what is an "int combinator"?
15:37:02 <Slereah-> By just applying the transformation pretty much randomly, I end up on some variables that can't bbe changed.
15:37:05 <Slereah-> Into, SimonRC.
15:37:13 <SimonRC> ah
15:37:17 <SimonRC> hm..
15:37:26 <SimonRC> ISTR that unlambda homepage has a method
15:37:41 <Slereah-> I suppose there's a particular order for it, but...
15:37:47 <SimonRC> it causes an exponential blowup in program size in the general case
15:38:13 <Slereah-> Doesn't worry me too much.
15:38:19 <SimonRC> it is a simple recursive method
15:39:32 <Slereah-> I suppose it's under "Abstraction elimination"
15:40:13 <SimonRC> yes
15:40:25 <SimonRC> and "Making abstraction elimination more efficient"
15:40:47 <SimonRC> if you are using Haskell, it should be easy to implement
15:41:06 <faxathisia> abstraction elimination is eta reduction I think
15:41:17 <SimonRC> dunno
15:57:45 <oklopol> ololobot_ does the conversion with pl
15:57:56 <oklopol> i mean, the one described on the unlambda page
16:12:12 <faxathisia> SimonRC did you see the link ?
16:16:30 <SimonRC> faxathisia: which?
16:16:35 <SimonRC> ah
16:19:41 <SimonRC> looks like epigram to me
16:20:11 <faxathisia> Yeah I think it's the same kind
16:20:16 <faxathisia> I couldn't get epigram to run though >:|
16:32:40 <faxathisia> Have you done anything with Epigram?
17:01:54 -!- Sgeo has joined.
17:21:17 <SimonRC> faxathisia: no
17:50:30 <Slereah-> Holy fuck. Abstraction elimination is some ugly business.
17:50:41 <Slereah-> I'm flooded with parenthesis.
17:51:23 <faxathisia> ooo lets see? :D
17:51:24 <oklopol> ABSTRACTION TERMINATED.
17:51:41 <oklopol> http://projecteuler.net/ i'm hooked :P
17:54:55 <Slereah-> So far, it looks like this : http://membres.lycos.fr/bewulf/Russell/AE.jpg
17:55:05 <faxathisia> brackets!!
17:55:09 <Slereah-> I'm not sure all the parenthesis are in the right place.
17:55:23 <faxathisia> You're not doing this manually.. are you?
17:55:30 <oklopol> 8|
17:55:33 <Slereah-> ... yes :(
17:55:40 <oklopol> you're a god
17:55:43 <faxathisia> wouldn't it be easier to write a program?
17:55:56 <oklopol> please stop bullying the deity
17:56:03 <Slereah-> Well, I usually prefer to do such things by hand first.
17:56:08 <Slereah-> To get the feel of it.
17:56:27 <faxathisia> maybe this helps http://www.angelfire.com/tx4/cus/combinator/birds.html !
17:56:30 <Slereah-> Remember the addition program? I got the idea after doing this : http://membres.lycos.fr/bewulf/Russell/5+12.txt
17:56:40 <Slereah-> Already know it.
17:57:04 <Slereah-> And I programmed my Turing machine because I had a hard time doing the examples in Turing original article.
17:57:59 <Slereah-> (Starting with the second one. Being a Turing machine is a thankless job!)
18:07:55 <SimonRC> Slereah-: you know, I think you are supposed to start from the outside lambda inwards...
18:12:15 <Slereah-> Isn't that what I did?
18:12:28 <Slereah-> Bloody hell.
18:13:15 <Slereah-> I decomposed the thingy into T[^ T[^ T[^ ...]]] and started by the innermost lambda in it.
18:13:38 <SimonRC> yeah, the op[posit of what I said
18:13:50 <SimonRC> the first thing to eliminate would be the \m
18:14:05 <SimonRC> um, I think
18:14:27 <Slereah-> http://membres.lycos.fr/bewulf/Russell/AE2.jpg
18:14:55 <Slereah-> I don't suppose anyone has the combinator version of multiplication somewhere.
18:15:01 <Slereah-> To check.
18:15:50 <Slereah-> I get ((S((S((S(KS))((S(KS))((S((S(KS))((S(KK))(KS))))((S((S(KS))((S(KK))(KK))))((S(KK))I))))))(KI))((S(KK))(KI)))
18:17:34 <SimonRC> Slereah-: you mean multiplication of church numerals?
18:17:41 <faxathisia> What's the lambda term for it?
18:18:10 <Slereah-> See the first step.
18:18:10 <SimonRC> as in: 5 = \x\y.x(x(x(x(xy)))) ?
18:18:28 <Slereah-> ^mnf.(mn)f
18:18:48 <SimonRC> hmm
18:19:44 <SimonRC> surely if m and n are church numerals, (mn)f == m(nf)?
18:20:10 <SimonRC> ah, waitamo...
18:20:34 <SimonRC> \mnf->(mn)f is exponentiation
18:21:37 <SimonRC> e.g. it turns 5,4,x into (5 4) x == (\y. 4 (4 (4 (4 (4 y))))) x = 4(4(4(4(4x))))
18:21:52 <SimonRC> which is 1024 x
18:22:01 <SimonRC> i.e. (5^4) x
18:22:14 <SimonRC> multiplication of church numerals is composition
18:22:22 <Slereah-> Damn. Where did I get that.
18:23:06 <SimonRC> "The function <mul> which multiplies two Church integers (by applying them consecutively to the same function) is ^m^n^f`$m`$n$f, i.e. ``s`ksk"
18:23:22 <Slereah-> Oh. I actually made a typo when I wrote it on the first line.
18:23:31 <Slereah-> Well, so much for that.
18:24:03 <Slereah-> I forgot Unlambda's notation. Is `ab = (ab)?
18:24:12 <Slereah-> Or is it (ba)
18:30:40 <oklopol> ab
18:30:41 <oklopol> (ab)
18:33:10 <Slereah-> I did spend 20 lines doing the wrong problem didn't I.
18:34:09 <Slereah-> I'll try some combinator with a known SKI decomposition instead.
18:35:17 <Slereah-> The Mockingbird. Three combinators.
18:35:22 <Slereah-> That's more inspiring.
18:51:43 -!- jix has quit ("CommandQ").
18:53:23 <Slereah-> I just can't keep track of the parenthesis.
18:53:29 <Slereah-> I'll just cook up some code.
18:53:43 <faxathisia> I wrote some code to it but it doesn't work!
18:54:53 <Slereah-> Hell, I don't even have any idea how to deal with brackets!
18:55:05 <Slereah-> But well, let's see if I can cook up something.
18:56:25 <faxathisia> are not free and bound two different things?
18:56:43 <Slereah-> Why yes, yes they are.
18:56:48 <Slereah-> They are different thing, that is.
18:56:51 <faxathisia> What's the difference..
18:57:16 <Slereah-> Free variables are in the expression without some lambda to cramp their style.
18:58:24 <Slereah-> From what I've seen on the abstract elimination thingy, a variable that isn't at all in the expression is considered not free for the rule T[^x.E] = K T[E], with x not free in E.
18:59:58 * SimonRC goes.
19:00:18 <Slereah-> Byes.
19:08:24 <faxathisia> grr
19:08:35 <faxathisia> I wrote something which seesm to do it but it only works in one direction
19:14:28 <Slereah-> I wonder if there's a shorter set of rules for it.
19:14:35 <Slereah-> Free and bound variables are bothersome.
19:15:21 <oklopol> i guess that comes once you've made it pointless?
19:15:27 <oklopol> point-free
19:15:39 <oklopol> *comes in, i guess
19:16:00 <faxathisia> Yes free and bound vars are the problem
19:17:19 <faxathisia> but I doubt sidestepping it is possible :|
19:17:23 <oklopol> i meant, i guess what you are doing is exactly reducing it to the shorter set of rules
19:17:42 <Slereah-> Well, you can get rid of a lot of the free-bound rules in logic for instance.
19:17:55 <oklopol> guess, because i just skimmed your conversation for keywords :)
19:17:56 <Slereah-> But then again, LC seems pretty much based on it.
19:21:56 -!- oerjan has joined.
19:38:27 -!- tesseracter has joined.
19:39:32 <Slereah-> Hello sir.
19:39:44 <tesseracter> hi?
19:39:55 <tesseracter> i was actually looking for a obfuscated code channel
19:40:08 * oerjan strangely hears something out of another dimension
19:40:19 <Slereah-> Well, esolangs are quite obfuscated
19:40:59 <tesseracter> right, but python oneliners arent exactly esoteric, more obfuscated.
19:41:08 <Slereah-> Yes.
19:41:11 <tesseracter> http://dpaste.com/28780/
19:41:13 <Slereah-> Esolangs are a subset of it
19:41:36 <oerjan> people here have been known to make IOCCC entries...
19:42:07 <Slereah-> For instance, this is somehow obfuscated : http://membres.lycos.fr/bewulf/Russell/99Turingprog5.txt
19:42:13 <Slereah-> And a one-liner, too!
19:42:29 <faxathisia> I can't read that
19:42:33 <Slereah-> Mostly because I can't find how to strip the code of LF.
19:43:26 <Slereah-> I have a somehow commented version, but it's commented in French.
19:44:43 -!- weilawei has joined.
19:44:56 <Slereah-> Hi.
19:45:41 <tesseracter> for some reason Slereah-, you remind me of a bot. kinda spooky.
19:45:42 <faxathisia> what do you mean strip the code of LF?
19:45:49 <Slereah-> Line feeds.
19:45:54 <faxathisia> oh right..
19:46:13 <Slereah-> Since I'm not that good at manipulting strings, it just reads it like one big block.
19:46:46 <oerjan> tesseracter: Why do you think Slereah-, I remind me of a bot. kinda spooky.
19:46:46 <faxathisia> strings are in general really awkward to deal with :|
19:47:16 <faxathisia> It's nice to have logic programming or some combinator parser someone else wrote around
19:47:29 <Slereah-> The solution would have been to just put strip(LF), but I would need the curses module
19:47:38 <tesseracter> oerjan: ha.
19:47:42 <Slereah-> And it doesn't exist on windows.
19:48:55 <oklopol> faxathisia: what language have you been using 8|
19:49:12 <faxathisia> oklopol: what do you mean? I used a lot of languages
19:49:38 <oklopol> "strings are in general really awkward to deal with" i feel the exact opposite, so... just wondered
19:49:55 <Slereah-> What languages have *you* been using?
19:50:04 <oklopol> python, mostly
19:50:07 <faxathisia> especially awkward in c, javascript and python
19:50:12 <Slereah-> I use python.
19:50:14 <oklopol> oh :\
19:50:23 <faxathisia> and yes, what have you been using!? :D
19:50:25 <Slereah-> Well, I'm incompetent, but I assume faxathisia isn't.
19:50:45 <oklopol> i use python almost exclusively these days
19:51:08 <faxathisia> you chould show some good string processing code?
19:51:22 <oerjan> python has reasonably simple regexps
19:51:35 <oerjan> module re, i think
19:51:49 <oklopol> regexps + a way to use a string like a file, and i don't really see how anything could be awkward
19:52:33 <oklopol> and no, i can't show you any *good* code, since i don't know what that means
19:52:48 <faxathisia> :(
19:52:54 <Slereah-> We need a philosopher on that one.
19:53:49 <oklopol> i don't think anyone has called my code readable
19:54:03 <Slereah-> Sparse comments?
19:54:18 <oklopol> comments are useless
19:54:43 <oklopol> add descriptive lambdas into the language like i did with oklotalk for comments
19:54:45 <oklopol> !
19:54:50 <oklopol> hmm
19:54:54 <oklopol> "descriptive"
19:55:00 <oklopol> err... i mean declarative or smth
19:55:11 <tesseracter> oklopol: comments should only need to explain _why_ you implemented something the way you did.
19:55:13 <oklopol> like, lambdas that describe the result.
19:55:24 <faxathisia> in the future we don't need comments :)
19:55:25 <oklopol> i guess
19:55:29 <oklopol> indeed
19:55:35 <oklopol> that is how i see it.
19:55:44 <faxathisia> sometimes they are required though, like: Don't give an empty list to this!
19:55:56 <faxathisia> or: Takes a valid printf string
19:56:02 <oklopol> tesseracter: in that use, i consider then fully useless :)
19:56:10 <oklopol> as if that's anyone's business.
19:56:22 <oklopol> *them
19:56:26 -!- puzzlet has quit (Remote closed the connection).
19:56:37 <oklopol> faxathisia: that can be done using the language itself.
19:56:47 <oklopol> if not, the language sucks, not my problem :)
19:56:47 <faxathisia> oklopol: What language[s]?
19:56:59 <oklopol> oklotalk, mostly :P
19:57:02 <faxathisia> hehe
19:57:08 <faxathisia> where is there some info on oklotalk?
19:57:23 <oklopol> if something is easy in oklotalk - a non existent language sofar - i consider it something that should be easy in other languages too
19:57:27 <oklopol> and if not, they suck
19:57:37 <oklopol> nowhere online :)
19:57:48 <faxathisia> being a programming language is not about making things easy for programmers :p
19:57:50 <oklopol> i've been talking about ot for years
19:57:57 <oklopol> but i finally have a real reason to finish it
19:58:04 <oklopol> it's my high-school graduation project
19:58:36 <oklopol> heh, oklotalk makes up for it's nice debugging facilities in being extremely obfuscatable :)
19:58:36 <oerjan> o_O
19:58:52 <oklopol> o_O?
20:03:05 <oklopol> if that was for "mostly oklotalk", i meant i don't know what other languages provide for the stuff i have in mind, since i only know python, java and c++ well enough to confidently know what's doable in them
20:03:12 * oerjan imagines several options for oklopol flunking high school now...
20:03:20 <oklopol> ah :)
20:03:45 <oklopol> another reason is i don't have a course i need to have, and it's not given anymore
20:04:40 -!- puzzlet has joined.
20:04:43 <oklopol> a spoken english course :D
20:04:43 <weilawei> guten morgen
20:04:58 <oklopol> ist schon sehr spät
20:05:40 <weilawei> six function calculator in one line of python: http://dresstosurvive.wordpress.com/2007/12/21/six-function-calculator-in-one-line-of-python/
20:05:53 <weilawei> i think tesseracter spoiled my surprise >_>
20:06:01 <weilawei> no eval()
20:06:24 * oerjan must have greatly misremembered the time zone of germany
20:06:40 <oklopol> hmm, same as yours, no?
20:07:07 <oklopol> i'll show my bf interpreter oneliner again!
20:07:09 <oerjan> thought so, and hier ist kein gute morgen
20:07:43 <faxathisia> aww I did a bf interp one liner but I lost it
20:07:57 <faxathisia> it had to be < 512 chars for lambdabot to understand
20:11:14 <oklopol> what lang?
20:11:21 <oklopol> can't find mine :<
20:11:45 <faxathisia> haskell
20:13:18 * Slereah- plans on doing some BF interpreter on his Turing machine
20:13:25 <Slereah-> And well, it will have to be one line.
20:13:35 <Slereah-> But first, I need to install them penguins.
20:13:49 * weilawei has some up for sale
20:13:55 <faxathisia> lol
20:14:06 <Slereah-> Linux for sale? What a bargain!
20:14:07 <faxathisia> every turing machine program is a one liner because i t uses infinite tape
20:14:11 <tejeez> then do some turing machine with bf!
20:14:27 <tejeez> and run that bf interpreter again with that
20:14:29 <Slereah-> faxathisia : The instructions themselves aren"t on the tape.
20:14:34 * tesseracter wants a hardware bf CPU
20:14:38 <weilawei> ((lambda: "penguin") for x in customers)
20:14:47 <weilawei> it generates penguins for customers =D
20:14:50 <oklopol> yes! and calculate the eigenratio
20:14:52 <faxathisia> ooh :(
20:14:54 <Slereah-> also, my Turing Machine supports multi tapes :o
20:15:25 <Slereah-> I will probably use 3 for the BF interpreter.
20:15:27 <weilawei> the lambda was gratuitous, i admit
20:15:44 <Slereah-> One for the code, one for the "tape" of BF, and one to keep track of the brackets.
20:15:54 * weilawei isn't sure whether penguins or lambdas are cuddlier
20:16:11 <Slereah-> what of combinatory birds?
20:16:26 <tejeez> hardware bf cpu sounds very.. useful!
20:17:01 <Slereah-> You could run your BF programs in record time!
20:18:28 <tesseracter> tejeez: ok ok, howabout a water-based bf cpu? the output would drip on your head.
20:18:58 <tejeez> well, a bf cpu made with discrete components or simple logic chips would be quite interesting project
20:19:39 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)).
20:21:46 <Slereah-> There's a BF CPU diagram.
20:22:16 -!- sekhmet has joined.
20:23:07 <tesseracter> http://science.slashdot.org/article.pl?sid=04/10/06/2026222 tejeez, this is what i was talking about...
20:24:06 <tejeez> yeah, that would be even cooler way to implement a brainfuck cpu!
20:24:07 <Slereah-> What if there's a clog? :o
20:24:46 * weilawei gets the draino
20:25:14 <Slereah-> INPUT DRAINO
20:25:17 <tesseracter> "theres a bug. is it hardware or software?"
20:25:33 <Slereah-> There's an ant drinking the sweet sweet computer juice
20:25:44 <tesseracter> obviously you would need to use filters.
20:26:37 <Slereah-> Try to use 1's rather than 0. They're aerodynamics, less turbulence in the water
20:27:38 <tejeez> but as every cell in brainfuck is initially 0, it'd be better to make 0's more aerodynamic
20:28:02 <Slereah-> Some sort of losange?
20:28:09 <weilawei> i think 0's are naturally more aerodynamic due to the curvature
20:28:49 <Slereah-> Well, unless that curvature is infinite, the water is going to bump on its cross-section!
20:29:40 <Slereah-> Then again, there's worse I guess.
20:29:42 <Slereah-> Like 5.
20:30:27 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)).
20:30:31 <weilawei> CPU lag/queue? you dont get your water till something else comes down the pipe...
20:30:57 <Slereah-> Could you overclock it with a bicycle pump?
20:31:16 <weilawei> i think a simple siphon might help..
20:31:32 <weilawei> but.. overclocking it would.. make it run cooler?
20:31:33 <weilawei> >_<
20:32:22 <tesseracter> ok guys, combine the fluid gates with http://blog.wired.com/wiredscience/2007/12/macgyver-scienc.html and you can make your own BF water CPU at home!!!
20:33:22 <tesseracter> who has a link to the bf cpu schematics?
20:34:08 <tesseracter> how do you input your program?
20:34:15 <Slereah-> http://www.clifford.at/bfcpu/bfcpu.html
20:35:11 <tejeez> tesseracter: a lot of cups that should be filled (1) or left empty (0)
20:35:26 <tejeez> three such cups would be one instruction
20:35:31 * weilawei and tesseracter are plotting...
20:36:54 <tejeez> or maybe a lot of valves?
20:37:00 <weilawei> steampunk!
20:37:05 * oerjan envisions the Zen fluid bf cpu, where the cups are either half full or empty.
20:37:17 <Slereah-> Steam? This isn't even Clockpunk!
20:37:24 <oerjan> *half empty
20:37:30 <Slereah-> What would be the fluid?
20:37:45 <tejeez> this if brainfuck, not some (brain)fucking steampunk
20:37:48 <weilawei> maybe alcohol and water?
20:37:50 <tesseracter> Slereah-: you need 2 different density fluids
20:38:04 <oerjan> aka: the indifference engine
20:38:11 <Slereah-> Heh.
20:38:38 <tesseracter> brain[fp]u[cn]k?
20:38:52 <Slereah-> Brainpunk
20:39:02 -!- sekhmet has joined.
20:39:26 <tejeez> brainpuck
20:39:26 <weilawei> steamfuck?
20:39:37 <Slereah-> http://content.answers.com/main/content/wp/en/1/14/William_Stanley_Jevons_Logic_Piano.jpg
20:40:24 <oklopol> oerjan: quantum brainfuck?
20:40:30 <oklopol> :)
20:40:45 * oerjan is disappointed brainpunk does not appear to denote a musical genre
20:41:02 <tejeez> does brainfunk?
20:41:05 <Slereah-> Quantum Brainpunk is when you fill the cup randomly.
20:41:19 <Slereah-> Like you just use some cups lying around your house.
20:41:58 <oerjan> quantum is not the same as random! there needs to be entanglement...
20:42:24 <Slereah-> Well, with cup, I'm not sure I can do it.
20:43:26 <tesseracter> weilawei was worried that you couldnt use a bf water cpu in space...turns out, you can just spin it. need overclocking? spin faster!
20:43:41 * weilawei is planning to market it to NASA
20:43:52 <Slereah-> Spinning it will induce coriolis forces
20:43:59 <Slereah-> That could screw up the results!
20:44:10 <weilawei> Slereah-, see, i said use an impeller or a pump..
20:44:12 <weilawei> but nooo
20:44:28 <weilawei> in space though.. once it was spinning..
20:44:34 <weilawei> 0 watt BF cpu
20:44:54 <tesseracter> it would be hard to read the results weilawei...
20:44:59 <Slereah-> You know that pesky law of thermodynamic?
20:45:04 <weilawei> Slereah-, SHH
20:45:29 <weilawei> yes we know, but we're aiming to preserve our natural environment as best as possible
20:45:59 <Slereah-> Let's train monkeys to do symbol manipulation.
20:46:11 <weilawei> Slereah-, forget that. too easy
20:46:14 <Slereah-> Apefuck!
20:46:16 <Slereah-> :(
20:46:33 <oerjan> >_<
20:46:42 <weilawei> train chihuahuas to be quiet and you should win a nobel
20:46:58 <Slereah-> I can, but it would qualify as animal cruelty.
20:47:17 * tesseracter tried to make a little dog punter once. it didnt get many investors tho...
20:55:20 <tesseracter> i wonder what cpu has the least amount of logic gates...
20:55:56 -!- ehird`_ has joined.
20:56:02 <weilawei> the infinite improbability drive? or the bistromath drive?
20:56:08 <Slereah-> Zero I assume. Unless you mean "Turing complete" as well.
20:56:26 <tesseracter> Slereah-: i definitely mean turing complete.
20:56:37 <Slereah-> The EMPTY CPU :O
20:56:57 <tejeez> probably some very simple 1-bit cpu :-o
20:58:13 <tejeez> http://www.esolangs.org/wiki/SCAB_computer?
21:04:34 * weilawei thinks tesseracter is scheming to limit his time on #esoteric
21:05:06 <tesseracter> what, because youre at work?
21:05:18 <weilawei> if you're so busy @work, what're you doing here?
21:05:37 * tesseracter stares blankly...
21:05:49 <tesseracter> thanks tejeez, just what I needed.
21:07:20 <tesseracter> hmm. is a water cpu a clock or an asynchronous system?
21:08:20 <tejeez> brainfuck can be easier to do with clocked..?
21:12:42 <tesseracter> tejeez: yeah, but the difficulty is with the water, not brainfuck.
21:14:26 <Slereah-> Heh.
21:20:57 -!- ihope_ has joined.
21:24:52 <tesseracter> Slereah-: i just read what i wrote again. scary.
21:28:55 <ehird`_> ridiculous, esoteric scheme compiling idea
21:28:59 <ehird`_> for compiling 'define'
21:29:10 <ehird`_> err
21:29:13 <ehird`_> 'begin'
21:29:41 <ehird`_> first reduce all begins to two subforms. (begin x y z) -> (begin x (begin y z)), etc. Then, reduce (begin x y) to (and (or x #t) (or y #t))
21:29:42 <ehird`_> :D
21:29:57 <ihope_> What's begin?
21:30:16 <ehird`_> (begin x y z) -> (and (or x #t) (or (and (or y #t) (or z #t)) #t))
21:30:24 <ehird`_> ihope_: begin executes all its arguments one after another
21:30:34 <ehird`_> so you can do:
21:30:46 <ehird`_> (if cond (begin (display 1) (display 2)) (begin (display 3) (display 4)))
21:30:48 <ihope_> Interesting.
21:31:03 <ehird`_> of course it's trivial to compile in the first place :-)
21:31:24 <ehird`_> to most imperative languages, for instance, it can simply be ignored and used merely as a grouper
21:32:31 <oerjan> ehird`_: um, begin should return its last argument so you don't want to use or there?
21:32:43 <ehird`_> hmm, good point
21:32:48 <ehird`_> but it's the only way to get and to work
21:33:24 <oerjan> (and (or x #t) y) should work?
21:33:37 <ehird`_> yes, you're right :P
21:34:18 <faxathisia> I compiled scheme into java
21:34:29 <faxathisia> just for the sake of generating horrible code
21:34:42 <faxathisia> e.g. context = new Context(Symbol.intern("succ"), new Lambda(new Cons(Symbol.intern("n"), new Nil()), new Lambda(new Cons(Symbol.intern("f"), new Cons(Symbol.intern("x"), new Nil())), new Cons(Symbol.intern("n"), new Cons(Symbol.intern("f"), new Cons(new Cons(Symbol.intern("f"), new Cons(Symbol.intern("x"), new Nil())), new Nil()))))), context);
21:34:59 <ehird`_> that's not compiling
21:35:11 <ehird`_> that's just parsing and convertnig to something that calls out to an interp
21:35:17 <ehird`_> also, new Nil()? there's only one ()
21:35:35 <oerjan> old Nil() :)
21:36:01 <ehird`_> oerjan: make a language with that, now
21:36:01 <ehird`_> :P
21:36:11 <faxathisia> hahaha
21:36:47 <faxathisia> ehird`_: huh .. ?
21:36:51 <faxathisia> i thought that's the definition of compiling
21:36:55 <ehird`_> faxathisia: err, no
21:37:06 <ehird`_> compiling would remove the need for the scheme interpreter underneath all that :-)
21:37:18 <faxathisia> what does it stand on?
21:37:24 <faxathisia> There's got to be -an- interpreter somewhere
21:37:54 <oerjan> sure, the jvm interpreter in your case
21:38:05 <faxathisia> I'm confused
21:38:28 <faxathisia> it seems arbitrary (that to the JVM or x86 assembly) is compiling but this isn't
21:38:45 <oerjan> actually what faxathisia pasted doesn't seem that much interpreted.
21:38:55 <oerjan> it's just using lots of constructors
21:39:37 <oerjan> or wait
21:40:15 <oerjan> nah i'm speaking nonsense
21:40:29 <ehird`_> oerjan: well, evidently that's in a function somewhere but new Lambda(...) is NOT compiled by any reasnable definition :-)
21:40:50 <oerjan> right
21:41:02 <oerjan> it's just an AST
21:41:05 <faxathisia> when I said compiling.. I meant changing something from one language to another
21:42:09 <ehird`_> speaking of compiling scheme, i've made myself a compiler and compiled the factorial scheme definition to a reasonable definition that would be easy to compile to. i'm thinking of making SCM_if a C if, though. CPS. http://paste.lisp.org/display/52894
21:42:17 <faxathisia> like abstraction elimination from \x\y -> SK combinators is compiling too ?
21:42:33 <ehird`_> hmm, SCM_OBJECT * returns should really be SCM_CALL returns
21:45:35 -!- cmeme has quit (Excess Flood).
21:46:25 <oerjan> faxathisia: i think the issue that your java version contains both the AST and an interpreter for it
21:46:30 <ehird`_> http://paste.lisp.org/display/52894#1 version 2
21:46:32 <oerjan> *is that
21:47:00 <ehird`_> oerjan: see any way i could improve that compiler output? :-)
21:47:26 -!- cmeme has joined.
21:47:30 <ehird`_> (of course, it uses absolutely 0 stack space so "fact" will never die even if you give it 384797435987359834759345 or something, and call/cc is extremely efficient)
21:48:03 * oerjan suddenly has an urge to press Mark as Spam >:)
21:49:27 <ehird`_> oerjan: :( WHY
21:49:47 <oerjan> Because It's There
21:50:36 * oerjan never said he actually did so
21:55:14 <ehird`_> SO, any comments on it? :P
21:58:15 <oerjan> how can it not use stack space? it is not tail recursive.
21:59:58 <ehird`_> yes it is
22:00:01 <oerjan> even if you allocate scheme frames on the heap there could still be plenty of them
22:00:02 <ehird`_> SCM_CALL does nt call
22:00:05 <ehird`_> not
22:00:11 <ehird`_> it returns a SCM_RETURN structure
22:00:16 <ehird`_> a trampoline handles the rest
22:00:20 <ehird`_> i.e.
22:00:40 <oerjan> ok it doesn't use C stack
22:00:41 <ehird`_> res = func(...); while (res != OK_STOP) { res = res.func(res.args); }
22:00:42 <ehird`_> or whatever
22:00:53 <oerjan> but still it uses plenty of scheme "stack"
22:00:57 <ehird`_> nuh-huh
22:01:01 <ehird`_> look up, no stack at all
22:01:11 <ehird`_> and this is nothing new. this is standard continuation-passing style
22:02:05 <oerjan> a continuation is a "stack"
22:02:40 <ehird`_> yes, but it still won't run out
22:03:04 <oerjan> but your scheme program is not tail recursive
22:03:14 <ehird`_> i know
22:03:17 <ehird`_> anyway
22:03:21 <oerjan> it must remember the n's somewhere
22:03:23 <ehird`_> yes
22:03:38 <ehird`_> but it's goinig to run out a lot further in time than an actually recursive C version
22:03:42 <ehird`_> next on my list: scheme->python translator with CPS
22:03:43 <ehird`_> :D
22:06:17 -!- Sgeo has quit (Success).
22:07:10 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
22:09:43 <ehird`_> http://paste.lisp.org/display/52897 voila
22:40:25 -!- RedDak has quit (Remote closed the connection).
23:08:21 -!- puzzlet has quit (Remote closed the connection).
23:08:22 -!- puzzlet_ has joined.
23:17:39 -!- calamari has joined.
23:30:29 -!- puzzlet_ has quit (Remote closed the connection).
23:30:30 -!- puzzlet has joined.
23:37:24 -!- puzzlet_ has joined.
23:41:17 -!- ehird`_ has quit (Read error: 113 (No route to host)).
23:44:30 -!- puzzlet__ has joined.
23:47:01 -!- ehird` has joined.
23:47:43 -!- puzzlet has quit (Connection timed out).
23:49:46 -!- calamari has quit ("Leaving").
23:50:43 -!- puzzlet has joined.
23:54:45 -!- puzzlet_ has quit (Connection timed out).
23:56:19 -!- puzzlet has quit (Remote closed the connection).
23:56:20 -!- puzzlet_ has joined.
2007-12-22
00:02:37 -!- calamari has joined.
00:03:13 -!- puzzlet has joined.
00:03:17 -!- puzzlet__ has quit (Connection timed out).
00:08:55 -!- puzzlet__ has joined.
00:15:47 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
00:20:22 -!- puzzlet has quit (Connection timed out).
00:22:11 -!- calamari has quit ("Leaving").
00:27:31 -!- puzzlet has joined.
00:27:31 -!- puzzlet__ has quit (Remote closed the connection).
00:42:29 -!- puzzlet has quit (Remote closed the connection).
00:42:29 -!- puzzlet_ has joined.
00:51:36 -!- puzzlet_ has quit (Remote closed the connection).
00:53:13 -!- puzzlet has joined.
00:55:42 -!- bsmntbombdood has joined.
01:11:05 -!- puzzlet has quit (Remote closed the connection).
01:11:05 -!- puzzlet has joined.
01:19:54 -!- puzzlet_ has joined.
01:34:15 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
01:45:22 <ehird`> oklopol: have you got a rough oklotalk spec yet?
01:45:27 <ehird`> i want to implement it sometime
01:49:18 -!- puzzlet_ has quit (Remote closed the connection).
01:49:25 -!- puzzlet has joined.
01:57:39 -!- puzzlet has quit (Remote closed the connection).
01:57:39 -!- puzzlet_ has joined.
02:05:16 -!- ehird` has quit (Remote closed the connection).
02:05:49 -!- puzzlet has joined.
02:07:31 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
02:13:14 -!- RodgerTheGreat has joined.
02:44:35 -!- oerjan has quit ("Good night").
02:56:07 <faxathisia> s = ((s ((s (k s)) ((s (k k)) ((s (k s)) ((s ((s (k s)) ((s (k k)) i))) (k i)))))) (k ((s ((s (k s)) ((s (k k)) i))) (k i))))
02:57:13 <faxathisia> cause I was always typing it out longhand before I realised....
02:57:15 <faxathisia> :p
02:57:52 <pikhq> Or: s = s
02:59:06 <faxathisia> \x y z w -> ((x y) (z w)) = ((s ((s (k s)) ((s (k (s (k s)))) ((s (k (s (k k)))) ((s (k (s (k s)))) ((s (k (s (k k)))) ((s ((s (k s)) ((s (k k)) i))) (k i)))))))) (k (k ((s ((s (k s)) ((s (k k)) i))) (k i)))))
02:59:22 <faxathisia> I wonder why thi thing prints out such long expressions though..
03:00:28 <pikhq> It's automated.
03:00:40 <pikhq> Simplify what you can. ;)
03:01:18 <pikhq> Hmm. SKKI? s k k i -> k i (k k) -> i
03:01:53 <faxathisia> hmm
03:02:35 <faxathisia> if I have a list of combinators, and an expression made from those combinators.. I should be able to automatically generate some optimization rules I think
03:03:55 <faxathisia> that would be hard :S
03:04:10 <pikhq> It's called 'eval'.
03:04:18 <faxathisia> haha
03:04:21 <faxathisia> damn.. you're right
03:04:33 <faxathisia> I was thinking of combining the types together and seraching for reduced version
03:32:33 -!- Sgeo has joined.
03:32:39 <ihope_> \x y z w -> ``xy`zw. Apply a simple rule and that's reduced to \x y z -> ``s`xyz. Apply another one and it's reduced to \x y -> `s`xy. Another and it becomes \x -> ``s`ksx. One more and it becomes `s`ks.
03:32:56 <ihope_> It's quite obvious that you have room for improvement.
03:33:58 <ihope_> \x y z -> ``xz`yz can become \x y -> ``sxy can become \x -> `sx can become s. \x y -> x can become `ky can become k.
03:34:13 <ihope_> Moral of the story: \x -> `fx is the same as f. :-)
03:34:33 <ihope_> (Assuming f doesn't contain x, obviously.)
04:01:31 -!- RodgerTheGreat has quit.
04:28:59 -!- ihope_ has quit (Connection timed out).
05:38:48 -!- RodgerTheGreat has joined.
05:40:58 <RodgerTheGreat> Hm. Well, Pidgin is interesting.
05:41:18 <RodgerTheGreat> not exactly my ideal vision of an IRC client, but hey
05:41:31 <RodgerTheGreat> I need to install XChat on this thing
05:43:36 <pikhq> I'd prefer irssi, but yeah, Pidgin is not the greatest at IRC.
05:44:07 <RodgerTheGreat> I'm mainly just giving it a spin because it was already here
05:45:17 <RodgerTheGreat> well, cya- I think I'm going to turn in.
05:45:37 -!- RodgerTheGreat has quit ("Leaving.").
06:00:36 -!- Sgeo has quit (Connection reset by peer).
07:13:54 -!- weilawei has quit (Nick collision from services.).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:22:28 -!- asiekierka has joined.
10:22:34 <asiekierka> hi
10:33:52 -!- andreou has joined.
10:46:21 -!- jix has joined.
11:07:34 -!- oklopol has quit (Remote closed the connection).
11:11:52 -!- ololobot__ has quit (Read error: 104 (Connection reset by peer)).
11:11:53 -!- ololobot_ has quit (Read error: 104 (Connection reset by peer)).
11:12:21 -!- oklopol has joined.
11:21:37 -!- puzzlet has quit (Remote closed the connection).
11:21:44 -!- puzzlet has joined.
13:10:53 <Slereah-> Is there a way to reduce a combinator expression without using a dummy variable to test the expression?
13:13:32 <oklopol> isn't that an undecidable problem in general?
13:13:54 <Slereah-> Well, I'm not even talking in general.
13:14:05 <oklopol> i'm just asking in general
13:14:21 <Slereah-> I think it is, yes.
13:14:35 <Slereah-> I gives a contradiction with the omega combinator IIRC
13:14:38 <Slereah-> it*
13:16:19 <Slereah-> I tried to reduce them abstractions of ^ab.a, and ended up on (S(KK))I.
13:16:59 <Slereah-> Which gives Kx when applied to some combinator x, but well
13:20:55 <oklopol> then it's K
13:20:57 <oklopol> ...right?
13:21:17 <Slereah-> Well, for ^ab.a, I hope so.
13:21:35 <Slereah-> Just wondered if there was a way to do it without applyin it.
13:22:12 <oklopol> eta reduction
13:22:22 <oklopol> a function is how it behaves
13:22:41 <oklopol> applying is just a way to see how it behaves
13:23:15 <Slereah-> 'kay.
13:23:32 <oklopol> errr don't think i actually know anything
13:23:52 <oklopol> that's just how i see it
13:24:15 <Slereah-> Let's just see if someone comes up with another answer!
13:24:28 <Slereah-> In the next... three or four hours, considering the rythm of this chan.
13:25:14 <Slereah-> Dealing with free variables is alrerady bothersome, but if I also have to apply the result...
14:06:17 -!- RedDak has joined.
14:15:20 <asiekierka> hi
14:21:04 -!- RedDak has quit (Remote closed the connection).
14:23:30 <oklopol> lo
14:26:08 <faxathisia> Slereah-: My thought was, you have a tree of combinators... typecheck branches of it -- if they're a combinator you know already you can replace it
14:27:12 <faxathisia> e.g. when you see a branch with ((s ((s (k s)) ((s (k k)) ((s (k s)) ((s ((s (k s)) ((s (k k)) i))) (k i)))))) (k ((s ((s (k s)) ((s (k k)) i))) (k i)))) in it -- which has type (a -> b -> c) -> (a -> b) -> a -> c, just replace it with s
14:27:32 <faxathisia> then I think I just coded the algorithm the wrong way around :S
14:32:03 -!- Sgeo has joined.
14:33:03 -!- andreou has quit (Read error: 110 (Connection timed out)).
15:02:59 <Slereah-> I'm not sure what you mean by "typecheck".
15:04:13 <faxathisia> you know what type s is and k, so you can tell what type is (s k) (k s) (s (s k)) .. etc
15:04:26 <faxathisia> I didn't try to code though
15:04:46 <Slereah-> Type?
15:04:50 <faxathisia> but I thought inspecting the types should give a way to reduce the expressions
15:05:04 <faxathisia> i :: a -> a
15:05:19 <faxathisia> s :: (a -> b -> c) -> (a -> b) -> a -> c
15:05:26 <Slereah-> Oh.
15:05:30 <faxathisia> k :: a -> b -> a
15:06:31 <Slereah-> Would the type checking involve testing the combinators on some x-y-z combinators?
15:06:54 <faxathisia> (s (s (s (s k)))) :: ((((a -> b) -> a) -> a -> b) -> (a -> b) -> a) -> (((a -> b) -> a) -> a -> b) -> a
15:08:55 <faxathisia> well if you have (k s), you let a = (a' -> b' -> c') -> (a' -> b') -> a' -> c' in a -> b -> a and remove the first thing since one application was done.. to get b -> (a' -> b' -> c') -> (a' -> b') -> a' -> c'
15:09:39 <faxathisia> I was thinking it would be possible to reduce by, taking the type of every branch of the tree of combinators.. and seraching for types you already know
15:10:11 <faxathisia> but it would be better probably to just generated reduces expressions in the first place (I don't know why the algorithm on wikipedia doesn't)
15:11:12 <faxathisia> :t let k x y = x ; s x y z = (x z) (y z) ; i x = x in (s k) -- I was checking the combinators output with this
15:11:32 <Slereah-> I tried to search for some moar, but apparently abstractino reduction isn't popular on the interweb.
15:12:01 <faxathisia> pikhq suggested eval
15:12:10 <faxathisia> but I didn't realize expressions can diverge :p
15:12:27 * Slereah- seems to lack some jargon
15:12:34 <faxathisia> so it might work for simplifying somethings, just evaling things which make it shorter
15:13:32 -!- jix has quit (Nick collision from services.).
15:13:42 -!- jix has joined.
15:14:11 <faxathisia> (((s i) i) ((s i) i)) -- diverges
15:14:26 <faxathisia> it is an infinite loop
15:14:51 <Slereah-> Why yes, yes they are.
15:14:57 <Slereah-> It's the omega combinator.
15:36:24 -!- sebbu2 has joined.
15:44:16 -!- sebbu has quit (Read error: 113 (No route to host)).
15:44:17 -!- sebbu2 has changed nick to sebbu.
15:47:21 -!- oerjan has joined.
16:12:12 -!- andreou has joined.
16:35:44 * pikhq cheers
16:36:05 <pikhq> oerjan: It appears that I have won the game, and may well earn the title 'Scamster'.
16:36:29 <oerjan> ooh
16:37:01 <pikhq> Points are a currency. Currencies can be created by their recordkeepor, unless the backing document for the currency says otherwise.
16:37:08 <pikhq> I am the recordkeepor of points.
16:37:54 <pikhq> So, I just say "I create 100 points in my posession. I win the game."
16:37:55 <pikhq> Voila.
16:38:37 <pikhq> Also, I have earned the patent title 'Agoran Spy'. Tell me, is there anything here to spy on?
16:38:50 <pikhq> ;p
16:38:57 <oerjan> I could tell you, but then I would have to kill you.
16:39:27 <pikhq> LMAO
16:39:45 <pikhq> I see that you've been playing Paranomic.
16:39:53 <oerjan> i did?
16:40:00 <oerjan> i don't quite remember
16:40:12 <pikhq> Paranomic XP is a recently formed Nomic. . .
16:40:20 <pikhq> Proposals have a security clearance.
16:40:25 <oerjan> so i haven't.
16:40:35 <pikhq> You need to have that security clearance to be aware of it existing, much less to vote on it.
16:40:44 <oerjan> i did however play Blind Nomic. That was fun.
16:40:50 <pikhq> So, the phrase "I could tell you, but then I would have to kill you." is entirely true.
16:41:35 <oerjan> unfortunately it disappeared...
16:52:57 <pikhq> Ah, Christmas break. . . A wonderful time of year.
18:05:14 -!- asiekierka has quit.
18:52:14 <SimonRC> faxathisia: If you reduce the outermost combinator first you are guaranted to reach an answer if tyhere is one
18:52:30 <SimonRC> It is equivalent to "lazy evaluation" in proagramming languages
18:53:27 <SimonRC> Actually, combbinators are a bit like pure OO
18:53:47 <SimonRC> instead of "All you can do is send a message", you have "All you can do is calll it"
18:54:12 <Slereah-> OO?
18:54:20 <SimonRC> Object orientation
18:54:38 <SimonRC> you can't test for equality, you have to pass in things that tel it what to do in various cases
18:56:11 <oerjan> http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html
19:34:38 <SimonRC> yup
19:50:09 -!- calamari has joined.
20:23:48 -!- calamari has quit ("Leaving").
20:59:05 <Slereah-> Hm. What's the shortest way to make a nor out of nands?
20:59:31 <Slereah-> I got ((P|P)|(Q|Q))|((P|P)|(Q|Q)) so far.
21:19:47 -!- oerjan has quit ("Good night").
21:31:13 -!- RedDak has joined.
22:42:07 -!- Slereah has joined.
22:53:04 -!- calamari has joined.
23:07:34 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
2007-12-23
00:18:46 -!- RedDak has quit (Remote closed the connection).
00:21:14 -!- andreou has quit ("[BX] Time wasted: 23 days 3 hours 13 minutes 49 seconds 17 milliseconds").
00:43:53 -!- cherez has quit (Read error: 110 (Connection timed out)).
00:45:21 -!- cherez has joined.
01:42:49 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
02:13:38 -!- pikhq has joined.
02:16:06 -!- calamari has quit ("Leaving").
02:21:36 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
02:23:22 -!- oklopol has joined.
03:13:58 -!- jix has quit (Nick collision from services.).
03:14:08 -!- jix has joined.
03:43:37 -!- jix has quit ("CommandQ").
04:03:20 -!- oerjan has joined.
06:14:57 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:27:28 -!- sebbu2 has joined.
08:43:25 -!- sebbu has quit (Read error: 110 (Connection timed out)).
09:53:27 -!- oerjan has quit ("leaving").
10:58:50 -!- RedDak has joined.
15:31:54 -!- RedDak has quit (Remote closed the connection).
16:20:48 -!- jix has joined.
16:34:29 -!- oerjan has joined.
18:10:37 -!- SimonRC has quit (Read error: 110 (Connection timed out)).
18:56:24 -!- Sgeo has joined.
19:30:46 -!- Samus_ has joined.
19:36:57 -!- Samus_ has left (?).
20:15:04 -!- sebbu has joined.
20:15:13 -!- Slereah- has joined.
20:15:21 <Slereah-> <Slereah> Would Y (^nmf.(iszero m)(n)(succ((fn)(pred m)))) be a valid definition for addition?
20:15:24 <Slereah-> Was I saying.
20:16:08 <Slereah-> Although I guess it should be ^fnm instead
20:19:52 -!- Slereah has quit (Nick collision from services.).
20:19:56 -!- Slereah- has changed nick to Slereah.
20:21:11 -!- faxathisia has quit ("Leaving").
20:31:21 -!- sebbu2 has quit (Connection timed out).
20:40:53 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
20:56:34 -!- oerjan has quit ("Good night").
21:12:00 -!- jix has quit (Nick collision from services.).
21:12:10 -!- jix has joined.
22:35:24 -!- jix has quit ("CommandQ").
22:35:50 -!- jix has joined.
22:45:24 -!- CakeProphet has joined.
23:02:53 -!- faxathisia has joined.
23:07:51 <Slereah> http://membres.lycos.fr/bewulf/Russell/Pred.jpg
23:07:55 <Slereah> What am I doing wrong?
23:09:00 <CakeProphet> ...so like
23:09:04 <CakeProphet> what command am I look for
23:09:22 <CakeProphet> to replace all isntances of one string with another in all files in the current directory and its subdirectories
23:09:26 <CakeProphet> *looking
23:11:33 -!- RedDak has joined.
23:29:05 -!- jfm3 has joined.
23:31:00 -!- jfm3 has left (?).
23:40:56 <CakeProphet> ...nevermind
23:41:03 <CakeProphet> I have discovered the awesomeness of pipes and xarg.
23:43:47 -!- chere1 has joined.
23:44:18 -!- cherez has quit (Read error: 110 (Connection timed out)).
23:44:27 -!- jix has quit ("CommandQ").
23:46:57 -!- chere1 has left (?).
2007-12-24
00:23:40 -!- CakeProphet has quit ("haaaaaaaaaa").
00:38:30 -!- RedDak has quit (Remote closed the connection).
01:50:23 -!- duerig has joined.
01:51:11 <duerig> \
01:51:15 <duerig> Hello?
01:52:05 <duerig> Anybody here?
01:52:50 <faxathisia> Hello
01:53:09 <duerig> Hi.
01:53:43 <duerig> I just had a crazy programming-language idea, and I'd like to know why it is dumb. :)
01:53:49 <duerig> Care to listen and comment?
01:54:15 <faxathisia> I would listen
01:54:21 <faxathisia> I may not have any valuable comment though
01:55:10 <duerig> Well, the idea is about failure control. There are two types of failures: External (cannot connect to server), and Internal (Whoops, just de-referenced that null pointer).
01:56:08 <duerig> I think that current ideas about exceptions map well to internal exceptions. If something like that happens, then it is useful to print or log or pop-up an error message, then resume from a high level.
01:56:35 <duerig> But they don't seem to map well to external failures. It does me no good to know that my connection failed on line 30.
01:57:15 <duerig> So, what if instead, any function which can fail returns two distinct types. With no odd stack unwinding. A normal type and a failure type.
01:57:30 <duerig> And you add a new control structure. So you might be able to code something like:
01:57:59 <duerig> attempt (file.open("foo.txt", for_input))
01:58:01 <duerig> {
01:58:06 <duerig> // do stuff with file
01:58:06 <duerig> }
01:58:13 <duerig> fail
01:58:13 <duerig> {
01:58:16 <duerig> whoops
01:58:38 <duerig> fail (int file_failure)
01:58:39 <duerig> {
01:58:48 <duerig> // Handle failure (retry, etc.)
01:58:49 <duerig> }
01:59:20 <duerig> And the compiler would force you to use functions that might fail in such a control structure.
01:59:28 <duerig> Rather than just ignoring them.
01:59:36 <duerig> So that is the idea.
01:59:47 <duerig> In what ways do you think it is broken?
02:00:03 <faxathisia> It's a fine idea
02:00:16 <faxathisia> We already do this in programming though, so I don't think it's something new?
02:00:46 <faxathisia> #define if attempt
02:00:47 <faxathisia> #define fail else
02:00:48 <duerig> Well, it is not something that is part of the language. So if you return an error code, say, then you cannot return a file descriptor.
02:00:57 <faxathisia> attempt(f(a, b, c, &output)) {
02:01:01 <faxathisia> output.left;
02:01:02 <faxathisia> }
02:01:10 <faxathisia> fail { do something with output.right; }
02:01:36 <duerig> I guess the idea is to formalize this in the language and to make it easy.
02:01:40 <duerig> And to enforce it.
02:01:50 <faxathisia> what is the host language?
02:01:53 <duerig> Because even if you have carefully defined f() with several failure types.
02:02:08 <duerig> Then they might just say f() and not attempt(f()) in, say, C.
02:02:19 <duerig> I'm envisioning a c++ or java-like language variant for this idea.
02:02:30 <faxathisia> C basically doesn't have a type system
02:02:44 <faxathisia> it would (like C++) be a bad choice
02:02:48 <duerig> Well, it definitely doesn't enforce it outside of translation units.
02:02:53 <faxathisia> you could do it as a preprocessor for java yeah
02:04:29 <duerig> But I guess that the difference would be that the compiler, or preprocessor, or whatever, would *enforce* this. You might have an empty fail{} part, but you couldn't just ignore the error altogether.
02:04:50 <faxathisia> have you use any ML or haskell?
02:05:15 <duerig> And it would be easier to be disciplined because the compiler would tell you if you didn't live up to the requirement. :)
02:05:22 <duerig> I've used OCaml and SML a bit.
02:05:27 <duerig> Not Haskell yet.
02:07:25 <faxathisia> well I think you describe an either type, like datatype 'l 'r either = LEFT of 'l | RIGHT of 'r
02:07:39 <faxathisia> so when you match against it, you know what you're getting..
02:07:58 <duerig> Ah. Yeah. And this is like Maybe types that I've heard about as well.
02:09:15 <duerig> One thing is that you often want to do a number of things in series that can each fail. So a write can fail, but you might want to do a loop around it.
02:09:23 <duerig> So you might have another keyword:
02:09:26 <duerig> attempt_all
02:09:27 <duerig> {
02:09:32 <duerig> f_can_fail()
02:09:36 <duerig> g_can_fail()
02:09:36 <duerig> }
02:09:44 <duerig> fail (f_type || g_type)
02:09:47 <duerig> {
02:09:53 <duerig> match on type:
02:09:55 <duerig> }
02:10:00 <duerig> That kind of thing.
02:10:49 <duerig> This kind of structure would be much harder with simple matching on return type.
02:11:10 <duerig> But is more of an exception-type mechanism. Except that it does not unwind the stack past multiple functions.
02:12:26 <faxathisia> maybe with Haskell (esp. lists and other monads), you may be able to implement these ideas
02:13:05 <duerig> Hmm. Maybe. Does Haskell have lisp-style macros?
02:15:09 <faxathisia> no
02:16:01 <duerig> Hmm. Maybe I could also do it using one of the syntax-extenders for Java.
02:39:35 <duerig> Thanks for your comments.
02:39:37 <duerig> Take care.
02:39:39 -!- duerig has left (?).
02:56:37 -!- mtve has quit (Read error: 110 (Connection timed out)).
04:05:48 -!- Sgeo has joined.
06:04:23 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
06:12:51 * pikhq flings a goblin at you
06:22:22 -!- weilawei has joined.
06:28:33 * faxathisia whacks it back at pikhq with a racket
06:29:58 * pikhq wonders what card you have that lets you do that
06:55:49 <lament> anybody plays violin here?
06:56:56 <bsmntbombdood> i used to
06:57:10 <lament> what stopped you?
06:57:48 <bsmntbombdood> laziness
07:00:58 <bsmntbombdood> why?
07:05:05 <lament> ah.
07:06:01 -!- oerjan has joined.
07:56:49 -!- mtve has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:55:58 -!- helios24 has quit (Read error: 104 (Connection reset by peer)).
09:56:15 -!- helios24 has joined.
10:03:16 -!- helios24_ has joined.
10:04:00 -!- helios24 has quit (Read error: 113 (No route to host)).
10:39:07 <oerjan> ooh, irregular webcomic christmas special. not for the weak.
10:39:19 <oerjan> or the sane, for that matter.
10:39:25 -!- helios24 has joined.
10:41:06 -!- helios24_ has quit (Read error: 113 (No route to host)).
10:43:26 -!- helios24 has quit (Read error: 113 (No route to host)).
10:43:34 -!- helios24 has joined.
10:49:56 -!- jix has joined.
11:21:20 -!- faxathisia has quit ("Leaving").
11:42:40 -!- Sgeo has joined.
12:18:45 -!- sebbu has quit (Read error: 110 (Connection timed out)).
12:19:19 -!- sebbu has joined.
12:35:57 -!- RedDak has joined.
12:36:32 -!- dak has joined.
12:36:55 -!- dak has quit (Read error: 104 (Connection reset by peer)).
14:59:41 -!- RedDak has quit (Remote closed the connection).
15:00:29 -!- meta7 has joined.
15:05:16 -!- meta7 has left (?).
15:49:23 -!- sebbu has quit (Connection timed out).
15:55:03 -!- sebbu has joined.
16:14:55 -!- sebbu has quit (Read error: 60 (Operation timed out)).
16:16:12 -!- jix has quit ("CommandQ").
16:22:38 -!- oerjan has quit ("Dinner").
16:32:19 -!- sebbu has joined.
16:36:30 -!- Sgeo has quit (Remote closed the connection).
16:39:23 -!- Sgeo has joined.
16:40:43 -!- sebbu2 has joined.
16:56:42 -!- sebbu has quit (Read error: 110 (Connection timed out)).
17:09:27 -!- jix has joined.
19:12:39 -!- oerjan has joined.
19:41:09 -!- dgm has joined.
19:51:09 -!- AnMaster has quit ("rebooting to older kernel, 2.6.23 breaks with usb after a few days").
20:57:41 -!- jix has quit (Nick collision from services.).
20:57:51 -!- jix has joined.
21:16:46 -!- sebbu2 has quit (No route to host).
21:20:58 -!- sebbu has joined.
21:49:58 -!- dgm has quit (Read error: 104 (Connection reset by peer)).
21:51:42 -!- oerjan has quit ("leaving").
21:53:34 -!- sebbu has quit (Read error: 113 (No route to host)).
21:55:06 -!- sebbu has joined.
23:13:52 -!- Slereah- has joined.
23:25:07 -!- RedDak has joined.
23:30:26 -!- Slereah has quit (Read error: 110 (Connection timed out)).
23:37:40 -!- RedDak has quit (Remote closed the connection).
23:58:33 -!- jix has quit ("CommandQ").
2007-12-25
00:08:49 -!- RedDak has joined.
00:44:57 -!- RedDak has quit (Remote closed the connection).
00:47:15 -!- RedDak has joined.
01:16:15 -!- Slereah has joined.
01:18:36 -!- RedDak has quit (Remote closed the connection).
01:21:00 -!- RedDak has joined.
01:33:48 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
01:34:42 -!- Slereah- has joined.
01:37:07 -!- RedDak has quit (Remote closed the connection).
01:41:13 -!- Slereah has quit (Read error: 110 (Connection timed out)).
02:13:31 -!- Slereah has joined.
02:29:55 -!- faxathisia has joined.
02:31:28 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
04:57:03 -!- oerjan has joined.
05:29:19 <pikhq> Hello, oerjan.
05:29:47 <pikhq> -- Champion, Minister Without Portfolio, Ambassador, Scorekeepor, and Agoran Spy pikhq.
05:30:53 <oerjan> so a Minister Without Portfolio with two portfolios on the side?
05:31:07 <pikhq> LMAO
05:31:22 <pikhq> Yeah, the Minister Without Portfolio laws are kinda. . . Weird.
05:31:35 <pikhq> Basically, the last 4 winners are Ministers Without Portfolio.
05:31:55 <pikhq> Inevitably, the people who win are involved in Agora, and so are probably officers.
05:32:02 <oerjan> initial > obligatory
05:32:31 <pikhq> Um. . .
05:32:38 * oerjan briefly entertains the idea of pretending that was _not_ on the wrong channel
05:33:06 <pikhq> :p
05:33:57 * pikhq is amused by how currencies can be created by their recordkeepors by announcement. . .
05:36:30 * oerjan recalls the Euclid currency he was recordkeepor for. It was counted in multiples of pi...
05:36:39 <pikhq> LMAO
05:36:56 <pikhq> I can create any number of points in my posession. Fun stuff.
06:05:55 <bsmntbombdood> sup bitches
06:06:10 <pikhq> クリスマスと思う。
06:11:12 -!- DocWilco has left (?).
06:54:11 <faxathisia> could have a programming language with regex as the type system ?
07:04:42 <pikhq> I dunno.
07:05:10 <pikhq> I do know that there is a programming language implemented via bytecode compilation with the compiler in bytecode, though.
07:05:52 <Sgeo> faxathisia, actually, PSOX, even though it isn't a programming language, might end up using regexes to define types
07:06:37 <pikhq> Said language seems to have its types implemented within a subset of itself.
07:06:50 <pikhq> Mmm. Plof.
07:07:31 <pikhq> Although I must wonder: why is function application an overloadable operator? :p
07:10:35 <faxathisia> Sgeo lol :D
07:10:40 <Sgeo> PSOX's type system: http://trac2.assembla.com/psox/browser/trunk/spec/psox-types.txt
07:10:54 * Sgeo really dislikes the thought of using Regex, but doesn't have any better ideas
07:11:07 <faxathisia> hm.. Plof
07:11:28 <pikhq> It's a good language. . .
07:11:39 <pikhq> The implementation of it so far is insane. Brilliant, but insane.
07:11:51 <pikhq> opFunction = opFunction(opFunction); kinda sums it up.
07:12:10 <faxathisia> I never heard about Plof
07:12:25 <pikhq> It's Gregor's plaything. . .
07:12:30 <faxathisia> oooohhhhh
07:12:33 <faxathisia> I think I know it
07:33:34 * Sgeo works out how to do PSOX safety -- the user gives the PSOX interpreter a switch to determine whether or not File I/O should be sandboxed..
07:36:10 <Sgeo> G'night all
07:36:26 -!- Sgeo has quit (Client Quit).
07:37:27 <faxathisia> hehe
07:37:28 <faxathisia> r"((?:\x01" + some_type_regex + r")*?\x00)"
07:37:29 <faxathisia> dependant types
07:37:36 <faxathisia> this is neat
07:46:49 <oerjan> yes!
07:47:07 <oerjan> i mean, general positive attitude
07:47:29 <oerjan> and merry christmas
07:47:45 <faxathisia> happy tuesday
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:44:10 <faxathisia> if I have a program of size N it's capable of computing an object of size O(N^2) :S
08:44:27 <faxathisia> I guess it's more like O(something massive).. ?
08:44:54 <oerjan> there are space complexity classes too
08:45:28 <faxathisia> I'm not even sure how to describe what I'm asking
08:45:31 <faxathisia> is it clear what I meant?
08:45:40 <oerjan> no
08:46:28 <oerjan> if we are talking a turing complete language here...
08:46:53 <faxathisia> oh there would be no bound on the length of what it computes based on the program size
08:46:58 <oerjan> then something massive is possible, yes
08:47:05 <oerjan> no computable bound
08:47:19 <oerjan> if there were, you could use it to solve the halting problem
08:48:25 <oerjan> well, assuming the language has reasonable power to construct things
08:48:58 <oerjan> since languages that only return yes/no answers can be considered turing-complete
08:49:19 <faxathisia> ohh
08:49:42 <faxathisia> in that case, a better question is.... What's the biggest term/number you can compute in a program with size <= x
08:50:16 <oerjan> er in that case the answer is: a boolean :)
08:50:25 <faxathisia> not in that language :p
08:50:46 <faxathisia> I think some people did this with C, where the int type has arbitrary precision
08:51:02 <oerjan> but if we assume that your language can compute objects of the same size as its number of steps...
08:51:34 <oerjan> then it becomes essentially the question of number of steps, so the halting problem
08:52:11 <oerjan> and your answer is a busy beaver function
08:55:09 <faxathisia> why busy beaver?
08:57:56 <oerjan> http://en.wikipedia.org/wiki/Busy_beaver
08:58:39 <faxathisia> oh I see
08:58:52 <faxathisia> It's just that, anything which does well at this task is a busy beaver by definition
08:59:08 <faxathisia> I was assuming busy beaver was a certain algorithm
10:36:05 -!- Slereah- has joined.
10:41:34 -!- jix has joined.
10:59:32 -!- Slereah has quit (Read error: 110 (Connection timed out)).
11:01:05 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
11:16:25 -!- RedDak has joined.
11:33:52 -!- Slereah- has joined.
11:41:39 -!- RedDak has quit (Remote closed the connection).
11:44:34 -!- jix has quit ("CommandQ").
11:47:49 -!- jix has joined.
14:37:48 -!- Slereah has joined.
14:52:24 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
15:46:49 -!- sebbu2 has joined.
15:52:32 -!- sebbu3 has joined.
15:54:39 -!- puzzlet has quit (Remote closed the connection).
15:54:46 -!- puzzlet has joined.
15:55:00 -!- sebbu has quit (Read error: 110 (Connection timed out)).
16:08:40 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
16:37:52 -!- RedDak has joined.
16:58:27 -!- oerjan has quit ("leaving").
17:57:22 -!- lewiji has joined.
18:18:09 -!- lewiji has quit.
20:57:38 -!- jix has quit (Nick collision from services.).
20:57:48 -!- jix has joined.
21:37:50 -!- RedDak has quit (Read error: 113 (No route to host)).
22:03:57 -!- sebbu3 has changed nick to sebbu.
22:52:14 -!- faxathisia has quit ("Leaving").
23:53:23 -!- jix has quit ("CommandQ").
2007-12-26
01:16:05 -!- Slereah- has joined.
01:32:51 -!- Slereah has quit (Read error: 110 (Connection timed out)).
05:18:53 -!- oerjan has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:54:18 -!- sebbu2 has joined.
09:08:08 -!- sebbu3 has joined.
09:11:43 -!- RedDak has joined.
09:13:11 -!- Slereah has joined.
09:16:21 -!- sebbu has quit (Read error: 110 (Connection timed out)).
09:20:24 -!- RedDak has quit (Remote closed the connection).
09:24:44 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
09:31:03 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
09:59:14 -!- RedDak has joined.
09:59:56 -!- sebbu3 has changed nick to sebbu.
10:03:25 -!- RedDak has quit (Remote closed the connection).
10:23:43 -!- puzzlet has quit (Remote closed the connection).
10:23:50 -!- puzzlet has joined.
10:30:21 -!- oerjan has quit ("Lunch").
11:15:45 -!- jix has joined.
11:42:57 -!- jix has quit ("CommandQ").
12:11:22 -!- puzzlet has quit (Remote closed the connection).
12:11:30 -!- puzzlet has joined.
12:31:41 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
12:32:45 -!- puzzlet has joined.
15:49:40 -!- sebbu has quit (Connection timed out).
15:55:09 -!- sebbu has joined.
16:11:41 -!- sebbu has quit (Read error: 60 (Operation timed out)).
16:21:31 -!- sebbu has joined.
17:01:17 -!- sebbu2 has joined.
17:07:35 -!- oerjan has joined.
17:10:38 -!- sebbu has quit (Connection timed out).
17:10:39 -!- sebbu2 has changed nick to sebbu.
17:23:11 -!- SimonRC has joined.
18:14:25 -!- Sgeo has joined.
19:01:30 -!- puzzlet_ has joined.
19:11:41 -!- puzzlet has quit (Connection timed out).
19:18:33 -!- Slereah- has joined.
19:36:31 -!- Slereah has quit (Read error: 110 (Connection timed out)).
20:09:19 <Slereah-> [b[cr:PeRIPeRIP0RIRIP0LELE:o]|o[1:RIPxLELELE:o;0::q]|q[0:RIRI:q;1:RIRI:q;#:P1LE:p]|p[x:ERRI:q;e:RI:f;#:LELE:p]|f[#:P0LELE:o;cr:RIRI:f]][0=#;ims=b;d30;etTecF;t1]
20:09:22 <Slereah-> Yes!
20:12:20 <pikhq> :-O
20:21:24 -!- jix has joined.
20:27:18 <Slereah-> It can do the second example of Turing paper.
20:27:24 <Slereah-> The one I was unable to do by hand!
20:27:31 <Slereah-> I can now continue reading that paper!
20:58:04 -!- jix has quit (Nick collision from services.).
20:58:14 -!- jix has joined.
21:37:45 -!- oerjan has quit ("Good night").
21:44:40 * SimonRC tries to remember what cyberpunk books were recommended to him here recently...
21:45:28 <SimonRC> Slereah-: nice syntax
21:45:32 <SimonRC> what is it for?
21:46:31 <bsmntbombdood> duh duh dee cee
21:50:08 <SimonRC> ???
21:56:09 <oklopol> ?
21:56:14 <oklopol> "???"?
22:00:13 <SimonRC> bsmntbombdood: what is "duh duh dee cee"?
22:01:40 <oklopol> duh, it's dee cee...
22:01:51 <oklopol> don't you know bsmntbombdood at all :\
22:03:19 * SimonRC buys House of Leaves
22:03:44 <SimonRC> The only book that is so crazy its proper spelling includes a colour change
22:04:25 <oklopol> i hear it owns ass
22:04:32 <SimonRC> I shall find out
22:04:32 <oklopol> heard from my good friend wikipedia
22:04:42 <oklopol> last time someone mentioned it here
22:04:47 <oklopol> prolly you or lament
22:05:05 <SimonRC> According to a ceratin troll I know, The cover isn't big enough for the pages inside it
22:05:12 <SimonRC> and the typesetting is just nuts
22:05:13 <oklopol> i have no idea where lament was on the list of possible mentioners, in case he wasn't it :)
22:05:20 <oklopol> *why lament..
22:06:37 <Slereah-> SimonRC : It's my Turing machine.
22:06:56 <SimonRC> ok
22:07:40 <Slereah-> Does Lazy K only output combinators?
22:09:02 <oklopol> does lazy k output?
22:09:34 <Slereah-> I think.
22:09:43 <Slereah-> I'm habing a hard time using it.
22:12:10 <oklopol> haha you b'd instead of v'ing :)
22:12:21 <Slereah-> My keyboard has a cold.
22:12:22 <oklopol> b'ing is like being, but without the e
22:12:53 <oklopol> and i don't mean that literally
22:12:57 <oklopol> i'm *deep*, you see
22:13:13 <oklopol> also tired, doesn't show, right? thought so, definately not
22:13:15 <oklopol> definitely
22:18:50 <Slereah-> Meh. My FTP account doesn't work.
22:26:02 <Slereah-> SimonRC : http://paste-it.net/5432/raw/
22:26:04 <Slereah-> Thusly.
22:26:32 <Slereah-> That's the big reason why I wrote that Turing machine. I couldn't do it by hand.
22:27:13 <SimonRC> what does it do?
22:27:30 <Slereah-> It's just a program in the Turing paper.
22:27:43 <Slereah-> It prints 0010110111011110111110111111 ...
22:28:14 <Slereah-> The 010101010101... program was easy to do by hand, but not this one.
22:29:56 <oklopol> sum(1..Inf\{"1"*_+"0"
22:31:05 <oklopol> writing an interpreter in python without using python's recursion when recursing is hard...
22:31:44 <oklopol> well, not as such, i guess i just cornered myself with my approach
22:32:45 <Slereah-> What are you writing?
22:33:14 <oklopol> a simple interpreter for osl
22:33:16 <oklopol> oklotalk stack langauge
22:33:18 <oklopol> *languages
22:33:21 <oklopol> *language
22:34:49 <oklopol> the problem is, i need the built-in "+", when applied to a number, to first convert the second argument to a number, if it's not a built-in ...and by built-ins i mean primitives xD... the problem is, i can't do that from inside the code of the operator, since i'd need recursion
22:35:21 <oklopol> so... i need to put the conversion operator on the stack... and + will be called again, right after the conversion... i just feel that's ugly
22:35:52 <oklopol> bad explanation, but i don't think anyone is that interested anyway
22:41:43 <SimonRC> oklopol: why can't you recurse?
22:43:01 <Slereah-> It's the law.
22:43:07 <oklopol> my python does not support tail recursion
22:43:29 <oklopol> i think it's a bit ironical considering the naim
22:43:30 <oklopol> ...
22:43:32 <oklopol> naim? :)
22:43:55 <Slereah-> NOM NOM NOM
22:51:53 <SimonRC> well
22:52:28 <SimonRC> If you create a version of Python that supports tail recursion, it is mandatory to call it "Oroborous"
22:52:34 <SimonRC> or however one spells it
22:54:18 <oklopol> ouroboros
22:54:22 <oklopol> and there is one
22:54:23 -!- ihope has joined.
22:54:29 <oklopol> i don't think that's its name
22:54:53 <SimonRC> curses
22:54:59 <SimonRC> or poss
22:55:08 <SimonRC> ibly libpycurses
22:57:44 * oklopol curses too
22:59:26 * ihope waits for something to happen in B Nomic
22:59:56 <Slereah-> If I want a function to return n values, do I just do a1, a2, a3, ..., an = funct(x, y, z)?
23:00:03 <oklopol> i prefer the Heterosexual Nomic
23:00:12 * oklopol is sooo puny.
23:00:34 <oklopol> Slereah-: python?=
23:00:35 <oklopol> then yes
23:00:37 <Slereah-> Yessssss
23:01:12 <Slereah-> I'm trying to shorten mah machine.
23:01:29 <Slereah-> It's full of shit because I didn't use functions.
23:02:02 <Slereah-> I think the code to move the tape around appears four time.
23:02:04 <ihope> Heterosexual Nomic?
23:03:22 <oklopol> b has a homonym with a sexual meaning
23:03:28 <oklopol> errr
23:03:36 <oklopol> actually, not exactly a homonym :)
23:03:52 <Slereah-> A gaynym.
23:03:52 <Slereah-> File "C:/Documents and Settings/Lereah/Mes documents/turingprog10.py", line 264, in <module>
23:03:53 <Slereah-> t[tape], bande[tape]=movehead("RI", bande[tape], t[tape], disptape, k, char0)
23:03:53 <Slereah-> TypeError: 'int' object is not iterable
23:03:53 <oklopol> but, a definite connection
23:04:08 <Slereah-> Halp!
23:04:09 <oklopol> you're returning an int, and trying to put it in multiple thingies.
23:04:20 <oklopol> pattern matching int -> tuple
23:04:29 <oklopol> that simply cannot be done!
23:04:36 <SimonRC> indeed
23:04:43 <Slereah-> There's just two returns.
23:04:46 <Slereah-> head, and tape.
23:04:47 <oklopol> kay
23:04:56 <oklopol> two returns?
23:04:58 <Slereah-> Head is a number, tape is not.
23:05:09 <oklopol> return head,tape =?
23:05:14 <Slereah-> Ah, I see.
23:05:17 <Slereah-> I did return head
23:05:20 <Slereah-> Return tape
23:05:25 <oklopol> guessed so
23:05:53 <oklopol> 3rd error i've fixed today without seeing code :)
23:06:18 <Slereah-> Hope this work. It's hard to try many different codes with that shitty syntax.
23:07:26 <oklopol> shitty syntax?
23:09:24 <Slereah-> http://membres.lycos.fr/bewulf/Russell/99Turingprog5.txt
23:09:53 <Slereah-> Hm. Apparently, it works. But I could probably type faster than this.
23:10:14 <SimonRC> you appear to have thing called e-acute
23:10:18 <SimonRC> and degree-sign
23:10:22 <SimonRC> argh
23:10:31 <Slereah-> They're not part of the syntax.
23:10:40 <Slereah-> I just needed a lot of markers.
23:10:44 <SimonRC> indeed
23:10:48 <SimonRC> I guessed that
23:12:22 <Slereah-> Shit. Even my old version doesn't work anymore.
23:12:26 <Slereah-> What the fuck did I do.
23:13:50 <Slereah-> Oh. Just forgot to comment out something.
23:14:15 <Slereah-> So the lesser mystery is : how come using a function made that program ten times slower?
23:14:47 -!- RedDak has joined.
23:15:57 <Slereah-> I feel it has something to do with that copy of the tape, who's already ridiculously huge.
23:16:44 <Slereah-> I should leave that out of the function.
23:21:25 <Slereah-> Yes, yes it was
23:21:41 <Slereah-> Infinite tapes are long to copy.
23:28:54 -!- ihope has quit ("CGI:IRC").
23:28:58 -!- jix has quit ("CommandQ").
23:29:38 -!- ihope has joined.
23:30:10 <ihope> This isn't working all that well.
23:30:39 -!- ihope has quit (Client Quit).
23:32:04 -!- ihope has joined.
23:32:07 <Slereah-> Well, I scraped 20 lines.
23:32:11 <ihope> Enough of that.
23:32:14 <Slereah-> And it seems to still work.
23:52:39 -!- RedDak has quit (Remote closed the connection).
2007-12-27
00:26:36 -!- ihope has quit ("CGI:IRC (Ping timeout)").
00:55:07 <Slereah-> Why did Alan Turing used those ugly characters for his paper?
00:55:13 <Slereah-> I can barely make them out.
00:59:52 <lament> it's cause he was GAY
01:00:46 <Slereah-> Damn that cockmongler!
01:04:42 -!- Slereah has joined.
01:12:32 <SimonRC> zzzzzz
01:19:22 -!- digital_me has joined.
01:30:22 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
01:35:48 <Slereah> "A number which is a description number of a circle-free machine will be called a satisfactory number. In 8 it is shown that there can be no general process for determining whether a given number is satisfactory or not.
01:35:51 <Slereah> Heh.
01:42:42 -!- oklopol has quit (Remote closed the connection).
04:58:43 -!- Sgeo has quit (Success).
05:41:26 <bsmntbombdood> SimonRC: dc
05:43:01 <bsmntbombdood> the best language ever
05:48:50 <pikhq> Not true.
05:49:00 <pikhq> There are better RPN calculators, and better languages.
05:49:11 <pikhq> Not that dc is bad; just that there's better.
06:02:14 <bsmntbombdood> wrong
06:07:15 <bsmntbombdood> hey pikhq
06:07:29 <bsmntbombdood> when you got your driver's license, did you get a temporary one on a slip of paper?
06:07:54 <pikhq> I don't have a driver's license.
06:08:09 <pikhq> But I did get a temporary *permit* on a slip of paper before my permit was shipped to me, yes.
06:08:28 <bsmntbombdood> hmm ok
06:12:09 -!- oerjan has joined.
06:14:42 -!- digital_me has quit (Read error: 104 (Connection reset by peer)).
06:20:47 <oerjan> Slereah: lazy K uses a special encoding of streams as combinators. The program is a function from the encoding of the input to the encoding of the output.
07:13:37 -!- GreaseMonkey has joined.
07:49:59 -!- GreaseMonkey has quit ("Who keeps reincarnating sliced bread?!").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:10:21 -!- oerjan has quit ("leaving").
08:45:48 -!- pikhq has quit (Read error: 110 (Connection timed out)).
09:18:02 -!- pikhq has joined.
09:49:53 -!- sebbu has quit (Read error: 110 (Connection timed out)).
09:54:39 -!- sebbu has joined.
10:28:11 -!- sebbu2 has joined.
10:44:16 -!- sebbu has quit (Read error: 110 (Connection timed out)).
13:19:52 -!- jix has joined.
13:26:57 -!- helios_24c3 has joined.
13:35:13 -!- RedDak has joined.
13:54:34 -!- helios_24c3 has quit ("Leaving").
14:19:13 <Slereah> Hm.
14:19:21 <Slereah> What's the size of a Python integer
14:19:23 <Slereah> ?
14:19:55 <Slereah> Ah, found it.
14:39:07 -!- jix has quit ("CommandQ").
15:24:42 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
15:40:55 <Slereah> Will Python assume a number to be a long integer if it goes beyond the limit, or do I have to define it as one?
15:45:59 <Slereah> Well, apparently. It just needed 15 minutes to arrive there apparently!
16:10:23 <tesseracter> hmm, i thought i was in #python for a second there...
16:10:35 * tesseracter does a /whois tesseracter
16:11:21 <tesseracter> Slereah: python will make the int longer automagically
16:18:50 -!- helios_24c3 has joined.
16:38:52 -!- helios_ has joined.
16:39:59 -!- helios_24c3 has quit (Read error: 113 (No route to host)).
16:40:31 -!- jix has joined.
17:01:10 -!- oklopol has joined.
17:27:03 <Slereah> Don't worry tesseracter. It's for esolang-related purpose.
17:28:31 <tesseracter> no worries. did you see the python 1-liner calculator?
17:29:01 <Slereah> I think.
17:29:32 <tesseracter> im still looking for #obfuscated
17:30:01 <tesseracter> that channel must be just as silly as eso when it gets going
17:30:44 <tesseracter> so ive been looking for a good app to write in LOLCODE... any ideas?
17:31:06 <Slereah> A loop that writes "DESU"?
17:32:48 <tesseracter> maybe like, a alicebot written in LOLCODE... a LOLbot?
17:33:27 <tesseracter> i bet it would be pretty good turing test competitor
17:34:04 <Slereah> It might be impossible to distinguish from a /b/tard!
17:36:32 <pikhq> Don't do LOLCODE.
17:36:41 <pikhq> It's not esoteric, it's merely a crime against humanity.
17:42:45 <tesseracter> oh hai pikhq
17:42:54 <tesseracter> o rly?
17:44:39 <pikhq> My point.
17:44:56 <tesseracter> pikhq: LOLCODE is like a vacation after working with brainfuck. bf is a crime too, but thats why were in #esoteric
17:45:06 <pikhq> If I can read the language without going "WTF?" or without reading it at all, then it is not esoteric.
17:45:15 <pikhq> s/reading/understanding/
17:45:44 <pikhq> A real esolang? {M[m(_o)o?"Hello, world!"(_o)O.!]}
17:45:47 <tesseracter> pikhq: then obviously you understand LOL too much.
17:46:04 <pikhq> It's not hard at all.
17:46:27 <pikhq> LOLCODE is essentially isomorphic to, say, Perl or Python. Trivial.
17:46:43 <pikhq> It's about as 'interesting' as, say, MOO.
17:47:05 <pikhq> (and, unlike MOO, not even remotely esoteric. Just boring.)
17:48:06 <Slereah> But it's full of syntactic kittens!
17:48:56 <pikhq> It's mundane syntax, and run-of-the-mill semantics.
17:49:32 <Slereah> Yes.
17:49:36 <Slereah> But with kittens.
17:49:42 <pikhq> Why can't it have more interesting things, like, say, COMEFROM?
17:50:03 <pikhq> Or all variables as Rubik's cubes?
17:50:58 <Slereah> Well, it wasn't invented to be esoteric.
17:51:10 <Slereah> Much like the name indicates, it was pretty much for the lulz.
17:51:39 <pikhq> I just hate it when people think it's 'esoteric'.
17:52:04 <pikhq> Granted, most of that, we got over months ago, since people stopped coming into #esoteric to talk about it.
17:54:14 -!- oerjan has joined.
17:54:41 <Slereah> Hello.
17:56:18 <pikhq> Good morning, H. Champion Oerjan.
17:56:19 <oerjan> 'evening
17:57:07 <tesseracter> pikhq: i dunno. i think its a good thing to have people being introduced to worthless coding via LOLCODE. coding just for the hell of it. do you actually want everyone coming in here 1. complaining that esolangs are worthless, 2. asking for help in their malbolge programs?
17:57:24 <oerjan> why thank you H. Champion Pikhq.
17:58:03 * pikhq begins to wish his proposals on Madness, Elephants, and Referential Titles had passed. . .
17:58:23 <pikhq> "Madness" to make the statement "We're all mad" TRUE, thereby overturning the courts.
17:58:29 <oerjan> Hm, Referentially Transparent Titles...
17:58:33 <pikhq> Elephants were going to be over there, doing the same.
17:58:42 <tesseracter> what was everyones first esolang they heard of? mine was java2k.
17:58:59 <oerjan> probably INTERCAL, long ago
17:59:11 <pikhq> And Referential Titles would just formalise things like "H. Champion foo" and "H. Formerly-Registered bar", and (what I'm most proud of) "Suffusion of Yellow Rishonomic".
17:59:27 <oerjan> i vaguely recall hearing about it long before finding the esolang community
17:59:47 <Slereah> Mine was just Brainfuck.
18:00:03 <Slereah> Although... No, it was Intercal.
18:00:23 <Slereah> I saw it on some drawing on programming languages.
18:00:29 <Slereah> and from there I found Brainfuck.
18:01:55 <pikhq> I first heard of Brainfuck.
18:02:07 <pikhq> From there, I went batshit-insane. :p
18:03:49 <oerjan> well clearly Unlambda was what really pulled me in
18:05:21 <oklopol> oerjan is such a deviant!
18:06:56 <Slereah> Well, for using Unlambda, you prety much have to be!
18:07:20 <Slereah> I wonder if there's a language that's based on -recursive fonction.
18:07:35 <Slereah> Some sort of unlambda *rimshot*
18:09:38 <pikhq> Since oerjan is a mathematician, we expect him to be drawn to the functional languages.
18:09:51 <pikhq> Since he codes in Haskell, this is only natural.
18:10:16 <pikhq> And how can one blame him for liking the functional Brainfuck?
18:10:30 <oerjan> actually i think i learned haskell _after_ unlambda. i don't quite remember.
18:10:58 <pikhq> The point remains.
18:11:20 <oerjan> also, i had already heard of combinatory logic
18:11:49 <oerjan> and i was wondering if one could make a weird programming language based on it - and found out i was reinventing the wheel
18:12:44 <pikhq> Ah, SKI.
18:13:59 <oerjan> may have been someone in Agora that pointed it out
18:14:43 <pikhq> Could be.
18:15:27 -!- jix has quit ("This computer has gone to sleep").
18:25:33 -!- jix has joined.
18:26:36 -!- helios_ has quit ("Leaving").
18:29:22 <Slereah> I wish I knew of the split function before.
18:29:31 <Slereah> It's not pleasant to dig back in a code.
18:36:52 -!- jix has quit ("CommandQ").
18:40:28 -!- helios_24c3 has joined.
18:46:40 -!- calamari has joined.
18:58:29 -!- jix has joined.
19:33:38 -!- jix has quit (Nick collision from services.).
19:33:50 -!- jix has joined.
19:34:07 -!- jix has quit (Remote closed the connection).
19:42:34 -!- jix has joined.
19:57:29 <dbc> Okay. A god does not need means to reach his ends. Right? He's not enmeshed in a causal framework, as we are, so he doesn't have to do thing A to make thing B happen. If he wants B to happen, it happens.
19:58:08 <dbc> So forget the "giving his son to save mankind" stuff. If his son got tortured in mortal form, it's because God wanted him tortured.
19:58:13 <dbc> Right?
20:01:46 <oklopol> yes, bad god
20:02:31 <Slereah> Old hat.
20:02:44 <Slereah> But maybe we can make a language out of it.
20:03:21 <oerjan> just the problem of evil again, really
20:03:25 -!- Sgeo has joined.
20:03:46 <Slereah> Can it be made equivalent to the halting problem?
20:07:15 <Sgeo> Slereah, what?
20:08:01 <Slereah> Religious discussion.
20:52:12 -!- Slereah- has joined.
21:09:55 -!- Slereah has quit (Read error: 110 (Connection timed out)).
21:15:17 -!- oerjan has quit ("Good night").
21:30:54 * Sgeo pokes pikhq and GregorR et. al.
21:31:00 <Sgeo> Anyone still care about PSOX?
21:31:53 <pikhq> Partially.
21:32:02 <pikhq> However, I'm Ploffing ATM.
21:32:06 <pikhq> Well, my mind is.
21:32:13 <pikhq> My body is trying *not* to clean my room.
21:40:55 <Sgeo> Important question that I've asked before, but not as clearly as would be helpful: Is it possible to tell whether a process is waiting for input on STDIN?
21:41:20 <pikhq> I actually don't think so.
21:47:36 -!- RedDak has joined.
21:50:45 <Sgeo> Hi RedDak
22:12:45 -!- jix has quit ("CommandQ").
22:16:18 -!- jix has joined.
22:16:22 -!- pikhq has quit (Read error: 110 (Connection timed out)).
22:43:55 -!- helios_24c3 has quit ("Leaving").
22:46:53 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
22:50:55 -!- oklopol has joined.
22:54:40 -!- pikhq has joined.
22:58:19 -!- jix has quit (Read error: 113 (No route to host)).
23:40:44 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
2007-12-28
00:05:23 -!- GregorR has quit (Read error: 110 (Connection timed out)).
00:06:03 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
00:09:18 -!- GregorR has joined.
00:09:43 -!- oklopol has joined.
00:17:21 -!- ihope has joined.
00:17:49 <ihope> Small world, I guess. I conclude that everyone here is interested in Nomic.
00:18:26 <Slereah-> Wut?
00:19:12 <oklopol> somewhat
00:19:51 <ihope> Oerjan Johansen and pikhq, for two.
00:20:57 <oklopol> yes, though i think they are the only ones
00:21:17 <oklopol> also, you should not use oerjan's full name without using pikhq's
00:21:32 <oklopol> for by doing so you revealed you don't know his name.
00:22:13 <Slereah-> Yes, we now know your TERRIBLE SECRET
00:23:03 <ihope> Josiah "pikhq" Worcester, then?
00:23:30 <ihope> There are other Oerjans; I don't think there's a significant number of pikhqs.
00:28:10 <ihope> Therefore, I clearly knew pikhq's real name all along.
00:29:23 <oklopol> right, sorry
00:29:31 * oklopol bows deep
00:34:05 <ihope> Then there's Kevan Davis, who is not part of this community as far as I know.
00:56:04 <ihope> And there's Douglas Hofstadter, who is a real person.
01:13:15 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
01:15:53 -!- Sgeo has joined.
01:16:36 <Sgeo> Should I work on PSOX?
01:18:01 <oklopol> yers
01:18:09 <Slereah-> What's the alternative?
01:18:58 -!- ihope has quit ("CGI:IRC (Ping timeout)").
01:19:43 <GregorR> http://www.youtube.com/watch?v=uBGzHfdr90w // I built a trombute!
01:20:39 <Sgeo> Slereah-, not working on PSOX because nobody cares about PSOX
01:20:58 <Slereah-> Quite the dilemma.
01:21:34 <Sgeo> I mean, if people showed interest in it, I'd work on it
01:21:41 <Sgeo> Is anyone here interested?
01:21:44 <oklopol> Sgeo: i'm interested in the result, yes
01:22:02 <oklopol> GregorR: is that an invention of yours?
01:22:10 <oklopol> too lazy to googlify, once again
01:22:31 <GregorR> oklopol: Yup.
01:22:38 <oklopol> so, details
01:22:43 <oklopol> wtf is it
01:22:43 <Sgeo> Also, anyone here who disliked the strange safety stuff: It's being redone. Safety stuff will be specified on the command line, e.g. "--safety nohttp,fullfileio"
01:22:57 <oklopol> yeah, that's better
01:22:57 <GregorR> oklopol: It's a giant slide flute.
01:22:59 <Sgeo> Good idea?
01:23:20 <Sgeo> Instead of requesting permissions while the program runs, etc. etc. etc.
01:23:28 <Sgeo> There will still be a safety log, though
01:23:33 <oklopol> run-time requests are a stupid idea, imo
01:23:39 <GregorR> oklopol: A giant slide flute made of PVC pipe, specifically :P
01:24:05 <oklopol> too dark, can't see how it works :<
01:24:25 <GregorR> Yeah, sorry, wasn't a good place to record a video :P
01:24:58 * Sgeo hates the fact that requests for input are required
01:25:20 <Sgeo> And also, in non-PSOX programs run on a PSOX interpreter, there may be a condition I call "Comma-Hang"
01:25:32 <Sgeo> The canonical BF CAT program suffers from it
01:26:05 <Sgeo> +[>,.<]
01:26:32 <Sgeo> Because it doesn't send out anything indicating that it ISN'T a PSOX program, and the BF interpreter waits
01:26:39 <Slereah-> +[,.]
01:26:39 <Sgeo> While the PSOX interpreter waits..
01:26:48 <Sgeo> Slereah-, that stops on NUL
01:27:22 <GregorR> oklopol: http://www.codu.org/pics/thumbnails.php?album=3 // this is better for seeing how it actually works.
01:27:31 <Slereah-> How do you type in NUL?
01:27:34 <Slereah-> alt 000?
01:28:13 <Sgeo> Don't know if you can type it in, but the problem's still there
01:28:50 <Slereah-> I can live with that.
01:28:57 <oklopol> GregorR: quite awesome :D
01:29:19 <oklopol> i gotta make one myself
01:30:15 <Slereah-> What would happen if you glued a small whistle inside it?
01:30:26 <Slereah-> And blew in it while jerking around the tube!
01:31:10 <Sgeo> Will anyone join #psox ?
01:31:19 <GregorR> oklopol: I'm making some instructions, I'll upload them in a while.
01:31:35 <GregorR> Slereah-: That would be just convert the slide flute into a slide whistle *shrugs*
01:32:37 <oklopol> GregorR: parse error
01:32:56 <GregorR> oklopol: ...?
01:33:16 <oklopol> "That would be just convert the slide flute into a slide whistle" i failed to parse this
01:33:37 <oklopol> so... i output an error
01:33:38 <Slereah-> GregorR : Do it!
01:33:50 <Slereah-> Maybe you can make the music of some Mexican movie!
01:34:15 <GregorR> oklopol: Whistles are just flutes with a fipple at the end. Go wikipedia "fipple" for more information :P
01:34:41 <oklopol> parse errors have nothing to do with semantics!
01:35:07 <oklopol> although i do not know what a fipple is.
01:35:28 <Slereah-> http://en.wikipedia.org/wiki/Fipple
01:35:58 -!- boily has joined.
01:36:14 <oklopol> yeah, anyway, i'm getting a bit paranoid here, was "That would be just convert the slide flute into a slide whistle" in fact correct english and i'm just failing badly?
01:36:53 <Slereah-> I'm no English speaker.
01:37:04 <Slereah-> Although the be seems a little out of place.
01:38:18 <oklopol> i was thinking "converting", and wanted to point it out just to be annoying, but GregorR either didn't reread his sentence or i'm indeed losing my mind
01:38:49 <Slereah-> It does not really matter.
01:39:01 <GregorR> My sentence was correct as is.
01:39:06 <oklopol> was afraid so
01:39:08 <GregorR> *as it was :P
01:39:30 <Slereah-> Heh.
01:39:36 <oklopol> now help me parse it, please :)
01:40:24 -!- boily has quit (Client Quit).
01:40:44 <oklopol> blah, okay, i'll just try to forget about it :)
01:42:20 <GregorR> "That would be just convert the slide flute into a slide whistle"
01:42:23 <GregorR> Expand "that":
01:42:34 <GregorR> "Performing the action you've mentioned would be just convert the slide flute into a slide whistle"
01:42:38 <GregorR> A bit more expansion:
01:42:55 <GregorR> "The effect of performing the action you've mentioned would be to convert the slide flute into a slide whistle"
01:43:00 <GregorR> *unhelpful*
01:43:37 <oklopol> well, i did understand it to begin with, just didn't realize you can make lambdas that way too in english
01:43:46 <oklopol> then again, i don't understand much at this hour
01:44:18 <Slereah-> Try coding naked.
01:44:22 <Slereah-> It is so liberating.
01:44:41 <oklopol> i'm actually coding naked as we speak.
01:45:01 <Slereah-> Is it liberating?
01:45:07 <oklopol> well, when we speak, i'm not coding, but i code during the few seconds of silence between messages
01:45:22 <Slereah-> Well, when we speak, you are coding.
01:45:24 <Slereah-> In IRP.
01:45:46 <oklopol> omg, hope i don't get kb's
01:45:48 <oklopol> *kb'd
01:46:12 <Slereah-> Please, banning oklopol = False
01:46:39 <Sgeo> Does this line make sense to people?
01:46:40 <Sgeo> ./PSOX.py -s nonet ./bf myprog.b
01:47:30 <oklopol> to continue the highly cerebral discussion, i'm more half-naked, i have my shirt on, but nothing else
01:47:39 <oklopol> Sgeo: somewhat
01:48:18 <Slereah-> I am two halves.
01:48:22 <Slereah-> It's surprisingly hot in here.
01:48:55 <Slereah-> I'm trying to add m-functions in my Turing machine, but it's hard when you're not concentrated
01:50:30 * oklopol tries to concentrate to make it easier
01:51:04 <Sgeo> oklopol, only somewhat?
01:51:10 <Sgeo> "-s" is safety
01:51:15 <Sgeo> Specifies safety options
01:51:31 <oklopol> okay, then makes 90% sense
01:52:12 <Sgeo> What doesn't make sense?
01:52:47 <oklopol> ./bf
01:52:57 <oklopol> why the ./
01:53:09 <Sgeo> I'm assuming that the bf interpreter is in the same directory
01:53:17 <Slereah-> Pirate smiley.
01:53:32 <oklopol> ummmm
01:54:02 <oklopol> ./psox.py opens the psox server and runs the command given piping stdio to the server?
01:54:12 <Sgeo> yes
01:54:55 <oklopol> i guess i got to 99% then, that's as far as i go after 2am
01:55:35 <Sgeo> What's the last 1%?
01:55:56 <oklopol> that's reserved for times when i'm fully awake
01:56:54 <pikhq> GregorR: Congrats on creating a new instrument.
01:57:17 <pikhq> Now, if you can play it well, I'll applaud you. :p
01:58:02 <oklopol> well, at least you can make out the song
01:58:16 <Slereah-> If someone can play the spoon, and someone else with a string, we can make a band!
01:58:24 <Slereah-> spoons*
01:58:45 <Slereah-> "The limited budget boys" or something.
02:01:51 <Sgeo> Bye for now
02:02:26 <Slereah-> Bye.
02:02:43 <pikhq> My room, for the first time in several *years*, is clean.
02:03:27 <pikhq> And it only took a couple days of work.
02:03:31 <pikhq> Straight.
02:03:32 <Slereah-> Heh.
02:03:55 <Slereah-> Reminds me. I should start studying tomorrow.
02:04:22 * pikhq should consider getting back up on his Japanese studies
02:04:40 <pikhq> Which reminds me: anyone seen Sukoshi around in the past, oh, 6 months?
02:04:50 <Slereah-> Is there any programming language based on another alphabet?
02:05:10 <pikhq> No, but I could trivially make Tcl take Japanese input.
02:05:11 <Slereah-> Why don't we ever see programs in cyrillic or katakana!
02:05:47 <pikhq> A few simple things about it: first, everything is in Unicode. Second, the builtins are just ordinary functions.
02:05:53 <Slereah-> Or the old Nahuatl script, which is throughly impossible to use on a keyboard.
02:06:05 <pikhq> So, it's a simple matter to rename the builtins.
02:06:28 <pikhq> And a slightly more difficult matter to write a wrapper around the builtins so all the arguments are Japanese.
02:07:31 <Slereah-> I wonder if there's some learning languages made in the local languages.
02:08:13 <pikhq> プロック フー {バー バーッズ} {書いて "もしもし、世界!"};フー
02:08:24 <pikhq> That can be 100% valid Tcl.
02:08:33 <Slereah-> Heh
02:08:33 <pikhq> Already, it's syntactically valid. ;)
02:09:17 <pikhq> Hrm. Why am I having foo take arguments bar and baz if it just outputs "Hello, world!"?
02:10:03 <Slereah-> Well, maybe foo is "print", bar is "Hello," and baz is "world!".
02:10:43 <pikhq> プロック フー {バー バーッズ} {書いて "${バー}、${バーッズ}!"};フー もしもし 世界
02:10:52 <pikhq> In English:
02:10:55 <pikhq> My first bit:
02:11:07 <pikhq> proc foo {bar baz} {puts "Hello, world!"};foo
02:11:10 <pikhq> My second:
02:11:19 <pikhq> proc foo {bar baz} {puts "$bar, $baz!"
02:11:21 <pikhq> }
02:11:23 <pikhq> ;foo
02:11:44 <pikhq> "Hello" "world"
02:11:50 <pikhq> Extra newlines not withstanding.
02:12:00 <Slereah-> *harro worrd
02:12:22 <pikhq> 馬鹿だろう。
02:15:33 <oklopol> Slereah-: there's a finnish translation of vba for microsoft word!
02:15:57 <Slereah-> vba?
02:16:03 <oklopol> visual basic for applications
02:16:19 <Slereah-> The frenchest thing we've ever done here was some sort of French pseudocode during our first year!
02:16:31 <oklopol> heh
02:17:27 -!- Slereah has joined.
02:21:58 <Slereah> http://www.flickr.com/photo_zoom.gne?id=2142109719&size=o
02:22:02 <Slereah> Something like that.
02:31:34 <Slereah> Hm. Is there a way to use the internal speaker with Python?
02:36:02 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
02:36:46 <oklopol> hehe
02:37:34 <Slereah> Playing the Super Mario theme on a Turing machine or the Monkey Island one has some appeal to me.
02:40:14 <oklopol> does your turing machine have an "audible" state?
02:41:08 <Slereah> Well, if I can find a way to use the internal speaker from Python, I can just print notes and play them with some function!
02:41:47 <oklopol> you have windows?
02:41:54 <Slereah> Yes I do.
02:41:55 <oklopol> import winsound
02:42:03 <oklopol> winsound.Beep(1000,1000)
02:48:35 <Slereah> Yay!
02:49:45 -!- Slereah- has joined.
03:05:44 <GregorR> How to build a trombute: http://www.codu.org/pvcinstruments/ (ping oklopol)
03:07:14 <oklopol> ah
03:07:56 <oklopol> lol /pvcinstruments/ xD
03:08:24 <oklopol> tromzophone
03:08:28 <oklopol> tromxophone
03:08:37 <oklopol> trute
03:08:44 <oklopol> troccolo
03:09:09 <GregorR> You realize that it doesn't have to be a slide instrument just because it's made of PVC :P
03:09:23 <oklopol> oh, right
03:09:27 <oklopol> tromlophone
03:09:31 <oklopol> tromolin
03:09:39 <oklopol> trombiano
03:09:52 <GregorR> OK, I took the word "trom" from "trombone" genius X_X
03:09:53 <oklopol> well, troms, of course.
03:09:56 <pikhq> Pianophone.
03:10:06 <pikhq> Xylobone?
03:10:07 <oklopol> :D
03:10:14 <Slereah-> Xenophone
03:10:18 <GregorR> You can make a perfectly good flute out of PVC *shrugs*
03:10:25 <GregorR> So I figured - why not a slide flute?
03:10:51 <oklopol> indeed you did, but "trom" sounds fun
03:12:52 -!- Slereah has quit (Read error: 110 (Connection timed out)).
03:13:27 <oklopol> but it is trombone + flute, right?
03:14:34 <oklopol> assumed the other part is an instrument and the other is something pvc-related
03:15:57 <pikhq> GregorR: Is there any reason for you not gluing the joints together?
03:19:09 <oklopol> duct tape is more pvc'y
03:20:27 <pikhq> But that PVC glue (epoxy?) is less ghetto, more air-tight, and more likely to stay together.
03:50:56 -!- ihope has joined.
03:51:09 <ihope> pikhq: that was fast.
03:51:22 <ihope> I don't suppose you're the Registrar.
03:51:31 <pikhq> I'm not.
03:51:39 <pikhq> I just have my mail client checking every minute.
03:51:52 <pikhq> Pity you're not in Agora. ;p
03:52:08 <ihope> I might join it soon.
03:52:49 <ihope> You're not a Minister at all? How boring!
03:52:59 <pikhq> I'm more active in Agora.
03:53:14 <pikhq> I have two offices and three patent titles in Agora.
03:53:26 <ihope> What are your patent titles?
03:53:42 <pikhq> Agoran Spy, Champion, and Minister Without Portfolio.
03:54:07 <pikhq> A proposal being voted on ATM should award me the title of Scamster, as well.
03:54:11 <ihope> Minister Without Portfolio? Interesting.
03:56:11 <pikhq> Read the ruleset sometime. Quite a good read, if you have an afternoon.
03:56:35 <ihope> :-)
03:59:28 <ihope> "Rule 101/7 (Power=3)"
03:59:33 <ihope> I'm confused already.
04:00:17 <pikhq> The power of a rule determines what the rule takes precedence over (along with the rule text).
04:00:29 <pikhq> A power 3 rule takes precedence over a power 2 rule, and a power 1 rule.
04:00:41 <pikhq> 101/7. That just says that it's rule #101, revision 7.
04:00:49 * ihope nods
04:01:13 <pikhq> Not rule dictated or anything; just convention.
04:04:14 <ihope> It's just convention that a power 3 rule takes precedence over a power 2 rule?
04:04:39 <pikhq> No, the formatting is just a convention.
04:04:56 <pikhq> The precedence rules are quite solidly defined in Section "Rules".
04:05:24 <pikhq> (as is the definition of a rule)
04:06:40 -!- oklopol has quit (Remote closed the connection).
04:07:09 * pikhq reads the Full Logical Ruleset, and gets amused by some of the cases concerning the rule's interpretation. . .
04:08:15 <pikhq> "The game must operate according to rules that exist at the time, and not attempt to incorporate retroactive changes made in the future" CFJ 1848. . .
04:10:02 -!- oklopol_ has joined.
04:10:14 <ihope> Is there a term for when a judge of some sort makes a judgement in bad faith?
04:10:15 <oklopol_> heh, 3rd random reboot today xD
04:10:20 <ihope> A bad-faith judgement?
04:12:01 <pikhq> That would be a judgement soon to be appealed.
04:12:34 <pikhq> And perhaps an "inappropriate judgement". An inappropriate judgement may be punished, should we opt to do so.
04:13:44 <ihope> Call it a Mockingbird judgement in an emergency.
04:16:59 <ihope> I want to have a power of 4. >:-)
04:17:41 <pikhq> You can't have a power of 4. You're not an instrument.
04:19:08 <ihope> I guess I'd settle for just being an instrument.
04:19:14 <ihope> For now, I'll settle for being a player :-P
04:24:23 <ihope> So players generally have power 0, meaning instruments have complete control over the players?
04:24:27 <ihope> If so, how scary.
04:28:53 <ihope> Mm, how come an emergency session results in all non-Senators going supine?
04:31:22 <ihope> Is supine-ness meant in the sense of passiveness, with calling it a posture just being a pun?
04:34:57 <Slereah-> Man, even on PC speaker the Monkey Island 2 theme seems horribly complex!
04:35:52 <pikhq> Players aren't instruments, so they don't have a power.
04:36:03 <pikhq> The supine-ness means that they can't judge.
04:37:18 <ihope> Players aren't entities, then? Either an entity has power 0 or it's an instrument.
04:37:33 <pikhq> Ah.
04:37:48 <pikhq> Entities are things which are soley defined by the rules.
04:38:04 <pikhq> Unless you manage to sequence your DNA and stick it in the ruleset, you're not an entity. ;)
04:41:11 <ihope> Ah. :-)
04:43:44 <ihope> Looks like Agora has a Rulekeepor instead of a Rulekeeper?
04:49:03 <pikhq> Yeah.
04:49:06 <pikhq> Tradition.
04:49:09 <pikhq> Dunno why.
04:49:22 <pikhq> You'd have to ask Rulekeepor Zefram why.
04:53:23 <ihope> Rule 869 says a player is an entity. I take it this means that a player is not the human behind that player.
04:53:31 <pikhq> Hrm.
04:53:44 <pikhq> Yeah.
04:53:51 <pikhq> Complicated ruleset, one must admit.
04:53:56 <ihope> Yes. :-)
04:54:29 <pikhq> My favorite rule is rule 2029.
04:55:26 <ihope> Is it the only rule with power 4?
04:55:29 <pikhq> Yes.
04:55:52 <pikhq> The scam that put it in place changed the rules to *allow* for a power 4 rule.
04:57:18 <ihope> Ah.
05:11:35 <ihope> Now, normally, I keep all this email from colleges in my inbox.
05:11:55 <ihope> But this one got sent to the spam box, and I feel like keeping it there. :-)
05:14:22 <pikhq> :)
05:14:32 <pikhq> I don't need to bother with that junk anymore.
05:14:46 <pikhq> Why bother when you're already happy with the school you're signed up for?
05:17:16 <ihope> Rockford High School doesn't have many graduate-level courses. :-P
05:22:02 <pikhq> Hrm?
05:22:42 <pikhq> Nor does Mitchell High; the point is that I have college lined up already. . .
05:23:37 * ihope nods
05:49:28 <Sgeo> What's Plof? </stupid-question>
05:50:16 <pikhq> Plof is Gregor's own functional/imperative language.
05:50:16 <ihope> GregorR's programming language, isn't it?
05:50:33 <pikhq> Yeah.
05:50:54 <pikhq> I'm perhaps the only non-Gregor person involved in it.
05:52:55 <Sgeo> URL?
05:54:02 <pikhq> http://www.codu.org/plof/
05:54:47 <Sgeo> ty
05:54:55 * Sgeo wonders how it could work with PSOX..
05:55:10 <Sgeo> WARNING: [UserPermissions] are unconfigured!
05:55:10 <Sgeo> This node is currently empty.
05:55:25 <pikhq> Wouldn't need to.
05:55:37 <pikhq> Just need to finalise the C API.
05:55:59 <Sgeo> oh darn
05:56:15 <Sgeo> Would anyone appreciate PSOX?
05:59:15 <Sgeo> ?
05:59:22 * Sgeo feels useless
05:59:30 * pikhq would
05:59:44 <pikhq> Although other things in life are keeping me away from Esome.
06:00:24 <ihope> Make yourself useful! Join a nomic!
06:00:26 <ihope> :-P
06:02:21 <Sgeo> Is PSOX useful at all?
06:02:30 <pikhq> Is PEBBLE?
06:03:00 <ihope> Esoteric languages in general do tend to be useless.
06:03:20 <Sgeo> Would people in the esolang community consider PSOX to be a good thing?
06:03:27 <Sgeo> Or will most people ignore it?
06:05:01 <ihope> I wouldn't consider it very useful as esolangy things go, really.
06:05:32 <Sgeo> :(
06:06:37 <ihope> Though I do rather expect that I consider it less useful than the average esolanger would.
06:07:03 <Sgeo> ihope, howso?
06:07:39 <ihope> As I perceive things, PSOX has many unnecessary features.
06:08:55 <Sgeo> suchas?
06:09:08 <bsmntbombdood> EVERYTING
06:09:20 <bsmntbombdood> *ANYTING
06:09:31 <bsmntbombdood> for $10
06:12:59 <Sgeo> ihope?
06:13:04 <ihope> Now that I actually think about it, my perceptions may well be flawed. The only example I can think of is PSOX automatically asking for permission for the program to do stuff.
06:13:21 <Sgeo> ihope, that's changing incidentally
06:13:50 <ihope> Now it's becoming more useful in my mind. :-)
06:13:56 <Sgeo> There will be an option on the command line, so you can specify e.g. "-s nohttp" and the HTTP domain will be disabled
06:16:00 * Sgeo should go to sleep soon
06:16:20 <ihope> I should have gone to sleep hours ago. :-P
06:16:34 * pikhq should sleep sometime tomorrow. :p
06:16:53 <bsmntbombdood> hmm
06:17:01 <bsmntbombdood> i wonder when i should sleep
06:17:14 <pikhq> Next week.
06:17:19 -!- calamari has quit ("Leaving").
06:17:28 * Sgeo CTCP TIME's pikhq
06:17:33 <bsmntbombdood> i can't stay up that long
06:17:43 <pikhq> It's the same as bsmntbombdood.
06:17:53 <bsmntbombdood> ?
06:17:59 <pikhq> Time zone.
06:18:24 <bsmntbombdood> oh
06:18:54 <bsmntbombdood> yeah
06:18:59 <bsmntbombdood> we are time zone buddies!
06:20:05 -!- ihope has quit ("CGI:IRC (EOF)").
06:20:36 <pikhq> State buddies too, last I checked.
06:22:29 <bsmntbombdood> also country buddies
06:24:42 <Sgeo> G'night all
06:25:46 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
07:06:18 -!- oerjan has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:06:15 <GregorR> I improved my trombute :P
10:36:20 -!- helios_24c3 has joined.
10:58:00 -!- oerjan has quit ("leaving").
11:08:05 -!- helios_24c3 has quit ("Leaving").
12:30:52 -!- jix has joined.
12:42:52 -!- RedDak has joined.
12:50:15 -!- jix has quit (Read error: 113 (No route to host)).
14:17:41 <oklopol_> hel p
14:17:44 <oklopol_> !help
14:22:49 -!- helios_24c3 has joined.
14:53:57 -!- RedDak has quit (Remote closed the connection).
15:37:55 -!- sebbu2 has quit (Read error: 145 (Connection timed out)).
15:38:52 -!- Sgeo has joined.
15:59:55 * Sgeo should work on PSOX.. someone motivate me please?
16:01:45 <Slereah-> Get to work!
16:21:44 -!- Sgeo has changed nick to Sophia.
16:21:47 -!- Sophia has changed nick to Sgeo.
16:26:54 -!- Slereah has joined.
16:35:53 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
16:35:54 -!- helios_24c3 has quit (calvino.freenode.net irc.freenode.net).
16:35:57 -!- puzzlet_ has quit (calvino.freenode.net irc.freenode.net).
16:35:57 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
16:35:57 -!- tejeez has quit (calvino.freenode.net irc.freenode.net).
16:35:57 -!- Possum has quit (calvino.freenode.net irc.freenode.net).
16:35:58 -!- Sgeo has quit (calvino.freenode.net irc.freenode.net).
16:35:58 -!- oklopol_ has quit (calvino.freenode.net irc.freenode.net).
16:36:00 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
16:36:00 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net).
16:36:00 -!- tesseracter has quit (calvino.freenode.net irc.freenode.net).
16:36:01 -!- johnl has quit (calvino.freenode.net irc.freenode.net).
16:36:01 -!- Overand has quit (calvino.freenode.net irc.freenode.net).
16:36:03 -!- pikhq has quit (calvino.freenode.net irc.freenode.net).
16:36:05 -!- dbc has quit (calvino.freenode.net irc.freenode.net).
16:36:06 -!- cmeme has quit (calvino.freenode.net irc.freenode.net).
16:36:07 -!- Slereah has quit (calvino.freenode.net irc.freenode.net).
16:36:08 -!- Slereah- has quit (calvino.freenode.net irc.freenode.net).
16:36:08 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
16:36:08 -!- mtve has quit (calvino.freenode.net irc.freenode.net).
16:36:08 -!- weilawei has quit (calvino.freenode.net irc.freenode.net).
16:36:08 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net).
16:36:08 -!- lament has quit (calvino.freenode.net irc.freenode.net).
16:37:03 -!- Slereah has joined.
16:37:03 -!- Sgeo has joined.
16:37:03 -!- helios_24c3 has joined.
16:37:03 -!- oklopol_ has joined.
16:37:03 -!- Slereah- has joined.
16:37:03 -!- GregorR has joined.
16:37:03 -!- pikhq has joined.
16:37:03 -!- puzzlet_ has joined.
16:37:03 -!- SimonRC has joined.
16:37:03 -!- mtve has joined.
16:37:03 -!- weilawei has joined.
16:37:03 -!- bsmntbombdood has joined.
16:37:03 -!- cmeme has joined.
16:37:03 -!- sekhmet has joined.
16:37:03 -!- tesseracter has joined.
16:37:03 -!- dbc has joined.
16:37:03 -!- lament has joined.
16:37:03 -!- Overand has joined.
16:37:03 -!- johnl has joined.
16:37:03 -!- tejeez has joined.
16:37:03 -!- Possum has joined.
16:37:03 -!- lifthrasiir has joined.
16:37:03 -!- miiro has joined.
16:38:53 * Sgeo falls asleep, or somesuch
16:40:53 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
16:43:41 <oklopol_> Sgeo: sophia?
17:00:03 -!- sebbu has joined.
17:15:55 -!- tesseracter has quit (Remote closed the connection).
17:19:55 -!- puzzlet_ has quit (Remote closed the connection).
17:19:59 -!- puzzlet has joined.
17:22:46 -!- Hiato has joined.
17:23:07 <Hiato> Hello all :)
17:32:31 <Hiato> anyway, I would like to get some feedback from you about my esolang http://www.full0.8tt.org
17:34:14 <pikhq> 'Lo.
17:35:01 <pikhq> From what I gather so far, that is a diabolically clever language.
17:35:11 <Hiato> thanks :)
17:35:26 <pikhq> Could you please offer the documentation in a non-Windows-specific format?
17:35:43 <Hiato> well, there is the online version which is .txt
17:36:02 <Hiato> should I make an RTF or an open office type format?
17:36:27 <Hiato> (PS: I use Linux myself, just thought though that .doc is easier for most)
17:36:41 <pikhq> HTML. ;)
17:36:57 <pikhq> I suspect that there isn't anyone here who *uses* Windows. :p
17:37:05 <Hiato> :D lol
17:37:14 <pikhq> Erm. Delphi for the interpreter?
17:37:19 <Hiato> well, yes
17:37:23 <Hiato> I suck at C++
17:37:30 * pikhq sobs
17:37:33 <Hiato> but that should work in Freepascal
17:37:35 <Hiato> (sorry)
17:37:47 <Hiato> I'd be might happy if someone ported it ;)
17:37:55 <pikhq> Also, your download links are wrong.
17:38:07 <Hiato> really? Which?
17:38:23 <pikhq> All of them.
17:38:31 <Hiato> lol, yes sorry
17:38:34 <Hiato> will fix now
17:38:35 <pikhq> You prepended a \ before them for no good reason.
17:38:40 <Hiato> yip
17:38:41 <Hiato> I know
17:39:51 <Hiato> sory
17:39:52 <Hiato> fixed
17:39:54 <Hiato> try now
17:40:00 <Hiato> (Refresh page)
17:41:15 <Hiato> any good now?
17:43:19 <Hiato> ok, well I have to go now, though I will be back later. Let me know
17:43:25 -!- Hiato has quit ("Leaving.").
17:46:32 <Sgeo> Sohpia = some Uncyclopedia thing
17:57:22 -!- puzzlet has quit (Remote closed the connection).
17:57:30 -!- puzzlet has joined.
17:58:19 -!- RedDak has joined.
18:01:31 -!- calamari has joined.
18:03:19 -!- oerjan has joined.
18:11:16 -!- sebbu has quit ("bbl").
18:20:27 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
18:21:55 -!- Sgeo has joined.
18:42:28 -!- sebbu has joined.
19:26:51 <bsmntbombdood> delphi or C++? what a choice
19:34:53 <oklopol_> hehe
19:59:40 -!- Hiato has joined.
20:01:22 -!- ehird` has joined.
20:02:33 <Hiato> Ok, pikhq what did you make of it?
20:04:02 <pikhq> I've not read the full spec; been doing a bit of housework.
20:04:10 <Hiato> Sure, no prob
20:04:24 * pikhq shall start
20:04:38 <Hiato> Cool :)
20:05:45 <pikhq> Wow.
20:06:28 <Hiato> Thanks :)
20:07:15 <pikhq> That's one of the better esolangs I've seen recently.
20:07:33 <Hiato> Thank you for your kind words :D
20:08:13 <pikhq> I don't think I've been quite this surprised at a language design since I saw Glass.
20:09:06 <Hiato> Wow, really?
20:09:32 <pikhq> :)
20:09:36 <Hiato> :D
20:09:38 <pikhq> Welcome to Esome.
20:09:49 <Sgeo> What spec?
20:09:50 <Hiato> Oh yeah :)
20:09:58 <Sgeo> and Hi Hiato and ehird`
20:10:16 <Hiato> Hi, http://full0.8tt.org
20:10:25 <Hiato> is what was being discussed
20:12:02 <oklopol_> :O
20:12:16 * oklopol_ thinks he wants to see too...
20:12:26 <oklopol_> hmm
20:12:35 <oklopol_> the link isn't all *that* far away.
20:13:18 <Hiato> lol, (nudegs oklopol's mouse pointer to the link and clicks)
20:13:52 <pikhq> [x][x][0][x][x][(x=x)([(x)(x)])][(x)(x)]
20:14:50 <Hiato> I'm not sure what you're on about there... but that is how the code looks :)
20:14:51 <Sgeo> <plug>PSOX would be useful for this language, I guess</plug>
20:15:03 <Hiato> ermm... PSOX?
20:15:14 <pikhq> I think that just executes all of the commands for no good reason, Hiato. ;)
20:15:26 <Sgeo> http://esolangs.org/wiki/PSOX
20:15:27 <Hiato> lol, yip
20:15:36 <Sgeo> PSOX is a layer that goes between stdin/stdout and an esolang that can only do stdin/stdout. It will provide things such as file manipulation and HTTP stuff to languages like Brainfuck.
20:15:52 <Hiato> aha
20:16:38 <Hiato> hrmm.. well I sure can't implement it in delphi ;) But, I'll look around
20:17:05 <Sgeo> I'm working on implementing it in Python
20:17:05 <Hiato> I notice that it is * your * project Sgeo (cough cough)
20:17:10 <Sgeo> Yes, yes it is
20:17:22 <pikhq> We in Esome commonly plug our own stuff. ;p
20:17:32 <Hiato> Cool
20:23:57 <ehird`> oh gawd PSOX again?!
20:24:03 <pikhq> Of course.
20:24:10 -!- calamari has quit ("Leaving").
20:24:21 <ehird`> the most useless unneeded vaporware there is
20:24:22 <ehird`> wonderful
20:27:01 <Hiato> wonderful Full0 or POSX? Cause if it's full0 , thanks :)
20:27:13 <Sgeo> Isn't bsmntbombdood supposed to do the anti-PSOX stuff?
20:27:21 <bsmntbombdood> what?
20:28:30 -!- dbc has quit (Read error: 110 (Connection timed out)).
20:32:42 -!- calamari has joined.
20:32:48 <Sgeo> re calamari
20:32:59 <calamari> re :)
20:34:46 <oklopol_> re.match(calamari)
20:35:12 <calamari> calamari = "<=K"
20:36:06 <oerjan> a tetrapus?
20:36:37 <calamari> oerjan: :P ascii art has its limitations
20:37:03 <oerjan> you don't say
20:38:36 -!- RedDak has quit ("I'm quitting... Bye all").
20:41:32 -!- RedDak has joined.
20:45:58 <Sgeo> re RedDak
20:49:29 -!- puzzlet has quit (Remote closed the connection).
20:49:30 -!- puzzlet_ has joined.
20:50:19 <Hiato> will there ever be anopther Esoteric Awards Competition?
20:50:23 <Hiato> *another
20:50:48 <oerjan> well the two last ones never were judged...
20:50:56 <Hiato> oh, I see
20:51:30 <oerjan> now the last competition was just about a year ago, i think
20:51:54 <Hiato> a pitty, from what I could see, they were interesting
20:55:35 <Sgeo> Whatever happened to that Factory language?
20:59:13 -!- oerjan has quit ("Good night").
21:06:57 -!- calamari has quit ("Leaving").
21:07:06 -!- tesseracter has joined.
21:11:07 -!- faxathisia has joined.
21:16:25 <Slereah> Would this work? http://farm3.static.flickr.com/2384/2144871414_67e1245e41_o.jpg
21:29:15 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
21:30:06 -!- RedDak has joined.
21:31:11 <Sgeo> re RedDak
21:37:48 <faxathisia> I don't know if this is totally esoteric or not
21:38:05 <faxathisia> but I got my code into reasonable state..
21:38:11 <faxathisia> http://rafb.net/p/7UXJEm47.txt
21:40:28 * Slereah reads the Malbolge description.
21:40:33 <Slereah> The mind boggles.
21:40:34 -!- puzzlet_ has quit (Remote closed the connection).
21:40:36 -!- puzzlet has joined.
21:41:24 <Sgeo> Does anyone in here think that PSOX isn't vaporware?
21:41:26 <faxathisia> oh I just realised what I pasted makes no sense
21:41:40 <faxathisia> PSOX isn't vaporware.. ?
21:41:46 <faxathisia> just not finished I thought
21:41:54 <Hiato> ditto
21:41:58 <Slereah> What does vaporware mean?
21:42:00 <Sgeo> ehird`, said that it's vaporware
21:42:03 <faxathisia> (in my paste, -i is read an invert the program)
21:42:15 <Sgeo> <ehird`> oh gawd PSOX again?!
21:42:15 <Sgeo> <pikhq> Of course.
21:42:15 <Sgeo> * calamari has quit ("Leaving")
21:42:15 <Sgeo> <ehird`> the most useless unneeded vaporware there is
21:42:15 <Sgeo> <ehird`> wonderful
21:42:34 <ehird`> faxathisia: that looks nice
21:42:42 <ehird`> very haskelly
21:42:48 <ehird`> what's the interpreter written in
21:42:57 <faxathisia> haskell
21:43:13 <ehird`> does it have lambdas
21:43:24 <faxathisia> Janus? doesn't
21:44:24 <faxathisia> It's got assignment, if_then_else_fi_, from_do_loop_until_, call_, uncall_ and skip
21:44:48 <faxathisia> and you can run any of them backwards
21:45:22 -!- calamari has joined.
21:45:46 <Sgeo> hi calamari
21:45:52 <calamari> hi Sgeo
21:46:50 <faxathisia> there's a self interpreter I need to get that running :D
21:47:55 <ehird`> get a lambda!
21:49:35 <faxathisia> how do you run lambda backwards?
21:50:09 <faxathisia> hm.. it couldn't close over variables either..
21:53:24 <oklopol_> what, reversible language without a reversible name!?
21:53:27 <oklopol_> what travesty
21:53:32 * Sgeo will hopefully work on PSOX soonish
21:53:36 -!- oklopol_ has changed nick to oklopol.
21:53:37 * Sgeo has some ideas..
21:53:53 * oklopol too
21:54:30 <faxathisia> lol
21:57:54 -!- calamari has quit (Remote closed the connection).
21:58:09 -!- calamari has joined.
21:58:35 <oklopol> quick poll: do you have ideas?
21:58:52 <Hiato> lol, yip :)
21:59:38 <Sgeo> I meant, ideas wrt PSOX
22:01:31 <oklopol> i know
22:02:10 <oklopol> that was in no way meant as an offence, it was quite random.
22:02:22 <oklopol> as are most things that i do
22:02:44 <Hiato> Same here, no offense intended ;)
22:06:49 * Sgeo wants thoughts, comments, and ideas on PSOX, not apologies
22:08:00 -!- helios_24c3 has quit ("Leaving").
22:10:38 <oklopol> Sgeo: it's your project, we only wanna exploit it once it's ready
22:11:00 <oklopol> is why you're not getting that much help.
22:11:08 <Hiato> true, unfortunatly
22:11:50 <oklopol> anyone know a good algorithm for drawing an arbitrary graph on the screen :\
22:13:06 <Hiato> hrmm... no (unsurprisingly)
22:13:47 <oklopol> probably np'ish
22:13:52 <Hiato> anyone know a cure for laziness? I need to write a prog, but the everpresent foe is there
22:16:00 <oklopol> how come bsmnt always get's to be on top :\
22:16:04 -!- oklopol has changed nick to aglopol.
22:16:07 <aglopol> hah
22:16:14 <bsmntbombdood> heh
22:16:30 <Hiato> lol
22:17:11 <ehird`> algolpol
22:18:30 <aglopol> that was what inspired the nick in the two seconds i gave thought to it
22:18:49 <aglopol> which may be why it's this crappy.
22:18:54 -!- aglopol has changed nick to oklofok.
22:19:15 <oklofok> but you gotta shuffle nicks once in a while, life gets boring otherwise
22:20:17 <Hiato> where I live there's a band called fokoffpolisikar (at least I think that's how it's spelled)
22:20:20 <Hiato> :)
22:21:15 <Hiato> (that seemed to quiet everyone down...)
22:22:12 <oklofok> fuck off, cops!½
22:22:51 <Hiato> what's the 1/2 for?
22:26:16 <oklofok> well you know, it's kinda like !!11
22:26:34 <oklofok> except it's just half of it
22:27:12 <Hiato> lol, ok :)
22:29:45 <Hiato> alrighty, well I'm off, its 12:28am here in GMT+2 land. If anyone stumbles across any problems, finds any bugs, needs some info, makes any programmes, or anything relating to Full 0 just contact me at hiato1@gmail.com . Cheers :)
22:30:45 -!- Hiato has quit ("Leaving.").
22:31:07 <ehird`> The thing about writing a meta-circular interpreter is that you keep using new features while implementing new features you kept using before.
22:31:20 <ehird`> (meta-circular (meta-circular interpreter) writing)
22:31:43 <faxathisia> :D
22:32:29 <faxathisia> program the langauge until you notice that 90% of it can be implemented using the other 10%
22:33:57 <oklofok> yep, basically people always end up making their interpreters in SK
22:48:38 <ehird`> ah to heck with it
22:48:49 <ehird`> best self-interp is for the Meta language
22:48:58 <ehird`> the Meta language's commands:
22:49:38 <ehird`> m - Interpret some Meta code from the file specified next on the command line (advance the command line pointer forward)
22:49:48 <ehird`> I wonder what the eigenratio is. :P
22:51:30 <oklofok> approaches 0
22:51:40 <ehird`> isn't it constant?
22:52:24 <oklofok> if you can calculate the limit, then yes
22:52:42 <ehird`> esolang idea
22:52:51 <oklofok> in this case, you can't, since it approaches zero, although i now realize it's 1
22:53:03 <ehird`> like the lambda calculus, but instead of free lambdas, you use some base functions which return lambdas
22:55:31 <ehird`> oklofok: hmm, what base functions do you think would be needed?
22:55:46 <oklofok> what do you mean by them?
22:56:10 <ehird`> instead of lambda arg val
22:56:12 <ehird`> i.e.
22:56:13 <oklofok> like, no forming new lambdas, just a given set of lambdas you can use
22:56:16 <ehird`> like
22:56:17 <ehird`> argh
22:56:18 <ehird`> wait
22:56:19 <ehird`> stupid irc client
22:56:41 -!- ihope has joined.
22:56:52 <ehird`> let's try taht again
22:57:07 <ehird`> oklofok: instead of (lambda arg. val)
22:57:24 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
22:57:29 <ehird`> you have:
22:58:05 <ehird`> like
22:58:22 <ehird`> i don't know
22:58:30 <ehird`> but a few pre-defined functions which take some info and return a lambda
22:58:36 <ehird`> that you can compose to make full lambdas
22:59:48 <oklofok> i guess i see what you mean, although that is a bit vaguee
22:59:51 <oklofok> eee
23:00:02 <ehird`> oklofok: yeah i don't know what functions you'd need
23:00:23 <oklofok> i know what you'd *need*
23:01:01 <oklofok> don't know what would be interesting, and what would take advantage of the fact you can supply some parameters for the lambda constructor.
23:02:23 <ehird`> what would you need?
23:02:41 <ehird`> oh, and a note
23:02:52 <ehird`> these primitive-creators /must be implementable/ in 'pure' lambda calculus
23:02:58 <ehird`> so like
23:03:09 <oklofok> umm
23:03:18 <oklofok> that's a harsh limit...
23:03:26 <ehird`> define my-creator (lambda x. do stuff)
23:03:28 <ehird`> zap-lambda
23:03:32 <ehird`> ...stuff...
23:03:39 <ehird`> oklofok: quite, but its still feasable
23:03:49 <oklofok> if only i had more power than that of lambda calculus...
23:06:59 -!- helios_24c3 has joined.
23:08:10 -!- jix has joined.
23:09:37 <ehird`> superturing
23:15:08 -!- Jalude has joined.
23:16:19 <ehird`> oklofok!
23:16:22 <ehird`> oklotalk spec plz :P
23:16:57 <Slereah> http://paste-it.net/5459/raw/
23:17:03 <Slereah> Well, seems to work!
23:17:18 <Slereah> Although writing chars is annoying.
23:17:36 <ehird`> pseudo-bf?
23:17:39 <oklofok> ehird`: you wish ;)
23:18:02 <ehird`> oklofok: informal spec even?
23:18:09 <ehird`> just something that tells me how to parse it and what everything does!
23:18:13 <ehird`> you have no documentation of any command
23:18:13 <oklofok> heh
23:18:17 <ehird`> or any list of them even
23:18:26 <Slereah> ehird` : Nop. Just a Turing machine.
23:18:33 <oklofok> i do, but it's not public
23:18:33 <ehird`> Slereah: write a bf interp in it
23:18:50 <Slereah> ehird` : Well, I tried, but I have one problem.
23:18:56 <ehird`> oklofok: can it be not-public-apart-from-ehird-who-desperately-wants-to-either-implement-it-or-improve-that-it-is-impossible-to-implement
23:18:58 <oklofok> i have a somewhat public tutorial, but it's not complete, and neither is any spec of oklotalk.
23:19:20 <Slereah> sys.stdin.read doesn't seem to work on a PC.
23:19:34 <Slereah> And I'll be damned if I have to type "enter" after each BF instruction
23:19:36 <ehird`> oklofok: i still wanna see :<
23:19:49 <ehird`> Slereah: why can't you just use FILES
23:19:54 <oklofok> semantics of state lists aren't yet completely specified, for one
23:20:06 <Slereah> I'm not very file friendly.
23:20:09 <ehird`> oklofok: oklotalk is lexically scoped?
23:20:17 <ehird`> Slereah: code = open("filename").read()
23:20:18 <oklofok> partially
23:20:26 <ehird`> Slereah: and i meant in the turing machine
23:20:29 <Slereah> Although I do plan on doing a bit that loads a file to one of the tape.
23:20:34 <ehird`> oklofok: i wanna spec/tutorial even if incomplete! :<
23:20:37 <Slereah> That was my goal, ehird`.
23:20:44 <Slereah> I have some of it on paper.
23:21:12 <oklofok> there's also first class pattern matching, which can be used for dynamic scoping
23:21:12 <oklofok> obviously
23:21:17 <Slereah> Although I won't use the *+<> notation to write it in.
23:21:31 <Slereah> It doesn't handle input or output.
23:22:31 -!- Jalude has quit ("ChatZilla 0.9.79 [Firefox 2.0.0.11/2007112718]").
23:22:50 <oklofok> the semantics for that are so weird i don't even wanna know what you can do with the pattern lists :P
23:23:10 <Slereah> (There's also no way for the program to stop, but well)
23:23:44 <oklofok> basically, the current namespace is first-class, and you can actually carry a pattern around, and match it on the fly, possibly creating variables...
23:24:11 <oklofok> it's not pretty, and i like it <3
23:26:32 <ehird`> oklofok: WANT INFO
23:26:44 <oklofok> :D
23:27:18 <oklofok> i really don't want you implementing it, i'm going to do it for my high school graduation, in case i fail to finish it, you can do it.
23:27:36 <oklofok> if you do it, it kinda takes the fun out of it.
23:28:01 <oklofok> i mean, for me, and from my point of view, that's important.
23:39:40 <ehird`> i won't ever fully implement it
23:39:44 <ehird`> and if i do it'll be crappy
23:39:47 <ehird`> and i won't release it
23:39:47 <ehird`> :D
23:39:55 <ehird`> because i am going to try and do it in C
23:40:23 <ehird`> also if you do it for your graduation i think you might end up in the mental institution you belong in for creating oklotalk
23:42:02 <ehird`> oklofok: is it "oklotalk" or "Oklotalk" or "OkloTalk"
23:42:48 <ehird`> oklofok: also, does it have continuations :P
23:46:06 * Slereah tries to make some hamfisted file input on the tape
23:48:16 -!- dbc has joined.
23:48:22 <ehird`> {->[];L->'({_<:L}\L)+:L+'({_>:L}\L)} oklofok: is this still a valid qsort in oklotalk?
23:48:50 <oklofok> i think i've cut off a few length optimizations.
23:49:09 <oklofok> oh, actually, nm
23:49:10 <ehird`> yay, you'r ealive, now answer my other qs too :P
23:49:18 <oklofok> heh, wait, soon
23:50:01 <oklofok> lol, that was never valid :)
23:50:11 <oklofok> {->[];L->'({_<:L}\L)+.L+'({_>:L}\L)}
23:50:14 <oklofok> i think that one is.
23:50:27 <ehird`> what about {->$;'(._<\:_)+.:+'$._<\:_}
23:50:47 <oklofok> oklotalk is soooo fun to read...
23:50:51 <oklofok> i'll try to check
23:51:48 <oklofok> errr wtf xD
23:51:52 <ehird`> (oklotalk also has an OS under it that's somewhat attached to the language) <--- this is a joke right
23:52:21 <oklofok> nope. but it's definitely not going to be implemented in the next 10 years at least ;)
23:52:56 <oklofok> many languages have been created to be used as oses! ...at least they did it 30 years ago
23:53:27 <ehird`> oklofok: it's not tied to it though, right? just your impl :P
23:53:31 <oklofok> that latter one should be {->;'(._<\:_)+._+'$._>\:_}
23:53:44 <ehird`> i want my implementation to be between a script interpreter and a lisp system
23:53:46 <oklofok> the os is tied to oklotalk, not the other way around
23:54:06 <ehird`> OS is easily grabbable but it provides a unified interface specific to itself
23:54:26 <oklofok> okay, continuations? yes, oklotalk has those, and since namespaces and the call stack are first class, you could just implement them in oklotalk
23:55:11 <ehird`> ok, the call stack is first class. no using the c stack then
23:55:15 <oklofok> continuations are done via the special recursion function "'"... although don't remember how that worked right now ;)
23:55:23 <oklofok> i should write stuff down...
23:55:32 <oklofok> hehe :P
23:55:51 <oklofok> everything is so dynamic there's no way to be efficient.
23:55:58 <oklofok> at least without use of the type system
23:56:04 <oklofok> and runtime compiling...
23:56:53 <oklofok> you know, sometimes i wonder how much features i've actually thought of, without even thinking how hard they are to implement... there seems to be a complex feature for everything...
23:57:03 <oklofok> for example, the 5 types of lists
23:57:29 <oklofok> although, with the new runtime parsing, i think 2/5 are implementable with oklotalk itself
23:57:32 <oklofok> or even 4
23:58:06 <oklofok> unless explicitly compiled, a function can be reparsed at runtime why not...
23:58:39 <oklofok> okay, tomorrow i'll start writing the spec again... asdf
23:58:41 <ehird`> i will not be compiling or optimizing oklotalk
23:58:48 <ehird`> that's just impossible :-)
23:58:53 <oklofok> well, you can make a partial interpreter.
23:59:13 <ehird`> methinks oklotalk compilers if they ever exist will include big chunks of interpreter
23:59:26 <ehird`> maybe it'll take as long as Lisp took :-)
23:59:30 <ehird`> and lisp isn't even THAT dynamic!
23:59:44 <oklofok> they must, since you can in theory just reparse anything at anytime...
2007-12-29
00:00:03 <ehird`> exactly
00:00:13 <oklofok> although 1. why the fuck would you and 2. if you have any interest in speed, you do cmpl Function
00:00:13 <ehird`> maybe gradually over time you should tone it down a bit :-)
00:00:22 <oklofok> hehe :D
00:00:35 <ehird`> by the way, does oklotalk have to look like those mindmashers?
00:00:37 <oklofok> i think it'll be much less grandioso once i actually start implementing it...
00:00:44 <ehird`> show me some clean understandable more-than-one-char-var-names oklotalk :P
00:00:46 <oklofok> actually, it can look quite nice
00:01:23 <ehird`> example please :P
00:01:55 <oklofok> i can show you the somewhat public thingie, if you promise not to publish it / say it's not speccy enough, it's just like the haskell factorial website, but with oklotalk, and with explanations
00:02:15 <oklofok> a lot of explanations, but no full formal spec.
00:02:31 <oklofok> that's what always happens when i start writing something.
00:03:38 <ehird`> i won't publish it :-)
00:03:53 <Slereah> Well, I can input a file on the first tape.
00:03:55 <ehird`> by the way, my implementation is called C-oklotalk :P
00:03:59 <ehird`> imaginative i know
00:03:59 <Slereah> Onto that BF interpreter.
00:04:02 <faxathisia> I want to see this website
00:04:05 <faxathisia> oklofok
00:04:19 <oklofok> the haskell one?
00:04:22 <oklofok> it's great
00:04:25 <faxathisia> no the one with oklotalk
00:04:27 <oklofok> but i can't find it
00:04:36 <oklofok> oh... goddammit
00:04:43 <oklofok> :)
00:04:50 <ehird`> you are popular oklofok :-)
00:04:57 <ehird`> why don't you just trust little old #esoteric :P
00:05:40 <oklofok> there is not website for the oklotalk one, which is why it's just semi-public
00:05:48 <oklofok> i've basically jsut sent it to a few ppl
00:05:50 <oklofok> *just
00:05:55 <oklofok> guess i'll upload it....
00:06:07 <oklofok> but i warn ya, it's *not* that interesting
00:07:25 <ehird`> i find oklotalk extremely interesting
00:07:28 <oklofok> lol, this isn't ready for publishing...
00:07:32 <ehird`> i'm going to implement all my programs in it okay :p
00:07:40 <ehird`> like, my continuation-based webframework
00:07:43 <ehird`> and stuff
00:07:58 <oklofok> basically some scribble i made for the heck of it, and to get some thoughts sorted
00:08:00 <oklofok> http://www.vjn.fi/pb/p551122163.txt
00:08:01 <oklofok> but there it is
00:08:08 <ehird`> it's Oklotalk then
00:08:10 <ehird`> not OkloTalk
00:08:11 <ehird`> or oklotalk
00:08:16 <oklofok> Oklotalk, definitely.
00:08:28 <oklofok> to differentiate between my nick
00:08:40 <oklofok> because, it's a somewhat different origin
00:08:53 <oklofok> very slight somewhat, and i'm not getting into that
00:09:05 <oklofok> wonder what i pasted there....
00:09:28 <ehird`> ' Because everything is everything in oklotalk,'
00:09:33 <oklofok> hehe
00:09:36 <ehird`> what's factorial+5
00:09:42 <oklofok> umm
00:09:48 <oklofok> that's (factorial (+ 5))
00:09:51 <oklofok> in lisp notation
00:09:57 <ehird`> i mean, the function factorial, + 5
00:10:06 <oklofok> Factorial + 5 then
00:10:06 * ehird` renames C-oklotalk to C-Oklotalk
00:10:13 <ehird`> Factorial + 5 = ?
00:10:13 <oklofok> wait
00:10:47 <oklofok> that would mean, factorial gets as args the list [#: + 5]... depends on the pattern matches what happens then
00:11:00 <oklofok> most likely they will all fail, and it'll return void
00:11:12 <oklofok> or None
00:11:25 <oklofok> #z to be spesific.
00:11:57 <ehird`> no
00:12:03 <ehird`> functions are first-class in oklotalk right
00:12:06 <oklofok> "guess function" is a bit stupid for a term
00:12:13 <oklofok> sure they are
00:12:17 <oklofok> well
00:12:26 <oklofok> there's just lambdas, but no difference
00:12:38 <ehird`> hmmmm question
00:12:49 <ehird`> please pick something other than + for concat
00:13:00 <ehird`> (x+y)+z = x+(y+z), and x+y = y+x
00:13:04 <ehird`> none of these apply to concatentation
00:13:05 <ehird`> err
00:13:07 <ehird`> the first does
00:13:08 <ehird`> but not the second
00:13:13 <oklofok> oh, the "return" function's explanation has a flaw, which a friend of mine noticed, but anyway, the "return" call is just for show, and it's actually identity there
00:13:17 <ehird`> and, + should be flippable, so.
00:13:36 <oklofok> nope, you can actually specify these rules separately for different types.
00:14:30 <oklofok> and theoretically, by using explicit typing, let the interpreter know it can optimize with the knowledge (x+y)+z == x+(y+z)
00:15:00 <ehird`> yes but x+y is y+z, and this does not apply to concatentation
00:15:04 <ehird`> thus + is a bad name for it
00:15:12 <oklofok> nope
00:15:46 <oklofok> also, x+y for numbers produces a numerical value... does this mean it can't be used for other types unless that too produces a numerical value?
00:15:58 <oklofok> what exactly is the use of having those identities always hold?
00:17:12 <ehird`> operator input and return types should not be constant
00:17:16 <ehird`> but properties of application should be
00:17:24 <oklofok> why?
00:17:28 <ehird`> (Overtalk, an Oklotalk successor? oh fuck no)
00:17:32 <oklofok> :))
00:17:41 <ehird`> oklofok: it means you can reason about programs better
00:17:47 <ehird`> and is simply cleaner
00:18:07 <oklofok> nah, oklotalk is too dynamic for that to be true
00:18:18 <oklofok> and too conciseness-oriented
00:18:26 <ehird`> still
00:18:27 <ehird`> it's nicer
00:18:35 <oklofok> what could i use then?
00:18:40 <ehird`> (also, Oklotalk should not be actor-based. actor model == function model)
00:18:44 <ehird`> (for the mostpart.)
00:18:52 <ehird`> (see: why scheme was created, to test that hypothesis)
00:18:59 <ehird`> oklofok: depends what you have unused
00:19:03 <ehird`> ..
00:19:03 <oklofok> nothing, really
00:19:03 <ehird`> ~
00:19:08 <ehird`> .. would work well
00:19:13 <oklofok> that's for ranges
00:19:25 <oklofok> although i'd use ¨ if it was more standard.
00:19:43 <oklofok> errr why should it not be actor based?
00:19:59 <ehird`> because mostly actors are equiv. to functions
00:20:03 <oklofok> and?
00:20:09 <ehird`> well, it makes it pointless :)
00:20:23 <ehird`> by the way, is 3 spaces the standard Oklotalk indentation width? i like that, it's crazy :P
00:20:26 <oklofok> well, everything is equivalent to everything.
00:20:55 <oklofok> err i actually use 3 there :)
00:20:57 <oklofok> errrrr
00:20:58 <oklofok> i mean, 4
00:22:39 <ehird`> do you? damn
00:22:42 <ehird`> 3 would be cool
00:23:00 <oklofok> hmmmm, there's some obsolete strictness information there...
00:23:31 <ehird`> can you make oklotalk standard 3-spaces? pleeeez? :P
00:23:39 <oklofok> it says ´(...) != (...) when it comes to strictness, but that would make no sense, since ´ and ` never do but okenity changes
00:23:45 <oklofok> yeah, i can :P
00:23:59 <ehird`> :D
00:25:11 <oklofok> {|...} i think is the dynamically scoped lazily evaluated list... hard to keep up, really ;)
00:25:43 <oklofok> i change the scope types quite often, since there's always something wrong with them...
00:25:47 <ehird`> does oklotalk allow multiple return values?
00:25:54 <ehird`> i'm pondering the best way to implement return values
00:25:54 <oklofok> you can return a list
00:26:04 <ehird`> by the way a while ago you posted a parsing spec, where's that?
00:26:18 <oklofok> F={1 2} returns 1 and 2
00:26:28 <oklofok> ummm, that's actually somewhat lost.
00:26:41 <oklofok> if you recall the date, i can find it though.
00:26:56 <oklofok> ooooh
00:27:26 <oklofok> http://www.vjn.fi/mb/?p=oklotalkspec operators are wrong, and i'm not sure about the rest either.
00:27:45 <ehird`> what is that interface written in? xD
00:28:05 <oklofok> "Nesting basically means making a list of tokens one single token with information about how it was nested." wait, what :)
00:28:09 <ehird`> Comments can be handled in a separate phase before the actual parsing (even before tokenizing) by just replacing every comment with a space (' '). nuh uh what about strings :-)
00:28:30 <oklofok> wtf have i been smoking.
00:29:01 <oklofok> heh, i actually realized that later myself
00:29:14 <ehird`> ¤
00:29:14 <ehird`> ¨ I CAN'T TYPE THESE :P
00:29:19 <oklofok> the one online isn't the newest, just almost
00:29:23 <oklofok> heh, perhaps :)
00:29:29 <ehird`> nor ´
00:29:37 <oklofok> ´ is kinda crucial :)
00:29:53 <ehird`> i might make an emacs mode that lets me type that stuff :P
00:30:01 <ehird`> oklotalk-mode.el!
00:30:03 <oklofok> each time you need to use a function as first-class, you need ´
00:30:15 <ehird`> hahahah imagine trying to syntax highlight
00:30:17 <oklofok> well, just when you actually create a lambda on the fly
00:30:21 <oklofok> :D
00:30:26 <ehird`> hmm, i guess what i could do is write a program in oklotalk which hooks into the parser
00:30:33 -!- puzzlet has quit (Remote closed the connection).
00:30:34 <ehird`> and returns an s-expression parse tree
00:30:35 -!- puzzlet_ has joined.
00:30:40 <oklofok> hehe
00:30:42 <ehird`> so that i can simply call it and use emacs lisp's parser
00:30:48 <oklofok> now, can you let me code for a while? :P
00:30:58 <ehird`> invalid syntax ofc would be a problem but i would just make it highlight them as 'error' regions or something :P
00:31:04 -!- helios_24c3 has quit ("Leaving").
00:31:11 <oklofok> invalid syntax, what's that?
00:31:43 <oklofok> i've been considering an ide that actually runs the code in the background to check for errors...
00:31:58 -!- jix has quit ("CommandQ").
00:32:11 <oklofok> oklotalk is definitely not user-oriented
00:32:28 <oklofok> which is kinda lame since it's not really efficient either :)
00:33:09 <oklofok> i'm mainly going for as much theoretical freedoms as possible, conciseness, and as much madness i can fit in.
00:33:19 <oklofok> now, i need to get back to graphica
00:33:21 <ehird`> oklofok: invalid syntax will exist in oklotalk as much as you try and make that not happen
00:33:23 <ehird`> it just will exist
00:33:34 <oklofok> really?
00:33:35 <ehird`> also, what if i wrote a program to delete the hd
00:33:36 <ehird`> :P
00:33:53 <ehird`> oklofok: and yeah, because 'everything makes sense' can not be true without making your language useless
00:33:56 <oklofok> safety is actually easy to do in oklotalk
00:34:26 <oklofok> everything doesn't make sense semantically, but every string will definately a correct oklotalk program
00:34:27 <oklofok> *definitely be a
00:35:09 <ehird`> DSA:P{}AWO)(_)(U)(~*(HE(AJHWEC }}LÅ’Í”ÒÎ{:!@"E:OP$U)($)($)(@£_$(_+
00:35:15 <ehird`> that's valid syntax?
00:35:18 <oklofok> sure
00:35:23 <oklofok> i can parse that for ya
00:35:28 <ehird`> well, there'll be something that's invalid
00:35:48 <ehird`> oklofok: actually, the nested braces implicitness, please remove that... it means it's impossible to do matching-brace-highlighting
00:35:55 <ehird`> also, typos could cause weird semantic errors
00:36:13 <oklofok> sorry, i wont remove that, one of my favorites ;)
00:36:35 <oklofok> also, what would incorrect parens do without it!
00:36:42 <ehird`> cause an error
00:36:51 <ehird`> also, what if i forget to type a brace and it ends up thinking it's in the wrong place?
00:37:00 <ehird`> and what about matching brace highlighting in all good editors? srsly :<
00:37:10 <oklofok> heh, sorry, i ruin my language as i please :)
00:37:38 <ehird`> answer my questions! :P
00:38:08 <oklofok> well, i don't really care about those :)
00:38:17 <oklofok> not my prob
00:39:19 <oklofok> anyhow, just do code~[\"("´'")"|"{"´'"}"|"["´'"]"]
00:39:36 <oklofok> and you'll know whether it has the correct digits
00:40:17 <oklofok> or something close to that, i don't remember which operator does string matching :P
00:40:47 <ehird`> at least make it runtime-disableable :P
00:40:53 <ehird`> by the way, oklotalk file ext is .ot right?
00:41:01 <oklofok> prolly
00:41:17 <ehird`> i'll make a strict.ot which disables some of the crazier things :-)
00:42:19 <oklofok> the parser is (supposedly...) fully accessible at runtime, and somewhat parametrizable, you can just include a parser at the beginning of your program and start coding "on top of" that
00:42:57 <oklofok> there are multiple syntaxes for oklotalk, mainly differentiating on tokenization
00:43:01 <ehird`> would you reccomend a strict.ot for use or is it anti-Oklotalkian? :-)
00:43:45 <oklofok> if strict is an oklotalk program parsing your code as you write it, i'd say definitely oklotalkian
00:43:57 <ehird`> no
00:44:05 <oklofok> it is an emacs mode?
00:44:12 <ehird`> strict.ot is a file that you include in your oklotalk programs, like perl's "use strict"
00:44:16 <oklofok> ah
00:44:19 <ehird`> it does things like disabling implicit parens
00:44:27 <ehird`> just to make the language a bit saner
00:44:44 <oklofok> sure, the built-ins should provide such parser modes anyway.
00:46:04 <ehird`> but actually using it, is that oklotalkian or do real oklotalkers just deal :P
00:46:43 <oklofok> real oklotalking uses the K philosophy, it's originally designed to be write-only.
00:47:03 <oklofok> the parenthesis thing is partly because of conciseness
00:47:40 -!- cherez has joined.
00:47:59 -!- cherez has left (?).
00:49:21 <ehird`> so real oklotalking = no strict.ot :P
00:49:49 <oklofok> i'd say so
00:50:07 <oklofok> the paren precedence doesn't *always* make things look bad
00:50:27 <oklofok> especially if you add some more complex whitespace enhanced parsing
00:50:49 <oklofok> like out 4 + somfunc(otherfunc(soidf(oier(value
00:51:15 <ehird`> it makes auto-indentation basically impossible
00:51:52 <oklofok> perhaps, but say what you will, it stays, and i gotta code graphica now :P
00:53:58 <ehird`> oklofok: aww come on :P
00:54:01 <ehird`> how about
00:54:06 <ehird`> making the implicitness optional
00:54:10 <ehird`> and turned off by default, but stil lthere
00:54:47 <ehird`> by the way, using pattern matching in oklotalk, how do i match on multiple params?
00:55:16 <oklofok> F={A B -> A*B}; 4 f 2 -> 8
00:55:52 <ehird`> A = { 0 n -> n+1; m 0 -> '(m-1 1) m n -> '(m-1 '(m n-1)) }
00:55:54 <ehird`> correct?
00:56:21 <oklofok> you can spesifically match for a certain arity with F={#1 A B -> A+B;#2 A B -> A*B}; f 2 3 -> 5; 2 f 3 -> 6
00:56:24 <oklofok> hmm
00:56:37 <oklofok> ackermann?
00:56:43 <ehird`> Yes.
00:56:46 <ehird`> Using the definition:
00:56:46 <ehird`> A(0, n) = n + 1
00:56:46 <ehird`> A(m+1, 0) = A(m, 1)
00:56:46 <ehird`> A(m+1, n+1) = A(m, A(m+1, n))
00:56:48 <oklofok> you need a ; there
00:56:55 <ehird`> apart from that
00:57:04 <oklofok> then, almost :)
00:57:09 <oklofok> you need to have vars uppercase
00:57:19 <ehird`> why
00:57:23 <oklofok> and m-1 1 needs a comma or something.
00:57:42 <oklofok> because lowercase variables are considered funcokens and are used as operators :)
00:57:49 <ehird`> youch
00:57:50 <ehird`> ok :P
00:57:52 <ehird`> A = { 0 N -> N+1; M 0 -> '(M-1, 1); M N -> '(M-1 '(M, N-1)) }
00:57:54 <oklofok> m-1 == (m (- 1))
00:58:05 <oklofok> M-1 == (- M 1)
00:58:26 <ehird`> how do i mutate a variable in OT?
00:58:31 <oklofok> that's a bit weird, and oklotalk will definitely need a bit special ide anyway...
00:58:48 <oklofok> well, = is the only thing you can actually change a var with
00:58:55 <oklofok> i mean, the contents of a variable
00:59:11 <oklofok> everything else is sent to the object like [oper params]
00:59:16 <oklofok> in a list like that
00:59:19 <ehird`> also, emacs can handle oklotalk, mostly
00:59:26 <ehird`> since it can do turing-complete things for language modes
00:59:36 <ehird`> oklofok: how do i do IO?
00:59:42 <oklofok> out and in
00:59:43 <ehird`> specifically, there is a concept of ports or streams right?
00:59:50 <ehird`> and printing to them is generic?
00:59:58 <ehird`> so a socket has the same interface, etc?
01:00:02 <ehird`> as a file, or stdout
01:00:13 <oklofok> yes, although there is not *byte* in oklotalk, really, well, there is, but you don't see it.
01:00:18 <oklofok> *is no
01:00:30 <oklofok> i mean, any stream will have to handle any object.
01:00:43 <ehird`> uh
01:00:46 <ehird`> that's barely possible
01:00:47 <oklofok> so... no, there isn't a stream in the sense you mean, proly.
01:00:49 <oklofok> *prolly
01:00:52 <oklofok> :)
01:00:54 <ehird`> can you wrap that around a low-level byte based interface? :P
01:01:03 <ehird`> we need to interact with the real world with our programs here
01:01:10 <oklofok> hehe, outn will call str() for the object prolly
01:01:19 <ehird`> well, byte OR character
01:01:23 <ehird`> oklofok: it is unicode, right?
01:01:30 <ehird`> strings are unicode, files are read as unicode, etc
01:01:35 <ehird`> with of course bytes and bytestrings
01:01:36 <oklofok> i haven't actually thought about that, but i think it is.
01:02:34 <ehird`> yaaaay
01:02:43 <ehird`> what about loading files
01:03:16 <ehird`> also, i have the tentatively-named ehirdtalk to implement too :P
01:03:55 <oklofok> :D
01:03:56 <ehird`> fact<-{<3->1=>*$-1} is factorial, iirc
01:04:03 <ehird`> more clearly:
01:04:03 <oklofok> you can add the sanity i lack :)
01:04:11 <oklofok> ah, i recall that
01:04:26 <oklofok> stream / code flow oriented
01:04:35 <ehird`> fact <- { ((_ < 3) -> 1) => (_ * ($ (_ - 1))) }
01:04:37 <oklofok> at least those were the things you explained back when i first saw that
01:04:43 <ehird`> and naw, not really
01:04:50 <ehird`> but the evaluation is weird
01:04:51 <oklofok> just a guess
01:05:03 <ehird`> hmm that should be:
01:05:12 <ehird`> fact<-{<3=>1->*$-1}
01:05:13 <ehird`> i think
01:05:20 <ehird`> well the pattern matching is crazy
01:05:38 <ehird`> as you can see, since -> or => or whatever 'if' is matches on a tuple on the left side
01:05:47 <ehird`> but it doesn't do it by matching on the tuple (which would mean it'd already be evaluated)
01:05:52 <ehird`> it matches on the call to the tuple constructor
01:06:03 <oklofok> that fact is wrong
01:06:08 <oklofok> errr
01:06:11 <oklofok> or am i wrong...
01:06:18 <ehird`> err, you are right
01:06:23 <oklofok> you have <3 in both
01:06:26 <ehird`> fact<-{<2->1=>*$-1} is factorial, iirc
01:06:34 <oklofok> hmm
01:06:53 <oklofok> what implies the implicit _ after => there?
01:07:00 <ehird`> the * binary operator
01:07:10 <oklofok> ah, not everything can be any-ary
01:07:25 <oklofok> should've known
01:07:25 <ehird`> any left-out dangling params are _
01:07:32 <oklofok> i know
01:07:55 <ehird`> i forgot how i did param names :(
01:09:44 <oklofok> hmm
01:10:00 <ehird`> an actually clear ehirdtalk program:
01:10:02 <ehird`> fib <- { 0 -> 0 => 1 -> 1 => > 1 -> $(-1) + $(-2) }
01:10:03 <ehird`> err
01:10:11 <ehird`> with newlines
01:10:12 <ehird`> fib <- {
01:10:15 <ehird`> 0 -> 0 =>
01:10:20 <ehird`> 1 -> 1 =>
01:10:27 <ehird`> > 1 -> $(-1) + $(-2)
01:10:29 <ehird`> }
01:10:42 <oklofok> hmmmm
01:10:46 <oklofok> i don't buy that
01:10:54 <oklofok> - can't be unary?
01:11:11 <ehird`> _ is unary negation
01:11:14 <oklofok> ah
01:11:20 <ehird`> or you could just do 0-
01:11:22 <oklofok> then i do buy that
01:11:37 <oklofok> yeah
01:11:55 <ehird`> though i am going to remove some of that stuff
01:12:00 <ehird`> because fact<-{*1..} should work
01:12:21 <ehird`> maybe ?
01:12:35 <ehird`> fact<-{?<2->1=>?*$?-1}
01:12:43 <oklofok> you could do like K
01:12:48 <ehird`> what does k do
01:13:13 <oklofok> \ is a primitive that does map when preprended to an oper
01:13:17 <oklofok> / does reduce
01:13:20 <oklofok> io think
01:13:22 <oklofok> *i think
01:13:28 <oklofok> it's 3 years since i looked at taht
01:14:13 <ehird`> ooh i know
01:14:15 <ehird`> {} matches on tuples
01:16:47 <ehird`> oklofok: gimme a call/cc in oklotalk
01:18:00 <ehird`> that is: (call/cc f) is (f k), where k is a function with a saved call stack from the point of call/cc, which on call with an argument restores the call stack and returns its argument as the return value of call/cc
01:18:09 <ehird`> also, k is callable multiple times
01:18:16 <oklofok> hmm... @@ may be the current continuation... i recall i had to make a new one because ' was clearly unoverloadable
01:19:52 <ehird`> oklofok: would cps-transformation of oklotalk be possible
01:19:54 <oklofok> you can do `'@#vars to get the current namespace, but without a state list, you can't make a goto without the explicit current continuation @@
01:20:25 <oklofok> i'm going to make it possible if it's no yet
01:20:28 <oklofok> *it's not yet
01:20:36 <oklofok> everything must be possible
01:20:59 <Slereah> I think I have a BF interpreter now.
01:21:08 <oklofok> cool
01:21:12 <ehird`> oklofok: just make the call-stack accessable
01:21:14 <oklofok> in what language?
01:21:18 <Slereah> But writing the + and - function in full is awfully boring.
01:21:22 <Slereah> Turing machine.
01:21:36 <ehird`> specifically, you can access the current call stack, replace the current callstack, and unwind with a return value to a certain point
01:21:42 <ehird`> then, you can implement continuations in about 3 lines
01:21:59 <ehird`> so basically add a global callstack object that you can assign to, and give it an 'unwind' operator
01:21:59 <faxathisia> bf interpreter in what Slereah?
01:22:05 <faxathisia> ooh sorry
01:22:07 <faxathisia> I didn't notice
01:22:17 <faxathisia> cool :D
01:22:24 <faxathisia> What does it look like"?
01:22:41 <oklofok> ehird`: yeah, if you can access the exact point where you are at the code
01:22:48 <oklofok> the code pointer to be exact
01:22:59 <Slereah> So far, http://paste-it.net/5460/raw/
01:23:05 <ehird`> dont need to do that oklofok
01:23:17 <oklofok> i don't?
01:23:18 <oklofok> why
01:23:21 <Slereah> The + isn't complete, there's no - yet, and it's not wrapping so far.
01:23:34 <Slereah> It also isn't in ASCII, but well.
01:23:58 <Slereah> (It's also on a Turing machine with 3 tapes, because I don't want to do a 1 tape version now)
01:24:34 <oklofok> ah, indeed, the call stack would hold the points of return anyway :)
01:24:35 <oklofok> silly me
01:31:31 <ehird`> so, any callcc oklofok ? :)
01:31:45 <oklofok> right, f@@
01:32:08 <oklofok> (f current_continuation)
01:32:13 <oklofok> (call/cc f)
01:32:41 <ehird`> what's the implicit paramater name in oklotalk
01:32:43 <oklofok> you call-with-current-continuation by calling with the current continuatino
01:32:49 <oklofok> ?
01:32:51 <oklofok> _
01:33:02 <ehird`> call/cc = {_@@}
01:33:13 <oklofok> almost
01:33:14 <ehird`> feel free to give a more concise definition :P
01:33:33 <oklofok> CallCC = {`_ @@}
01:33:39 <oklofok> oh
01:33:51 <oklofok> actually, that will use the continuation in CallCC :)
01:33:57 <oklofok> i need to ponder about this a bit.
01:33:58 <ehird`> hehe
01:34:25 <oklofok> oh, actually doesn't matter, i think
01:34:33 <ehird`> oklofok: oklotalk booleans
01:34:35 <ehird`> what are they
01:34:38 <oklofok> since callcc will return what was returned anyway
01:34:45 <oklofok> you usually use the atoms #t and #f
01:35:16 <ehird`> hey, schemeish
01:35:17 <ehird`> i like it
01:35:28 <oklofok> errr actually §t and §f... it seems i've added another set of atoms for typing and then mixed them up :o
01:35:59 <oklofok> #<...> should be reserved for stuff you don't actually need to see, but you *can*
01:36:00 <ehird`> ffffffff do i really have to type that char
01:36:06 <oklofok> :)
01:36:09 <ehird`> what about \
01:36:11 <ehird`> \t \f
01:36:19 <oklofok> i've never seen a keyboard without it.
01:36:25 <oklofok> in one press
01:36:28 <ehird`> i've only seen one keyboard with it
01:37:18 <ehird`> so oklofok what is the simplest way just to print a number to the screen then a newline
01:37:30 <oklofok> heh, well, dunno, need to think about the charset later
01:37:44 <oklofok> there are lots of chars not everyone can type in use.å
01:37:50 <ehird`> eh?
01:37:51 -!- GregorR has quit (Remote closed the connection).
01:37:53 <ehird`> just tell me the ismplest way :P
01:38:03 <oklofok> ...simplest way?
01:38:33 <ehird`> just the oklotalkian way to print a number then a newline
01:38:45 <oklofok> outn5
01:38:47 <oklofok> err
01:38:48 <oklofok> outn 5
01:40:38 <ehird`> my repl prompt will be awesome
01:40:54 <ehird`> it will have both nesting depth and line count
01:41:17 <ehird`> oklofok: does 'x = y' return y?
01:41:31 <oklofok> no.
01:41:34 <oklofok> it's not that simple
01:41:50 <oklofok> actually...
01:42:15 <oklofok> yeah, works exactly as in c
01:42:49 <ehird`> is there a standard way to pretty-print, e.g. a continuation?
01:43:02 <ehird`> currently i'm just planning on doing either #[a continuation] or (a continuation)
01:44:18 <oklofok> fact={{_<2}->1;_*'$_-1}; Fact!5=1; fact 6 -> 6
01:45:16 <oklofok> a function can be either a rule or a hashmap, you can assing any value to it, and it will be considered a new pattern match, with the greatest precedence.
01:46:44 <ehird`> oklofok: are there to-end-of-line comments?
01:46:49 <oklofok> no.
01:46:56 <oklofok> not currently, at least
01:46:59 <ehird`> pretty pleez :( it'd make my repl display nicer
01:47:03 <oklofok> -- will do that, prolly.
01:47:12 <ehird`> aww
01:47:17 <ehird`> why not ;;
01:47:17 <oklofok> <--...--> and --...
01:47:26 <oklofok> nah
01:48:00 <ehird`> -- could be ambigiouuuuusssss
01:48:02 <ehird`> and ;; is scheme
01:48:02 <ehird`> y
01:48:26 <oklofok> " -- " to be exact.
01:48:55 <oklofok> anyway, oklotalk is not meant to be comment-friendly.
01:52:17 <ehird`> hijacking your pastebin: http://www.vjn.fi/pb/p615162456.txt
01:52:20 <ehird`> continuations!
01:53:38 <oklofok> hmm
01:54:14 <ehird`> where's your fact-tutorial again?
01:54:23 <oklofok> up there
01:54:46 <oklofok> http://www.vjn.fi/pb/p551122163.txt
01:54:59 <ehird`> hmm make test Test
01:55:38 <ehird`> hmm,
01:55:42 <ehird`> a function object
01:55:45 <ehird`> i.e. {.....}
01:55:48 <ehird`> what do i know about it?
01:55:52 <oklofok> that's no problem if test has no initial value... although you don't wanna get into the details of that ;)
01:55:53 <ehird`> i.e. what info can i get about the function
01:56:00 <oklofok> hmm
01:56:03 <oklofok> what do you mean?
01:56:14 <ehird`> can i get arity?
01:56:16 <ehird`> a name?
01:56:17 <ehird`> etc
01:56:27 <ehird`> some way to say something more useful than [a function]
01:56:32 <oklofok> name cannot be accessed, for functions don't have names
01:56:52 <oklofok> it could have no name, or a million names
01:57:12 <oklofok> arity can be accessed, although i'm not sure how.
01:57:19 <oklofok> btw. the test function doesn't work as you wan
01:57:21 <oklofok> *want
01:57:26 <oklofok> it basically doesn't do anything...
01:57:31 <oklofok> oh, wait
01:57:44 <oklofok> ah
01:57:52 <ehird`> x = y returns y :-)
01:58:04 <oklofok> just use TehContinuation <- instead of =
01:58:18 <oklofok> <- is for setting a new value without making the var local
01:59:14 <oklofok> correct otherwise
01:59:35 <ehird`> ok
02:00:47 <ehird`> so how should i pretty print a function, oklofok?
02:00:58 <ehird`> [N-arity function] ?
02:01:13 <ehird`> i must be able to give more info than that
02:03:09 <oklofok> str F may provide the actual code of an uncompiled function
02:03:16 <oklofok> although i haven't specified what it does.
02:03:29 <ehird`> can't it just prettyprint the parse tree?
02:03:34 <ehird`> i guess that might lead to ugliness
02:03:37 <oklofok> sure
02:03:53 <oklofok> i don't wanna speficy that now
02:04:02 <oklofok> since i haven't thought about it
02:04:50 <ehird`> is [...] used for anything
02:05:05 <ehird`> or can i safely prettyprint [helpful info]
02:05:13 <oklofok> [] is for lists that are evaluated lazily, but that don't have their own scope.
02:05:40 <oklofok> [] is for lists, that is.
02:05:54 <oklofok> () is for lists too, as is , and juxtaposition.
02:06:19 <oklofok> also {} can be a list, although you need to apply it
02:06:25 <oklofok> ...since it's a lambda
02:06:48 <ehird`> give me some unused braces!
02:06:58 <oklofok> :D
02:07:11 <oklofok> <|...|>
02:07:14 <oklofok> xD
02:07:15 <oklofok> dunno
02:07:33 <oklofok> also, what exactly are you doing?
02:08:20 <ehird`> well, when you use a REPL
02:08:25 <ehird`> it has to show a result somehow
02:08:26 <ehird`> so.
02:08:34 <ehird`> like python does <object at blah>
02:08:49 <oklofok> indeed, just wondering whether you're making a repl or just playing you are one.
02:09:48 <ehird`> i will make one when c-oklotalk is written
02:10:05 <ehird`> so really i just need some unused pairable markngs :P
02:10:32 <oklofok> <> are just used as normal operators...
02:10:44 <oklofok> but i don't see how that's better
02:12:15 <ehird`> i guess i can do <-- -->
02:12:32 <oklofok> true
02:12:57 * ehird` wonders what untaken symbol to use for last-thing-evaluted
02:15:05 <Slereah> Well, there it is me think : http://paste-it.net/5461/raw/
02:15:15 <Slereah> To use with this thing here : http://paste-it.net/5462/raw/
02:15:46 <Slereah> And possibly this chart handy, since I can't do good ASCII on it : http://paste-it.net/5463/raw/
02:15:55 <ehird`> oklofok: http://www.vjn.fi/pb/p422433545.txt
02:15:58 <ehird`> pretty nice looking imo
02:17:03 <oklofok> :o
02:17:12 <oklofok> nice work, i see no syntactic errors
02:17:25 <oklofok> i mean, nothing that would behave incorrectly :P
02:17:30 <oklofok> except for ht fib
02:17:31 <oklofok> *the
02:17:32 <Slereah> I'll try the 99 bottle program to see if it works, after some conversion.
02:17:38 <oklofok> N-1, N-1
02:18:13 <oklofok> Slereah: working bf interpreter in a turing machine? that's quite awesome
02:18:14 <ehird`> what's wrong with the fib oklofok
02:18:21 <oklofok> can i see the newest one?
02:19:02 <oklofok> ehird`: it's wrong
02:19:08 <ehird`> oh yes
02:19:09 <ehird`> :P
02:19:11 <oklofok> :P
02:19:12 <Slereah> Well, I'm not sure on the working part yet.
02:19:25 <Slereah> I only tried little programs so far.
02:19:26 <ehird`> oklofok: so does that look like a session with a respectable oklotalk system to you? :P
02:19:31 <ehird`> (don't say implementation. Say system!)
02:19:36 <oklofok> ehird`: looks great
02:19:50 <Slereah> I thought the loops would be harder to do than that, though.
02:19:54 <ehird`> oklofok: my prompt is crazy :D
02:20:09 <ehird`> #1 why would you want to know your current input number
02:20:16 <ehird`> #2 can't you tell the nesting by indent?
02:20:42 <oklofok> i think the returning the info as a <----> is a fun idea, perhaps i should make <----> a first class annotation or something!
02:21:40 <ehird`> haha
02:21:56 <ehird`> it should parse the english inside
02:22:53 <oklofok> heh, i was thinking it'd behave as an empty list except would produce it's contents when str()'d
02:23:09 <ehird`> no, it should produce <-- contents -->
02:23:10 <ehird`> :D
02:23:13 <ehird`> self-evaluyating
02:24:38 <ehird`> back tomorrow
02:24:46 -!- ehird` has quit.
02:27:30 <Slereah> Hm.
02:27:54 <Slereah> Either there's an error or it takes forever!
02:28:10 <oklofok> hmm, is your code infinite?
02:28:46 <Slereah> I just entered some random big BF program.
02:29:13 <Slereah> Which would at best display random chars, since it's not the same code, or plain old errors, but I wasn't expecting nothing to happen.
02:32:06 <Slereah> Bood thing I can just display the tape!
02:32:09 <Slereah> G
02:33:36 <Slereah> Although it is painfully long to watch.
02:36:51 -!- Slereah- has joined.
02:38:43 <Slereah-> >:|
02:42:35 <Slereah-> What program would be a good way to test a BF interpreter?
02:42:35 <Slereah-> I already did text display and cat.
02:43:03 <oklofok> lost kingdom
02:43:13 <oklofok> there's a digit root by keymaker
02:43:18 <oklofok> you can google it
02:43:30 <Slereah-> I know of Lost Kingdom.
02:43:48 <Slereah-> But since so far it's not in ASCII, I'm not tickling that one.
02:44:43 <Slereah-> I made some local version of hello world with some loops in it. Seems to work.
02:50:21 <Slereah-> "Random byte generator" is awfully slow and gives me a whole lot of empty chars.
02:50:41 <Slereah-> Damn.
02:50:49 -!- GregorR has joined.
02:52:56 <Sgeo> Hi GregorR
02:53:36 <Slereah-> I guess I'll have to write a program to write the + function for ASCII!
02:53:38 * Sgeo might write the first lines of a PSOX interpreter tonight
02:53:48 <Slereah-> 'cause I'm not writing the 256 lines for it.
02:54:33 <GregorR> Sgeo: /*
02:54:44 <oklofok> :D
02:54:45 -!- Slereah has quit (Read error: 110 (Connection timed out)).
02:54:46 <GregorR> Oh, lines
02:54:53 <GregorR> /*
02:54:59 <GregorR> * A PSOX interpreter
02:55:07 <Sgeo> hehe
02:55:20 <Sgeo> Incidentally, that doesn't work
02:59:25 <Sgeo> *silence*
03:00:00 <faxathisia> sorry for breaking the silence
03:03:17 <Sgeo> No one's going to guess/already knows why I said that it wouldn't work
03:03:40 * faxathisia assumes you're writing in python but doesn't feel the need to mention this
03:04:08 <Sgeo> faxathisia, but you DID mention it >.>.. incidentally, that is the reason
03:05:49 <Slereah-> I can't seem to copypasta the \000 char.
03:05:56 <ihope> Suddenly, I want to write a program along the lines of the Lego drag-and-drop programming stuff, except with a functional "programming language" instead of imperative.
03:06:11 -!- User333 has joined.
03:06:23 <User333> Hi everyone~
03:06:28 <ihope> Ello.
03:06:31 <Sgeo> Hi User333
03:06:34 <Slereah-> Hello.
03:06:38 <User333> I found this place through "searchIRC"
03:06:41 <User333> what's it about?
03:06:59 <ihope> Programming languages that are intentionally weird somehow, more or less.
03:07:10 <User333> why the "esoteric" tag/
03:07:24 <ihope> Do you know the meaning of "esoteric"?
03:07:35 <User333> yes
03:08:10 <ihope> There's not much I can say, then, really.
03:08:46 <User333> oh..well im not a programmer, i thought all of it was within the same language
03:09:27 <ihope> If you consider yourself a nerd at all, try it :-)
03:09:54 <pikhq> mv: cannot stat `./../include/d/4.1.3/object.d': No such file or directory
03:09:56 <User333> oh i see, i was looking for esotericism
03:10:10 <faxathisia> this is it
03:10:19 <pikhq> Esoteric languages, ahoy.
03:10:21 <User333> no, esotericism is mysticism
03:10:43 <ihope> Indeed, esoteric programming and esotericism aren't the same thing.
03:10:51 * pikhq suspects that searchIRC needs to include the word "programming" with that.
03:11:42 <User333> so you are the guys who worship movies like "I, Robot" instead of LOTR
03:12:04 <User333> hehe just playing
03:12:15 <faxathisia> I like TRON more
03:12:38 <User333> have you guys found this? http://nerogame.org/
03:13:13 <ihope> Hmm, looks interesting.
03:13:17 <User333> its supposedly an advanced "evolution" game where you can shape your own robot teams "unique intelligence"
03:13:42 <User333> i had a hard time with it, since im not a programmer lol... all my robots learned was to run around a wall
03:15:11 <User333> so wait a second... isnt esoteric programming very closely related to hacking?
03:15:30 <ihope> I don't think so.
03:15:32 <pikhq> Define 'hacking'.
03:15:59 <User333> "finding ways around barriers" or "finding new ways to infiltrate"
03:16:19 <faxathisia> I don't think that's a good definition of hacking..
03:16:40 <pikhq> I'm going to beg to differ with any definition that involves breaking into computers, myself.
03:16:42 <ihope> In that case, esoteric programming can be hacking.
03:16:58 <ihope> But I'd say it's quite separate from breaking into computers.
03:17:04 <pikhq> Hacking, (v): "Being creatively clever (especially in terms of programming)"
03:17:16 <ihope> More like trying to overcome "limitations" in the programming language.
03:17:22 <pikhq> ex: "I'm hacking together a D build environment."
03:17:41 <User333> how many of you have OCD?
03:17:48 <pikhq> Not I.
03:17:55 <User333> are you sure?
03:17:58 <User333> :)
03:18:11 <Sgeo> Any OCD that I may have is completely unrelated to computer use >.>
03:18:18 <Slereah-> Oh bloody hell.
03:18:32 <User333> im just asking because you seem compulsive about correct grammar
03:18:33 <pikhq> Quite certain, yes.
03:18:37 <Slereah-> The BF interpreter is too long to input in the Python interface.
03:18:45 <Slereah-> I'll just have to use the dreaded files!
03:18:46 <faxathisia> lol
03:18:53 <faxathisia> how is there a limit?
03:19:02 <Slereah-> I'm not sure.
03:19:16 <pikhq> That much comes as a result of doing a lot of programming; computers are compulsive about correct grammar.
03:19:18 <Sgeo> Any OCD that I might have is almost certainly unrelated to grammar..
03:19:21 <Slereah-> But whatever is the case, it's annoying to enter. I'll just input it as a file.
03:19:51 <faxathisia> (It's also just a bit distressing how badly media vandalised the word hacking an created associated problems)
03:20:05 <pikhq> I suspect that most computers, parsing "foo := 'abc'", would not accept "flimble" as a foo token. . .
03:20:07 <Slereah-> THEY ARE HACKERS ON STEROIDS
03:20:17 <User333> you should meet my friends, they think hacking is memory editing
03:20:32 <pikhq> That's amusingly horrid.
03:23:02 <Slereah-> Oh bloody hell.
03:23:12 <User333> so..have any of you hacked server sided aspects of games?
03:23:49 * pikhq suspects that User333 is remarkably confused about what we do.
03:24:03 <pikhq> Quick, bring out the discussion of the merits of SKI combinator calculus!
03:24:19 <Sgeo> No PSOX?
03:24:27 <pikhq> Sgeo: Alright, PSOX works.
03:24:29 -!- Slereah has joined.
03:24:37 <Sgeo> wb Slereah
03:24:37 <faxathisia> every 'bit string' of SK terms is well typed?
03:24:39 <Slereah> Fuck ASCII. I'll stick with my interpreter.
03:24:51 <pikhq> Although you need to implement a SK namespace. :p
03:24:54 * Sgeo should start writing the PSOX code now
03:25:03 <faxathisia> wait a min I want trees not bit strings..
03:25:23 <pikhq> Mmm. Turing-complete with a small amount of symbols. . .
03:25:57 * faxathisia strives for turing-incompletness :S
03:26:04 <pikhq> That's trivial.
03:26:12 <faxathisia> but!
03:26:16 * Slereah is totally Turing complete
03:26:17 <pikhq> Just be sure to have your only method of storing data be a single stack.
03:26:24 <faxathisia> also capable of doing large amounts of interesting calculations
03:26:36 <faxathisia> I guess I really mean, everything termiantes and that kind of things
03:26:45 <pikhq> Unless you're so friggin' insane that you implement two stacks in a single stack.
03:26:46 <faxathisia> the langauges are rare
03:26:50 <pikhq> In which case, I salute you.
03:29:45 <User333> so wait...wheres the money behind finding if something is turing-powerful
03:30:09 <Slereah> Well, that got Turing an article for a start!
03:30:42 <ihope> Sorry; all the money behind proving Turing-completeness went to ais523. :-P
03:30:49 <User333> lol
03:30:56 <Slereah> Damn him and his 2,3 machine money!
03:32:19 <User333> you guys should look into Korean programming, most confusing stuff ever...
03:32:57 <Slereah> I've seen Malbolge this afternoon. I doubt that it will even approach that level!
03:33:10 -!- User333 has quit ("Leaving").
03:33:12 <pikhq> *Nothing* is as evil as Malbolge.
03:33:58 <Slereah> Since I barely know what a register is, I'm pretty screwed!
03:34:53 <Slereah> Hm.
03:35:01 <Slereah> I'll write a ROT13 program!
03:35:17 <pikhq> Malbolge makes grown men cry. Including men who write code using a hex editor and nothing else.
03:35:18 <faxathisia> "proof by implementing brainfuck in the typesystem"
03:36:01 <pikhq> Slereah, if you can write a ROT13 program, you are officially the best Malbolge coder in the world. Bar none.
03:36:20 <Slereah> Not in Malbolge.
03:36:26 <Slereah> I need to test my BF interpreter.
03:36:36 <pikhq> Oh.
03:36:44 <pikhq> Much saner.
03:37:19 <Slereah> I am somewhat sad that people didn't chose to comment their ROT13 BF programs. I can't just change the ouchy parts.
03:38:47 * Sgeo really should be doing stuff like taking care of cats right now :/
03:38:50 <Slereah> A Turing machine isn't an efficient BF implementer. You can't just increment the symbols like that.
03:39:49 <oklofok> Slereah: please try to keep the surprises more subtle, i almost had a heart attack.
03:40:08 <Slereah> Heh.
03:40:25 <Slereah> I'll stop bitching about it.
03:41:20 <oklofok> nah, just trying to be funny
03:41:26 <oklofok> "funny"
03:42:10 <Slereah> Then again, 5 AM isn't the best of time to program in BF.
03:42:11 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
03:42:22 <Slereah> It can wait another day.
03:42:30 <oklofok> indeed, and 5:46 isn't the best time to be coding.
03:43:03 <Sgeo> Anyone want to write a Malbolge program that takes advantage of PSOX features?
03:43:17 <Slereah> Is that a threat?
03:43:37 <Slereah> "Do what I say, or you'll code in Malbolge with PSOX features!"
03:43:43 <pikhq> I don't want to write a Malbolge program.
03:43:50 <Sgeo> lol Slereah
03:45:01 -!- ihope has quit ("CGI:IRC").
03:45:44 <Slereah> I want to see a computer with a Malbolge CPU. And spikes on it.
03:45:54 <Slereah> The computer, not the CPU.
03:46:08 <Slereah> With the skulls of the foolish on top
04:05:02 <Slereah> http://paste-it.net/5472/raw/
04:05:15 <Slereah> Here it is commented. Does it seem okay to you?
04:17:22 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
04:17:46 <oklofok> ret2[$:UPUPRI:com;1:ERLEUPUPLE:ret]]
04:17:50 <oklofok> great stuff
04:17:58 <oklofok> although all i get out of it is cheap laughs :)
04:18:12 <oklofok> as always with this kind of line noise
04:18:27 <oklofok> oh, comments
04:18:59 <Slereah> I don't know. I find it somehow easy to read and write.
04:18:59 <oklofok> i guess those might be readable, but the font is too small for my eyes
04:19:16 <oklofok> prolly, once you have *any* idea what *anything* there means.
04:19:58 <Slereah> Well, it's mostly the notation of Turing, but with 2 characters per instruction. Easier on the interpreter.
04:21:28 <Slereah> LE is left, RI is right, UP is up (tape above), DW is down (tape below), ER is erase, Px is print x (on the tape), DI is display (on the screen), CH is the choice instruction (prints the keyboard input on the tape), LF and TB are just fancy "print new line" and "print tab".
04:22:57 <Slereah> The state itself (for instance, 1[#:P@RI:com;cr:LE:1]) is to be read as : "In the state 1, if the current cell is #, print @ and go right and to state com, if the current cell is any other character, go left and to state 1".
04:23:17 <Slereah> (cr is for "remaining characters", roughly)
04:26:51 <Slereah> If you want line noise, I have the 4 characters version!
04:27:05 <Slereah> Although it can't input, or output for that matter.
04:27:13 <Slereah> But you can watch the tape as it goes.
04:31:23 <oklofok> cool, graphica seems to work now :o
04:31:57 <Slereah> Graphica?
04:32:41 <oklofok> my graph specifying system
04:32:44 <oklofok> http://www.vjn.fi/pb/p241624426.txt
04:32:55 <oklofok> the first one is how the code will look like before parsing
04:33:03 <oklofok> the second is what i parsed it as, manually
04:33:12 <oklofok> then, there's the graph in ascii form
04:33:18 <oklofok> it's
04:33:19 <faxathisia> ooh :D
04:33:21 <oklofok> node:
04:33:34 <oklofok> node_it's connected_to, another_node, etc
04:34:00 <oklofok> just bidirectional edges implemented atm
04:34:19 <oklofok> not sure whether unidirectional ones will work with the same evaluator
04:34:40 <oklofok> but it's quite nice after i get the parser working, since it produces a normal python dict
04:34:48 <Slereah> Lisp-related language?
04:35:06 <oklofok> not really
04:35:14 <Slereah> I see a whole lot of parenthesis!
04:35:23 <oklofok> well, the second one is, since i parse into lisp-like syntax
04:35:31 <oklofok> the second one is python code
04:35:36 <oklofok> i did parsing manually, you see
04:35:46 <Slereah> I barely know what parsing means.
04:35:50 <oklofok> ah
04:35:51 <oklofok> sorry
04:35:56 <Slereah> No matter.
04:36:02 <oklofok> like, if you have 3*31+5*7
04:36:09 <oklofok> it's very hard to evaluate
04:36:23 <oklofok> so, you can parse it into (+ (* 3 31) (* 5 7))
04:36:29 <oklofok> which will be trivial to evaluate.
04:36:36 <oklofok> if there's list support
04:36:51 <oklofok> also, 3 31 * 5 7 * +, and you just need a list
04:37:06 <Slereah> Heh.
04:37:10 <faxathisia> you got a blob of text and you can turn that into structured data, where the data is in the shape of the meaning'
04:37:12 <faxathisia> of the code
04:37:21 <oklofok> (and a stack..)
04:37:29 <Slereah> Reminds me of that lambda calculus thingy I tried to implement.
04:38:41 <Slereah> Unfortunately, I'm not very good at that parsing of nested parenthesis.
04:38:43 <oklofok> http://projecteuler.net/index.php?section=problems&id=68
04:38:58 <oklofok> that's the one my code describes
04:39:13 * faxathisia thinks that parsing is terribly hard unless you have logic programming or a combinator parser :S
04:40:13 * Slereah does all his programming on Python
04:40:26 <oklofok> faxathisia: wanna stretch your brain a bit and tell me if you can see how the code of mine relates to that gon ring
04:40:34 <oklofok> also Slereah
04:40:44 <oklofok> Slereah: python AND turing machines
04:40:52 <Slereah> Well, yes.
04:40:58 <Slereah> But a Turing machine on Python!
04:41:02 <oklofok> heh
04:41:13 <faxathisia> oklofok; Well I'd want to know why there is no <-> before Ring68 n-1 m
04:41:25 <Slereah> I tried to do it on C originally, but it was too much of a pain in the ass to have an infinite tape.
04:41:28 <oklofok> ah
04:41:34 <oklofok> the <-> applies to that too
04:41:45 <oklofok> it's just not necessary, since it's indented
04:41:49 <faxathisia> ahh ok
04:41:52 <oklofok> it assumes <-> is meant for that too
04:42:10 <oklofok> parsing isn't fully specced yet... which is why i had to parse manually
04:42:36 <oklofok> i was actually quite surprised the trees+tagging thing worked so well :o
04:43:00 <oklofok> it's a very intuitive way to produce graphs
04:43:04 <oklofok> i think..
04:43:22 <faxathisia> mm I think it's wrong :p
04:43:32 <oklofok> oh, where?
04:43:34 <faxathisia> maybe this should be Ring68 0 m :: #Mid m <-> #Outer n
04:43:42 <faxathisia> or am I confused?
04:43:45 <oklofok> it chmm
04:44:00 <oklofok> err
04:44:01 <oklofok> hehe
04:44:11 <oklofok> :: T means tag this as T
04:44:34 <oklofok> so... the nodes produced are always tagged as #mid + their id
04:45:08 <oklofok> and, they are connected to a node called #outer their_id, plus the next node in the middle ring.
04:45:40 <oklofok> the recursion only goes through the middle ones, the outer ones are created without recursive calls
04:46:16 <oklofok> ah
04:46:26 <oklofok> sorry, i now realize what you said :)
04:46:34 <oklofok> nope, it's correct as is
04:46:48 <oklofok> you see, once the last node in the middle ring is tagged as m
04:47:00 <oklofok> the evaluator realizes it's the same as the first one
04:47:14 <oklofok> and the first one alrady has the connection to the outer node
04:49:28 <oklofok> faxathisia: did you get it now? :D
04:49:29 <faxathisia> ahh I understand
04:49:31 <faxathisia> this is very cool
04:49:33 <faxathisia> I just evaluated ti http://rafb.net/p/jRexrI17.txt
04:50:32 <oklofok> in fact, it's so cool i'm pretty sure it's been invented multiple times before me.
04:51:19 <oklofok> but, until oerjan joins and tells me he vaguely recalls seeing it somewhere, i'm going to enjoy it
04:51:57 <faxathisia> hehe
04:54:56 <oklofok> i need the parser, could try making an n-dimensional grid or something
04:55:40 <oklofok> unfortunately, the parsing isn't as trivial as it seems, i tend to add lots and lots of hard-to-implement details in everything :\
04:55:50 <faxathisia> can't you use haskell as the parser?
04:56:06 <faxathisia> like just define some functions and then it parses oh wait :: you couldn't use
04:56:18 <oklofok> it's not haskell syntax
04:56:32 <Slereah> Hm. Using only single-chars state names, the bitchanger interpreter is under 4 lines on the Machine.
04:56:36 <faxathisia> if it's close enough I always recommend abusing some existing parser :p
04:56:47 <oklofok> hehe
04:56:55 <oklofok> nah, i make my parsers raw
04:57:02 <oklofok> like a MAN.
04:58:33 <oklofok> i've made a few parsing libs, and i have about 3 parametrizable evaluators for basic prefix+infix expressions, one allowing regexes for everything
04:58:51 <oklofok> and still, i always try to do everything with a few splits and cuts :)
04:59:16 <faxathisia> woah
04:59:30 <faxathisia> what sort fo parsing libs
05:03:27 <bsmntbombdood> "it doesn't take most people very long to notice that I am not in fact crazy"
05:03:31 <bsmntbombdood> lol, esr is funnt
05:03:34 <bsmntbombdood> *funny
05:05:09 <oklofok> faxathisia: not good ones, and none parse very generically
05:05:29 <faxathisia> I like the mixfix stuff in Agda2
05:05:39 <oklofok> misfix?
05:06:04 <faxathisia> I can write if_then_else_ :: Bool -> a -> a -- or something
05:06:07 <faxathisia> then define it like
05:06:16 <faxathisia> if cond then do else other = ...
05:06:27 <faxathisia> and use it like that from then on
05:06:37 <oklofok> oh
05:06:41 <oklofok> interesting
05:07:04 <oklofok> i wouldn't wanna parse that :)
05:08:37 <faxathisia> http://cvs.coverproject.org/marcin/cgi/viewcvs/Agda2/examples/Introduction/Operators.agda?rev=HEAD&content-type=text/vnd.viewcvs-markup
05:10:05 * faxathisia will probably steal their parser if I want a langauge that looks like that
05:24:38 <Slereah> Oh bloody hell.
05:27:37 <Slereah> My interpreter confuses between UP followed by ":" with "P:"
05:31:16 <Slereah> Either I get a great idea, make some temporary fix or weasel my way out by changing "UP" to something without P's.
05:31:17 <Slereah> Hm.
05:36:49 <Slereah> Temprary fix here I come.
05:43:42 -!- calamari has left (?).
05:45:18 <Slereah> http://paste-it.net/5473/raw/
06:10:39 <oklofok> http://www.vjn.fi/pb/p554531552.txt
06:11:14 <oklofok> lol, 1.5 hours of thinking whether i should make the parser, then 40 minutes of making it :D
06:11:28 <oklofok> not that it's ready yet, it just parses that program.
06:12:26 <oklofok> but the rest is just 1. making an infix expression parser 2. making a lisp(ish) evaluator 3. making it support recursion, didn't put it in since i don't need it there
06:13:01 <oklofok> Slereah: what does tha tdo?
06:13:03 <oklofok> that do
06:13:38 <Slereah> Well, I changed it when I noticed that it needed one instruction less, but it's a Bitchanger compiler.
06:13:59 <oklofok> cool
06:14:33 <Slereah> Although I have no way to check for much accuracy, because my attempts at making an OR gate with it havebeen futile so far.
06:14:35 <oklofok> hmm, sun rises soon, i think it's time for some sleeps ->
06:14:43 <Slereah> I know the feeling.
06:14:48 <Slereah> I should go too.
06:33:54 -!- oerjan has joined.
06:42:09 <pikhq> Hello, oerjan.
06:42:32 * pikhq can now act on behalf of 3 second-class players and 2 first-class players in Agora. Insane.
06:44:15 <pikhq> Agora's Child, The Association of Federated Organizations, The WALRUS, myself, and Steve Wallace.
06:55:30 <oerjan> well, you are not the first person to go through a period of Agora overachievement :)
06:55:53 <oerjan> just don't suddenly disappear and bring the game to a near crash like some of the former ones :)
06:56:24 <oerjan> (this is a vague recall (TM) btw)
07:00:51 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
07:01:23 -!- bsmntbombdood has joined.
07:01:59 <pikhq> It's not overachievment until I take the office of rulekeepor.
07:02:05 <pikhq> :p
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:44:11 <GregorR> Heh, I set up Trac and Mercurial (with commit) on a server where I have no SSH, that doesn't have Python installed >: )
09:30:08 -!- oerjan has quit ("leaving").
10:59:07 -!- helios_24c3 has joined.
11:40:10 -!- Hiato has joined.
11:47:41 <Hiato> hello again, everyone :)
11:57:27 -!- helios_24c3 has quit ("Leaving").
12:00:55 -!- RedDak has joined.
12:08:24 -!- RedDak has quit (Remote closed the connection).
13:06:33 -!- Hiato has left (?).
13:35:38 -!- helios_24c3 has joined.
13:36:14 -!- jix has joined.
13:41:56 -!- jix has quit ("CommandQ").
14:11:45 -!- ihope has joined.
14:12:04 <ihope> pikhq: whose side are you on, then? :-P
14:47:20 * Slereah needs a catchy name for his language.
14:47:33 <Slereah> Donald Knuth was right, it is the hardest part!
14:49:46 <ihope> What's an important feature of the language?
14:50:36 <Slereah> Turing completeness?
14:50:50 <Slereah> The isomorphism to the Turing machine is the identity function!
14:51:12 <ihope> Call it Yet Another Turing Language or YALT, then.
14:51:22 <ihope> Acronyms that don't quite match up with what they stand for are always fun.
14:51:43 <Slereah> Heh.
14:52:27 <ihope> "ISO" stands for "International Organization for Standardization", after all. :-P
14:52:57 <Slereah> Yes, but the ISO is greek IIRC.
14:53:30 <oklofok> iso means big
14:54:00 <ihope> A cross between "isos", "IOS" and "OIN".
14:57:53 <Slereah> What's a good function to tell Python to wait n milliseconds?
15:00:00 <ihope> sleep(n/1000), possibly.
15:00:06 <ihope> In the time module.
15:07:30 <Slereah> http://paste-it.net/5480/raw/
15:07:34 <Slereah> Success!
15:07:42 -!- puzzlet_ has quit (Remote closed the connection).
15:07:47 -!- puzzlet has joined.
15:40:36 -!- oerjan has joined.
15:41:13 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
15:43:12 -!- puzzlet has joined.
15:45:04 * oerjan vaguely recalls "ISO" was a compromise between English and French. the French got the acronym, the English the expansion.
15:45:54 <Slereah> If it was French, it would start with an O.
15:45:55 <oerjan> or was that SI? perhaps both.
15:46:12 <Slereah> Organisation des standards internationaux, or Organisation internationale des standards.
15:53:47 <oerjan> ah, "ISO is not, however, an acronym or initialism for the organization's full name in either official language. Rather, the organization adopted ISO based on the Greek word .... (isos), which means equal."
15:55:26 <oerjan> er, are you sure you used my line literally?
15:55:39 * oerjan throws an axe after Mr. Wong
15:56:51 <Slereah> Axes!
15:56:55 <Slereah> My one weakness!
15:56:58 <Slereah> How did you know!
16:23:50 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
16:25:45 -!- puzzlet has joined.
16:57:00 -!- Hiato has joined.
17:05:30 -!- wooby has joined.
17:09:58 -!- helios_24c3 has quit ("Leaving").
17:12:44 <Slereah> Hello.
17:12:56 <Hiato> Hi Slereah
17:27:13 -!- Hiato has left (?).
17:28:53 -!- helios_24c3 has joined.
17:35:24 -!- Hiato has joined.
17:36:10 <Hiato> Ok all, the links are now fixed and the news typo was fixed, so everything is working now at http://full0.8tt.org
17:36:39 <Hiato> so you can get the interpreter and view the source (the links for which were both broken before)
17:43:57 * pikhq returneth
17:44:13 <Slereah> Welcometh backth.
17:44:21 <Hiato> Ditto-eth
17:45:00 <Hiato> Pikhq, I fixed up all the links on the site, you can now get the interpreter and the source (they were broken beofre)
17:59:53 -!- wooby has quit.
18:06:44 * pikhq nods
18:06:44 <pikhq> I'll have to set up a Pascal compiler sometime; currently waking up, and soon going to try getting Plof working.
18:19:38 <Hiato> sure
18:20:00 <Hiato> well, you can download the .exe and use wine or whatever
18:20:49 -!- helios_24c3 has quit ("Leaving").
18:21:49 * Slereah tries to make an actually good parser for the Love Machine 9000
18:21:56 <Slereah> Or whatever its name may be.
18:22:02 <pikhq> More of a pain than just compiling a Pascal compiler.
18:23:01 <Slereah> The P instruction is bugging me.
18:24:19 * pikhq tosses Slereah YACC
18:24:54 <pikhq> Unless you're insane like Gregor, and code your parsers by hand, you'll like YACC.
18:25:08 <Slereah> YACC?
18:25:18 <pikhq> Yet Another Compiler Compiler
18:25:39 <pikhq> You give YACC some input vaguely like Backus Naur Form, and it outputs a parser to parse that syntax.
18:25:53 <pikhq> Combine with lex to get the tokenization right, and voila.
18:26:10 <pikhq> You may already have them installed: look for GNU Bison and GNU Flex on your system.
18:26:19 <Slereah> But that might mean having to rewrite most of the Love Machine 9000! :O
18:26:36 <Slereah> GNU? I don't have Linux on little man
18:27:08 <pikhq> What *do* you have?
18:27:13 <Slereah> Windows XP.
18:27:30 <Slereah> I once tried to install some Kubuntu, boy, did I regret it!
18:27:33 <pikhq> Here's some rope, a chair, and instructions on tying a noose.
18:27:39 <Hiato> :D
18:27:49 <Hiato> I mean err.. amm
18:27:54 <Hiato> shame (?)
18:28:11 <pikhq> If you want to use that system sanely, at the *very* least, get Cygwin.
18:28:24 <Slereah> What doth that be?
18:28:33 <pikhq> Cygnus' GNU for Windows.
18:28:48 <pikhq> It's a port of most of GNU to Windows.
18:29:15 <pikhq> And makes Windows POSIX-compliant. That, in itself, is an astounding feat.
18:30:35 <Slereah> Will it be possible to use the function sys.stdin.read on python and it works?
18:30:52 <pikhq> Oh, you're coding in Python, not C?
18:31:05 <pikhq> Well, I'm sure Python has a YACC-alike out there. . .
18:31:11 <Slereah> Didn't you get that from my long line of Python related questions?
18:31:17 <pikhq> Didn't see them.
18:31:28 * pikhq shoves C down Slereah's throat first
18:31:39 <Slereah> I tried writing the Love Machine in C.
18:31:53 <Slereah> But making an infinite tape in C is bothersome.
18:32:02 <pikhq> Not really. . .
18:32:29 <Slereah> Maybe for you people with an actual knowledge of code!
18:32:33 <pikhq> Just make a doubly-linked list; when you reach the end of the list, just add a new node.
18:32:43 <pikhq> Trivial.
18:33:30 <oerjan> i recall someone here used a parsing library for Python
18:33:43 <oerjan> it was more the combinator kind
18:34:02 <pikhq> I could ask a minor-Python-diety friend of mine when he wakes up.
18:34:25 <Hiato> Ok, here's a little taste of my next esolang: {/(<<)[^<]:>:>^>>>v<|v->{<^^<v|^-<{<<<}~}\{(>>)[^<]:=:}}
18:34:25 <Hiato> I have _no_ idea what that does, but it is syntactically correct. Comments?
18:34:39 <Slereah> A Python deity? Can he touch my code to make it perfect?
18:34:46 <pikhq> He may.
18:34:54 <pikhq> Hiato: I love the syntax. Truly.
18:35:02 <Hiato> I'm glad
18:35:06 <Hiato> I like it too ;)
18:35:16 <Slereah> It has a lot of smiley faces.
18:35:33 <Hiato> oh, huh well that just happened to be that way
18:35:49 <pikhq> oerjan: Hiato seems intent on pleasing the people here who want non-Brainfuck-based Esolangs.
18:35:57 <pikhq> His are brilliantly creative. ;)
18:36:12 <Hiato> thanks :)
18:41:01 <Hiato> In case anyone's interested, the language has 13 symbols and 6 commands
18:43:25 <pikhq> Fairly sparse. Good so far.
18:43:32 <pikhq> Slereah: PLY.
18:43:35 -!- cherez has joined.
18:47:26 <Slereah> Wut?
18:48:37 <pikhq> That's the Python YACC-like thing.
18:48:50 <pikhq> And I'm *still* going to recommend you learn UNIX and C. ;)
18:49:08 <Slereah> I have my share of C, don't worry.
18:49:24 <pikhq> Then why did you think implementing a *tape* in C was so hard?
18:49:31 <Slereah> That's the language we have to use in the sort-of CS class I have.
18:49:47 <Slereah> Well, it's the infinite part I was worried!
18:49:55 <pikhq> Just make it automatically resizing.
18:49:58 <pikhq> Simple.
18:50:17 <Slereah> I can just do .append on the snake, but I saw some worrying malloc and such in C.
18:50:27 <pikhq> Like I said before: dual linked list, when you reach NULL on it, malloc a new list node. Simple.
18:50:46 <Slereah> There's two words I can't recognise in that statement.
18:50:49 <Slereah> Please parse it.
18:51:05 <pikhq> Do you not know what a linked list is?
18:51:20 <Slereah> My major is in physics, not computer science.
18:51:39 <pikhq> A linked list is kinda computer science 101.
18:52:01 <Slereah> Describe it. Maybe I've heard of it, but don't know the translation!
18:52:18 <pikhq> A linked list has any number of nodes.
18:52:28 <Slereah> "Node" is the second mystery word.
18:52:32 <pikhq> Each node has a pointer to another node, and a pointer to the data.
18:52:46 <pikhq> A dual linked list has a pointer to the previous and the next node.
18:52:52 <pikhq> http://en.wikipedia.org/wiki/Linked_list
19:02:05 <Slereah> Hm.
19:02:16 <Slereah> PLY is in a .tar.gz
19:02:43 <Slereah> Ah, Winrar can do it.
19:05:09 <pikhq> Don't complain about Tarballs. It's a decent format for us Unix-types.
19:07:27 <Slereah> Never fear. I'll have to install the damn Linux eventually.
19:34:47 <Hiato> Ok, first programme done:
19:34:47 <Hiato> {{>>}~~~~~~~~~~{{-<~}<<}/{{(<){{[<<]}}}}:>:~{>>{<<}}~{<<{>>~<<}>>}~{<<{>>}}\{>>v}~{^}~~~~~{<}~{<{~}v>}~}
19:34:47 <Hiato> It outputs "T" using the 10th number of the Fibonacci sequence - 4 (which is then 84). I could have done the boring 84 additions, but recursion and conditions are way more fun :)
19:35:06 <Hiato> *- 5
19:37:15 <pikhq> :-O
19:37:43 <pikhq> I'm going to guess that {} contains a loop?
19:37:59 <Hiato> nope, sorry ;) the / and \ do
19:38:54 <pikhq> Ah.
19:39:26 <Hiato> the stuff immediately after the / is the condition stuff ending at :>: meaning greater than
19:40:55 -!- puzzlet has quit (Remote closed the connection).
19:41:08 -!- puzzlet has joined.
19:41:22 <Hiato> {{>>}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{v<<{~}}}
19:41:26 <Hiato> would work identically
19:41:34 <Hiato> except it's just 84 additions
19:43:35 <pikhq> Hmm.
19:44:42 <Hiato> is that a no? Should I modify the language, anything you hate, replace a symbol etc...
19:47:04 <pikhq> Nothing I hate.
19:47:15 <pikhq> I'm just curious what everything does. :p
19:51:28 -!- jix has joined.
19:56:08 -!- sebbu2 has joined.
20:00:12 -!- ihope has quit ("CGI:IRC (Session timeout)").
20:13:09 -!- sebbu has quit (Read error: 110 (Connection timed out)).
20:22:23 -!- Sgeo has joined.
20:22:58 * Sgeo will start writing code for PSOX today!
20:23:05 <Hiato> Sure, no prob :) I just wanted feedback
20:23:33 <Hiato> yes please Sgeo so that I can include (?) PSOX in my new esolang, check above for examples
20:24:00 <Sgeo> "above"? I just got here >.>
20:24:11 <Hiato> lol, sorry, I meant above in the log
20:24:16 <Hiato> or I can paste again
20:24:16 <Sgeo> oh
20:24:18 <Hiato> if you like
20:24:26 * Sgeo opens log
20:25:30 <Hiato> 11:34:47
20:25:55 <Hiato> actually it starts at 10:34:25
20:26:00 <Hiato> brb
20:26:06 <Sgeo> PSOX doesn't need to be included in the specs of the esolang or anything. It's mostly language neutral
20:26:08 <Sgeo> hb
20:27:05 <Sgeo> Is it ok if types in PSOX 1.0 are regex-based?
20:27:13 * Sgeo pokes pikhq and oklofok and random other people
20:27:17 <pikhq> Possible.
20:27:52 <Sgeo> Also, there's quite a bit of overhead with the VARG(LNUM) and VARG(LBYTES) types
20:28:09 <Sgeo> Suppose a function is expecting a VAR(LNUM)
20:28:24 <Sgeo> and you want to add 3 bytes together: 0x01, 0x02 and 0x03
20:28:39 <Sgeo> This would be the input to the function
20:29:06 <Sgeo> 0x01 0x01 0x01 0x00 0x01 0x01 0x02 0x00 0x01 0x01 0x03 0x00
20:29:18 <Sgeo> No, it's
20:29:22 <Sgeo> 0x01 0x01 0x01 0x00 0x01 0x01 0x02 0x00 0x01 0x01 0x03 0x00 0x00
20:29:41 <Sgeo> Want the explanation?
20:30:55 <Sgeo> 0x01(varg indicator) 0x01(lnum indicator) 0x01(data) 0x00(li) 0x01(vi) 0x01(li) 0x02(d) 0x00(li) 0x01(vi) 0x01(li) 0x03(d) 0x00(li) 0x00(vi)
20:31:19 <Sgeo> Does this need to be fixed somehow? How can this be fixed?
20:32:15 <Sgeo> pikhq, thoughts?
20:32:39 <pikhq> I have none ATM.
20:32:53 * Sgeo wants to finalize the spec soon
20:35:11 <Sgeo> As in, if I don't get ideas very soon, it's staying that way >.>
20:37:46 <pikhq> Finalise it. Implement it. If problems show up when coding using it, then fix them. ;)
20:39:19 * Sgeo makes the first commit in a while
20:39:23 <Sgeo> Just moving a parenthesis
20:47:29 <Hiato> back, if you missed me :P
20:50:14 <Slereah> Well, I think my code works now
20:52:50 <Slereah> And the brainfuck sorting program works, yay!
20:53:06 <Hiato> :)
20:53:31 <Slereah> Thank you dbc.
20:53:41 <pikhq> w00ts.
20:53:55 <Sgeo> dbc?
20:54:16 <Slereah> dbc sent me a PM of a BF program that works regardless of encoding.
20:55:35 <Sgeo> Incidentally, due to the way that PSOX works, it will mean EOF=0
20:55:46 <Sgeo> well, that's simplifiying
20:56:00 -!- jix has quit (Read error: 113 (No route to host)).
20:57:25 <Hiato> cool, Sgeo, I don't suppose that you will write PSOX in anything bu Python (My python is equivalent in skill to sand), perhaps C/C++/Ruby/C#/Lua etc (or am I holding my breath for something that will never come) Perhaps a .dll or .lib even?
20:57:28 <pikhq> dbc is a diety of Brainfuck coders.
20:57:52 <pikhq> Among other things, he wrote a Brainfuck interpreter in Brainfuck.
20:57:58 <Hiato> wow
20:58:00 <Slereah> Heh.
20:58:04 <Hiato> now that's impressive
20:58:06 <Sgeo> You only really need to know Python if you want to write an implementation for a domain..
20:58:15 <pikhq> And Python is not hard to pick up.
20:58:20 <Hiato> meh, ok
20:58:20 <Slereah> My hat off for dbc.
20:58:29 <Sgeo> pikhq, when PSOX comes out, will he write a BF-in-BF interpreter for PSOX?
20:58:29 <Hiato> Mine too :P
20:58:31 <faxathisia> What does "equivalent in skill to sand" mean?
20:58:51 <pikhq> :p
20:58:53 <Slereah> It means that his skills in Python are equivalent to ground up quartz.
20:58:54 <Hiato> well, it means that a handful of sand could write better code in Python than me
20:58:59 <Hiato> lol, also tru
20:59:04 <faxathisia> ahh I like this expression
20:59:04 <Hiato> *true
20:59:09 <Hiato> :)
20:59:25 <Slereah> You don't need skills to write in python silly man
20:59:30 <Sgeo> Hiato, of course, if you want, you could implement PSOX in those other languages >.>
20:59:35 <Slereah> You think of something, and bal, you write it!
20:59:53 <Hiato> Really? Is it as simple as Ruby (9.times do hrmm....)
21:00:07 <Hiato> Thanks for the honour, Sgeo :P
21:00:11 <Slereah> I don't know
21:00:24 <pikhq> Ruby is fugly.
21:00:45 <Hiato> well, it's easy and that makes up for it to me ;)
21:00:49 <Slereah> Heh. Reminds me. A friend wrote an early version of the Love Machine 9000 on Ruby
21:01:09 <Hiato> what is this Love Machine 9000 of yours?
21:01:20 * pikhq shall go back to Plof
21:01:41 <pikhq> Where everything is an object, defined in terms of Plof. ;p
21:01:59 <Hiato> :) I want
21:02:02 * pikhq wonders if he should do a Function.opCastTo(). :p
21:02:22 <Hiato> lol
21:02:28 -!- ihope has joined.
21:02:29 <Slereah> The Love Machine 9000 is what I call this language I have yet to find a name for.
21:02:57 <Slereah> It's pretty much a fancy version of the original Turing machine notation.
21:03:01 <Hiato> Aha, I see, any pre-pre-docs or something? I'd like to see what you have come up with
21:03:13 <Slereah> Well, the interpreter already exists.
21:03:19 <Hiato> awesome :)
21:03:23 <Slereah> I just have a hard time finding a snazzy name.
21:03:30 <Hiato> *cough* link *cough*
21:03:42 <Hiato> I like Love Machine 9000 :P
21:04:03 <Slereah> http://paste-it.net/5482/raw/
21:04:21 <Slereah> If you want to see the basic syntax, just type "help".
21:04:44 <Hiato> cool, is this Python or what
21:04:51 <Slereah> A whole lot of it.
21:05:07 * faxathisia is impressed
21:05:12 <Hiato> aha, where can I grab an interpreter (I'm unfortuantely on a windows box)
21:05:13 <faxathisia> (never saw python that looks like this..)
21:05:17 -!- RedDak has joined.
21:05:19 <Hiato> (ditto)
21:05:28 <Hiato> (actually, never saw python)
21:05:32 <Slereah> http://paste-it.net/5483/raw/
21:05:38 <Slereah> Here's the BF interpreter.
21:05:46 <Hiato> wicked
21:05:50 <faxathisia> how did you write that? :D
21:05:57 <Slereah> Just replace the c:/e.txt at the end by the textfle you want.
21:06:02 <Slereah> Write what?
21:06:07 <faxathisia> BF interpreter
21:06:31 <Slereah> Here's a somehow commented version of it : http://paste-it.net/5472/raw/
21:08:35 <Hiato> wow, that is seriously impressive. Awesome job and wicked language (from what I can tell)
21:08:45 <Slereah> Thanks.
21:09:00 <Slereah> The [ ] were much easier than I thought they would be.
21:09:23 <Slereah> It's the + and - that are the big problem
21:09:50 <Slereah> I made a bitchanger interpreter. It looks much nicer.
21:09:51 * Sgeo implements major version checking
21:10:52 * Sgeo forgot that it's "elif" not "else if"
21:11:09 <Hiato> same in Full 0, it only takes this much code to do the [ and ]:
21:11:10 <Hiato> @{5}[($a0$a1=?[)([($a4$a5>0)({4}[35])]{1}[a6])]@{5}[($a0$a1=?])([(a6>0)({3}[a6][35])]{6}[($a4$a5>0)({2}[a6]
21:11:10 <Hiato> @{5}[(a6>0)({3}[a1]{3}[(0>a1)({1}[(a1)(999)]{1}[a0])]@{5}[($a0$a1=?])({2}[a6])]@{5}[($a0$a1=?[)({3}[a6])]
21:11:10 <Hiato> @{2}[!-21])]{3}[37])]{3}[35])]@{5}[($a0$a1>-1)({4}[35])]
21:11:10 <Hiato> but his much for just + and -:
21:11:10 <Hiato> @[a1]@{5}[(a1>999)({1}[(a1)(0)][a0])]@{5}[(a5>999)({1}[(a5)(0)][a4]{4}
21:11:11 <Hiato> [(a4>?z)({1}[(a4)(a2)]{6}[(a5)(a3)])])]@{5}[(a3>a5)([(a4=a2)({1}[(a5)(999)]{6}
21:11:13 <Hiato> [(a4)(?z)])])]@{5}[(a5/>0)({1}[(a5)(999)]{1}[a4])]@{5}[($a4$a5>255)({1}
21:11:15 <Hiato> [($a4$a5)(0)])]@{5}[(0>$a4$a5)({1}[($a4$a5)(255)])]
21:11:19 <Hiato> sorry for spam :(
21:12:14 <Slereah> I tried to make an actual ASCII version of the BF interpreter, but the Love Machine 9000 doesn't seem to be able to understand that much strange characters.
21:12:31 <Slereah> I also can't copypasta the NUL char.
21:12:58 <Hiato> yeah, is there no way to say #0 or literal 0
21:13:27 <Slereah> I also don't want to have the NUL char on the machine.
21:13:46 <Hiato> ah, yes
21:13:58 <Slereah> If I want to look at the tape and there's nothing printed for NUL, it will be hard to read
21:14:03 -!- helios_24c3 has joined.
21:14:40 <Slereah> (If you want to look at the tapes, just replace nd by d10 for instance, or d and any number)
21:14:57 <Sgeo> Checking minor ver not implemented yet
21:14:59 <Sgeo> woohoo!
21:15:39 <Hiato> true, the problem with tape like systems..
21:16:53 <Slereah> Best I can do is print "NUL" on the cell for the NUL char.
21:16:53 <oerjan> hah, just beat me to it :)
21:17:00 <oerjan> argh
21:17:54 <Sgeo> Well, I seem to have the concept behind opening a subprocess down..
21:18:35 <Hiato> lol : This programmer does not support empty programs as quine
21:18:35 <Hiato> awesome
21:18:41 <Hiato> :)
21:19:13 <Slereah> Plus, it prevents the program to crash if I type enter by mistake.
21:19:30 <Hiato> true. But that is still awesome :D
21:20:19 <Sgeo> IS http://trac2.assembla.com/psox/browser/trunk/impl/PSOX.py fugly?
21:20:55 <Hiato> Slereah, there is a problem with your BF interpreter
21:20:59 <Slereah> If you find a #print "butts" somewhere, it's just a marker I use.
21:21:03 <Slereah> What is it?
21:21:28 <Hiato> +++++++[>+++++++<-]>.
21:21:29 <Hiato> this should produce a 1 but I get an "M"
21:21:44 <Slereah> That's because it's not in an ASCII encoding.
21:21:54 <Hiato> ?
21:21:58 <Slereah> Here's the chart : http://paste-it.net/5463/raw/
21:22:18 <Hiato> Aha
21:22:18 <Slereah> As I said, I couldn't make a +/- in ASCII.
21:22:20 <Hiato> that helps
21:22:35 <Hiato> sorry, I must have missed that
21:22:40 <Slereah> Here's the local hello world :
21:22:40 <Slereah> >++++++[<+++++++>-]<++.>>+++++[<+++>-]<.+++++++..+++.<<++++[>+++++<-]>-.>++++++++.--------.+++.------.----
21:22:40 <Slereah> ----.<++++++.
21:22:54 <Slereah> Oops
21:22:55 <Slereah> >++++++[<+++++++>-]<++.>>+++++[<+++>-]<.+++++++..+++.<<++++[>+++++<-]>-.>++++++++.--------.+++.------.--------.<++++++.
21:22:57 <Slereah> There.
21:23:51 <Slereah> I think I will do an ASCII version, but with the 1 through 8, 11 through 31 abd 126 through 255 as something else.
21:24:12 <Hiato> cool, no prob
21:24:15 <Slereah> Maybe those musical notes I was thinking about.
21:24:20 <Hiato> lol :)
21:24:25 <Hiato> there is another problem though
21:24:33 <Slereah> http://paste-it.net/5480/raw/
21:24:38 <Hiato> I can't runt the interpreter more than once in a row
21:24:39 <Sgeo> anyone going to comment?
21:25:02 <Hiato> SyntaxError: invalid syntax if I try
21:25:27 <Hiato> I have to close IDLE a run it again
21:25:35 <Slereah> Well, the BF interpreter halts when it reaches an empty char.
21:25:38 <Hiato> if I need to run the prog more than once
21:25:53 <Slereah> Sgeo : I can't read much of it.
21:26:13 <Hiato> I see, but it returns me to the main prompt ie Help works fine and Instructions etc
21:26:21 <Hiato> but I can't run the BF interpreter again
21:26:31 <Hiato> woops
21:26:32 <Hiato> wait
21:26:37 <Hiato> that's the python help
21:26:42 <Hiato> tralalalalaallalalala
21:26:45 <Slereah> Heh.
21:27:08 <Hiato> Forget I said any of that
21:27:21 <Slereah> If you want some moar obfuscation, there's a minimalist version of the love machine 9000.
21:27:41 <Hiato> wicked (the harder to read, the better it looks :P )
21:27:46 <Sgeo> Slereah, hm?
21:27:58 <Slereah> http://paste-it.net/5459/raw/
21:28:12 <Slereah> Although it cannot stop at all.
21:28:37 <Hiato> oh well
21:28:43 <Hiato> lets see this puupy
21:29:51 <Slereah> The syntax is roughly : http://farm3.static.flickr.com/2384/2144871414_67e1245e41_o.jpg
21:30:25 <Hiato> aha
21:30:47 <Hiato> well this was probably supposed to happen, but
21:30:48 <Hiato> Traceback (most recent call last): File "C:\Love Machine 9000.py", line 332, in <module> sys.exit("Initial m-state " + fstate + " does not exist") SystemExit: Initial m-state q0 does not exist
21:31:15 <Hiato> PS: What you are doing Slereah is beyond me at his time of night
21:32:47 <Slereah> Maybe you didn't type the program as one line.
21:33:03 <Hiato> probably the problem
21:33:16 <Slereah> (Haven't found a way to strip the new lines so far, so everything is in one line)
21:33:25 <Hiato> Ok, I see
21:34:59 <Slereah> If you have some algorithm to solve the halting problem, I might be able to use it to halt the 4 symbols program!
21:35:20 <Slereah> Otherwise, it just runs forever.
21:35:27 <Hiato> :) lol
21:35:41 <Sgeo> Slereah, you mean stripping newlines in python?
21:35:43 <Hiato> well, why don't you just register at a fortune teller website :P
21:35:46 <Slereah> Yes.
21:35:59 <Sgeo> somestring = somestring.replace("\n", "")
21:36:22 <Slereah> Let's see!
21:37:00 <Slereah> It works, thankies.
21:37:05 <Sgeo> yw
21:37:29 <Slereah> (Just put prog=prog.replace("\n", "") on line 167 of the love machine)
21:38:32 <Hiato> roger
21:38:38 <Slereah> It will be easier to type those damn programs
21:39:44 <Hiato> Hrmm, I still get n error though: Traceback (most recent call last): File "C:\Love Machine 9000.py", line 205, in <module> sys.exit("Direction required") SystemExit: Direction required
21:39:58 <Hiato> with the minimal version of the love machine 9000
21:40:12 <Slereah> That's because you must add a left or right instruction.
21:40:15 <Slereah> < or >.
21:40:21 <Hiato> woops
21:40:22 <Hiato> ok
21:40:39 <Hiato> hah
21:41:07 <Slereah> I could just make a version with a "do not move" instruction, but where's the fun in that!
21:41:37 <Hiato> True
21:41:56 <Hiato> Compicated is fun (as is the case with my new Esolang)
21:42:22 <Slereah> I could even make a retarded version.
21:42:29 * Sgeo doesn't want PSOX to be too complciated :/
21:42:38 <Sgeo> ALthough the current specs mean a LOT of overhead
21:43:01 <Slereah> Switch the *+<> symbols to numbers, convert it to base ten, and make a version with just a long line of "+" to reach that number.
21:43:03 <Hiato> Lol, no thanks. Sgeo, Hiato also doesn't want PSOX to be com[plicated
21:43:27 <Hiato> starting to sound like Malbolge a bit there (don't scare me ;) )
21:43:35 * Sgeo doesn't know how to make the specs less scary
21:43:59 <Hiato> (add pictures of rabbits and such :P )
21:44:01 <Slereah> Well, I mostly use the version that you saw before, the one with less scary syntax.
21:44:07 <Sgeo> Did I mention the huge overhead of sending 3 bytes to add together to a function expecting VARG(LNUM)?
21:44:12 <Hiato> yes, and I am thankful for that too
21:44:36 <Sgeo> 0x01 0x01 0x01 0x00 0x01 0x01 0x02 0x00 0x01 0x01 0x03 0x00 0x00
21:44:50 <Hiato> yip
21:44:55 <Slereah> If you want some classic program for the love machine : http://paste-it.net/5484/raw/
21:44:59 <Hiato> unfortunately ;) No sleep for the wicked
21:45:24 <Hiato> cool, lets see what this baby does
21:45:26 <Sgeo> There are 3 bytes of data in that line. The rest is overhead :/
21:45:33 <Sgeo> Hiato, scary?
21:45:52 <Hiato> oh yeah, you bet
21:45:57 <Sgeo> :(
21:45:57 <Hiato> (no sarcasm)
21:46:22 <Sgeo> I'm probably going to freeze that into the specs though :(
21:46:38 <Slereah> Oh bloody hell. Something happened to it between the versions of the LM.
21:46:43 <Hiato> Slereah, that's awesome ! Except for the fact that it goes 99, 68, 67
21:46:46 <Slereah> It goes from 98 to 68.
21:46:47 <Hiato> but hety
21:46:50 <Hiato> its beer
21:46:54 <Hiato> its alowed
21:46:56 <Hiato> :P
21:47:00 <Slereah> Goes down smoothly!
21:47:00 <Hiato> *hey
21:47:06 <Slereah> I think I know what went wrong.
21:47:08 <Hiato> :)
21:47:27 <Hiato> Good idea Sgeo, shame though
21:47:29 <Slereah> I had to disallow the syntax character::newstate for conveniance reason
21:47:51 <Sgeo> Thing is, BF should be able to process that format smoothly..
21:47:53 <Hiato> ahh (no idea where that is in the programme) but well spotted
21:47:53 <Slereah> So I made a big replace "::" by ":DN:"
21:48:13 <Slereah> Probably nicked something.
21:48:26 <Hiato> Sgeo : that is scary still
21:48:29 <Slereah> Good thing I have a commented version somewhere.
21:48:31 <ihope> Sgeo: of course, 10 bytes of overhead is quite often not significant.
21:48:48 <Hiato> Slereah : Only you know what's going on deep within the bowls of this beast :P
21:49:13 <Sgeo> vs. 3 bytes of data, it's not significant?
21:49:36 <Slereah> Hell, I'm not even sure!
21:49:40 <Hiato> (I'm no expert here, but sounds like a lot to me)
21:49:46 <ihope> If you only send this once, nobody will notice.
21:49:46 <Hiato> lol
21:49:54 <Hiato> (so we hope)
21:49:57 <Slereah> But well, since it's a Turing machine, I can just visualize the tape!
21:50:04 <ihope> If you send it a million times, that becomes 10 megabytes of overhead for 3 megabytes of data, which probably is significant.
21:50:08 <Slereah> See what happens.
21:50:12 <Hiato> true, and a useful feeature too :)
21:50:23 <Hiato> Agreed
21:50:27 <Slereah> Although it takes an awfully long time for that program.
21:50:36 <Sgeo> Maybe it will be fixed in PSOX 1.1
21:50:50 <Hiato> well, good luck then Slereah, god speed ;)
21:51:10 <Slereah> Take one down, and pass it around!
21:51:14 <ihope> What is this overhead, anyway? An initial handshake?
21:51:19 * Slereah goes back to the counter
21:51:20 <Hiato> Well, I don't real;why mind that much Sgeo. But as iHope pointed out, it can become alot
21:51:23 <Slereah> 99!
21:51:25 <Hiato> *really
21:51:30 <Sgeo> It's the VARG(LNUM) format
21:51:33 * Slereah goes back to the end of the tape
21:51:40 <Sgeo> Indicator bytes to show when the data ends
21:51:42 <Hiato> (lol)
21:52:22 <Hiato> once again, I'm no expert but can't you demarcate a data stream?
21:52:47 <Sgeo> 0x01(vi) 0x01(li) 0x01(d) 0x00(li) 0x01(vi) 0x01(li) 0x02(d) 0x00(li) 0x01(vi) 0x01(li) 0x03(d) 0x00(li) 0x00(vi)
21:53:01 <ihope> What's that SADOL-like number format where a number is the length of the number followed by its digits?
21:53:13 <Sgeo> Where vi is VARG indicator bytes, li is LNUM indicator bytes, and d is data
21:53:25 <Sgeo> ihope, I doubt that BF could process that easily..
21:53:26 <Hiato> oh, well I understand it now
21:53:42 <Hiato> Agreed, Sgeo (if's aer a pain)
21:53:43 <ihope> Oh.
21:53:44 <Hiato> *are
21:54:16 <Sgeo> So, is that craptastic, or acceptable?
21:54:23 <Slereah> State 16a is the troublemaker!
21:54:38 <ihope> Acceptable as long as you provide a lower-overhead alternative, I'd say.
21:54:59 <Sgeo> lower-overhead but less powerful :/
21:55:10 <Slereah> There was a double ; in state 16a.
21:55:11 <Sgeo> adding only two bytes at a time, for instance
21:55:15 <Slereah> Cancer of the semicolon.
21:55:15 <Hiato> Yes, make them suffer for using hard languages
21:55:17 <Hiato> :P
21:55:30 <Hiato> But, no, if it is absolutely necissary, I truly think it's acceptable
21:55:47 <Sgeo> Incidentally, there is overhead before being allowed to accept input
21:55:49 <Hiato> Well found Slereah, and look, were still in 07 :P
21:56:20 <Sgeo> For instance, in BF, where a "," would normally go, you'd put "[-].+..+++++++++.,,,"
21:56:32 <Hiato> meh, oh well Sgeo, it'll have to do (and anyways, its your library thing, not ours and I don't mind that much)
21:57:12 <Hiato> actually though, on second thought, it seems to me to be a rather nice challenge
21:57:16 <Hiato> now that I think of it
21:57:17 <Sgeo> Is that craptastic?
21:57:24 <Sgeo> tbh, I can see no alternative..
21:57:29 <ihope> Depends on how many times you have to execute it and whether there's an alternative.
21:57:49 <Sgeo> No alternative, although you can request multiple bytes, or a line at a time
21:58:01 <Hiato> well, I think that the real problem will be TCP communication where allot of data is sent and then the overhead accumulates
21:58:08 <Hiato> but it doesn't truly mtter
21:58:18 <Hiato> I consider this a gift to the Eso community
21:58:23 <Sgeo> ty Hiato
21:58:27 <Hiato> to be able to acces the web from malbolge :P
21:58:41 <Hiato> np
21:59:56 <Sgeo> Reading in a line: "[-].+.-.++++++++++.,,[>,]"
22:00:06 <Sgeo> (Assuming there are no 0x00 in that line)
22:00:09 <Hiato> yeah, that's not bad at all
22:00:18 <Hiato> (ah, catch 22)
22:00:44 <Sgeo> If you want it to work even if there's a 0x00, you need to check for 0x0A at the end
22:00:58 <Hiato> I see, so there are means and ways
22:01:10 <Hiato> therefore now worries, be happy man ;)
22:01:58 <Sgeo> Also, that code overwrites the EOF indicator, so you won't know if that's the last line, or if the 0x0A really was present..
22:02:31 <Hiato> hrmm
22:04:07 <Sgeo> Incidentally http://trac2.assembla.com/psox/browser/trunk/spec/psox.txt#L155 is the relevent part of the spec
22:05:50 <Hiato> wow, that is allot of hard work done there. Well done on that. :)
22:06:30 <faxathisia> I really like this r"((?:\x01" + some_type_regex + r")*?\x00)"
22:07:46 <Sgeo> ty Hiato
22:08:23 <Hiato> ps: it is also well thought out, so don't be too worried about my inexperienced opinion on handshakes and overheads ;)
22:09:15 <Sgeo> Handshake is 7 bytes by the client, 2 by the server
22:09:26 <Sgeo> erm, 3 by the server
22:09:39 <Hiato> sounds find to me
22:09:42 <Hiato> :)
22:10:45 <Slereah> Hm. I think that by using never referenced states, I could make comments for the love machine.
22:11:08 <Hiato> That would be both nice, and helpful :)
22:11:10 * Sgeo is almost done writing the handshake-processing code
22:11:17 <Hiato> (wicked)
22:11:20 <Slereah> Something like comments[a:"comments":a]
22:11:42 <Hiato> yes, that would be very useful (and the beer is a prime example :P )
22:11:55 <Slereah> Well, actually, it could be much shorter.
22:12:11 <Slereah> For that program, I used a one state-one instruction kind of thing.
22:12:18 <Hiato> the easier for commenting, the better
22:12:20 <Slereah> Each letter printing takes one state.
22:12:26 <Hiato> oh, I see
22:12:38 <Slereah> But I could just use PbRIPoRIPtRI....
22:13:25 <Hiato> I won't doubt you on that (its now way too late to concentrate on that) ;)
22:13:33 <Sgeo> Hey, once PSOX is done, will anyone be writing domains and implentations for domains for it?
22:13:38 <Sgeo> implementations
22:13:53 <Hiato> I can give it a bash
22:13:56 <Hiato> (literllay)
22:14:04 <Hiato> *literally
22:14:32 * Sgeo would like to see an IRC domain, which would mean Brainfuck IRC bots!
22:14:37 * oerjan wonders if "literally" means what Hiato thinks it means
22:15:16 <Hiato> lol, woops
22:15:48 <Hiato> I told you, too late :P
22:16:05 <Hiato> lol, that's actually really funny :) :)
22:16:30 * Sgeo won't write the domain himself though, at least not until PSOX 1.0 is released..
22:16:54 <Sgeo> PSOX 1.0 will provide File I/O and HTTP access, and that's it, unless others write domains..
22:17:01 <Hiato> Yeah, BF chatbots w00t :)
22:17:06 <Slereah> The comment idea works oka.
22:17:18 <Hiato> good to hear Slereah :)
22:17:31 <Hiato> Cool, well I/o and HTTP is more than enough for an initial realease
22:17:39 <Hiato> without a doubt
22:22:43 <Hiato> alright, well its late again here. Cheers all
22:23:06 <Hiato> and once more, anything Full 0 related, let me know hiato1@gmail.com (this time all the links are valid and working)
22:23:14 <Hiato> http://www.full0.8tt.org
22:23:23 -!- Hiato has quit ("Leaving.").
22:28:09 * Sgeo adds the concept of PRIs
22:29:25 <Sgeo> domain longnames are PRIs
22:29:30 <Sgeo> What else would be a PRI?
22:29:42 <Sgeo> Anyone paying any attention?
22:32:09 <Sgeo> A PSOX Resource Identifier. Can either be a valid URI, or a string registered on http://esolangs.org/wiki/PSOX/PRI
22:34:27 <Sgeo> Comments on http://trac2.assembla.com/psox/changeset?old_path=trunk%2Fspec%2Fpsox.txt&old=15&new_path=trunk%2Fspec%2Fpsox.txt&new=16 ?
22:37:29 <Sgeo> pikhq, oklofok oerjan ihope GregorR faxathisia anyone?
22:37:42 <faxathisia> I don't know howto comment on that
22:38:44 <faxathisia> do you mean PESOIX's?
22:38:53 <faxathisia> What's that stand for
22:39:05 <pikhq> PSOX is his own project.
22:39:18 <pikhq> Meant to fulfill the role of PESOIX.
22:39:19 <Sgeo> PESOIX is PSOX's "spiritual ancestor"
22:39:25 <faxathisia> ah alright
22:39:35 <pikhq> I support the PRI, myself.
22:40:15 <pikhq> If you're sufficiently insane, you could even provide a way to get new domains via a PRI.
22:40:47 <Sgeo> You mean implementations?
22:41:08 <Sgeo> Sounds like something of a security risk..
22:41:48 <Slereah> Here's the commented version. Somehow.
22:41:49 <Slereah> http://paste-it.net/5486/raw/
22:42:43 <Slereah> Half of this program is made to handle less than 10% of the display.
22:42:55 <Sgeo> Incidentally, PSOX File I/O takes place in a sandbox unless "-s fullfileio" is specified
22:48:56 -!- ehird` has joined.
22:48:59 <Sgeo> Hi ehird`
22:49:06 <Slereah> Hello sir.
22:49:16 <Sgeo> Updates to psox.txt : http://trac2.assembla.com/psox/changeset?old_path=trunk%2Fspec%2Fpsox.txt&old=15&new_path=trunk%2Fspec%2Fpsox.txt&new=16
22:50:16 <ehird`> fsfsfdfdfs
22:50:18 <ehird`> oklofok! distract me from annoyance with oklotalk talk
22:50:36 <Sgeo> Hm
22:50:44 <Slereah> OKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLO
22:50:48 <Sgeo> I might end up preventing a PSOX 1.10 from existing..
22:50:50 <Slereah> :O
22:50:55 <Slereah> IT IS LIKE LOOK
22:51:10 <Sgeo> I mean, 1.9 and 1.11 but no 1.10 allowed :/
22:51:22 <Sgeo> Or I'll just fix the issue before 1.10
22:51:26 <oklofok> ehird`: i can grant some graphica talk later
22:51:27 * Sgeo opts for that route
22:51:34 <oklofok> once i make the parser complete
22:51:35 <ehird`> oklofok: graphica=
22:51:50 <Sgeo> ehird`, why don't you like PSOX?
22:51:58 <oklofok> the graph defining language i made yesterday
22:52:16 <ehird`> Sgeo: you bikeshed with it
22:52:22 <Sgeo> bikeshed?
22:52:56 <Slereah> Arthur.
22:52:56 <oklofok> i do agree, although i do that myself all the time
22:52:58 <Slereah> Bikeshed.
22:53:01 <Slereah> Jackson.
22:53:04 <oklofok> not that i knwo what bikeshedding is.
22:53:06 <ehird`> ,@define bikeshed
22:53:09 <oklofok> *know
22:53:10 <ehird`> wait, it isn't here
22:53:11 <ehird`> fsdfsdfsdfdsf
22:53:21 * Sgeo reads wiki
22:53:42 <Sgeo> You mean asking for trivial opinions?
22:53:45 <Sgeo> erm, opinions with trivial impact?
22:53:46 <ehird`> no
22:54:18 <ehird`> http://www.bikeshed.com/
22:55:56 <Slereah> "Parkinson shows how you can go in to the board of directors and
22:55:57 <Slereah> get approval for building a multi-million or even billion dollar
22:55:57 <Slereah> atomic power plant, but if you want to build a bike shed you will
22:55:57 <Slereah> be tangled up in endless discussions.
22:56:07 <Slereah> People. I need to build an atomic power plant.
22:56:34 <ehird`> Slereah: you shall need a bikeshed
22:56:46 <Slereah> No need ehird`.
22:56:55 <Slereah> Nuclear powered cars.
22:57:07 <ehird`> nuclear powered bikes
22:57:08 <Slereah> How awesome would that be!
22:57:14 <ehird`> duh
22:57:27 <oerjan> Wadler's law may also be relevant
22:59:34 <Sgeo> I don't like the color of bikeshed.com. It should be changed. Why didn't the maker of that page ask for input? (j/k j/k j/k)
23:00:05 <oerjan> "In any language design, the total time spent discussing a feature in this list is proportional to two raised to the power of its position. 0. Semantics 1. Syntax 2. Lexical syntax 3. Lexical syntax of comments
23:00:13 <ehird`> say oklofok
23:00:24 <ehird`> what would you say to an implementation of oklotalk in scheme
23:00:26 <ehird`> it'd be less horrific than doing it in C
23:00:47 <ehird`> hehe
23:01:32 <faxathisia> apart from MLs are there are languages specifically designed for writing other languages in?
23:03:04 <Slereah> ML?
23:03:15 <Slereah> Oh, meta language.
23:03:18 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
23:03:20 <ehird`> faxathisia: lisp
23:03:22 -!- puzzlet has joined.
23:03:29 * Sgeo keeps working on the handshake code
23:03:47 * Slereah shakes the hand of the world.
23:03:48 <Sgeo> Hi puzzlet. If you care about PSOX, did you see http://trac2.assembla.com/psox/changeset?old_path=trunk%2Fspec%2Fpsox.txt&old=15&new_path=trunk%2Fspec%2Fpsox.txt&new=16
23:03:49 <Slereah> Hello world!
23:04:26 <Slereah> Will this handshake language include high fives?
23:04:31 <Sgeo> hehe
23:05:03 <Slereah> Maybe the high-five command terminates the program or something.
23:05:20 <Sgeo> 0x00 0x02 0x00 n 0x0A is terminate program
23:05:34 <Slereah> 0x^5
23:05:35 <Sgeo> with error code n
23:12:44 <Sgeo> sgeo@ubuntu:~/dev/psox/trunk/impl$ python PSOX.py bf test.b
23:12:44 <Sgeo> Client's reported minimum version: 9
23:12:44 <Sgeo> Client's reported maximum version: 0
23:12:46 <ihope> What does 0x00 0x02 0x00 n something-else do?
23:13:06 <Sgeo> ihope, fails to be proper PSOX
23:13:19 <Sgeo> IllegalPSOXError
23:13:37 <Sgeo> the 0x0A is at the end of all functions to make sure the client's interpreter sends it properly
23:13:40 <ihope> I take it there's a good reason the terminate command isn't just 0x00 0x02 0x00 n.
23:13:45 <ihope> Ah.
23:14:13 <Sgeo> Thing is, PSOX doesn't send a 0x0A to make sure it gets received properly :/
23:14:48 * Sgeo isn't sure if that's much of an issue, but GregorR brought up the possibility that interpreters only send when they hit 0x0A
23:15:17 <GregorR> If you just write printf(), it'll work that way.
23:15:26 <GregorR> And lots and lots of interpreters do that.
23:15:40 <GregorR> Therefore, requiring a newline = more portable.
23:15:56 -!- RedDak has quit (Remote closed the connection).
23:15:58 <Sgeo> But they don't read line-by-line, they read character-by-character?
23:18:17 -!- helios_24c3 has quit (No route to host).
23:18:55 -!- oerjan has quit ("Good night").
23:20:08 <ehird`> Sgeo: you are really unix-naive aren't you
23:20:30 <ehird`> the console hangs on until <enter>
23:20:47 <ehird`> eh, unrelated
23:20:47 <ehird`> but, yeah
23:33:37 * Slereah will now try to implement some m-functions on the love machine 9000, since the parser is now working correctly
23:33:47 <oklofok> http://www.vjn.fi/pb/p412226441.txt
23:33:49 <oklofok> 2d grid
23:34:11 <oklofok> output of the graphica interpreter
23:34:40 <faxathisia> an interpreter now? :D
23:34:42 <faxathisia> in what
23:35:04 <oklofok> well, "interpreter"
23:35:16 <oklofok> it's in a sense a language.
23:35:23 <oklofok> since it may well be tc already
23:35:53 <oklofok> i have no idea how to actually draw a graph so that it makes no sense, it's quite hard to algorithmically determine whether the edges overlap *too much*
23:36:48 <oklofok> anyone wanna pitch a more complex graph so that i need to continue my parser :P
23:36:53 <oklofok> everything i come up with can already easily be represented :<
23:36:56 <faxathisia> what language is the interpreter in ?
23:37:08 <oklofok> python
23:37:14 <faxathisia> can I try it? :D
23:38:11 <oklofok> you need to inject the program in the actual code... i'll make it read the prog from a file first, i don't like people touching my code. :)
23:42:54 <oklofok> lol
23:43:18 <oklofok> not as easy a conversion as i though, since my parser can't handle the parsing of the actual expressions yet :D
23:43:50 <oklofok> so, okay, you need to put the code in the variable ptrns, it's clearly marked, and the exp needs the initial node
23:44:00 <oklofok> which you will have to parse manually... i think
23:45:37 <oklofok> faxathisia: http://www.vjn.fi/pb/p334611515.txt
23:46:02 <oklofok> i can help you with the syntax, and the variables ring and grid hold the two example progs i've made
23:47:13 <oklofok> i'll make the parser complete tonight, after that it'll handle lisp and math style computation with numbers, and possibly a few other primitive datatypes, in case that doesn't take long.
23:47:26 <oklofok> doesn't take long to make
23:49:47 <oklofok> heh, guess i should stop waiting for you to respond and actually begin writing the parser ;)
23:51:05 <Sgeo> oklofok, begin writing the parser
23:51:30 <oklofok> i'll promise to start before you start writing psox ;)
23:51:38 <oklofok> unless you already did.
23:51:48 <Sgeo> I started the PSOX.py interpreter already
23:51:49 <oklofok> gotta get some coke first
23:51:50 <oklofok> ->
23:51:50 <Sgeo> =P
23:51:56 <oklofok> oh, darn :P
23:52:05 <oklofok> well, i did write the part that's in the link yesterday
23:52:08 <Sgeo> So far, it can recognize the handshake
23:52:15 <oklofok> it does some parsing already
23:52:20 <oklofok> ------>
23:52:35 <Sgeo> Although it violates PSOX spec in that it exits if the program isn't PSOX or is an unsupported version..
23:52:50 <Sgeo> PSOX spec says it keeps going and gives info *shrugs*
23:52:56 <Sgeo> I'm violating my own spec :/
23:53:30 <Sgeo> And there's already a known bug that won't affect anything in the near future: It vomits on receiving a claim that it's e.g. PSOX 1.10
23:53:34 <Sgeo> Or 10.x
23:54:24 <Sgeo> Incidentally, handshake implies that clients have a version a.b-c not just simple a.b
23:55:36 <Sgeo> Anyone going to respond?
23:55:59 <oklofok> <------
23:56:06 <oklofok> can't, parsing time ->
23:59:36 -!- ehird`_ has joined.
2007-12-30
00:01:08 <ehird`_> FUCK orange broadband and their GOD DAMN ROUTER
00:08:18 -!- puzzlet has quit (Remote closed the connection).
00:08:20 -!- puzzlet_ has joined.
00:08:23 <Sgeo> How do I access modules that are above the current directory?
00:08:26 <Sgeo> re puzzlet_
00:08:41 <ehird`_> You can't, Sgeo.
00:09:41 <ehird`_> oklofok: I took up the task of making a language like oklotalk, but logical and cleaner
00:09:44 <ehird`_> Yes, I am crazy :D
00:10:09 <ehird`_> "+\1 2 3" is 6
00:10:25 <Sgeo> import sys
00:10:25 <Sgeo> sys.path += ['../..']
00:10:26 <ehird`_> + is what you expect, \ is NOT a binary 'fold' operator but instead a postfix operator
00:10:31 <ehird`_> Sgeo: Well yes
00:10:35 <Sgeo> Would that work or fail on Windows, though?
00:10:37 <ehird`_> and what \ does, here +\
00:10:48 <ehird`_> returns a function which does the folding
00:11:07 <ehird`_> so +\'s result is an operator taking a list and folding it over +
00:11:11 <ehird`_> then the list 1 2 3
00:11:20 <ehird`_> ergo, "+\1 2 3" is 6
00:11:25 <ehird`_> / is \ but for 'map'
00:14:14 -!- puzzlet_ has quit (Remote closed the connection).
00:14:26 -!- puzzlet has joined.
00:14:55 <Sgeo> rere puzzlet
00:15:23 <faxathisia> I don't know python
00:16:13 <Sgeo> btw, you won't need to learn Python to use PSOX
00:16:18 <Sgeo> Just to implement domains..
00:17:23 <Sgeo> My code looks FUGLY
00:18:17 <Sgeo> GregorR, on Windows, does printf() wait for just a 0x0A, or would it be expecting the other thing too?
00:18:32 <faxathisia> http://rafb.net/p/NpqVc215.txt
00:19:36 <faxathisia> can view the graphs with that
00:19:54 -!- ehird` has quit (Success).
00:20:41 <GregorR> Sgeo: Since printf("\n") works in every Windows CC I've ever used, I would imagine just \n.
00:20:57 <Sgeo> ty
00:21:35 -!- puzzlet_ has joined.
00:21:36 <oklofok> faxathisia: i already show them in a similar fashion, i meant graphically
00:21:52 <faxathisia> graphviz can render those formats
00:22:00 <oklofok> oh
00:22:02 <oklofok> cool
00:22:27 <GregorR> Hahahahahaha, they're advertising a magnet you put on your left ear that helps you quit smoking X-D
00:22:28 <oklofok> anyhow, did you try the lang?
00:22:33 <GregorR> Can you say "placebo"?
00:22:40 <oklofok> you don't need to know python to be able to
00:22:48 <oklofok> heh, lol
00:22:55 * Sgeo worries that PSOX.py might be something of a slapdash implementation
00:24:21 <Slereah> GregorR : Might work if you're a robot.
00:24:27 <Slereah> Remember Futurama?
00:25:18 <faxathisia> :[
00:25:32 * faxathisia thinks... general purpose languages should have multiline comments
00:28:34 <oklofok> faxathisia: you can't say you wanna try it and then not :)
00:28:43 * faxathisia is trying to make a web
00:28:48 <ehird`_> GregorR!!!!!!!!
00:29:00 <GregorR> No, I'm not here.
00:29:02 <ehird`_> stop stop stop stop stops tops tops tops tospt ostpsotpsotsptosptsotpsotpstosptostpsotpstosptosptospsotsptosptsoptsotspooo
00:29:04 <faxathisia> oh I just realised how to do multiline comments in python
00:29:10 <ehird`_> YOU ARE WRONG :(
00:29:17 <ehird`_> in C \n does not mean 0x0A
00:29:20 <ehird`_> it means newline
00:29:22 <ehird`_> which in windows is CR LF
00:29:24 <ehird`_> not LF
00:29:29 <ehird`_> the compiler does this, it is standard
00:29:44 <faxathisia> """multiline commen"""
00:29:51 <ehird`_> faxathisia: oh god python no :(
00:29:57 <GregorR> I got a ticket on a project of mine because it put non-Windows newlines in a file on Windows.
00:30:06 <GregorR> It did that because I used \n.
00:30:11 <GregorR> I did not fix it, since it wasn't broken.
00:30:31 <GregorR> But the point is, it didn't use CR LF.
00:31:52 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
00:45:28 <faxathisia> this is hard to use :p
00:45:33 <ihope> A ticket?
00:47:59 <ehird`_> GregorR: it was opened in binary mode
00:51:20 <oklofok> faxathisia: did you try it? :D
00:51:34 <faxathisia> yeah
00:51:48 <faxathisia> I'm still trying to make this thing without infinitelooping
00:54:52 <oklofok> heh
00:55:06 <oklofok> currently, you need to actually have the pattern die out
00:55:13 <oklofok> i mean, in the version you have
00:55:31 <oklofok> i made it stop when the same object is found twice
00:56:34 <faxathisia> this is cool http://img339.imageshack.us/img339/8556/picture5mx0.png
00:56:42 <faxathisia> that's the grid one though
00:56:56 <faxathisia> (using a stupid layout)
00:58:17 <oklofok> what?
00:58:23 <oklofok> what's that?
00:58:38 <faxathisia> Grid2d 15 15
00:58:50 <oklofok> xD
00:58:58 * oklofok knows a better graphical representation
00:59:47 <faxathisia> that's the same one energy minimized http://img174.imageshack.us/img174/8382/picture6id6.png
01:01:20 <oklofok> oh, that's actually pretty close
01:01:44 * ehird`_ ponders elegant-but-alien-looking languages
01:01:57 <ehird`_> i.e. simple, but not too simple, and no does-everything features, no hacks
01:02:00 <ehird`_> but still strange
01:02:10 <ehird`_> lambda calculus is ofc the classic in that area
01:02:55 <ihope> What do you mean, lambda calculus is alien? :-P
01:03:10 <faxathisia> i think that I can trick people into using lambda calculus for real programming
01:03:24 <faxathisia> because.. if you just add enough syntax...
01:03:26 <ihope> Pi calculus is either the ultimate in artificial intelligence stuff or actually quite unremarkable.
01:03:31 <ihope> ...you get Haskell!
01:03:39 <Slereah> I think combinators are harder than lambda calculus.
01:03:45 <faxathisia> oh damn it's been done already!
01:03:53 <Slereah> It's not too hard to define a function in lambdas.
01:03:56 <faxathisia> I want to try some other lambda calculi though
01:04:02 <ihope> Well, you can algorithmically translate lambdas to combinators.
01:04:23 <Slereah> You can do it for all languages!
01:04:24 <ihope> Depending on the algorithm, it might actually do a decent job. :-P
01:04:58 <oklofok> pi calc is fun
01:05:18 <ihope> I'm going to check up on just what it is.
01:05:22 <faxathisia> can't I have more than 2 parameters?
01:10:59 <ihope> Ah, indeed, after reading up on it, pi calculus is fun.
01:11:53 <faxathisia> I like λ∏ but most of the theory is way too hard for me right now
01:12:50 <ihope> You like what?
01:12:56 <ihope> Lambda and pi?
01:13:49 <oklofok> faxathisia: if you have any interest left, wanna draw http://www.vjn.fi/pb/p165564435.txt for me?
01:14:00 <oklofok> or is it just for bidirectional graphs?
01:14:06 <oklofok> not that it matters really
01:14:13 <oklofok> anyhow, directed graphs should work now
01:14:31 <faxathisia> I think explains it ok http://people.cs.uu.nl/andres/LambdaPi.html
01:15:29 <ihope> Lambda and pi stuck together?
01:16:03 <ihope> Lambda calculus with dependent typing?
01:17:04 <faxathisia> It's lets you define functions whose return type depends on it's arguments
01:17:11 <faxathisia> yeah
01:17:27 <ihope> I imagine it doesn't have a full first-order logic system taking full advantage of the Curry-Howard isomorphism and all.
01:18:12 <faxathisia> oklofok: it's just a circle
01:21:11 <oklofok> hehe
01:21:32 <oklofok> i wondered whether it gets it circle, or if it'd be eight'y or something
01:26:27 <ehird`_> RANDOM SILLY IDEA
01:26:31 <ehird`_> A lambda calculus CPS transformer
01:29:17 <ehird`_> oklofok: your bot has lambdacalculus infrastructure
01:29:17 <ehird`_> do eet
01:29:24 <Slereah> What, a giant robot that can transformate into a lambda expression?
01:30:26 <oklofok> ehird`_: o
01:30:33 <ehird`_> e
01:30:38 <ehird`_> Slereah: heh
01:30:46 <oklofok> making a lambda calculus infrastructure is a 20 min job :\
01:30:59 <oklofok> i have things to do, gotta look at my parser!
01:31:13 <oklofok> and hope it codes itself.
01:31:40 <ehird`_> yeh well i don't like writing cps transformers
01:31:43 <ehird`_> (cps=http://en.wikipedia.org/wiki/Continuation_passing_style)
01:33:03 * faxathisia had fun writing one first time around
01:34:20 <oklofok> i haven't written one, but given a parsed code, i don't think it's hard
01:35:23 <ehird`_> oklofok: It's not really hard, no
01:35:28 <ehird`_> but irritating
01:35:34 <ehird`_> Hmm. I want to implement ISWIM
01:35:56 <faxathisia> ooh it's by Peter J. Landin
01:36:53 <ehird`_> yes
01:37:01 <ehird`_> it's the 'the next 700 programming languages' language
01:38:04 * Sgeo is back
01:38:23 <Sgeo> Once PSOX 1.0 is out, would anyone here be willing to make an IRC domain?
01:38:59 <ehird`_> no
01:39:28 * Sgeo thinks an answer from someone who thinks positively of PSOX would be more useful
01:41:40 <ehird`_> there is no point
01:42:06 <oklofok> ehird`_: you actually see no point in the whole io wrapper thing?
01:42:16 <oklofok> i think it's an awesome idea :\
01:42:23 <ehird`_> i said not that
01:42:26 <ehird`_> i said no point in the irc domain
01:42:37 <oklofok> oh, right, guess it's just bsmnt
01:43:08 <oklofok> what's an irc domain?
01:43:12 <oklofok> irc network?
01:45:13 <Sgeo> irc domain = spec for PSOX stuff to access IRC
01:45:22 <Sgeo> And implementation of such
01:45:32 <Sgeo> a domain, in PSOX, is roughly like a library
01:45:41 <faxathisia> eah that would be cool
01:45:46 <faxathisia> (having ISWIN implementation)
01:45:50 <faxathisia> ISWIM*
01:46:02 <Sgeo> ISWIM?
01:46:14 <faxathisia> http://www.cs.utah.edu/~eeide/compilers/old/papers/p157-landin.pdf
01:46:18 <faxathisia> It's got the J operator
01:46:28 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/spec/psox.txt
01:46:37 <faxathisia> I think it's a bit like the infinite improbability drive
01:49:19 <ehird`_> haskell etc are descended from iswim
01:49:29 <ehird`_> it has the off-by-one rule and all that
01:49:35 <ehird`_> it would be interesting
01:50:00 <faxathisia> What's the off-by-one rule?
01:50:17 * Sgeo isn't going to write the IRC domain himself.. at least not until after PSOX 1.0 is released
01:50:19 <ehird`_> faxathisia: indentation for braces
01:50:25 <ehird`_> err
01:50:27 <ehird`_> off-side rule
01:50:28 <faxathisia> oh right
01:50:30 <ehird`_> heh :)
01:50:40 <ehird`_> but the cool kind
01:50:52 <ehird`_> instead of just indenting N places, you line it up
01:53:54 <ehird`_> oklofok: you should form an Oklotalk Comittee
01:54:15 <Slereah> "The bikeshed comittee"
01:54:18 <ehird`_> that means you're licensed to release the standard as "Report on the Oklotalk algorithmic language"
01:54:43 <ehird`_> and provide a black-on-really-dark-gray in times-roman html version
01:54:53 <ehird`_> with tacky gifs on your home page with 3d graphics of the language name
01:55:00 <ehird`_> and form an Oklotalk Advocacy Group
01:55:16 <Sgeo> sgeo@ubuntu:~/dev/psox/trunk/impl$ python PSOX.py bf test.b
01:55:16 <Sgeo> Client's PSOX Ver: PSOX 0.5-11
01:55:16 <Sgeo> Running PSOX 0.9
01:56:01 <Sgeo> Doesn't like it when I try to make one of the parts of the version 10
01:56:07 * Sgeo isn't going to fix that yet
01:56:34 <Sgeo> PSOX 1.10 is still a ways off
01:57:04 <faxathisia> oh PSOX is also an interpreter?
01:57:10 <faxathisia> or is it executing the bf program?
01:57:25 <Sgeo> PSOX.py is the name of the interpreter, which executes the bf command
01:57:31 <Sgeo> (is executing)
01:57:38 <faxathisia> why not just bf test.b | python PSOX.py
01:57:42 <Sgeo> I have the bf program in my path
01:57:54 <faxathisia> would that be possible too?
01:57:56 <Sgeo> faxathisia, because I need the PSOX server on both sides
01:58:04 <Sgeo> on both stdin and stdout
01:58:09 <faxathisia> ohh I see
01:59:06 * Sgeo thought of an interesting change to the PSOX spec
01:59:11 <Sgeo> But it would be a major change
01:59:38 <Sgeo> instead of using 0x00 before all functions, all output chars, unless 0x00, specify the domain of the function, as thought there was an implied 0x00
01:59:47 <Sgeo> 0x00 would just be regular output
02:00:34 <Sgeo> Probably not PSOX 1.0 though
02:01:49 <ehird`_> faxathisia: about that ISIWM interpreter, i might have a go
02:02:00 <faxathisia> good luck :D
02:02:05 <faxathisia> It'd be fun to mess with
02:02:08 <ehird`_> the paper doesn't specify what typing
02:02:12 <ehird`_> so i can do dynamic or inferenced
02:02:16 <ehird`_> inferenced seems the purest, but harder
02:02:22 <faxathisia> wiki said probably dynamic, but I don't see any reasons to go either way
02:02:33 <ehird`_> hmm, someone offer help in writing it :P
02:02:41 <ehird`_> yes YOU!
02:02:44 <faxathisia> what're you going to write it in?
02:02:54 <ehird`_> faxathisia: beats me. Scheme maybe?
02:03:01 -!- ihope has quit ("CGI:IRC").
02:03:06 <ehird`_> Not C, let's put it that way
02:03:13 <faxathisia> That's a good idea :D
02:03:24 <Slereah> Does someone have any idea how to make a 2D tape for a Turing machine on Python?
02:03:32 <Slereah> That is, infinite in all direction.
02:03:41 <ehird`_> Slereah: use a hash table :P
02:03:45 <faxathisia> can you make an infinite 1D tape?
02:03:47 <Slereah> I don't really want to program some N->ZxZ isomorphism.
02:03:56 <faxathisia> N->NxN though?
02:03:57 <Slereah> I made one.
02:03:59 <faxathisia> oh right..
02:04:07 <Slereah> N->Z is easy.
02:04:12 <ehird`_> faxathisia: do you know scheme? :P
02:04:22 <faxathisia> ehird: Yeah
02:04:25 <Slereah> N-> NxN isn't, but the function already exist, it's the pairing function.
02:04:26 <ehird`_> yaey
02:04:44 <Slereah> I tried to make N->ZxZ, I really don't want to program that.
02:04:52 <ehird`_> the thing with scheme is that you have to choose an implementation and stick with it
02:05:01 <ehird`_> they are just too different
02:06:49 <Sgeo> The PSOX spec will probably be finalized soon
02:07:03 -!- ihope has joined.
02:07:19 <Sgeo> re ihope
02:07:24 <ihope> Ello.
02:07:49 <ihope> The people of Sine aren't wondering if I'm dead, are they?
02:07:59 <ehird`_> faxathisia: annoyingly most scheme systems aren't batch which makes this kind of stuff a pain :-)
02:08:21 <ehird`_> chicken, gambit, bigloo are considerations then i guess
02:11:06 <ehird`_> i guess i'll quiz in #scheme
03:05:26 * Sgeo has an idea to make things like a version 1.10 easier
03:07:01 -!- ihope has quit ("CGI:IRC (Ping timeout)").
03:11:44 * Sgeo can't help thinking that PSOX.py is incredibly ugly..
03:12:44 <Sgeo> A lot of the code is probably WTF quality..
03:20:32 -!- ehird`_ has quit.
03:28:54 <Sgeo> sgeo@ubuntu:~/dev/psox/trunk/impl$ python PSOX.py bf test.b
03:28:54 <Sgeo> Client's PSOX Ver: PSOX 0.0-10
03:28:54 <Sgeo> Running PSOX 0.0
03:34:14 <Sgeo> PSOX.py now has support for the possibility of a client saying Version 10
03:41:34 <pikhq> PSOX!
03:41:46 <Sgeo> :D YAY PSOX! GO PSOX!
03:42:05 <pikhq> Now is the time. . . The time to implement psox.pebble.
03:42:19 <Sgeo> you're doing that?
03:42:32 <pikhq> No; I don't know where the spec is.
03:42:41 <pikhq> Hand it to me, and I shall have PEBBLE using PSOX.
03:42:55 <Sgeo> Spec isn't quite finalized yet, but it's close
03:43:00 <Sgeo> At least, the main part anyway
03:43:09 <Sgeo> Still working on the specs for the builtin domains
03:43:28 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/spec/psox.txt
03:43:39 * pikhq shall work on a Rubik's cube while waiting
03:43:43 <pikhq> I give you 2 minutes. :p
03:44:51 <Sgeo> Waiting for what? The specs for domains to be complete?
03:45:40 <pikhq> Sure.
03:45:42 * pikhq is done
03:45:42 <Sgeo> Or for finalization of psox.txt?
03:45:46 <Sgeo> >.>
03:45:46 <pikhq> Either.
03:46:20 <Sgeo> I think psox.txt is final
03:46:24 <pikhq> Mmkay.
03:46:45 <Sgeo> Of course, I have the ability to change everything completely, but I don't think there will be.
03:47:10 <Sgeo> There were some changes I remember wanting to make, but I think I made all of them
03:47:41 <Sgeo> Actually, psox.txt isn't done.. the List of Builtin Domains isn't complete..
03:48:03 <Sgeo> and the url for simple utilities is wrong
03:48:19 <Sgeo> But everything else should be good
03:48:32 <Sgeo> Although the implementation so far violates the spec
03:49:27 <Sgeo> And will probably keep violating it
03:49:38 <Sgeo> Is this a problem, pikhq?
03:50:34 <Sgeo> "After that, the server responds with its minorver" should probably be "the minorver in use"
03:50:39 <Sgeo> But that's not the vio
03:51:28 * Sgeo will go in 10min to watch Seinfeld
03:51:28 <pikhq> Not yet.
03:51:33 <pikhq> What's the violation?
03:52:20 <Sgeo> According to the spec, if the client isn't PSOX, or if it's the wrong version, the Server lets it know, and lets the client keep running without PSOX features. The implementation exits on those conditions..
03:53:54 <pikhq> Think you could provide a version-invariant method of exitting if the client is using the wrong version?
03:55:31 <Sgeo> ?
03:55:58 <Sgeo> When the implementation exits, the client is killed >.>
03:56:17 <pikhq> Oh. NM.
03:57:14 * pikhq has the psox.bfm header set up.
03:57:24 <Sgeo> May I see?
03:57:51 <pikhq> Just a sec.
03:58:53 <pikhq> http://pastebin.ca/838136
04:00:33 <Sgeo> You're forgetting the 0x0A
04:01:03 <pikhq> The spec did not say a \n was needed there.
04:01:14 <Sgeo> Also, that's PSOX 0.0
04:01:30 <pikhq> Which the spec claims to be.
04:01:55 <pikhq> I can only code to the spec. ;)
04:02:19 <Sgeo> When PSOX 1.0 is released, you'll need to change the code >.>
04:02:31 <Sgeo> But that should be easy enough
04:04:02 <Sgeo> It's a good think you did the psox.bfm now
04:04:08 -!- ihope has joined.
04:04:16 <Sgeo> Ok, psox.txt updated
04:04:51 <Sgeo> Hi ihope
04:07:47 <Sgeo> pikhq, updating the header?
04:09:40 <pikhq> Updated.
04:10:55 <Overand> this is twisted
04:11:00 <Overand> I'm glad I'm idling here.
04:11:17 <Sgeo> pikhq, where?
04:11:31 <Overand> PSOX is a fantastic concept =]
04:11:50 <Sgeo> ty Overand
04:11:51 <pikhq> Sgeo: Lemme post a tarball of my stuff when I'm done implementing all the stuff in the basic spec.
04:17:17 <Sgeo> ihope, you know Sine has a web-irc gateway?
04:20:44 <Sgeo> Overand, did you read the spec?
04:22:10 <pikhq> Does 2.6 return 1 if somestring was a specified safety option, 0 otherwise?
04:23:50 <Sgeo> yes
04:24:42 <Sgeo> pikhq, will psox.pebble be able to handle LNUM/LBYTES/VARG?
04:26:22 <pikhq> As of yet, I don't have any special handling for it.
04:26:54 <Sgeo> Is the language capable of handling it though?
04:27:42 <pikhq> I may need to do some special patching of PEBBLE to make LNUM *convenient*. . .
04:28:04 <ihope> Sgeo: I was a little bit aware of it, but I don't know where it is.
04:28:07 <Sgeo> what about LBYTES and VARG?
04:28:25 <pikhq> But certaintly, you can just pass the macros that take strings of some sort an LNUM, LBYTES, or VARG. . .
04:29:26 <pikhq> I'll *probably* want to do something in PEBBLE like [lbytes foo bar baz] to be able to conveniently handle that stuff, though.
04:29:37 <pikhq> But this is a matter of convenience, not functioning. ;)
04:29:51 * Slereah made some program to generate possible programs for them Turing machine
04:29:56 <Slereah> With associated numbers!
04:30:07 <Sgeo> As long as it can. I'm pretty sure that in bfcomp (which is what I wanted PSOX to work with) it would have been difficult, if not impossible
04:30:08 <Slereah> To maybe compute the first digits of its Turing number.
04:30:58 <ihope> Turing number?
04:31:08 <Sgeo> ihope, why don't you have an IRC client?
04:31:19 <Slereah> The nth digit is 1 if the program is circle free, 0 otherwise, or if it's not a valid program.
04:31:20 <pikhq> Sgeo, bfcomp is a really inflexible bit of language.
04:31:25 <Slereah> (Circle free = halts)
04:31:43 <pikhq> Because my macro parsing is so damned *cheap*, I can freely pass strings around in the macro parser.
04:31:59 <Slereah> It's like a gentler Chaitin constant.
04:32:13 <faxathisia> hmm how is it different to Chaitins constant?
04:32:19 <ihope> Sgeo: I'm not using my computer, so I'm without one for a day or two more.
04:32:19 <Overand> Sgeo: some of it.
04:32:25 <Sgeo> ah
04:32:27 <Overand> (read some of the spec)
04:32:38 <Sgeo> Overand, thoughts?
04:32:39 <Slereah> faxathisia : Chaitin's constant is a probability.
04:32:43 <Sgeo> ihope, did you get my PM?
04:32:50 <faxathisia> I thought that it is the same thing
04:32:58 <Slereah> The Turing constant is just a bunch of numbers.
04:33:07 <ihope> Sgeo: yes.
04:33:10 <Overand> Sgeo: I'm not good enough with this stuff to offer a particularly informed opinion.
04:33:22 * Sgeo once attempted to prove that God cannot exist by using Chaitin's constant
04:33:24 <Slereah> I'd calculate the Chaitin constant, but I don't even understand what "prefix free" mean.
04:34:47 <Slereah> It's probably prettier. I already know the first 1500 digits of the Turing constant, and it's 0 because it's all strings that aren't valid programs.
04:34:54 <faxathisia> I have a feeling it's the same thing
04:35:07 <ihope> Suppose a person who is God can create a stone that is too heavy for him to lift. He cannot lift this stone, so he is not really God. Therefore, a person who is God cannot create a stone that is too heavy for him to lift. Therefore, a person who is God is not really God.
04:35:11 <Slereah> Well, you can probably use the Turing constant to calculate the Chaitin one.
04:36:28 <oklofok> god can do anything -> god can do things he can't do
04:36:32 <oklofok> paradox.
04:36:47 <Slereah> It's a paradox only if you assume that god can do anything.
04:36:51 <oklofok> still focking, ay? :\
04:36:53 -!- oklofok has changed nick to oklopol.
04:36:54 <Sgeo> My "proof" was against omniscience
04:40:41 <faxathisia> oh I think I see the difference
04:40:46 <ihope> How does one define omniscience formally?
04:40:49 <pikhq> What if one assumes that God can do anything except that which he has designed specifically for him not to be able to do?
04:40:50 <faxathisia> is this righT?
04:41:00 <faxathisia> the nth bit of turings constant is 1 or 0 if the nth program terminates
04:41:33 <Slereah> Well, that's what I saw at least!
04:41:41 <ihope> I don't think I've heard of a Turing constant.
04:42:07 <faxathisia> ok so Chaitins constant is different, because the nth bit is not any longer whether the nth program halts or ont
04:42:20 <faxathisia> instead .. you sum all halting programs of size n * 2^-|n|
04:42:56 <faxathisia> (for every n)
04:43:02 <Slereah> If you know what "prefix free" means, I would be grateful.
04:43:28 <Slereah> I'd rather have a probability than a huge bunch of zeros.
04:44:05 <faxathisia> I don't really know but I think this explains it http://en.wikipedia.org/wiki/Instantaneous_code
04:44:17 <ihope> A language is prefix-free if and only if there are no two strings in the language such that one starts with the other.
04:44:24 <faxathisia> '{0, 10, 11} has the prefix property; a code consisting of {0, 1, 10, 11} does not, because "1" is a prefix of both "10" and "11".'
04:45:42 <pikhq> Sgeo: I'll finish up the System domain tomorrow (I stopped short of file descriptor manipulation).
04:45:52 <Sgeo> pikhq, coolness
04:46:17 <pikhq> http://pikhq.nonlogic.org/psox.tar.bz2
04:46:17 <Slereah> So since my code is {*,+,<,>}, am I in the clear?*
04:46:40 <Slereah> Is it the symbols that compose it, or the strings themselves that must be prefix free?
04:46:42 <faxathisia> I think if you have * in the set, then you can't have ** also in the set
04:46:43 <pikhq> If you see simple bugs in there, would you be kind enough to fix, include a changelog, and bat the tarball back at me?
04:46:55 <ihope> {*,+,<,>} is prefix-free.
04:47:08 <Sgeo> What if there's what looks like a bug because the spec is wrong?
04:47:22 <pikhq> Then fix the spec for God's sake. :p
04:47:32 <Sgeo> brb
04:47:50 <ihope> The important part is that if you concatenate some words, you can tell that it's those words rather than some other words that concatenate to the same thing.
04:49:04 <Sgeo> back
04:49:34 <Slereah> Okay
04:49:48 <Slereah> So my code is prefix free then.
04:49:51 <ihope> Yes.
04:49:59 <Slereah> Good.
04:50:57 <Sgeo> pikhq, make sure users realize that psox_installed doesn't check that psox is installed..
04:51:30 <Sgeo> Also, if I knew the bfm language, that would probably be helpful
04:51:36 <Sgeo> >.> Imean PEBBLE
04:51:52 <ihope> (Not only can you do that, but if you concatenate some words and then an initial segment of a word, you can tell that it's those words followed by that initial segment.)
04:52:48 <Slereah> So in other word, it's just the ability to tell apart any two different pieces of code?
04:53:07 <ihope> More or less, yes.
04:53:21 <pikhq> Sgeo: Probably a good idea, that.
04:53:29 <pikhq> Learn PEBBLE.
04:53:31 <Sgeo> what does "exit" do?
04:53:56 <pikhq> It calls the "exit" function in PSOX-System.
04:54:05 <pikhq> PSOX 2.1. ;)
04:54:22 <Sgeo> ah. Why do you want to exit just because a domain you checked for wasn't there?
04:54:29 <ihope> If the code is {0,1,10,11} and I say 110, you don't know whether it's 1-1-0, 11-0, or 1-10. If the code is {0,10,11} and I say 111, you know that it's 11-1, the 1 on the end being part of a word.
04:54:40 <Sgeo> Shouldn't that be the business of the program using the library, and not the library itself?
04:55:23 <pikhq> Um. Probably.
04:56:30 <Sgeo> Also, is pin that convenient?
04:56:37 <Slereah> Well, so far, I have 252 programs that might be valid (if my program works correctly).
04:56:54 <Slereah> Although I must take out the ones that refers to states that don't exist
04:56:58 <pikhq> I should probably have pin take the amount of things to ask for instead. . .
04:57:11 <pikhq> s/ask for/input/
04:57:15 <Sgeo> Because the return from the input function also includes EOF data etc.
04:57:23 <Sgeo> and padding nuls, etc
04:57:41 <Sgeo> Also, will this library be able to easily call arbitrary PSOX functions?
04:57:55 <Sgeo> Because (hopefully) there will be domains not part of the official spec
04:58:36 <Sgeo> Why is there no "in" in psox_gethandprint.bfm?
04:58:51 <pikhq> That would be the job of other libraries. This library is basically just a wrapper around the builtin PSOX domains.
04:59:09 <pikhq> And there is no "in" in psox_gethandprint.bfm because gethandprint returns a string. . .
04:59:22 <pikhq> I assume that the user of the macro will then handle inputting the whole string.
04:59:33 <pikhq> However the user sees fit.
05:00:23 * Sgeo should keep working on PSOX.py
05:01:37 <pikhq> You know what'd be amusingly roundabout?
05:01:45 <pikhq> Implementing a C library to use PSOX. ;)
05:02:26 <Sgeo> Writing Python stuff to use PSOX might actually help testing PSOX.py
05:02:38 <pikhq> That it might.
05:02:45 <pikhq> I'll do something like that tomorrow.
05:02:57 <pikhq> I'll call it something like "The C PSOX Library and Test Suite".
05:03:08 * Sgeo is currently using a bf program that outputs fixed numbers
05:03:50 <Sgeo> I seem to have the handshake (PSOX-Init) working
05:11:25 <pikhq> I'm working on the C PSOX library now, for no good reason.
05:11:45 * Sgeo doesn't really know C
05:12:03 * pikhq does
05:13:26 <Slereah> Hm. How can you find which function halts with Chaitin's constant, since it only gives you a probability?
05:28:37 -!- calamari has joined.
05:37:14 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
05:37:49 <Sgeo> Hi calamari
05:38:02 <Sgeo> Did you see the recent updates to the PSOX specZ?
05:38:04 <Sgeo> spec?
05:38:14 <Sgeo> Or pikhq's PEBBLE stuff for PSOX?
05:39:11 * Sgeo should probably go to sleep soon
05:39:27 * Sgeo is glad he finished the handshake code though
05:39:36 <Sgeo> And, with pikhq's help, fixed the spec >.>
05:40:33 <ihope> Slereah: it depends on what Chaitin's constant you use, I think.
05:40:48 <Sgeo> oO one run of the thing I got a "Broken pipe" error
05:40:52 <Sgeo> the next runs I didn;t
05:40:58 <ihope> If it's for a uniform probability over a finite set of Turing machines, you can use it to find out how many Turing machines halt, and once you've found those, you know that the rest don't halt.
05:41:19 <ihope> Maybe there's a way to find it for all Chaitin's constants; I don't know.
05:41:31 <calamari> hi Sgeo
05:41:34 <calamari> no I didn't
05:42:12 <calamari> did you get the pesoix code working?
05:42:24 <pikhq> PSOX, actually.
05:42:26 <Slereah> Yes, but can you use it to find out what machines halt?
05:42:41 <calamari> name change?
05:42:45 <Slereah> Is there some sort of bijection between that number and the set of halting programs.
05:42:55 <calamari> or are we talking about something else?
05:43:25 <pikhq> Something else.
05:43:28 <Slereah> When I read about it, it seems like it, but now I'm not so sure.
05:43:32 <Sgeo> esolangs.org/wiki/PSOX
05:43:47 <Sgeo> Remind me not to do what I just did
05:45:00 <calamari> no that's the same idea as pesoix
05:45:22 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
05:46:31 -!- ihope has quit ("CGI:IRC (Ping timeout)").
05:46:58 -!- Sgeo has joined.
05:47:09 <Sgeo> Crashed
05:47:11 <Sgeo> What did I miss?
05:47:17 <Sgeo> After <Sgeo> Remind me not to do what I just did
05:47:38 <calamari> <calamari> no that's the same idea as pesoix
05:48:14 <Sgeo> It's not compatible with PSOX, also, don't some parts of PESOIX interact directly with "cells" instead of going through stdio?
05:48:45 <calamari> true, but my implementation wasn't going to do that
05:49:05 <pikhq> So, your implementation was basically going to selectively ignore parts of the spec.
05:49:17 <calamari> yeah
05:49:24 <Sgeo> My implementation is going to violate my spec a bit :/
05:49:24 <calamari> you got a problem with that?
05:49:28 <calamari> :)
05:49:36 <Sgeo> PESOIX is less flexible than PSOX =P
05:49:57 <calamari> anyhow.. so whatever it is.. did you get it working?
05:50:26 * Sgeo is almost done with the core part of the spec, and has implemented the handshake
05:50:48 <calamari> ahh so not implemented?
05:51:04 <Sgeo> Not yet
05:51:08 * pikhq is coming up with a C library to use it for no good reason
05:51:16 <calamari> that's the hard part :)
05:51:35 <calamari> I hadn't even really started on the "spec" part
05:51:40 <calamari> of the implementation
05:51:52 <calamari> just trying to get the I/O wrapper going and I failed
05:53:08 <Sgeo> The I/O issues is why I'm requiring clients (the esolang using PSOX) to send a command in order to receive input from stdin
05:53:29 <calamari> ahh.. so it won't work with arbitrary interpreters
05:53:49 <calamari> that would make it much easier
05:53:51 <Sgeo> arbitrary interpreters it will work with. The esolang is required to send the command though
05:54:16 <calamari> oh, gotcha.. hopefully that works out
05:54:18 <Sgeo> (actually, the interpreter needs to receive from stdin character-by-character)
05:54:42 <Sgeo> Read http://trac2.assembla.com/psox/browser/trunk/spec/psox.txt under Pseudodomains
06:02:29 <Sgeo> calamari, read/
06:02:31 <Sgeo> ?
06:02:55 <calamari> no I didn't, sorry
06:03:20 <calamari> been trying to find a PCI video card with composite/svideo out that also doesn't have a fan
06:04:11 <Sgeo> Thank you for all your work on PESOIX btw
06:06:46 <calamari> yw, but it doesn't even work, so don't thank me too soon :)
06:07:31 <Sgeo> Well, the spec was the inspiration for PSOX
06:10:41 * Sgeo pokethanks calamari
06:10:55 <calamari> ahh, the spec wasn't my work.. that was TheRaven
06:11:05 <Sgeo> ..oh
06:11:08 <calamari> except the esoapi part ;)
06:11:16 <Sgeo> Who was EsoAPI?
06:11:19 <calamari> me
06:11:40 <Sgeo> Well, thank you very much for something that inspired something that inspired PSOX
06:11:48 <calamari> lol.. yw
06:12:22 <calamari> there, something interesting might out of all that esoteric os stuff after all
06:12:41 <Sgeo> I don't think PSOX can be used to make an esoteric OS :/
06:13:18 <calamari> that reminds me.. a while back some guy emailed me saying he was using BOS in one of his classes. So my name was probably cursed by many a student on that one :)
06:13:47 <Sgeo> Although, in theory, you can use a subset of PSOX, extended with a custom domain, as a thingamagigy for an EsoOS
06:14:05 <Sgeo> hehe
06:25:21 * Sgeo should probably go to slepp
06:27:00 -!- Slereah_ has joined.
06:38:15 -!- Slereah has quit (Read error: 110 (Connection timed out)).
06:38:36 -!- Slereah has joined.
06:45:52 <Sgeo> Implementation agenda: output w/ 0x00 0x00, then class Domain, then domain dispatcher
06:46:07 <Sgeo> Sound good?
06:47:23 <Sgeo> After that, I'll get working on the implementation of the domains themselves, which should be quick, assuming the specs are done..
06:48:48 <pikhq> Hmm.
06:49:06 <Sgeo> Also, I should note in psox.txt somewhere that "," can be delayed.. the server stores it up until requested by the client, effectively
06:49:25 <Sgeo> Good?
06:49:29 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
06:49:30 <pikhq> Mmkay.
06:49:34 * Sgeo needs to go to sleep now, g'night
06:49:58 -!- Sgeo has quit (Remote closed the connection).
07:00:39 -!- puzzlet_ has quit (Remote closed the connection).
07:00:46 -!- puzzlet has joined.
07:02:07 -!- puzzlet has quit (Client Quit).
07:02:43 -!- puzzlet has joined.
07:17:01 -!- Slereah- has joined.
07:24:47 -!- calamari has quit ("Leaving").
07:35:43 -!- Slereah has quit (Read error: 110 (Connection timed out)).
07:35:49 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
07:35:57 -!- Slereah- has joined.
07:42:10 -!- puzzlet has quit (Remote closed the connection).
07:42:18 -!- puzzlet has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:34:30 -!- oerjan has joined.
09:55:39 -!- helios_24c3 has joined.
10:09:08 -!- Hiato has joined.
10:34:35 -!- oerjan has quit ("leaving").
10:56:36 -!- helios_24c3 has quit ("Leaving").
11:12:22 -!- RedDak has joined.
11:56:34 -!- Hiato has left (?).
11:59:25 <GregorR> After my experiments with PVC instruments, I'm extremely confident that, with practice, I could play right to the finish a nocturne on a drainpipe flute.
11:59:30 -!- Hiato has joined.
11:59:40 -!- Hiato has left (?).
12:07:22 -!- oklopol has joined.
12:31:01 -!- Slereah has joined.
12:34:20 -!- RedDak has quit (Read error: 110 (Connection timed out)).
12:35:34 -!- RedDak has joined.
12:49:17 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
12:49:38 -!- Slereah- has joined.
12:50:09 -!- Slereah has quit (Read error: 110 (Connection timed out)).
14:01:25 -!- helios_24c3 has joined.
14:29:49 -!- ehird`_ has joined.
15:03:16 <oklopol> finally, i'm fairly sure it works
15:03:31 <oklopol> that was one hellish language to parse :\
15:04:08 -!- Slereah- has changed nick to Slereah.
15:07:45 <ehird`_> oklopol: do show
15:10:36 <oklopol> lol, found a bug : )
15:19:13 <oklopol> oh, right, i just forgot i need to fix the evaluator too
15:19:14 <oklopol> lol
15:31:52 <oklopol> http://www.vjn.fi/pb/p612225632.txt
15:32:45 <oklopol> the same unidirectional ring i showed before, now demonstrating the syntax
15:32:58 <oklopol> the computation syntax that is
15:33:24 <oklopol> well, to be exact, the syntax of expressions, since statements and expressions are very clearly separated.
15:35:55 -!- sebbu has joined.
15:51:42 -!- sebbu2 has quit (Connection timed out).
15:53:39 -!- ihope has joined.
16:04:54 <Slereah> Hello ihope
16:09:31 <ihope> Ello.
16:13:24 <Slereah> Let's say that the Love Machine 9000 has 2 strings of length 5 that are valid programs. Both of these programs are circle-free (I won't say "halting", no program in the minimal syntax ever halt. The tape doesn't even stop moving).
16:13:45 <Slereah> What would be the first term for the Chaitin constant of this machine?
16:14:31 <Slereah> (The two programs are q0, S0 -> PS0, LE -> q0 and q0, S0 -> PS0, RI -> q0)
16:25:08 <oklopol> makes you wonder when a book written in 1997 says "it would take tens of man-years to write a compiler for a high-level language like pascal"
16:25:27 <oklopol> were people stupider back then? :)
16:25:27 <Slereah> Heh.
16:25:40 <Slereah> Possibly just lazy.
16:25:45 <oklopol> well, true
16:26:11 <oklopol> but wtf, pascal is simple as hell :\
16:26:28 <oklopol> or then i just know a subset of it and think that's all
16:27:34 <oklopol> i mean, i'm pretty sure i could write a decent pascal compiler in a month, and i'm not even a professional :\
16:27:57 <oklopol> i just create boy-years, which are like man-months.
16:28:21 <oklopol> gonna get some keb ->
16:31:35 <ehird`_> someone should make a programming language that is based on an editor
16:31:44 <ehird`_> the program simply manipulates the editor buffer of the program
16:31:45 <ehird`_> :D
16:31:57 <ehird`_> and the only way to loop is to manipulate the program with a quine
16:34:03 -!- jix has joined.
16:35:23 -!- oerjan has joined.
17:07:32 -!- faxathisia has quit ("Leaving").
17:14:28 <ehird`_> ,[.,]
17:14:28 <ehird`_> ((in 0) (loop 0 ((out 0) (in 0))))
17:14:32 <ehird`_> now for optimization
17:16:00 <oerjan> what are the 0's for?
17:16:40 <ehird`_> oerjan: at-position
17:16:49 <ehird`_> >>,<< will be optimized to (in +2)
17:17:01 -!- helios_24c3 has quit ("Leaving").
17:17:21 <oerjan> ic
17:19:57 <ehird`_> oerjan: then after optimization it can be put into $BACKEND
17:20:09 <ehird`_> i'm going to write one for brainfuck, just for kicks :-)
17:20:44 -!- RedDak has quit (Remote closed the connection).
17:20:59 <ehird`_> bf-bloatarize :-)
17:21:07 <ehird`_> also C (obviously), probably also an x86 machine code backend
17:21:12 -!- jix has quit ("CommandQ").
17:21:18 <ehird`_> maybe scheme, and try and make it work as functionally as possible while being fast :P
17:22:03 <oklopol> ehird`_: do you do any optimization for unmatching <>'s
17:22:03 <ehird`_> oerjan: there's also some special instructions, right now just 'clear' which optimizes (loop X ((add 0 -1))) to (clear X)
17:22:25 <ehird`_> oklopol: uh, i don't see any real sensible optimizations i could do
17:23:37 <oklopol> i should make a real optimizer sometime, the ones i've made in c++ suck ass :P
17:24:40 <ehird`_> scheme will be great for writing my optimizor in :-)
17:25:01 <ehird`_> except... (add x y) (add x z) optimizations need destruction :(
17:32:39 <ehird`_> hm, that destruction really IS infuriating
17:36:29 <oerjan> what destruction?
17:37:49 <oerjan> seems like a trivial pattern match to me
17:39:23 <oerjan> although basic scheme doesn't have easy pattern matching built in afair
17:39:55 <oerjan> (i'm sure someone must have made macros for it)
17:42:16 <oerjan> oh wait you weren't using scheme at this stage were you?
17:42:17 <ehird`_> i've decided to lessen my scope for now
17:42:27 <ehird`_> oerjan: yes, i am
17:42:51 <ehird`_> instead of generic optimization and backends, first i'm going to write a highly-aggresively-optimizing BF->x86 machine code compiler
17:43:02 <ehird`_> syscalls will jsut be OS X, since it's what i know :-) that could easily be changed
17:43:13 <ehird`_> what's the fastest known BF compiler right now?
17:44:14 <oerjan> don't know
17:44:42 <ehird`_> ok, well what's a fast one :P
17:44:51 <ehird`_> specifically, i'm going to be comparing mandelbrot.b performance
17:44:57 <oerjan> check the wiki
17:45:00 <ehird`_> the fastest interpreter runs it in around 10 seconds
17:45:09 <ehird`_> so compiled, i dunno... i think i could do 2 seconds? :-)
17:46:20 <ehird`_> from the wiki: "Due to the fact that the last half of its name is often considered one of the most offensive words in the English language, it is sometimes referred to as ... b****fuck ..."
17:46:21 <ehird`_> brilliant
17:46:25 <ehird`_> b****fuck
17:47:36 <ehird`_> does egobf have a compiler?
17:50:21 <pikhq> Sure. egobfc.
17:50:59 <pikhq> Which does all the optimization that egobfi does. ;)
17:51:45 <pikhq> Also, that editor language you discussed?
17:51:50 <pikhq> We have a name for it: TECO.
17:57:47 <ehird`_> teco's not what i meant
17:57:48 <ehird`_> :-)
17:58:08 <ehird`_> you can do a factorial in teco without quining the program in its editor buffer and changing various parts of it to the result
18:05:53 <ehird`_> most bf impls seem to be interps, oerjan
18:05:55 <ehird`_> the iwki is not much heklp
18:07:06 <oerjan> pikhq: what about yours? didn't you have a Pebble-based bf compiler?
18:08:40 <oerjan> via C iirc
18:13:16 <ehird`_> he does
18:13:20 <ehird`_> but it's not that optimizing as far as i know
18:13:33 <ehird`_> http://www.zathras.de/angelweb/blog-generating-machine-code-at-runtime.htm now this would be a good way to make a bf interp
18:13:41 <ehird`_> compile to machine code then execute onthefly :-)
18:13:51 <ihope> Just-in-time, eh?
18:14:00 <ehird`_> :D
18:15:06 <ehird`_> I don't know a simple tutorial to the mach-o format for writing out executables actually
18:15:09 <ehird`_> :-(
18:19:36 <ihope> Mirek's Cellebration 4.20 is 6 years old and it still seems to be the best cellular automata program for many purposes.
18:23:55 <pikhq> oerjan: Sure. PFUCK.
18:24:13 <pikhq> It's lightly optimizing.
18:27:30 <ehird`_> 0m1.680s, with gcc -O2 using C outputted by http://esoteric.sange.fi/brainfuck/impl/compilers/bf2c.hs which seems to do a lot of optimization
18:27:33 <ehird`_> mandelbrot.b
18:27:35 <ehird`_> not bad at all
18:29:53 <ehird`_> haskell seems really suited to that
18:30:01 <ehird`_> since bf optimization is pattern matching
18:30:08 <ehird`_> if only i knew haskell
18:34:19 <pikhq> Where's mandelbrot.b?
18:34:51 <ehird`_> http://esoteric.sange.fi/brainfuck/bf-source/prog/mandelbrot.b
18:34:53 <ehird`_> like all bf programs!
18:35:08 <ehird`_> bff, fastest (or second-fastest?) bf interpreter, runs it in a bit over 10 seconds
18:35:15 <ehird`_> that compiler does it in 1.680 with gcc optimizations
18:35:33 <ehird`_> gimme pfuck's compiled-c version
18:35:35 <ehird`_> i'll test it
18:35:46 <oklopol> all optimization is pattern matching
18:35:50 <oerjan> ehird`_: that was sort of the unwritten part of my pattern matching statement above ;)
18:36:11 <ehird`_> oklopol: using pattern matching could get quite verbose for some optimizations :-)
18:36:20 <ehird`_> oerjan: yeah, well, teach me haskell
18:36:21 <ehird`_> :P
18:37:09 <oklopol> graphica is getting quite awesome now, i'm fairly sure you can do an n dimensional hypercube now
18:37:17 <oklopol> in fact, i'll try
18:37:18 <ehird`_> show me a graphica 3d hello world
18:37:25 <oklopol> :P
18:38:35 <oklopol> now that i've given it a bit of thought, graph rewriting may be quite a nice platform for programming
18:38:48 <oklopol> it has the minor defect of being superturing to implement.
18:38:53 <oklopol> errrr
18:38:58 <oklopol> that was badly put ::P
18:39:02 <oklopol> but i guess you got it
18:42:25 <pikhq> http://pikhq.nonlogic.org/mandelbrot.c
18:48:25 <ihope> Graphica and graph rewriting, eh?
18:50:44 <oklopol> yes
18:50:46 <oklopol> why?
18:53:12 * ihope shrugs
18:53:24 <oklopol> has it been done?
18:53:41 <oklopol> never heard about it :\
18:53:56 <oklopol> not that i care, really
18:54:04 <oklopol> but i am interested
18:54:34 <ehird`_> here goes pikhq
18:55:59 <ehird`_> pikhq: 2.5-3 seconds
18:56:03 <ehird`_> you lose, by a lot
18:57:47 <ehird`_> oerjan: would a brainfuck->? compiler be a good learn-haskell project do you think? :-)
18:58:01 <pikhq> ehird`_: But not bad at all for such simple optimisation.
18:58:01 <ehird`_> and i actually mean from scratch - use my little knowledge of haskell, hack something out, learn from it
18:58:07 <ehird`_> no darn tutorials :-)
18:58:20 <ehird`_> pikhq: i did give you the benefit of gcc -O2, and this machine is recent
18:58:35 <ehird`_> (dec 06, with the model being introduced sept 06)
18:59:22 <pikhq> Still, consider that I'm doing barely anything to the code. ;p
18:59:45 <ehird`_> :p
19:00:08 <pikhq> And it's in Brainfuck. Surely that's worth something. :p
19:00:28 <oklopol> hmm, isn't the gregor's one the official fast bf interp?
19:00:30 <ehird`_> no, it's in pebble
19:00:35 <ehird`_> oklopol: not interp: compiler
19:00:47 <oklopol> well, interp in that it's used as one
19:00:55 <ehird`_> no i mean
19:00:59 <ehird`_> i'm lookin for a compiler
19:01:05 <oklopol> well, it compiles
19:01:12 <pikhq> egobfi8 and egobfc8.
19:01:19 <oklopol> compiles to binary code and runs it, iirc
19:01:19 <pikhq> They're both insanely fast in my experience.
19:01:36 <oklopol> ehird`_: compare yours to that
19:01:47 <oklopol> more interesting
19:01:55 <ehird`_> egobfc8, someone give me it as a c file :P
19:02:37 <oklopol> eso archives?
19:02:37 <pikhq> http://pikhq.nonloigc.org/mandelbrot.c
19:03:04 <ehird`_> er i meant the compiler. but ok :P
19:03:22 -!- UnrelatedToQaz has joined.
19:04:05 <oerjan> ehird`_: i don't know about not looking at a tutorial, but otherwise i think so
19:04:41 <ehird`_> oerjan: well i've read YAHT in the past, g ot iup to the bit where it started talking about crazy mutant types :-)
19:05:02 <ehird`_> pikhq: Ha, ha, egobfc8 sucks! Bus error.
19:07:59 <ehird`_> pikhq: :-)
19:08:14 <pikhq> Um?
19:08:25 <pikhq> Gah.
19:08:33 <pikhq> GregorR: I thought you *fixed* that bug.
19:08:39 <oklopol> hehe :P
19:08:50 <oklopol> it's not about working, it's about how great it would be if it works!
19:08:56 <oklopol> *worked
19:09:27 <oklopol> none of you happen to be graphica experts? :\
19:09:40 <oklopol> i want to know if a binary n dimensional hypercube is possible
19:09:44 <ehird`_> oerjan: haskell pattern matching can't handle variable stuff, right?
19:09:48 <ehird`_> what i meani s
19:10:05 <ehird`_> ++++++++++++ -> one instruction would have to be done by matching ++ then recursing, right?
19:10:18 <oerjan> oklopol: er of course it's possible, mathematically
19:10:23 <oklopol> you can define new patterns
19:10:27 <oklopol> oerjan: it is?
19:10:55 <oerjan> if it means what i think it is
19:11:02 <oklopol> did you prove graphica tc? :P
19:11:21 <oerjan> i am not talking about graphica
19:11:26 <oklopol> hehe
19:11:39 <oklopol> i mean, is it possible to define one in graphica
19:11:46 <ehird`_> oerjan: also, why doesn't emacs auto-indent haskell? :(
19:11:47 <oerjan> no idea
19:11:54 <ehird`_> i have haskell-mode etc
19:12:10 <oerjan> ehird`_: apparently you need to cycle through possible indentations
19:12:18 <oerjan> (so i hear)
19:12:18 <ehird`_> to take an example from bf2c.hs, "norm_move p = fst (nm p 0 0) where" is followed by some indented lines, but if i C-j on the 'where', i just get 0-indent
19:12:29 <ehird`_> oerjan: oh jesus. no way am i going to do that
19:12:41 <ehird`_> python has this problem, and python-mode uses the SANE indent level by default and THEN lets you cycle :(
19:12:42 <oklopol> i'll make a spec and hope one of the math wizzes here shows me how it's done
19:12:46 <ehird`_> oerjan: so what do you edit haskell with?
19:12:52 <oerjan> vim
19:12:59 <oklopol> i'm pointing my hairy hand at you, oerjan and ihope!
19:13:07 <ehird`_> does that indent your code for you, oerjan? :P
19:13:08 <oerjan> and i don't claim it's good
19:13:10 <ehird`_> i know vim does autoindent
19:13:11 <ehird`_> but for haskell?
19:13:16 <oerjan> for indentation
19:13:38 <ehird`_> ah
19:13:40 <ehird`_> :(
19:13:53 <oerjan> although i have not tried any fancy setup
19:14:55 <ehird`_> hm my bf compiler will be written in haskell and target c
19:14:59 <ehird`_> though i shall be sure to only use the simplest of c
19:15:08 <ehird`_> damn, now i have to name it :P
19:15:09 <oerjan> i just use the default language insensitive autoindent
19:16:14 <ehird`_> i'll just use emacs :P
19:16:39 <oerjan> as for +++++ i would just match on the first + and use span or something to get the rest
19:17:03 <oerjan> span (== '+')
19:17:27 <ehird`_> oerjan: i'll be applying optimization iteratively anyway
19:17:29 <ehird`_> something like
19:17:36 <ehird`_> while optimization_done: optimization_done = optimize()
19:17:49 <ehird`_> so it'll aggressively do as much as possible
19:18:04 <oerjan> that's extremely unhaskelly way of writing it :D
19:18:17 <oerjan> mutable Bool
19:18:19 <ehird`_> oerjan: yeah, i know :-)
19:18:24 <ehird`_> oerjan: it was just pseudocode
19:18:30 <ehird`_> to demonstrate what i meant
19:20:38 <ehird`_> frainbuck
19:22:15 <ehird`_> oerjan: do you know anyting about yi?
19:23:15 <oerjan> only that it's a haskell editor
19:24:19 <ehird`_> heh
19:24:23 <ehird`_> http://haskell.org/haskellwiki/Haskell_mode_for_Emacs i'm going to do that haskell unicode thing
19:24:26 <ehird`_> because i am curazy!
19:28:09 <oerjan> be careful not to mess up indentation with characters with the wrong width
19:28:19 <ehird`_> :-) sure
19:32:37 -!- sebbu2 has joined.
19:34:41 <ehird`_> $ darcs get --partial http://code.haskell.org/yi/
19:34:41 <ehird`_> Copying patch 238 of 1251...
19:34:48 <ehird`_> you call that PARTIAL, darcs?!
19:41:34 -!- calamari has joined.
19:41:36 -!- ihope has quit ("CGI:IRC (Ping timeout)").
19:48:25 -!- sebbu has quit (Read error: 110 (Connection timed out)).
20:01:26 <ehird`_> oerjan: those algebric thingy-types are "data" not "type", right?
20:01:43 <ehird`_> the X = Y a b | Z a b stuff
20:03:08 -!- ihope has joined.
20:03:13 <ehird`_> yes, yes they are
20:03:57 <oerjan> yep
20:04:02 <ehird`_> Damn, bf2c.hs optimizes /loads/
20:04:16 <oerjan> type is for synonyms
20:04:25 <ehird`_> it optimizes ifs, sums, and even multiplications (of arbitary forms)!!
20:04:39 <oerjan> newtype is for single field data types, removing the usual box
20:07:44 <ehird`_> i don't think i can live up to the amazingness of bf2c.hs :(
20:07:55 <ehird`_> it's *really good*
20:08:08 <Slereah> Huzzah!
20:16:49 -!- Hiato has joined.
20:16:59 <Hiato> Wassabi all :P
20:17:21 <oerjan> no thanks
20:17:32 <oerjan> i hear it's quite strong
20:17:34 <Hiato> lol, ok : Sup all
20:17:37 <Hiato> :) true
20:17:37 <ehird`_> oerjan: how do i add an instance? i'm trying to get show working :-)
20:17:39 <Hiato> but nice
20:17:55 <oerjan> ehird`_: data ... deriving (Show)
20:18:30 <ehird`_> oerjan: indented the same as a |?
20:18:43 <oerjan> or do you mean a custom one?
20:18:53 <ehird`_> also, how do i then define 'show' on it
20:18:57 <oerjan> for example
20:19:13 <oerjan> um deriving (Show) gives you the default instance
20:19:45 <oerjan> (i.e. neither | or deriving have very strict indentation requirements, just more than the "data")
20:20:46 <oerjan> for a custom one, you don't use deriving, but instance Show MyType where show x = ...
20:20:47 <ehird`_> i mean, oerjan, I want to define how to 'show BF'
20:20:52 <ehird`_> ah
20:20:54 <ehird`_> thank you
20:21:15 <ehird`_> instance Show BF\nwhere, right?
20:21:24 <oerjan> (assuming you don't need to deal with parenthesis precedences)
20:21:31 <oklopol> http://www.vjn.fi/pb/p136521315.txt tell me if any part of that makes sense, will ya :)
20:21:59 <oerjan> need at least a space before the where in that case
20:22:23 <oerjan> i would use instance Show BF where\n show ...
20:22:46 -!- tejeez has quit ("mit helvetti t mun irssi sekoilee").
20:22:50 <oerjan> (the where starts a new indentation block)
20:23:04 <Hiato> wow, oklopol, impressive
20:24:24 * oerjan wonders if helvetti means what he thinks it means
20:24:31 <oklopol> hell
20:24:37 <oerjan> right
20:24:39 <ehird`_> graph rewriting...
20:24:39 <ehird`_> !
20:24:48 <oklopol> it doesn't rewrite anything yet.
20:25:02 <oklopol> currently, it's a graph *description* language.-
20:25:17 <oklopol> but, as always, i aim higher than i'll prolly ever get.
20:25:26 <ehird`_> oerjan: haskell-mode doesn't consider "instance Show BF where\n " to be a proper&right indentation
20:25:34 <ehird`_> leastmost is aligned with 'Show BF'
20:25:45 <oerjan> bah
20:25:47 <oklopol> mitä helvettiä tää mun irssi sekoilee == what the hell is my irssi doing
20:25:51 <oklopol> roughly translated
20:26:16 <oklopol> Hiato: thanks, although i don't agree :)
20:26:47 <oerjan> ehird`_: well the next line does need to be indented
20:27:05 <oerjan> how much doesn't matter
20:27:34 <ehird`_> oerjan: can i pattern-match "negative" and "positive"?
20:27:36 <ehird`_> on an Int
20:27:46 <oklopol> in case anyone happened to start reading the spec, tell me ;)
20:27:54 <oklopol> morning coke ->
20:27:59 <Hiato> I did :)
20:28:00 <oerjan> use a guard
20:28:29 <oerjan> for example, f n | n < 0 = ...
20:28:35 <oklopol> cool, i don't think it's any good if you don't know the syntax somewhat already, since it's very formal and simultaneously not that unambiguous.
20:28:35 <ehird`_> oh yes! those things
20:28:40 <oklopol> *any good though
20:29:01 <oklopol> i'll include the example progs i made
20:29:43 <Hiato> Yes please
20:31:35 <Hiato> Where can I paste some text, quickly, anonymousely?
20:31:44 <oerjan> and also if i'm not here don't be afraid to ask in #haskell, the world's friendliest programming language channel
20:31:57 <Hiato> on the web?
20:31:59 <oerjan> pastebin.ca rolls off my tongue
20:31:59 <oklopol> http://www.vjn.fi/pb/p123363511.txt
20:32:23 <Hiato> right, thanks
20:32:27 <ehird`_> oerjan: http://hpaste.org/4720
20:32:33 <oerjan> but there are lots of them
20:32:38 <oklopol> also /pb/, if you don't care about quality ;)
20:32:43 <ehird`_> hahaha how ironic, you just mentioned #haskell, and someone mentioned pastebins
20:33:00 <ehird`_> the best ever pastebin will be written by me in oklotalk :P
20:33:05 <ehird`_> Or maybe Haskell, since I seem to like haskell
20:33:06 <Hiato> :)
20:33:10 <oerjan> ehird`_: replicate b '+'
20:33:29 <oerjan> etc.
20:33:44 <oklopol> oh, right, the coke
20:33:47 <oklopol> ->
20:34:02 <oklopol> damn... at this hour you still need coke outside :<
20:34:14 * oklopol needs to turn his sleep cycle forward...
20:34:18 <oklopol> whoooops
20:34:25 <oklopol> damn... at this hour you still need clothes outside :<
20:34:31 <ehird`_> oerjan: is the show (Move a) ++ blah good though?
20:34:36 <ehird`_> otherwise, it's code repetition
20:34:40 <oklopol> freudian slip
20:34:45 <oklopol> or is that anti-freudian
20:34:47 <oklopol> ->
20:35:36 <oerjan> ehird`_: er, don't you need a backwards move too?
20:35:58 <ehird`_> show (Add 0 b) | b > 0 = '+' : show (Add 0 (b - 1))
20:35:59 <ehird`_> show (Add 0 b) | b < 0 = '-' : show (Add 0 (b + 1))
20:35:59 <ehird`_> show (Add a b) = show (Move a) : show (Add 0 b)
20:36:03 <ehird`_> i mean show (Add a b) there
20:36:10 -!- UnrelatedToQaz has quit ("ChatZilla 0.9.79 [Firefox 2.0.0.11/2007112718]").
20:37:00 <ehird`_> anyway
20:37:03 <oerjan> ehird`_: need ++ not : at least
20:37:04 <ehird`_> oerjan: before and after: http://hpaste.org/4720
20:37:09 <ehird`_> yeah
20:37:12 <ehird`_> i did that :-)
20:38:03 <oerjan> actually: replicate (abs b) (if b < 0 then '-' else '+')
20:38:20 <Hiato> http://hpaste.org/4721
20:38:27 <Hiato> check it out, let me know
20:39:14 <ehird`_> oerjan: that's a bit ugly
20:39:37 <oerjan> as you wish
20:39:56 -!- RedDak has joined.
20:40:29 <oerjan> oh and it doesn't matter here but the usual way to do a second line after a guard is | otherwise without repeating the pattern
20:42:07 <oerjan> Hiato: hpaste is really only for relatively short haskell code
20:42:14 <Hiato> woops
20:42:18 <oerjan> your text was truncated
20:42:20 <Hiato> should I remove it?
20:42:24 <ehird`_> show (Loop a b) = show (Move a) ++ "[" ++ show (Move (-a)) ++ show b ++ show (Move a) ++ "]"
20:42:25 <Hiato> aha, I see
20:42:29 <ehird`_> oerjan: there has to be a better way to od that
20:42:30 <oerjan> and amusingly colored :)
20:43:07 <bsmntbombdood> someone give me a name
20:43:16 <bsmntbombdood> not overtly common but not unusual
20:43:16 <oerjan> Paul
20:43:22 <bsmntbombdood> a full name
20:43:29 <oerjan> John B. Griffith
20:43:40 <ehird`_> bsmntbombdood: Rodger Nintendo
20:43:42 <Hiato> how do I remove?
20:43:42 <ehird`_> wait, what
20:43:42 * oerjan wonders if he exists :)
20:43:50 <oerjan> Hiato: i don't think you can
20:44:06 <Hiato> meh
20:44:13 <oerjan> the author identification is not working...
20:44:31 <bsmntbombdood> i'll go with Paul Griffith
20:45:23 <oerjan> ehird`_: i don't think there is any much better way there
20:45:24 <oklopol> Hiato: i have to agree with pikhq, you have some skill at designing esolangs
20:46:16 <Hiato> Thanks oklopol
20:46:17 <Hiato> :)
20:46:25 <Hiato> http://rafb.net/p/x491Ou33.html
20:46:29 <Hiato> ok, full manual
20:46:59 <ehird`_> oerjan: http://hpaste.org/4720#a2 i really don't like the look of this :(
20:47:22 <ehird`_> also i keep bleeding up against 80 cols :(
20:48:24 <oerjan> hm a helper function:
20:49:06 <oerjan> showMoveBrak a s = show (Move a) ++ s ++ show (Move (-a))
20:49:12 <ehird`_> Brak?
20:49:19 <oerjan> er, bracketed
20:49:25 <oerjan> couldn't think of a good name
20:49:39 <ehird`_> :P it'll do
20:49:44 <oklopol> Hiato: what country is .za? just wondered about your name :)
20:49:55 <Slereah> Zambia?
20:50:01 <Hiato> sure, its South Africa
20:50:03 <Hiato> nope
20:50:05 <ehird`_> south africa
20:50:10 <ehird`_> ...haha
20:50:11 <Slereah> Zouth Africa?
20:50:12 <ehird`_> google powah
20:50:17 <Hiato> well Zuid Africa
20:50:22 <Hiato> in afrikaans
20:50:25 <ehird`_> None of the official names for South Africa can be abbreviated to ZA, which is an abbreviation of the Dutch Zuid-Afrika. This is a legacy of when Dutch was an official language in South Africa, before being replaced by Afrikaans, in which the name of the country is Suid-Afrika. Afrikaans joined English and Dutch as an official language of the South Africa in 1925, and in the South African Constitution of 1961 Dutch was removed as an of
20:50:27 <oerjan> ehird`_: also you can break things into more than one line
20:50:33 <Hiato> and sa is south ammerica
20:50:37 <ehird`_> oerjan: i did, but it looks ugly
20:50:46 <Hiato> yip, eihrd`_ nailed it :)
20:51:05 <ehird`_> wikipedia powah
20:51:12 <Hiato> :)
20:51:53 <Slereah> Are you the only guy on the esomap from South Africa?
20:52:00 <Slereah> Klerksdorp.
20:52:06 <oklopol> "i.e. executing No-Op will
20:52:06 <oklopol> result in the data origin remaining intact but the data destination being modified."
20:52:09 <oklopol> i don't get it
20:52:09 <Slereah> Or are you not on it.
20:52:12 <Hiato> I think so
20:52:13 <oklopol> isn't no-op a nop?
20:52:18 <Hiato> well, I'm not on it :0
20:52:23 <Hiato> No-Op = No Operation
20:52:54 <Hiato> Ie, when you send things through a No-Op, the data destination is increased by the value in the data origon
20:52:59 <Hiato> well, yes
20:53:04 <Hiato> No-Op = nop
20:53:08 <Hiato> but I prefer No-Op
20:53:24 <ehird`_> oerjan: showMoveBrak :: Int -> String -> String
20:53:27 <ehird`_> i can has type sig!
20:53:42 <Hiato> Sleereah, I'm in Johannesburg, not Klerksdorp ;)
20:54:05 <ehird`_> oerjan:
20:54:06 <ehird`_> *Main> parse ",[.,]" [,,[[.,,]],.,,]
20:54:08 <ehird`_> i have work to do
20:54:17 <Slereah> 'kay
20:54:28 <ehird`_> on my parser, though
20:54:28 <oklopol> ah, so ~ always moves stuff from one memory layer to the other
20:54:48 <Slereah> (I remembered that there was just one point in Africa, and it was South Africa)
20:54:49 <ehird`_> oh wait
20:54:49 <Hiato> yuip
20:54:54 <ehird`_> i really want an instance of Show [BF] too
20:54:59 <Hiato> (lol :P )
20:55:10 <Hiato> I'm not so sure how clear that was oklopol, sorry
20:55:28 -!- ihope has quit ("CGI:IRC (Ping timeout)").
20:55:32 <Hiato> but during it's move, it's modified by the current command
20:55:42 <ehird`_> oerjan: show [x,y] where show x = "a" and show y = "b" is "ab"
20:55:45 <ehird`_> what function does that?
20:55:51 <ehird`_> i.e. map-then-join-with-no-sep
20:56:09 <oklopol> Hiato: i guessed that, but it may well be said clearly in the spec
20:56:17 <oklopol> i'm bad at noticing stuff
20:56:39 <oklopol> hmm, what exactly does it mean when a row is shifted?
20:56:40 <Hiato> lol, no prob. It's probably written badly though, haven't revised it at all
20:56:53 <Hiato> well, picture a grid type situation
20:56:57 <oklopol> yeah
20:57:02 <Hiato> where you have a row containing say 6 4 5
20:57:07 <Hiato> then you shift left
20:57:08 <oklopol> yeah
20:57:13 <ehird`_> oerjan: unwords adds a space
20:57:16 <Hiato> it becomes 4 5 6
20:57:28 <Hiato> almost kinda like a rubix cube
20:57:33 <oklopol> oh, hehe, thought the whole row moves :)
20:57:34 <Hiato> but 2d and wrap around
20:57:45 <oklopol> but indeed, row is - and column is |
20:57:57 <Hiato> lol :D. I will revise the spec to make that more clear :)
20:58:11 <Hiato> yep (that is right? )
20:58:50 <oerjan> ehird`_: concatMap
20:59:09 <ehird`_> instance Show [BF] where show = concatMap show
20:59:14 <ehird`_> lean, mean, currying, one-lining machine
20:59:23 <ehird`_> Illegal instance declaration for `Show [BF]' (The instance type must be of form (T a b c) where T is not a synonym, and a,b,c are distinct type variables) In the instance declaration for `Show [BF]'
20:59:37 <oerjan> ehird`_: there is already a general instance for []
20:59:52 <Hiato> so Slereah, fixed the beer problem for the lm ?
21:00:04 <oerjan> actually that error is more subtle, it is because you have not enabled extensions
21:00:10 <oerjan> but you don't need them for this.
21:00:18 <ehird`_> oerjan: so, what do i do :P
21:00:57 <Slereah> Hiato : Yes I habe
21:01:02 <oerjan> instead, in the instance for BF _itself_, add a line showList = (concatMap show ++)
21:01:11 <Slereah> Here it is : http://paste-it.net/5486/raw/
21:01:14 <Slereah> With comments and all!
21:01:25 <oerjan> er wait
21:01:34 <oerjan> messed up
21:01:43 <Slereah> If it doesn't work, I'll also upload the last version of the love machine. I don't remember which one I uploaded last
21:01:53 <oerjan> showList l s = concatMap show l ++ s
21:02:02 <oerjan> too much pointlessness :)
21:02:23 <ehird`_> showLis tl = concatMap show l ++
21:02:27 <ehird`_> just right!
21:02:27 <Hiato> cool, thanks Slereah
21:02:27 <ehird`_> :-)
21:02:28 <Hiato> :)
21:03:07 <Hiato> awesome stuff that comments state :)
21:03:12 <ehird`_> oerjan: i think i need to ditch the ++
21:03:14 <ehird`_> *Main> parse ",[.,]" ,[.,].,
21:03:25 <oklopol> hihi happy comments :)
21:03:27 -!- dak has joined.
21:03:39 <Slereah> Actually, it just takes advantage of the fact that the love machine doesn't look what's in a state until it calls them.
21:03:54 <oerjan> ehird`_: you missed the s in my correction
21:03:58 <Hiato> lol, cool :)
21:04:01 <Slereah> I could probably make a better comment system
21:04:08 <Hiato> ps: Line feeds make it way way slower.....
21:04:18 <Hiato> hugely slow
21:04:46 <ehird`_> yes oerjan but i missed the param too :-)
21:04:49 <ehird`_> so it's valid pointless
21:05:05 <Slereah> Doesn't seem any slower than before to me.
21:05:13 <oerjan> ehird`_: for pointlessness you need to have parentheses around it
21:05:18 <Hiato> So overall, oklopol, is it worth pursuing as an Esolang?
21:05:24 <Slereah> It's not a very efficient program, you should know that.
21:05:37 <Slereah> I could probably make a better version.
21:05:50 <Hiato> :)
21:05:50 <ehird`_> i did oerjan
21:05:53 <Slereah> I'll probably try once I isntalled m-states.
21:05:54 <oerjan> because it has an operator at the end
21:05:59 <ehird`_> showList l = (concatMap show l ++)
21:06:17 <Hiato> Sure, well priorities... (beer should be up there :P j/k )
21:06:17 <ehird`_> *Main> parse ",[.,]" ,[.,].,
21:06:19 <ehird`_> still wrong
21:06:26 <ehird`_> oh wait
21:06:26 <ehird`_> duh
21:06:33 <ehird`_> parse ('[':s) = Loop 0 (parse s) : parse s
21:06:34 <oklopol> Hiato: i'd say, and considering the amount of trivial brainfuck derivatives, that's quite a sophisticated lang
21:06:37 <ehird`_> see if you can spot the error! :-)
21:06:51 <Hiato> Thanks very much oklopol :D
21:06:52 <oerjan> yep
21:07:12 <oklopol> Hiato: only being polite so you'd read the graphica spec ;))
21:07:16 <oerjan> you may need a more clever parser
21:07:16 <ehird`_> oerjan: http://hpaste.org/4722 i think i'd have to do a pretty major parser change for that
21:07:19 <oklopol> (just kidding)
21:07:27 <ehird`_> (note that this also behaves weird on ]s in other places, iut was just a quick hack)
21:07:31 <Hiato> lol, I read it anyway ;)
21:07:34 <Hiato> (lol)
21:07:55 <ehird`_> oklopol: does oklotalk have objects?
21:07:58 <ehird`_> or classes
21:08:52 <oklopol> no classes
21:09:09 <oklopol> prototype-based oo is possible
21:09:16 <oklopol> using functions.
21:09:24 <ehird`_> ok.
21:09:25 <oklopol> kinda like javascript ;;;;)
21:09:43 <ehird`_> i'm going to sketch out my Counter application for my hypothetical oklotalk-based web framework :P
21:09:47 <ehird`_> give me an example of that oo?
21:10:05 <oerjan> ehird`_: the usual trick is to return the part remaining after the parse
21:10:38 <oerjan> so parse "++-+]-+++" = (something, "]-+++")
21:10:49 <ehird`_> oerjan: i see
21:10:50 <ehird`_> :-)
21:11:07 <ehird`_> i'll need a helper function instead of : then
21:11:10 -!- Sgeo has joined.
21:11:22 <oklopol> Animal={§say -> outn "A generic animal says nothing!"}; Turtle=Animal+{§say -> outn "Turtle says moo"}
21:12:00 -!- RedDak has quit (Read error: 110 (Connection timed out)).
21:12:01 <ehird`_> oklopol: ok, now pick another symbol instead of fucked-S so i can type it
21:12:12 <oklopol> lol :)
21:12:16 <ehird`_> alternatively, this is an idea:
21:12:21 <ehird`_> use tons of unicode chars
21:12:21 <ehird`_> instead of =>
21:12:25 <oklopol> heh
21:12:28 <ehird`_> use the unicode two-pronged-arrow-right thing
21:12:45 <ehird`_> then, i won't complain and instead will just make an emacs/whatever mode that rebinds loads of keys to that
21:12:49 <oklopol> just make your own simplified oklotalk -dialect...
21:12:49 <ehird`_> like an APL-for-modern-machines does! :D
21:12:57 <ehird`_> my idea is cooler :(
21:13:00 <ehird`_> it's more weird, like oklotalk!
21:13:07 <oklopol> you won't be able to make a full interp anyway using the examples i give you
21:13:14 <ehird`_> i know that
21:13:14 <ehird`_> but even so
21:13:41 <oklopol> that'd be a cool idea if i knew how to produce those characters.
21:13:49 <ehird`_> oklopol: what editor do you use
21:13:50 <oklopol> i don't really care about the characters.
21:14:00 <oklopol> gedit nowadays
21:14:01 <Sgeo> Grr my dad locked the computer
21:14:24 <ehird`_> oklopol: OK, well start using emacs and i'll write an oklotalk-mode that lets you type then :-)
21:14:25 <ehird`_> *them
21:14:26 <ehird`_> :P
21:14:39 <ehird`_> alternatively, release an oklotalk spec using them and i'll write an editor in it that lets you type them
21:14:39 <ehird`_> :D
21:14:47 * Sgeo is a bit too irritated to really work on PSOX
21:14:52 <oklopol> heh
21:14:52 <Sgeo> pikhq, what do you have?
21:15:14 <Hiato> wassup Sgeo :)
21:15:16 <ehird`_> oklopol: with that thing you did, how can you do super? i.e. call the same function in the parent object, and how do you clone an object, and how do you create an initialization function?
21:15:24 <ehird`_> i guess:
21:15:33 <oklopol> you can make those synthetically
21:15:36 <ehird`_> yes
21:15:38 <ehird`_> but
21:15:40 <ehird`_> how do i call a method
21:15:41 <ehird`_> :-)
21:15:43 <oklopol> and they'll be there as built-ins.
21:15:59 <oklopol> Object!§Method
21:16:12 <oklopol> or object §method
21:16:18 <oklopol> there are lots of ways to calla function
21:16:20 <oklopol> *call a
21:16:21 <Hiato> Sgeo : http://www.rafb.net/p/x491Ou33.html tell me what you tink
21:16:25 <Hiato> *think
21:16:26 <ehird`_> is there a 'returning x as y, z'?
21:16:27 <ehird`_> that is:
21:16:33 <ehird`_> well
21:16:33 <ehird`_> i mean
21:16:36 <ehird`_> a construct behaving like this:
21:16:46 <ehird`_> x = y; ...stuff using x...; y
21:17:11 * Sgeo has no opinion
21:17:24 <ehird`_> oklopol: wait, don't need it
21:17:32 <Sgeo> Does the interpreter read character-by-character, or line-by-line?
21:17:33 <Hiato> (gee thanks -_-)
21:17:38 <Sgeo> I mean, read stdin
21:17:40 <Hiato> ( ;) )
21:17:47 <ehird`_> oklopol: ok, one final question: how can i check whether an object has a certain method or not
21:18:04 <Sgeo> It needs to read stdin character-by-character in order to work with PSOX
21:18:13 <Hiato> My interpreter?
21:18:20 <ehird`_> well, naive new: New={o=_+{}; o §init; o}
21:18:22 <Sgeo> It can write to stdout line by line, and in fact, PSOX.py will do that :/
21:18:25 <Sgeo> Hiato, yes
21:18:33 <ehird`_> oklopol: what about instance vars
21:18:40 <ehird`_> and what about 'self'
21:18:46 <oklopol> function gives out it's patterns using F!#something
21:18:46 <Hiato> Yes, character by character (the Full 0 one at least, this one doesn't exist yet)
21:18:49 <oklopol> don't remember what
21:19:09 <oklopol> do a {_!0}\(F!#ptrns)
21:19:14 <oklopol> and you have the methods
21:19:28 <oklopol> self is '
21:21:27 <oklopol> anyhow, hope that really is your final question, since i think i'll stop answering your further questions now :<
21:21:34 * oerjan read that as instance wars
21:21:50 <ehird`_> oerjan: should i do (list, rest)?
21:21:53 <oklopol> uhh, what a title
21:21:55 <ehird`_> or could 'list' be something better
21:22:09 <oklopol> Instance Wars: The Awakening
21:22:24 <oerjan> whatever structure you want
21:22:45 <oerjan> for a list of BF commands, list seems fine...
21:22:47 <ehird`_> oerjan: asking for a suggestion :-)
21:22:56 <ehird`_> hm
21:23:00 <oklopol> Hiato: you read the spec as future tense, present or past?
21:23:02 <ehird`_> i need some kind of parse-dispatcher
21:23:03 <ehird`_> to loop parse
21:23:06 <oklopol> since i wants opinions :-)
21:24:39 <oerjan> you may have a single command parser, and a command list parser which are mutually recursive
21:24:45 <Hiato> lol, sorry
21:24:56 <Hiato> you know what I meant though
21:25:19 <oklopol> err no actually, that's why i asked :)
21:25:38 <Hiato> lol, ok "I want opinions"
21:25:55 <oklopol> opinions regarding graphica, that is
21:26:00 <Slereah> I want onions.
21:26:03 <oklopol> who doesn't
21:26:07 <Hiato> shrek
21:26:10 <Hiato> :)
21:26:16 <ehird`_> oerjan: alrighty
21:26:25 <ehird`_> oerjan: parse and parseChar, dynamic duo
21:26:48 <Hiato> wait, now I'm confused
21:26:51 <oerjan> ehird`_: except parseChar will parse an entire loop if it hits one
21:27:07 <ehird`_> oerjan: parseInstruction's a bit too long...
21:27:09 <ehird`_> oerjan: parseFoo?
21:27:10 <Hiato> who's spec was that that I read and said wants opinions? Mine are yours oklopol ?
21:27:10 <oklopol> i'll try to explain, if you're confused about the spec.
21:27:17 <oklopol> ...?
21:27:18 <oerjan> parseCmd
21:27:24 <Hiato> I am soo lost
21:27:27 <oklopol> hehe
21:27:31 <oklopol> Graphica spec is by me
21:27:35 <oklopol> and i want onions about it.
21:27:38 <Hiato> yes, I know that
21:27:40 <Hiato> oh
21:27:41 <ehird`_> oerjan: you've almost fully converted me to loving haskell, byt he way :-)
21:27:41 <Sgeo> Would anyone object that PSOX.py writes to stdout line-by-line?
21:27:46 <ehird`_> it's a lot simpelr than i thought
21:27:53 <oerjan> heh :)
21:28:05 <Hiato> "Hiato: you read the spec as future tense, present or past?" Because I though that that was a comment about something I had said about my spec
21:28:06 <oklopol> i didn't paste it here for your enjoyment, but because i wanna know if it's readable :P
21:28:09 <ehird`_> oerjan: parseCmd :: String -> BF -- seems right to me
21:28:14 <oklopol> oh, sorry
21:28:30 <oklopol> i meant about the grph. spec
21:28:33 <Sgeo> ehird`_, does this mean you're going to write a PSOX Server in Haskell?
21:28:37 <oerjan> ehird`_: -> (BF, String)
21:28:42 <ehird`_> Sgeo: If you want. SUre.
21:28:47 <ehird`_> oerjan: Whoops, yes
21:28:57 <Hiato> sure, will read and concentrate now :)
21:28:57 <Sgeo> erm, that was a joke >.> you don't need to do that
21:29:04 <ehird`_> oerjan: and parse :: String -> ([BF], String)?
21:29:16 <ehird`_> Sgeo: Well why not
21:29:20 <oerjan> right
21:29:36 <oerjan> in fact take a look at the definition of ReadS
21:29:50 <Sgeo> ehird`_, it would be a bit of a project, and also domain implementors would also need to implement their domains in Haskell >.>
21:30:01 <oerjan> it's a type for simple parsers, used by the Read class
21:30:12 <ehird`_> Sgeo: so what you won't have a standard for domain implementation languge
21:30:17 <ehird`_> Sgeo: also no it wouldn't be
21:30:21 <ehird`_> no harder than psox.py
21:30:28 <ehird`_> someone get lambdabot in here
21:30:32 <ehird`_> s/lambdabot/a lambdabot./
21:30:38 * Sgeo considers PSOX.py to be a bit of a project
21:30:59 <ehird`_> psox is trivial
21:31:40 <Sgeo> Have you read the specs at any time after it came into existance from being branched off of PESOIX?
21:31:45 <ehird`_> yes
21:32:14 <oerjan> bah, lambdabot doesn't have @src ReadS anyhow
21:32:32 <oerjan> just do :i ReadS in the interpreter
21:33:04 <Hiato> hrmm, well oklopol... I must say, that yes, I get the basic gist of what is going on, but the syntax is laid out awkwardly
21:33:17 <oklopol> you mean the bnf thingie?
21:33:21 <Hiato> the explination, that is
21:33:23 <Hiato> yip
21:33:34 <oklopol> the expression syntax would've been too weird given as a bnf...
21:33:39 <oklopol> i mean, that's what i thought
21:33:44 <oklopol> so it's explained separately
21:33:48 <Hiato> I see
21:33:50 <oerjan> ehird`_: although for more complicated parsers, the Parsec library is your friend.
21:34:00 <oklopol> can you point out what exactly is bad about it?
21:34:21 <ehird`_> oerjan: I've tried Parsec before! I liked it. Nice paradigm.
21:34:24 <ehird`_> But not for Brainfuck
21:34:25 <ehird`_> :-)
21:34:34 <oerjan> it's a bit overkill for that
21:34:40 <ehird`_> *Main> :i ReadS type ReadS a = String -> [(a, String)] -- Defined in Text.ParserCombinators.ReadP
21:34:44 <ehird`_> how useless
21:34:59 <Hiato> well, just the way that things are broken down, perhaps start with the most basic structers and then build it up
21:35:10 <Hiato> instead of starting with something that needs
21:35:27 <Hiato> to be referenced from the bottom of the list
21:35:37 <Hiato> perhaps have the smallest ones first/most basic
21:35:44 <Hiato> then the more composite and advanced structers
21:35:50 <ehird`_> Hiato: that's not how most bnf is layed out
21:35:55 <Hiato> anyway, that's what I feel
21:36:03 <Hiato> well, yes, but the Graphi one isn't
21:36:06 <Hiato> it's backwards
21:37:15 <Hiato> *Graphica
21:37:25 <Hiato> or have I had one too many
21:37:41 <ehird`_> oerjan: so what IS readS
21:37:44 <ehird`_> :-))
21:37:46 <ehird`_> oh wait
21:37:48 <ehird`_> it's a type
21:37:49 <ehird`_> duh :-)
21:37:59 <oerjan> also do :i Read
21:38:04 <ehird`_> hm so parse :: ReadS BF
21:38:10 <oerjan> that's the class that uses it
21:38:26 <oklopol> i don't consider that an issue really, but usually bnf's go bottom-down
21:38:30 <ehird`_> Read confuses me, so I'm going to ignore it!
21:38:31 <oklopol> at least that's my experience.
21:38:39 <ehird`_> ... is that ok? :P
21:38:48 <oklopol> ...
21:38:51 <oklopol> bottom-down xD
21:38:53 <oklopol> top-down
21:38:54 <ehird`_> Actually, I think for BF i should just repeat the readS type
21:38:54 <oklopol> i mean
21:38:55 <ehird`_> it's tiny anyway
21:38:56 <oklopol> lol
21:38:58 <oerjan> although i don't think you need the list around just for bf
21:39:31 <Hiato> lol, well sure, it's your language, and you're more experienced
21:39:34 <oerjan> otoh maybe you do, an empty list signals a parse error
21:39:51 <Hiato> but I just felt it awkward to reference stuff that hadn't yet been introduced
21:39:51 <ehird`_> parse :: String -> [(BF, String)] parse "" = [] parse s = let (p, s') = parseCmd s in p : parse s'
21:39:57 <ehird`_> oerjan: looks right to me
21:40:24 <oerjan> er... no that's not how it's used
21:40:37 <ehird`_> welp, it should work fine actually
21:40:39 <ehird`_> looking at this code
21:40:54 <oerjan> you want ([BF], String)
21:41:00 <ehird`_> nope
21:41:09 <oklopol> Hiato: apart from that, do you understand it? i don't see any difference in the order they're given myself, i've just seen top-down more frequently, so i used that.
21:41:20 <ehird`_> err
21:41:24 <ehird`_> that makes parse String -> [BF]
21:41:28 <oklopol> the evaluation part is top-down too.
21:41:29 <ehird`_> yeah i'll fix that.
21:41:44 <ehird`_> no wait. you are right oerjan
21:41:54 <Hiato> hrmm, yes that aside, I get the flow of it, but not the whole thing entirely
21:42:57 <ehird`_> uh oerjan what should an example result look like from parse
21:43:02 <ehird`_> say (parse ",[.,]")
21:43:19 <Hiato> I feel like I'm missing something (not sure what) but something to make the jump from bnf to example
21:43:29 <Hiato> but I could get it if I stared at it long enough I suppose
21:43:39 <oerjan> ([In 0, Loop 0 [Out 0, In 0]], "")
21:43:55 <oerjan> iirc your types
21:43:56 <oklopol> yeah, i myself feel it explains it all, but doesn't really explain anything :)
21:44:08 <oklopol> should be a bit more example'y i guess
21:44:21 <ehird`_> oerjan: Write and Read, actually. So - parse always is (tree, "")?
21:44:36 <oerjan> not always
21:44:47 <oerjan> if you call parse recursively, it should stop at ]
21:45:15 <ehird`_> parse ",[.,],[.,]" -> ?
21:45:17 <oerjan> because it is then used to parse inside a loop
21:45:25 <Hiato> Yeah, that would be nice, like a walk through idiot example
21:45:26 <Hiato> just one
21:45:36 <oerjan> that will also end with ""
21:45:51 <oklopol> i'll make a short tutorial, that + the spec might clear it up a bit
21:46:04 <oklopol> hmmm... wonder if it's time to put my languages on the esowiki :-)
21:46:04 <ehird`_> oerjan: what wouldn't
21:46:09 <ehird`_> (this is like talking to SHRDLU :-))
21:46:19 <oklopol> been wondering whether i should from the day i joined here
21:46:31 <oerjan> but parse ".,],[.,]" = ([Write 0, Read 0], "],[.,]")
21:46:52 <Hiato> Yeah, that would be awesome. Ha, I think it's about time Full 0 got onto the wiki
21:46:56 <Hiato> but I have no clue how
21:46:59 <ehird`_> shoudln't you get a parse error, oerj?
21:47:03 <oerjan> and that one would be a recursive call used for the loop of the former one
21:47:13 <oklopol> Hiato: just as you'd use any other wiki
21:47:14 <oerjan> no.
21:47:15 <oklopol> ...i think
21:47:29 <oklopol> oerjan and ehird`_ can tell you that
21:47:39 <oklopol> i've never touched a wiki in my life :P
21:47:40 <ehird`_> oerjan: i don't see what definition parse could have
21:47:41 <ehird`_> :(
21:47:42 <oklopol> scaaary
21:47:44 <Hiato> Ditto
21:47:54 <Hiato> we see the same things :)
21:47:59 <ehird`_> Oklowiki will solve that! it shall be trivial!
21:48:03 <ehird`_> and written in Oklotalk!
21:48:05 <Hiato> :P
21:48:06 <ehird`_> With my fictional web framework
21:48:09 <Hiato> oh yeah :)
21:48:11 <oklopol> heh
21:48:28 <Hiato> To help protect against automated account creation, please solve the simple sum below and enter the answer in the box (more info): 32 + 10 = LOLOLOL
21:48:37 <oerjan> ehird`_: you just add a special case parse s@(']':_) = ([], s)
21:48:39 <ehird`_> 32 + 10 = 3210
21:48:42 <oklopol> oklowiki is a virtual wiki that automatically uses every wiki it can find on google simultaneously.
21:48:43 <Hiato> a malbolge script could do that
21:48:50 <ehird`_> oerjan: s@p? bizzare
21:48:51 <ehird`_> oklopol: haha no
21:48:52 <Hiato> Wicked
21:49:00 <ehird`_> Hiato: btu it won't know to look for that.
21:49:17 <ehird`_> Hiato: it will just say 'porn viagra cuddly toy' for all fields, or similar
21:49:19 <ehird`_> and thus fail
21:49:21 <Hiato> well, it will with PSOX and some genetic algorithms :)
21:49:22 <oklopol> ehird`_: don't use + for concatenation!
21:49:29 <Hiato> lol
21:49:30 <Hiato> true
21:49:31 <oklopol> a wise man once told me that
21:49:39 <ehird`_> oklopol: it was a pun based on such
21:49:42 -!- Sgeo has quit (Connection timed out).
21:49:46 <oerjan> ehird`_: that's an "as" pattern. it means bind s to the string, but also check that it matches the pattern ']':_
21:49:56 <ehird`_> oerjan: blind mown
21:49:56 <oklopol> ehird`_: and what i said was totally serious.
21:50:08 <oerjan> huh?
21:50:17 <ehird`_> oerjan: spoonerize it
21:50:47 <Hiato> :D nice ehird`_
21:51:07 <ehird`_> oerjan: i have my two base cases! but no parse s! time to do that :P
21:51:22 * Slereah fixed some more colon troubles on the love machine
21:51:32 <Hiato> This is awesome: "Someone, probably you from IP address 198.54.202.234, has registered an account "Hiato" with this e-mail address on Esolang."
21:51:33 <Hiato> lol
21:51:35 <Slereah> Printing them or taking them as accepting characters is annoying
21:51:53 <Slereah> (The sentence should not be interpreted in any sodomy sense)
21:52:05 <oklopol> Hiato: have you?
21:52:14 <Hiato> lol, yes oklopol
21:53:13 <Hiato> how do I create a new labguage page?
21:53:17 <Hiato> *language
21:53:41 <ehird`_> Hiato: MAGIC & LUFF
21:53:50 <Hiato> no really
21:54:01 <ehird`_> search bar
21:54:03 <ehird`_> type in name
21:54:04 <ehird`_> enter
21:54:04 <ehird`_> edit
21:54:05 <ehird`_> voila
21:54:09 <Hiato> ok, thanks
21:54:46 <oerjan> also when logging in check the box "remember me"
21:55:05 <oerjan> otherwise there is a tendency you don't stay logged in
21:55:05 <oklopol> what's that do?
21:55:12 <Hiato> well, not necessary as I delete cookies automatically when closing FFX
21:55:39 <ehird`_> Hiato: i guess you also use tor
21:55:40 <oerjan> er the problem is it sometimes forgets you _too_ soon
21:55:47 <Hiato> tor?
21:55:57 <Hiato> oh, I see
21:55:57 <ehird`_> ok, forget that
21:56:06 <Hiato> no please
21:56:07 <oerjan> but maybe it depends on browser
21:56:12 <Hiato> don't make me google it :P
21:56:28 <Hiato> tor -ibash?
21:56:29 <Hiato> tor -rent?
21:56:43 <Hiato> bit- tor -nado?
21:56:58 <oerjan> the onion router iirc
21:56:59 <ehird`_> no, just Tor
21:57:16 <Hiato> hrmm
21:57:19 <Hiato> ok, google
21:57:38 <Hiato> Tor: anonymity online
21:57:39 <Hiato> aha
21:58:05 <Hiato> well, no :P But I do use Browzar and CCleaner
21:58:25 <ehird`_> you can always tell the type of person.
21:59:18 <Hiato> yeah, tor looks wicked, downloading
21:59:22 <ehird`_> oerjan: i can't figure out a 'parse s' definition
21:59:26 <ehird`_> sigh, hiato. sigh.
21:59:33 <ehird`_> next up; freenet, i guess
21:59:59 <Hiato> ps: is there a way of using it without having to bounce many connections (limited bandwidth means I don't want to sopend it on some-one's download)
22:00:03 <Hiato> googling :P
22:00:20 <Hiato> ahh, no
22:00:26 <Hiato> freenet is a step way too far
22:00:31 <Hiato> over the edge :)
22:01:02 <Hiato> meh
22:01:03 <oerjan> well the main case should be something like:
22:01:07 <Hiato> actually tor is boring
22:01:38 <oerjan> parse s = let (p,s') = parseCmd p; (ps, s'') = parse s' in (p:ps, s'')
22:01:43 <Hiato> (PS: I clear cookies for a reason : I don't want my sis loggin in for me, and no, I do not delete history incase you were gonna ask)
22:02:10 <Slereah> http://paste-it.net/5499
22:02:11 <Slereah> http://paste-it.net/5500
22:02:17 <Slereah> Hope it works okay now.
22:02:32 <ehird`_> oerjan: what i already had was close, interestingly
22:02:44 <ehird`_> but parseCmd p?
22:02:44 <ehird`_> what is p
22:02:44 <oerjan> ehird`_: i based it on yours
22:02:46 <ehird`_> i think you mean s
22:02:51 <oerjan> er, s
22:02:53 <oerjan> sorry
22:03:01 <ehird`_> also, i'll replace ; with 'in'
22:03:11 <ehird`_> oh
22:03:12 <ehird`_> i see
22:03:13 <ehird`_> :-)
22:04:50 <oerjan> you can also remove the ; and put (ps, s'') straight under (p,s')
22:05:09 <Hiato> seems to work Slereah
22:05:11 <Hiato> just fine
22:05:21 <ehird`_> doing that, where does 'in' line up, oerjan ?
22:05:30 <ehird`_> 'let'?
22:05:33 <oerjan> doesn't matter
22:05:44 <ehird`_> parseCmd (']':s) = error, right?
22:06:01 <Slereah> I had to change it. Dealing with ":" made it crash
22:06:08 <oerjan> no, that should return ([], ']:s)
22:06:23 <Slereah> For instance, the function .+[<.+>] on the BF Love Machine 9000
22:06:26 <ehird`_> oerjan: where do i handle unmatched [s and ]s then?
22:06:31 <oerjan> it's the essential part for allowing parse to be used for parsing inside loops
22:06:39 <Slereah> It works now though.
22:07:00 <ehird`_> oerjan: parseCmd
22:07:01 <ehird`_> not parse
22:07:22 <oerjan> oh right
22:07:46 <ehird`_> hm
22:07:47 <ehird`_> *Main> parse ",[.,]" (,[.,],"]")
22:07:53 <oerjan> yep, although that error should never be triggered
22:08:05 <oerjan> yay
22:08:11 <ehird`_> parse (']':s) = ([], s)
22:08:19 <ehird`_> not: parse s@(']':_) = ([], s)
22:08:20 <ehird`_> :)
22:08:25 <ehird`_> to get rid of "]"
22:08:33 <ehird`_> or is that wrong
22:08:34 <ehird`_> :/
22:08:37 <oerjan> oh bad idea
22:08:54 <ehird`_> *Main> parse ",[.[-],]" (,[.[-],],"")
22:08:55 <ehird`_> it works fine
22:09:08 <oerjan> try parse ",]"
22:09:22 <ehird`_> well. that should be an error anyway
22:09:28 <oerjan> but it isn't
22:09:43 <ehird`_> with your definition:
22:09:44 <ehird`_> *Main> parse ",]" (,,"]")
22:09:46 <ehird`_> still isn't!
22:09:57 <ehird`_> *Main> parse "[" ([],"")
22:09:59 <ehird`_> also wrong
22:10:04 <oerjan> but that is correct
22:10:07 <oerjan> er wait
22:10:10 <ehird`_> no, [s don't magically close
22:10:11 <ehird`_> :-)
22:10:25 <ehird`_> remember, everything before ," should be the program verbatim
22:10:34 <oerjan> the latter shows you have the loop part wrong
22:10:40 <ehird`_> if it's something else (sans removing of comments), that's wrong
22:10:58 <oerjan> the loop part should check that what remains after the subparse starts with ]
22:11:55 <ehird`_> in english
22:12:01 <ehird`_> anyway
22:12:03 <ehird`_> parse s@(']':_) = ([], s)
22:12:05 <ehird`_> that is wrong, somehow
22:12:10 <ehird`_> some error check is missing, somehow
22:12:16 <oerjan> yep, should be ([], ']':s)
22:12:49 <oerjan> parse should not do error checks, it should just stop and the caller should check
22:13:06 <ehird`_> no, it should call 'error'
22:13:06 <ehird`_> :P
22:13:11 <oerjan> NO!
22:13:15 <ehird`_> bah
22:13:16 <ehird`_> why not
22:13:17 <ehird`_> :(
22:13:23 <oklopol> ehird`_: are you making a bf parser or was that something more complicated already?
22:13:28 <oklopol> i forgot what you were doing
22:13:30 <oklopol> :P
22:13:32 <ehird`_> oklopol: bf parser
22:13:35 <oklopol> yarrr
22:13:40 <oklopol> made one once
22:13:44 <ehird`_> which will then optimize and compile :P
22:13:44 <oerjan> because parseCmd ('[':s) calls parse s
22:13:57 <ehird`_> oerjan: i didn't say it should always call error
22:14:20 <oerjan> sure, the caller should check, not parse
22:14:29 <ehird`_> no, because 'parse' is toplevel parsing
22:14:50 <ehird`_> theoretically, main = dump (compile (optimize (parse read))))
22:14:51 <ehird`_> not literal ofc
22:15:03 <oerjan> then you need another function
22:15:18 <ehird`_> :|
22:15:39 <oerjan> say parseCmdList
22:15:57 <ehird`_> to be equal to the current parse?
22:16:02 <oerjan> yep
22:16:10 <ehird`_> ok, now tell me how i check for errors from parse
22:16:10 <ehird`_> :|
22:16:44 <oerjan> parse s = case parseCmdList of (cmdList, "") -> cmdList; _ -> error ...
22:17:04 <ehird`_> oerjan: hmm, also i'd like to be able to say "Unmatched [ at line X, column Y" and the same for ]s
22:17:12 <ehird`_> which seems like it'd quickly veer into non-haskelly territory
22:17:14 <oerjan> *parseCmdList s
22:17:27 <oerjan> um...
22:17:49 <oerjan> you want to keep track of file positions?
22:18:09 <ehird`_> no.
22:18:15 <ehird`_> but: parse "a["
22:18:17 <ehird`_> is
22:18:23 <oerjan> in that case Parsec doesn't seem as that much overkill anymore. it does that.
22:18:27 <ehird`_> error "Unmatched [ at line 1, column 2."
22:18:37 <ehird`_> wouldn't parsec be a bit slow for this though?
22:18:57 <ehird`_> well
22:19:00 <ehird`_> i just mean it has so much stuff
22:19:07 <ehird`_> and bf parsing isn't /that/ complex
22:19:14 <oerjan> an Unmatched [ would always be at the end of the program...
22:19:51 <ehird`_> no, oerjan
22:19:58 <ehird`_> parse ",[.,"
22:20:00 <ehird`_> line 1, column 2
22:20:02 <oerjan> oh wait
22:20:06 <ehird`_> the [ is the thing that is unmatched
22:20:08 <oerjan> hm right
22:20:22 <oerjan> in that case even Parsec needs a bit of trick
22:21:51 <oerjan> well you now have to keep track of lines and columns
22:21:54 <ehird`_> oerjan: ofc this is nothing special
22:21:56 <ehird`_> hm
22:22:05 <ehird`_> i guess parseCmd and parseCmdList could take line/col args
22:22:09 <ehird`_> but that seems... ugly
22:22:59 <oerjan> the alternative is using a state Monad
22:23:10 <ehird`_> oerjan: that souhnds kind of ugly too :)
22:23:11 <oerjan> (which passes line/col under the hood)
22:23:23 <ehird`_> monad sounds nicer than the args, though
22:23:24 <ehird`_> so: shoot
22:23:35 <oerjan> ouch
22:23:53 <ehird`_> shoot foot
22:23:59 <ehird`_> main = shoot foot
22:24:25 <oerjan> i'm not sure i am ready to explain monads practically
22:24:34 <ehird`_> i know monads!
22:24:41 <oerjan> ok
22:24:54 <ehird`_> they're just dummy objects which bubble up the call stack.
22:25:02 <ehird`_> the implementation catches them and does stuff with them
22:25:05 <ehird`_> well, IO monads at least...
22:25:10 <oerjan> ayeeh
22:25:12 <ehird`_> I may be totally wrong! :D
22:25:36 <ehird`_> i guess i might be about to get a haskell mindbender
22:25:46 <ehird`_> why me? :( i even read The Little Schemer without blinking an eye!
22:26:30 <oerjan> ok i'll try a bit. recall that ReadS type?
22:26:37 <ehird`_> no, but i can
22:26:40 <ehird`_> tap tap tap click
22:26:42 <oerjan> type ReadS a = [Char] -> [(a,[Char])]
22:26:51 <ehird`_> thank you
22:26:51 <ehird`_> :P
22:27:01 <ehird`_> and it's String, actually. but same thing
22:27:13 <oerjan> now there is another type lurking around in Control.Monad.State ...
22:27:30 <ehird`_> called Cuddly?
22:27:42 <oerjan> newtype StateT s m a = StateT { runStateT :: s -> m (a,s) }
22:27:56 <ehird`_> okay, wait, let me get that
22:28:11 <ehird`_> what does the X .. = X { ... } stuff mean?
22:28:20 <ehird`_> i get that you have a runStateT function
22:28:36 <ehird`_> which takes a value of type s, returns a value of... something?
22:28:42 <oerjan> it's a newtype definition, the format is basically like data
22:28:49 <oerjan> but this uses record syntax
22:28:52 <ehird`_> the what
22:29:20 <oerjan> it is almost the same as data StateT s m a = StateT (s -> m (a,s))
22:30:03 <ehird`_> OK this isn't getting muchplace :P
22:30:28 <oerjan> anyway it is just a type wrapper around the s -> m (a,s)
22:30:57 <oerjan> now set s = String, m = []
22:31:11 <oerjan> and you get String -> [(a, String)]
22:31:35 <ehird`_> ok.
22:31:42 <ehird`_> So how does this help me with line and col numbers!
22:32:02 <oerjan> er right
22:32:14 <oerjan> maybe a bit mixup there
22:32:30 <ehird`_> :D
22:33:55 <oerjan> well let's say we have some data SourcePos = SourcePos SourceName !Line !Column
22:34:07 <ehird`_> !Line? !Column?
22:34:10 <ehird`_> whut is !
22:34:10 <oerjan> (from Parsec)
22:34:23 <oerjan> er ignore those !'s, they're strictness annotations
22:35:01 <oerjan> type Line = Int; type Column = Int
22:35:22 <ehird`_> So I'll just do Int Int :P
22:35:40 <ehird`_> newtype SourcePos = Int Int -- am i rite
22:35:44 <oerjan> then State SourcePos is a monad which passes that around
22:35:50 <oerjan> no
22:35:53 <ehird`_> ok
22:35:57 <oerjan> you need a constructor
22:36:10 <oerjan> and newtype can only take one field
22:36:42 <oerjan> excuse me i need some food
22:37:04 <ehird`_> hello
22:39:53 * oerjan munches
22:40:03 * ehird`_ crunches
22:41:10 <oerjan> like any monad, the state monads State and StateT can be used with the somewhat imperative-style do blocks of "commands"
22:41:46 <oerjan> the state monads have the special commands get and put, which access the passed around state
22:42:29 <ehird`_> it's a mutable proxy
22:42:32 <ehird`_> is that it?
22:42:52 <oerjan> it's a simulated mutable cell
22:43:00 <ehird`_> and if so, wouldn't line/col parameters be better for this?
22:43:13 <oerjan> could be
22:43:21 <ehird`_> parseCmd :: String -> ([BF], String, Int, Int)
22:43:23 <ehird`_> etc
22:43:39 <oerjan> at least it saves you having to consider general monads at this stage
22:44:17 <ehird`_> the next part of this is trying to determine an unmatched [ or ] as soon as possible
22:44:20 <ehird`_> so i can know which one
22:44:59 <oerjan> unmatched ]'s are easy
22:45:11 <oerjan> but unmatched ['s need to search to the end.
22:46:54 <ehird`_> right
22:47:07 <ehird`_> time to look and see what is called when a ] is called outside of an inner
22:47:17 <ehird`_> because afaics there's nothing in particular
22:47:21 <ehird`_> i.e. no 'error call'
22:48:08 <Hiato> http://esoteric.voxelperfect.net/wiki/Full_0
22:48:10 <Hiato> wohoo
22:48:11 <Hiato> :)
22:48:12 <oerjan> as i said, parseCmdList (']':s) = ([], ']':s)
22:48:24 <ehird`_> oerjan: that doesn't mean there's been an error though
22:48:34 <oerjan> so the caller knows something is wrong if it doesn't expect the ]
22:48:59 <ehird`_> parseCmdList :: String -> Int -> Int -> ([BF], String, Int, Int) best. typedefinition. ever.
22:49:23 <oerjan> ah you decided to pass the Int's in as well
22:49:30 <ehird`_> well yeah
22:49:31 <ehird`_> how else? :)
22:49:32 * ehird`_ parseCmdList (']':s) = ([], ']':s)
22:49:35 <ehird`_> err
22:49:35 <ehird`_> parseCmdList (']':s) = ([], ']':s)
22:49:42 <ehird`_> parseCmdList s@(']':_) = ([], s)
22:49:47 <ehird`_> what is the difference, and which is cleaner?
22:49:52 <oerjan> there is a monad called Writer that only passes things out
22:50:24 <ehird`_> Hiato: full 0 interpreter in full 0 anyone?
22:50:50 <oerjan> well the last one does not reconstruct a new list by putting on a ']' after taking it away
22:51:04 <Hiato> he, that's hellish ahrd
22:51:07 <Hiato> *hard
22:51:10 <ehird`_> ok, but which is 'better'? :P
22:51:14 <ehird`_> Hiato: ok - full 0 interpreter in brainfuck
22:51:31 <oerjan> matter of opinion
22:51:39 <Hiato> err... right... perhaps one in Malbolge then :P ?
22:51:43 <ehird`_> oerjan: rawrrrr
22:51:44 <ehird`_> :P
22:51:54 <ehird`_> Hiato: full 0 interpreter in glass
22:52:04 <Hiato> hrmm... still hellish
22:52:12 <oerjan> er what did i answer?
22:52:16 <Hiato> even id delphi, it was allot of code
22:52:20 <Hiato> *in
22:52:36 <Hiato> but sure, ehird`_ , don't let me get in the way
22:52:37 <Hiato> :)
22:53:17 <Hiato> perhaps though, when there is time, I'll do it in a nice Esolang
22:53:27 <Hiato> something that isn't 100% 1 command type language
22:53:33 <Hiato> hopefully soon :)
22:55:12 <ehird`_> oerjan: So, when a ] is found and we're not in ['s loop, what would be called?
22:55:15 <ehird`_> can't figure it out
22:55:24 <ehird`_> i think
22:55:25 <ehird`_> parseCmdList (']':s) l c = ([], ']':s, l, c)
22:55:31 <ehird`_> but i don't know how i'd tell if that's 'bad'
22:55:45 <oerjan> the top parseCmdList would return the program prior to the ]
22:55:53 <oerjan> together with what's after.
22:56:26 <oerjan> and it would naturally return the position of the ] as well
22:57:10 <oerjan> so the caller can easily check: if the remainder starts with ], it's an unmatched ] and it's got its position
22:57:31 <oerjan> (the caller would be your parse function, i assume)
22:58:17 <oklopol> Hiato: since you are the only one showing interest, when are you leaving today? that somewhat defines my schedule since i want you to see the tutorialish once i make it
22:58:35 <oklopol> i mean, people usually go to sleep at some point.
22:59:02 <Hiato> lol, yip sure
22:59:07 <Hiato> well, unfortunately
22:59:09 <Hiato> pretty soon
22:59:13 <oklopol> thought so
22:59:19 <Hiato> as it is nearing 1 am where I am
22:59:19 <oklopol> it's 23 there or what?
22:59:22 <oklopol> oh
22:59:22 <oerjan> now on the other hand consider the loop command. it will call parse recursively, and _it_ will expect the remainder to start with ]
22:59:30 <oklopol> right, gmt+2
22:59:33 <oklopol> same as mine
22:59:34 <Hiato> yip
22:59:37 <Hiato> lol :)
22:59:44 <oerjan> if it doesn't, then you've got an unmatched [
23:00:08 <Hiato> well, you could email me, or seeing as we are both gmt+2, I will be on tomorrow afternoon
23:00:43 <oklopol> nah, i'll just show it when i see you, it's just if you're leaving, i'm gonna implement a few features first, otherwise i'll start with the tutorial
23:00:55 <ehird`_> in a case expression, oerjan
23:00:55 <Hiato> yeah, it's cool
23:00:57 <ehird`_> can you do a guard?
23:00:59 <ehird`_> i need
23:01:01 <Hiato> implement the features
23:01:02 <oerjan> yes you can
23:01:09 <Hiato> and I'll see tomorrow then
23:01:12 <ehird`_> (program, rest, _, _) | rest starts with ]
23:01:14 <Hiato> ok, time to pack it in
23:01:14 <ehird`_> or something
23:01:17 <ehird`_> or rest is ""
23:01:17 <Hiato> cheers everyone
23:01:25 <oklopol> i will not be here tomorrow, for i need to go drink alcohol with my friends... kinda impossible to prevent on new years' :<
23:01:37 <oklopol> yeah, cya
23:01:37 <Hiato> and the wiki is up (against my best instincts)
23:01:44 <oerjan> (program, rest@('}
23:01:45 <Hiato> but tomorrow=31 no?
23:01:48 <oerjan> arh
23:01:57 <oklopol> Hiato: that's when the party is, here.
23:02:02 <oerjan> (program, rest@(']':_)) ->
23:02:05 <ehird`_> parseCmdList (']':s) l c = ([], ']':s, l, c)
23:02:08 <Hiato> oh yaeh, duh
23:02:09 <Hiato> woops
23:02:10 <ehird`_> oerjan: do i need to advance l or c there?
23:02:11 <Hiato> sorry
23:02:18 <Hiato> im a day behind at 1am
23:02:19 <Hiato> ok
23:02:20 <oklopol> to be specific, it's 31. already
23:02:20 <Hiato> cheers
23:02:30 <oklopol> bye
23:02:31 <oerjan> yes
23:02:32 <Hiato> Hppy New Year to ye all
23:02:35 <Hiato> in the futire
23:02:41 -!- Hiato has quit ("Leaving.").
23:02:41 <oklopol> years all around!
23:03:30 <ehird`_> oerjan: parseCmd ('[':s) l c must change correct?
23:03:34 <ehird`_> wait, i'll dump my current code
23:04:24 <ehird`_> http://hpaste.org/4724
23:06:48 <oerjan> there is a problem there, parseCmd could run off the end
23:07:43 <oerjan> if there is an unmatched [ and the file ends with non-commands
23:08:24 <ehird`_> *Main> parseCmdList ",[xxx" 1 1 (,[*** Exception: /Users/ehird/Code/Frainbuck/Frainbuck.hs:(32,0)-(41,40): Non-exhaustive patterns in function parseCmd
23:08:25 <ehird`_> ghasp
23:08:27 <ehird`_> sheesh
23:08:31 <ehird`_> all of this and i'm not even compiling bf code yet
23:08:38 <ehird`_> this is a 20-liner in scheme, everything i have :-)
23:11:39 <oerjan> btw this is why ReadS wraps its result in a list: to be able to signal that nothing was parsed, with an empty list
23:12:26 <ehird`_> Scheme interlude.
23:12:35 <ehird`_> > (define x (delay (force x)))
23:12:37 <ehird`_> #<unspecified>
23:12:41 <ehird`_> > (force x)
23:12:45 <ehird`_> ............................................
23:12:50 <ehird`_> Ok, back to Haskell
23:13:03 <ehird`_> So, oerjan -- what do I do? :P Maybe if you gave me an example I'd understand better
23:14:09 * oerjan is getting too tired
23:14:37 <ehird`_> :(
23:14:44 <oerjan> i'll be going to bed i think
23:14:53 <ehird`_> aww
23:15:46 <oklopol> Main = Test [1 2 3 4 5]
23:15:46 <oklopol> Test x:xs :: l
23:15:46 <oklopol> <-> xs
23:15:58 <oklopol> lol, i didn't even have to do anything for that to work :P
23:16:13 <oklopol> whoops
23:16:17 <oklopol> l should be x there
23:16:21 -!- oerjan has quit ("Good night").
23:16:21 <ehird`_> what's that, oklopol? haskell? :P
23:16:26 <oklopol> nope, graphica
23:16:29 <oklopol> : is just cons
23:16:53 <oklopol> that's all i needed to do to make pattern matching like that work
23:23:19 <ehird`_> show me an example graphica program
23:23:57 <oklopol> http://www.vjn.fi/pb/p123363511.txt
23:24:00 <oklopol> there's three
23:24:19 <oklopol> quite trivial ones, now that it has lists, you can easily get much more complicated stuff
23:24:40 <oklopol> ...i think
23:24:48 <oklopol> i haven't actually *tried* anything :P
23:25:10 <oklopol> ehird`_: the examples are at the bottom
23:25:22 <ehird`_> hello world plz
23:25:40 <oklopol> lol, a graphica program cannot do anything but specify a graph.
23:25:51 <oklopol> you need to decide a representation of a string first.
23:26:28 <oklopol> it can of course create a node that is connected to itself, and whose tag is the characters of "hello world" as a list or smth
23:26:40 <oklopol> where characters are their ascii values.
23:27:28 <oklopol> main = [...] <-> main
23:28:02 <oklopol> umm sorry
23:28:05 <oklopol> main :: [...] <-> main
23:28:06 <oklopol> lol
23:31:14 <ehird`_> H connected to e ... connected to d
23:31:32 <oklopol> oh, right.
23:31:42 <oklopol> that'll be easier with the shorthands, but i can write it
23:31:44 <oklopol> wait
23:32:07 <ehird`_> and then a main that takes that and does something with it, i don't know :P
23:34:31 -!- dak has quit (Remote closed the connection).
23:34:54 <Slereah> Finally the tape machine has come back to its root!
23:35:00 <Slereah> It can now play the piano!
23:35:06 <Slereah> Although quite slowly apparently.
23:35:27 <oklopol> ehird`_: this may take a while, there seems to be another bug.
23:38:37 <Slereah> [a[cr:F#57DIF#58DINO1DID55DIF#55DIG55DIA55DINO1DIG55DIF#55DIE55DINO2DIF57DINO1DIF55DIE55DIF55DIE55DID55DID59DIHA:a]][0=#;ims=a;nd;nh;etFecF;t1]
23:38:52 <Slereah> Finally, a Turing machine can play the Monkey Island theme!
23:39:09 <Slereah> Heh.
23:46:16 <ehird`_> Oh god really??!?!
23:47:22 <Slereah> http://paste-it.net/5502/
23:47:30 <Slereah> There's a little nothing for mankind.
23:47:38 <Slereah> [a[cr:F#57RIF#58RINO1RID55RIF#55RIG55RIA55RINO1RIG55RIF#55RIE55RINO2RIF57RINO1RIF55RIE55RIF55RIE55RID55RID59:b]|b[#:RI:c;cr:LE:b]|c[#:HA:c;cr:DIRI:c]][0=#;ims=a;nd;nh;etFecF;t1]
23:47:48 <Slereah> I'm no musician, but it's recognizable.
23:48:31 <oklopol> finally
23:48:32 <oklopol> Main = String [72 101 108 108 111 44 32 119 111 114 108 100 33]
23:48:33 <oklopol> String s = String s 0
23:48:33 <oklopol> String [] i :: []
23:48:33 <oklopol> String x:xs i :: [x i]
23:48:33 <oklopol> -> String xs i+1
23:48:45 <Slereah> I can probably load the truckload of strange ASCII chars with musical notes and make some close to ASCII Brainfuck
23:48:56 <oklopol> hello world, represented by a graph in form of a linked list, basically
23:49:00 <Slereah> With the hope that no one will be foolish enough to use them!
23:49:30 <oklopol> a list will be a normal graph once i make graphs first class, so in the future that'd just be Main = "Hello, world!"
23:49:49 <ehird`_> elif prog=="":
23:49:50 <ehird`_> print "This programmer does not support empty programs as quine"
23:49:57 <ehird`_> Slereah: are you just stuffing random stuff into this? :P
23:50:07 <Slereah> Maybe a little.
23:50:11 <ehird`_> oklopol: But can you actually have "H" in there?
23:50:13 <ehird`_> "e"?
23:50:16 <ehird`_> etc
23:50:16 <ehird`_> :D
23:50:21 <oklopol> there are no chars.
23:50:26 <Slereah> But well, it is fun!
23:50:28 <oklopol> there's ints, lists and graphs
23:50:33 <oklopol> and atoms
23:50:36 <Slereah> And possibly useful.
23:50:38 <ehird`_> oklopol: atoms
23:50:42 <ehird`_> oklopol: use atoms for chars
23:50:45 <oklopol> i'll make atoms be datatype tags, yes
23:50:45 <ehird`_> like, in String
23:50:50 <oklopol> hmm?
23:50:55 <ehird`_> if String sees an atom it looks up the ascii code for it
23:50:58 <ehird`_> otherwise it uses the code
23:51:01 <ehird`_> so
23:51:04 <oklopol> oh, no
23:51:14 <ehird`_> String [H e l l o 44 32 W o r l d]
23:51:15 <ehird`_> or whatever
23:52:57 <oklopol> i'll just make "..." be syntactic sugar for #string:[...], where ... have been replaced by their ascii values
23:53:13 <oklopol> althoug... i now realize that's a bad way to do type, and already came up with a good way
23:53:17 <oklopol> *although
23:53:23 <oklopol> *Types
23:53:25 <oklopol> *types
23:54:27 <oklopol> later, the nodes can actually have values; values are different from tags, in that two nodes can share a value, and a value can be changed
23:54:57 <oklopol> so... the that'll make typing trivial without being explicit
23:55:02 <oklopol> *-the
23:55:32 <oklopol> oh, right, the n-dimensional hypercube
23:55:35 * oklopol gets on it
2007-12-31
00:08:40 <ehird`_> foo<-{n->{i->n++i}}
00:08:55 <ehird`_> foo<-\n.\i.n++i
00:12:18 <oklopol> Main :: 0
00:12:18 <oklopol> = RNode 4 1 0
00:12:18 <oklopol> = RNode 4 2 0
00:12:18 <oklopol> RNode n t p = RNode 0 n t p
00:12:18 <oklopol> RNode m m t p :: p
00:12:19 <oklopol> RNode n m t p :: #node n t -> RNode n+1 m t p
00:12:23 <oklopol> eight!
00:12:37 <oklopol> ...close in complexity to the hypercube 8|
00:12:58 <oklopol> what a verbose lang, i need those shorthands...
00:15:23 <Slereah> What's ASCII 96? `?
00:15:30 <Slereah> Doesn't appear on my chart.
00:16:32 <ehird`_> oklopol! how would you like to help devise a language even more concise than oklotalk
00:16:46 <ehird`_> with only one goal: tiny code
00:16:53 <ehird`_> well, tiny code that can be written fast :-)
00:18:23 <oklopol> starting on what basis?
00:18:58 <ehird`_> oklopol: hm, insanity
00:19:06 <ehird`_> or: functions, mainly, i guess
00:19:10 <ehird`_> functions and mutations
00:19:33 <oklopol> typing makes things concise because it allows for massive overloading.
00:19:54 <ehird`_> ok then
00:19:56 <ehird`_> type inference?
00:20:02 <ehird`_> or dynamic typing
00:20:19 <oklopol> hmm
00:20:50 <oklopol> well, definately not explicit typing :)
00:21:11 <ehird`_> ofc
00:21:16 <ehird`_> type inference could be fun
00:21:16 <oklopol> yep
00:21:25 <ehird`_> you could build up a huge knowledge base of info about functions
00:21:35 <ehird`_> it could know more about how a function behaves than you do :P
00:21:41 <ehird`_> but then type inference can get complex
00:21:46 <ehird`_> also, less possibility for operator abuse
00:21:59 <oklopol> indeed, never tried implementing it though
00:22:09 <ehird`_> so... dynamic typing?
00:22:17 <oklopol> prolly
00:22:21 <ehird`_> ok
00:22:30 <ehird`_> let's get some sort of grammar
00:22:37 <ehird`_> we want prefix, binary, and postfix operators
00:22:42 <ehird`_> also N-ary binaries
00:22:44 <ehird`_> that is
00:22:46 <oklopol> hehe
00:22:48 <ehird`_> ARG op ARG ARG ...
00:22:58 <ehird`_> i don't think ARG ARG ... op ARG ARG ..., though
00:23:01 <ehird`_> that would be confusing
00:23:22 <oklopol> perhaps.
00:23:33 <ehird`_> what usage would that have
00:23:40 <oklopol> asdf i remember i came up with a language some time ago, but i forgot what it was....
00:23:46 <oklopol> how do you parse arg op arg arg?
00:25:21 <ehird`_> dunno
00:25:23 <ehird`_> K does it
00:26:50 <ehird`_> oklopol: instead of thinking about that
00:27:01 <ehird`_> oklopol: let's just say: prefix, postfix, binary
00:27:12 <ehird`_> arg op arg arg would be arg op (arg arg), i.e. second arg a list
00:27:16 <ehird`_> so
00:27:23 <ehird`_> what about the 'function' operator
00:27:35 <ehird`_> i think: []
00:28:05 <ehird`_> [_+1] or [x;x+1]
00:28:08 <ehird`_> oklopol: good so far?
00:28:36 <oklopol> seems to work.
00:28:50 <oklopol> but that's a given since there's no sidestep from K :P
00:28:57 <oklopol> K does it? huh
00:29:02 <oklopol> i don't think so...
00:29:05 <ehird`_> ok, now let's define two functions over lists
00:29:09 <ehird`_> specifically, map and fold
00:29:13 <ehird`_> \ is fold
00:29:21 <ehird`_> / is map
00:29:24 <ehird`_> Postfix operators
00:29:37 <ehird`_> func\ is a function f
00:29:42 <ehird`_> f called with a list does fold over that list with func
00:29:45 <ehird`_> same for / but with map
00:29:51 <ehird`_> +\1 2 3 -> 6
00:30:03 <ehird`_> +/(1 2) (3) -> (3) (3)
00:30:15 <oklopol> that works as long as you can't change the meaning of \ during the program
00:30:25 <ehird`_> yes, and?
00:30:26 <oklopol> well, as long as it always is a postfix oper.
00:30:31 <ehird`_> it is
00:30:36 <ehird`_> x/ and x\
00:30:42 <ehird`_> +\1 2 3 is really:
00:30:44 <oklopol> well, i mean if you want to make your own postfixors.
00:30:46 <ehird`_> (+\) 1 2 3
00:31:12 <oklopol> if you can't make them, then the separation into postfix operators is useless and the terminology of K can be used
00:31:19 <oklopol> verbs & proverbs
00:31:21 <ehird`_> [_+2]/1 2 3 -> 3 4 5
00:31:22 <ehird`_> oklopol: you can
00:31:28 <ehird`_> oklopol: you can define all kinds of ops
00:31:40 <ehird`_> [x;x+2]/1 2 3 -> 3 4 5
00:31:47 <oklopol> yes, well in that case, those need to be type checked at compile time.
00:31:59 <oklopol> which somewhat rules out dynamic typing
00:31:59 <ehird`_> nah
00:32:01 <ehird`_> dynamic typing
00:32:02 <oklopol> no?
00:32:16 <ehird`_> /, \ use their arg as a func
00:32:25 <ehird`_> if it's a number, the interpreter balks out
00:32:30 <oklopol> it will change parsing if you change a postfix operator into a prefix one.
00:32:52 <ehird`_> how does k handle this
00:33:11 <oklopol> i don't think proverbs are first class
00:33:19 <oklopol> although i don't *know*
00:33:50 <ehird`_> ok, well then parsing can be changed at runtime
00:33:50 <ehird`_> :D
00:33:53 <oklopol> *adverbs
00:33:55 <oklopol> not proverbs
00:34:02 <ehird`_> compiling will probably be possible with some tricks
00:34:21 <ehird`_> like no matter what an op is compiled as prefix,postfix,infix depending on how its used
00:34:26 <ehird`_> when multiple choices, both are tried
00:34:31 <ehird`_> and it is resolved at runtime
00:35:01 <ehird`_> oklopol: should we have pattern matching?
00:35:05 <ehird`_> and if so, what syntax
00:35:38 <oklopol> hmmm
00:35:49 <oklopol> uhhh K-tree <3
00:36:08 <oklopol> i *have* to get my hands on a K interp or make one myself...
00:36:10 <ehird`_> echo 'define k-tree' | ehirdtalk
00:36:19 <oklopol> heh
00:36:37 <ehird`_> upi can get a free K interpreter from Kx
00:36:39 <ehird`_> as in beer
00:36:51 <oklopol> what?
00:36:59 <oklopol> *-up, or what's upi?
00:37:08 <ehird`_> you
00:37:16 <oklopol> xD
00:37:23 <oklopol> oh, heh
00:38:28 <ehird`_> hm
00:38:31 <ehird`_> kx.com is confusing
00:38:32 <oklopol> pattern matching can make things more concise, definitely, the problem is the kind of iterative programming K does is much more comcise
00:38:32 <ehird`_> no info abotu K
00:38:33 <oklopol> *concise
00:39:17 <ehird`_> oh well
00:39:18 <ehird`_> http://www.nsl.com/misc/k/kwin.zip
00:39:20 <ehird`_> there's your interpreter
00:39:42 <oklopol> i'm actually on ubuntu.
00:40:46 <oklopol> lol thank you xchat, there's no way to copypaste that into my url without the kwin.zip part xD
00:40:51 <ehird`_> klin then
00:41:17 <ehird`_> now WHERE is my goddamn interpreter for os x
00:43:53 <ehird`_> http://www.kx.com/download/download.htm sdfhsdfoijsdfoihsdf no k interpreter
00:44:22 <ehird`_> anyway
00:44:25 <ehird`_> explain k-trees, oklopol
00:45:34 <ehird`_> anyway. fact:[*1|_]
00:45:40 <ehird`_> there's a factorial
00:46:12 <oklopol> whellll the k-tree is a tree
00:46:18 <oklopol> which holds the vars
00:46:31 <ehird`_> helpful
00:46:45 <oklopol> the point is you can do scopes explicitly in a fun fashion by executing something in a lower branch
00:47:59 <ehird`_> so how do i use a k-tree in place of pattern matching
00:48:15 <oklopol> umm... there's no "a k-tree"
00:48:19 <oklopol> there's only one k-tree
00:48:21 <ehird`_> ok
00:48:26 <ehird`_> how do i use it in place of pattern matching
00:48:34 <oklopol> depends what you mean.
00:48:42 <oklopol> ohhhhh
00:48:56 <oklopol> when i said "k-tree <3", it had nothing to do with pattern matching.
00:50:01 <oklopol> uhhh
00:50:03 <oklopol> k
00:50:03 <oklopol> +
00:50:05 <oklopol> erlang
00:50:06 <oklopol> =
00:50:08 <oklopol> sex.
00:50:31 <oklopol> kinda like pi calculus, but... less calculus'y :-)
00:50:57 <oklopol> something involving a linda-like global tuplespace
00:50:58 <ehird`_> so, oklopol...
00:51:04 <oklopol> what? :)
00:51:05 <ehird`_> how should we do conditionals/pattern matching/whatever
00:51:24 <oklopol> ah, well, *that* i don't know.
00:51:32 <oklopol> all i know is, k+erlang, maybe?
00:51:33 <oklopol> :))
00:51:52 <oklopol> i have no idea what that even means, i just know it's awesome.
00:52:22 <oklopol> actually, i should learn linda, since i just know it has the global tuplespace, and that's awesome :P
00:52:38 <ehird`_> :/
00:52:52 <oklopol> sorry for not being helpful, my brain isn't good at anything non-random ideas thinking at this hour.
00:53:09 <oklopol> i'd need longer vacations to get used to the fact i sleep during the day :)
00:53:27 <ehird`_> hm the evaluation model of our language is still pretty standard
00:53:38 <ehird`_> maybe there's a way to make code more consice, by completely changing it
00:55:14 <oklopol> well, you could make it point-free, and add lots of high-order functions :))
00:55:24 <oklopol> i'm going to sleep soon
00:55:27 <oklopol> too many smileys.
00:55:28 <ehird`_> heh
00:55:33 <ehird`_> point-free code isn't consicer though
00:55:46 <oklopol> not really, no
00:55:47 <ehird`_> certainly not quicker to write either
00:55:56 <oklopol> certainly not, no
00:55:58 <oklopol> :))
00:56:54 <oklopol> oklotalk isn't hard to win, since i've let a lot of stuff out i originally had, for lessening obscurity :<
00:57:31 <oklopol> so, the language
00:57:46 <oklopol> if the aim is for conciseness, i'd start with examples
00:58:04 <oklopol> i mean, examples of programs we want to be concise.
00:58:32 <oklopol> it's pretty simple to find a language that would be most concise for doing a certain kind of job
00:58:53 <oklopol> well, ofc not *the most concise one*
00:59:05 <oklopol> but, like, very.
01:00:21 <ehird`_> aim is for conciseness and speed to write
01:01:27 <oklopol> well, one way to be concise is to leave more stuff for the interp to figure out
01:01:40 <oklopol> make it a bit more declarative
01:01:53 <ehird`_> ok
01:01:57 <ehird`_> example?
01:02:10 <oklopol> one way to do this would indeed be the tuple space, i think... although that is only a feeling, since i haven't explored it that rigorously..
01:02:13 <oklopol> hmm
01:02:32 <oklopol> well, i can give you extreme examples, ones that are fully declarative...
01:03:23 <oklopol> like ![{a<b}\2\l]
01:03:27 <oklopol> for sorting
01:03:41 <oklopol> ![] means "do something that makes this return true"
01:03:52 <ehird`_> ooh
01:03:56 <ehird`_> let's devise an algorithm for sorting
01:03:57 <ehird`_> that is
01:03:58 <ehird`_> 1. fast
01:04:00 <oklopol> then \2\, here, was a reduce that took 2 at a time
01:04:06 <ehird`_> 2. extremely concise when expressed declaratively
01:04:09 <oklopol> and the rest is trivial
01:04:43 <ehird`_> also, that ![...] stuff
01:04:45 <ehird`_> for that
01:04:48 <ehird`_> will be uh...
01:04:50 <ehird`_> hard for the interp
01:04:53 <ehird`_> specifically, near-brute-force
01:05:31 <ehird`_> anyway, let's do what i said
01:05:33 <oklopol> indeed.
01:05:51 <oklopol> i said i can only concoct an extreme example in a short time.
01:06:10 <oklopol> you can so something in-between
01:06:23 <ehird`_> :-)
01:06:26 <oklopol> hmmmm
01:06:28 <ehird`_> hm
01:06:35 <ehird`_> what about improving mergesort, then making it declarative
01:06:44 <ehird`_> specifically, i'm thinking running the branches concurrently
01:07:13 <oklopol> indeed, a lot of support for cutting and splicing lists, and recursion!
01:08:21 <ehird`_> declarative recursion
01:08:24 <ehird`_> you figure that one out :-)
01:09:15 <oklopol> wait wait
01:09:19 <oklopol> i'm close to it.
01:11:03 <ehird`_> ooh
01:11:06 <ehird`_> :-)
01:11:16 <oklopol> i'm having a hard time coming up with a syntax.
01:11:22 <oklopol> did you find something?
01:12:28 <oklopol> rec l\2, zipx .<<
01:12:55 <oklopol> let's say that's a function, l\2 splits a list [1, 2, 3 ,]
01:12:57 <oklopol> eh...
01:13:22 <oklopol> let's say that's a function, l\2 splits a list [1, 2, 3, 4, 5] -> [[1, 3, 5], [2, 4]]
01:13:55 <oklopol> rec is a lower precedence high-order function that applies current function recursively for every item in a list
01:14:02 <oklopol> in this case the two halves of the list
01:15:01 <oklopol> , is a low precedence function that works as a data flow controller, it takes the output of the last thingie and gives it to the next. this could just be done using normal application, but i think the precedences may provide more conciseness with a comma oper.
01:15:48 <oklopol> zipx takes a function and a list of lists, and always zips the value the function gives from all the heads of the lists given to it as a list, and concatenates one at a time
01:16:15 <oklopol> these are all very basic functions, so i think that could be made 8 or 10 chars.
01:16:30 <ehird`_> this is not declarative
01:16:46 <oklopol> nope.
01:16:47 <oklopol> just an idea.
01:17:01 <oklopol> the declarative one i had was less concise :P
01:17:11 <oklopol> list splicing is sooooo mucho fun
01:17:27 <ehird`_> anyway: [$_\2,!]
01:17:31 <ehird`_> hmm
01:17:33 <ehird`_> anyway
01:17:36 <ehird`_> what is that
01:17:37 <ehird`_> is that a sorter
01:17:45 <oklopol> what is what
01:18:51 <ehird`_> anyway
01:18:58 <ehird`_> here's a quicksort idea:
01:20:02 <oklopol> '\_2,)#<<
01:20:35 <ehird`_> hm
01:20:36 <ehird`_> wait
01:20:43 <ehird`_> tell me the syntax for car and cdr
01:20:46 <ehird`_> one-char, prefix
01:21:14 <oklopol> i use . and : usually
01:22:12 <ehird`_> ok
01:24:47 <ehird`_> qs^naive:[l:r:(). :?_<2[_][p:#_ ?_/2. [:_<p[l:l~_][r:r~_]/_ (qs^naive l)~(qs^naive r)]]
01:24:57 <ehird`_> oklopol: imperative-style quicksort
01:25:10 <ehird`_> you can figure it out. it's not hard
01:25:29 <ehird`_> watch out for : being both a 3-arity prefix and a 2-arity infix
01:26:05 <ehird`_> qs^naive:[l:r:(). :?_<2[_][p:#_ ?_/2. [:_<p[l:l~_][r:r~_]/_. (qs^naive l)~(qs^naive r)]]
01:26:11 <ehird`_> missed a .
01:26:18 <ehird`_> qs^naive:[l:r:(). :?_<2[_][p:_#?_/2. [:_<p[l:l~_][r:r~_]/_. (qs^naive l)~(qs^naive r)]]
01:26:22 <ehird`_> made # infix
01:26:26 <oklopol> that's not very concise + i'm not sure i can read it.
01:26:26 <ehird`_> oklopol: take a look at that
01:26:35 <ehird`_> its not concise cause it's imperative
01:26:38 <ehird`_> i'll walk you through it
01:26:39 <ehird`_> qs^naive:[l:r:(). :?_<2[_][p:_#?_/2. [:_<p[l:l~_][r:r~_]/_. (qs^naive l)~(qs^naive r)]]
01:26:45 <ehird`_> x:y is assignment
01:26:48 <oklopol> ah
01:26:53 <ehird`_> l:r:() is like l = r = []
01:27:00 <ehird`_> () just being the null expression
01:27:12 <ehird`_> since scalars = list 1-order,
01:27:15 <ehird`_> null = list 0-order
01:27:17 <oklopol> mine was imperative and 9 characters :)
01:27:23 <ehird`_> then we have 3-arity :
01:27:28 <oklopol> but okay
01:27:32 <ehird`_> and yes but mine's not relying on bizzare things
01:27:36 <ehird`_> ?_<2
01:27:37 <oklopol> neither is mine.
01:27:38 <ehird`_> ? is length
01:27:42 <ehird`_> ?_ being length of the arg
01:27:45 <ehird`_> checking <2
01:27:50 <ehird`_> if so, we just return it - [_]
01:27:59 <ehird`_> otherwise, pick a pivot from the middle - ary#index
01:28:16 <ehird`_> then, run [:_<p[l:l~_][r:r~_]] over the list
01:28:23 <ehird`_> if _ is less than the pivot, append it to l
01:28:25 <ehird`_> ~ is concat
01:28:28 <ehird`_> otherwise, append it to r
01:28:34 <ehird`_> then, qs l and r and concat them together
01:28:47 <ehird`_> so what's your qs?
01:28:53 <oklopol> it's not fully imperative really
01:28:58 <ehird`_> thought so
01:29:14 <oklopol> qs is much harder in my lang stub.
01:29:31 <ehird`_> '\_2,)#<<
01:29:33 <ehird`_> walk me through
01:29:49 <oklopol> i already did, but i'll redo that
01:30:02 <ehird`_> wait, it's not qs
01:30:05 <ehird`_> it's brute-force sort
01:30:06 <ehird`_> :-)
01:30:10 <oklopol> it's mergesort
01:30:33 <oklopol> also, it's a parametrizable mergesort of any amount of splits
01:30:44 <ehird`_> it's also slow
01:30:50 <oklopol> turning \ into / will make another mergesort, which runs a bit faster
01:31:00 <oklopol> nope, yours copies the list too.
01:31:33 <ehird`_> ok walk me through it
01:31:35 <ehird`_> each char
01:31:54 <oklopol> okay, first split by ',' to get the statements
01:32:00 <ehird`_> ok
01:32:01 <ehird`_> '\_2
01:32:03 <ehird`_> and )#<<
01:32:24 <oklopol> "'" there is a special recursion tool that applies recursion to each sublist, unless an empty list, which is simply returned
01:32:28 <oklopol> this is a frequent need.
01:32:35 <oklopol> it's a deep mapping.
01:32:38 <oklopol> basically
01:32:40 <ehird`_> ok
01:32:44 <ehird`_> and \_2
01:33:13 <oklopol> \ is a prefix splice here, _ is the nameless arg given to the substatement, so it will basically be cut in two halves in the first statement
01:33:26 <oklopol> then, the recursion applies
01:33:26 <ehird`_> prefix splice? sounds pretty specific to me
01:33:35 <oklopol> err...
01:33:36 <ehird`_> ok, wht's )#<< and why does it have unmatched
01:33:44 <oklopol> cutting a list into pieces is what i based the idea on.
01:33:51 <ehird`_> ok
01:33:54 <ehird`_> )#<<
01:34:41 <oklopol> yeah, that will take the resulting list, )# is, kinda like ', a special prefix transformer, that takes a list, and concatenates using the function given to decide which one pick at each time.
01:35:05 <oklopol> that's pretty spesific, but there are enough 2-char tokens to have that kind of stuff, especially when you can overload.
01:35:11 <oklopol> << is just a min function
01:35:51 <oklopol> it would be just <, in case of type inference, where < can be min when a non-boolean is expected and normal ordering function int->int->bool when a bool is expected.
01:36:00 <ehird`_> how about we define a problem domain to work on
01:36:03 <ehird`_> then base the language on that
01:36:17 <ehird`_> let's think low-level: what essentially are most algorithmic programs?
01:36:24 <ehird`_> Let's take the factorial.
01:36:31 <ehird`_> Isn't it a map?
01:36:37 <oklopol> yeah
01:36:39 <ehird`_> An infinite map.
01:36:43 <oklopol> yarrrr
01:36:46 <ehird`_> So..
01:36:57 <ehird`_> If [] is a mapping,
01:37:03 <ehird`_> [x=y. x=y] etc
01:37:11 <oklopol> hmmm
01:37:14 <ehird`_> then
01:37:16 <oklopol> [] is a mapping?
01:37:20 <oklopol> errr
01:37:20 <ehird`_> we can algorithmically define how to look up a key
01:37:25 <oklopol> what kinda mapping, now?
01:38:03 <ehird`_> fact = [_<2 = 1; n = n * fact(n-1)]
01:38:07 <ehird`_> do you see?
01:38:13 <ehird`_> it's just a dictionary, mapping, hash table, thing
01:38:17 <ehird`_> but you can define keys algorithmically
01:38:24 <ehird`_> and they are lazily called upon
01:38:29 <ehird`_> fact(n-1) is just a table lookup
01:38:36 <ehird`_> a function is just a table
01:38:37 <oklopol> well yeah, that's how oklotalk would do it
01:38:41 <ehird`_> no
01:38:43 <ehird`_> because it's still a function
01:38:48 <ehird`_> it's still called and returned from, etc
01:38:54 <oklopol> ?
01:38:59 <ehird`_> let's put it this way
01:39:02 <ehird`_> there are no functions
01:39:06 <ehird`_> _<2 isn't a pattern match as such
01:39:06 <oklopol> oklotalk doesn't differentiate between lists and functions...
01:39:11 <ehird`_> it doesn't match on an 'argument'
01:39:24 <oklopol> i see, it's the same thing, essentially, though?
01:39:26 <ehird`_> it simply states that in the fact table, lookups < 2 = 1
01:39:30 <ehird`_> that is: it's a hash table
01:39:35 <oklopol> yes, a function
01:39:36 <ehird`_> you don't 'execute and match'
01:39:40 <ehird`_> you 'lookup'
01:39:49 <oklopol> that's exactly how functions do it, pattern match and return.
01:39:50 <ehird`_> please understand the philisophical difference
01:39:54 <ehird`_> no
01:40:04 <oklopol> how'
01:40:06 <ehird`_> please think about it
01:40:15 <ehird`_> it's a different way of thinking about it
01:40:19 <ehird`_> instead of factorial being an algorithm
01:40:23 <ehird`_> it's just a lookup table:
01:40:33 <oklopol> yes, exactly the idea behind pattern matching.
01:40:46 <ehird`_> [0 = 1; 1 = 1; 2 = 2; 3 = 6; 4 = 24; ...]
01:40:52 <ehird`_> don't think of it as matching
01:40:53 <oklopol> but, oklotalk does exactly what you're thinking there, makes function basically an infinite list.
01:40:57 <ehird`_> think of it as all keys are evaluated already
01:40:58 <oklopol> or a hashmap
01:41:05 <ehird`_> don't think of fact(n) matching
01:41:05 <oklopol> yes, the oklotalk way.
01:41:08 <oklopol> period.
01:41:11 <ehird`_> just think of it looking up an already infinite table
01:41:23 <oklopol> yes, the *exact* idea behind oklotalk's functions.
01:41:33 <ehird`_> no, because you don't reason about it like a function
01:41:41 <oklopol> k.
01:41:42 <ehird`_> you reason about it like a pre-computed table
01:41:48 <ehird`_> like everything is constant
01:41:49 <oklopol> ah, kinda like in oklotalk.
01:41:55 <ehird`_> kind of, but not exactly
01:42:05 <ehird`_> oklotalk still makes you think about calling and returning, etc
01:42:41 <oklopol> yes, it lets you do that if you want, i'm just saying that's nothing new, pattern matching is equivalent to that...
01:43:09 <oklopol> except for the possible built-in functions that might handle it differently, but you can do that for functions too
01:43:15 <ehird`_> yes, the method is equiv
01:43:17 <ehird`_> the reasoning isn't
01:43:21 <ehird`_> we're thinking about this abstractly
01:43:47 <ehird`_> if we think of just looking everything up in tables that have always been constant and calculated, with that stuff just as syntactic sugar, our primitives etc. will be different
01:43:50 <ehird`_> and perhaps fruitful
01:44:14 <oklopol> well yeah, that provides for interesting, infinite lazy lists
01:44:24 <ehird`_> tables
01:44:25 <ehird`_> not lists
01:44:27 <oklopol> but haskell already has those, and you can even use them exactly like lists
01:44:36 <ehird`_> fact = [hello = 4]
01:44:40 <ehird`_> fact(hello)
01:44:41 <ehird`_> 4
01:44:42 <ehird`_> well
01:44:44 <ehird`_> "hello"
01:44:44 <oklopol> with a look-up table like that, with random-access type indexing, it's very hard to be lazy.
01:44:46 <ehird`_> and fact("hello")
01:44:49 <oklopol> actually... no
01:45:04 <ehird`_> oklopol: the implementation wouldn't be lazy, it'd do it via pattern-matching if needed, but it's a method of thinking
01:45:06 <oklopol> well, tables, hashmaps.
01:45:21 <oklopol> functions
01:45:22 <oklopol> .
01:45:31 <Slereah> Success!
01:45:37 <oklopol> Slereah: good for ya :)
01:45:46 <Slereah> I have made an ASCII-ish code for that BF interpreter.
01:46:08 <oklopol> ehird`_: i'm just saying i'm afraid it's not really a new way of thinking.
01:46:08 <Slereah> Let's try those big BF programs now.
01:46:28 <ehird`_> oklopol: but as the only basis for a language
01:46:31 <ehird`_> oklopol: and it is slightly
01:46:43 <ehird`_> oklopol: but yeah, give me an example program in it... quicksort is a mapping of lists to lists, obviously
01:46:48 <oklopol> at least not to me... done lots of thinking on different ways to specify infinite lists
01:48:03 <oklopol> ehird`_: example program in what?
01:48:12 <ehird`_> qs = [[] = []; [x] = [x]; x:[...,p,...] = stuff]
01:48:14 <ehird`_> note the mapping thing
01:48:19 <ehird`_> have to go in 5 mins
01:48:56 -!- mtve has quit ("Terminated with extreme prejudice - dircproxy 1.0.5").
01:49:08 * oklopol notes
01:50:00 <ehird`_> the question is
01:50:02 <ehird`_> what is stuff
01:50:21 <oklopol> looked interesting how you specified the p there
01:53:11 <ehird`_> oh well, tomorrow i shall define a concise language :P
01:53:20 <ehird`_> specifically, a write-only but productive one
01:53:35 <ehird`_> i.e. you can hack on it easily, but you cannot actually take a definition and look at it properly :P
01:53:52 <oklopol> yeah
02:15:35 <oklopol> ehird`_: i think with my current semantics, quicksort would be /2;A B:C,AB,',JnB
02:16:30 <oklopol> it's not very concise, because i haven't yet made that much splitting facilities, but anyhow, just in case you feel like competing :)
02:17:29 <oklopol> now sleep ->
02:19:50 -!- ehird`_ has changed nick to ehiird|sleeep.
02:19:50 -!- ehiird|sleeep has changed nick to ehird|sleeep.
02:19:59 -!- ehird|sleeep has left (?).
02:20:33 -!- ehirdsleep has joined.
02:24:42 <Slereah> Apparently, the full interpreter works okay, but at turtle speed.
02:29:06 <Slereah> Wish I knew how to optimise code.
02:32:41 <bsmntbombdood> wish i was more stupid
02:35:41 <Slereah> Let's trade!
02:38:57 <oklopol> bsmntbombdood: why?
02:40:35 <bsmntbombdood> dunno
02:41:44 <Slereah> Ah. There's an error in the - instruction.
02:42:15 <Slereah> Let's see if the programs run better!
02:42:49 <oklopol> bsmntbombdood: why?
02:42:53 <oklopol> whoops-.
02:42:54 <oklopol> '/,)#<merge sort
02:42:55 <oklopol> a:B,',\#<A,JnAbubblesort
02:43:01 <Slereah> Yay, the BF quine prints!
02:43:14 <oklopol> /2;A b:C,',JnBquicksort
02:43:25 <oklopol> starting to look a bit like an esolang ;)
02:44:26 <oklopol> oh, actually, bubblesort is ";a:B,',\#<A,JnA" :\ the lang doesn't handle single elements that well
02:44:59 <oklopol> so... the sleeps ->
02:52:03 * Slereah tries the Mandelbrot program
02:52:17 <Slereah> Which is pretty stupid, since it's already slow on a normal BF interpreter.
02:52:42 <pikhq> Oooh! I know! Try it on dbfi!
02:53:32 <Slereah> What, an interpreter on an interpreter on an interpreter?
02:53:44 <Slereah> Are you a fan of recursion by any change?
02:53:58 <Slereah> *ce
02:56:06 <Slereah> I'll just leave the Mandelbrot running his night.
02:56:42 <Slereah> If it works, I think I can say that the interpreter works okay.
02:57:12 <Slereah> ... or!
02:57:42 <Slereah> Maybe I should try Lost Kingdom instead, which IIRC execute faster than Mandelbrot on a usual BF interpreter.
02:58:54 <pikhq> Lost Kingdom, for all it's size, is fairly quick usually.
02:59:59 <Slereah> I assume that it's because, unlike Mandelbrot, the text output without a bajillion other steps before.
03:01:12 <pikhq> Yeah.
03:01:55 <Slereah> See? I only had to wait 2 minutes before it asks me if I want to enable long room descriptions!
03:02:13 <oklopol> all factorials in a list: "1::Il,)&*"
03:02:30 <oklopol> to take one specifically is a bit harder ;)
03:02:54 <oklopol> i can't sleep, this language is hunting me :<
03:02:57 <oklopol> retry ->
03:04:19 <Slereah> In your dream?
03:04:35 <Slereah> Is it some sort of BrainFreddy?
03:09:51 <Slereah> Blah. Either the next step is taking forever, or the input has some problem.
03:21:02 <Slereah> Oh bloody hell.
03:21:09 <Slereah> The CH function prints CH now.
03:21:14 <Slereah> Forgot that exception
03:22:16 <Slereah> ROT13 works okay now!
03:33:57 -!- faxathisia has joined.
03:57:47 -!- Slereah has quit (Read error: 110 (Connection timed out)).
03:58:03 -!- Slereah has joined.
04:30:58 -!- slereah_ has joined.
04:36:31 -!- Slereah has quit (Read error: 110 (Connection timed out)).
04:45:46 -!- slereah_ has changed nick to Slereah.
05:15:00 * pikhq goes into a full-on panic
06:11:29 <bsmntbombdood> ?
06:11:39 <pikhq> No xkcd.
06:12:00 <bsmntbombdood> hrm
07:39:42 <puzzlet> what
07:39:43 -!- calamari has quit ("Leaving").
07:45:09 <bsmntbombdood> no xkcd
07:48:05 -!- Sgeo has joined.
07:48:20 <Sgeo> Hi all
07:48:30 <faxathisia> hi
07:48:46 <Sgeo> pikhq, heads up: The "domain installation check" function probably won't accept arguments
07:48:54 <Sgeo> I'm probably going to change it
07:49:04 <Sgeo> pikhq, how's work on the psox.pebble lib going?
07:50:36 <Sgeo> ok, so pikhq's away
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:29 * Sgeo monologues
08:04:52 * faxathisia wonders if this is a good idea for language design
08:05:12 <faxathisia> pick a random algorithm and stick it in a while loop -- add syntax
08:16:19 <Sgeo> Hm, it's easy for BF to receive a LBYTES as a STRING and a STRING as an LBYTES, but difficult for the conversion to be performed on the tape..
08:55:52 <Sgeo> Which makes me wonder if I should add a function that just returns whatever was given to it..
08:55:59 <Sgeo> hm, maybe not
08:56:02 <Sgeo> G'night all
09:13:12 -!- oerjan has joined.
09:13:29 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
09:32:49 -!- slereah_ has joined.
09:49:32 -!- Slereah has quit (Read error: 110 (Connection timed out)).
10:35:32 -!- johnl_ has joined.
10:37:08 -!- johnl has quit (Read error: 104 (Connection reset by peer)).
10:43:02 -!- johnl_ has quit (Remote closed the connection).
11:25:25 -!- sebbu has joined.
11:30:02 -!- oerjan has quit ("leaving").
11:37:03 <oklopol> faxathisia: i see you've found the recipe for making perfert esolangs without any effort, we can now bury this chan and go on with our lives :)
11:38:09 <oklopol> also, you weren't here when i did the graphica spec stub, so i'll paste it assuming you don't read the logs.
11:39:34 <oklopol> http://www.vjn.fi/pb/p123363511.txt
11:40:38 <oklopol> not sure if that helps at all, i've been told my bnf sucks ass
11:41:04 <faxathisia> In general BNF kind of stucks
11:41:14 <faxathisia> well actually i'm wrong
11:41:25 <faxathisia> I just personally don't like because it's not execyutable
11:41:36 <oklopol> not executable?
11:42:01 <faxathisia> A lot of times I've seen a languages syntax written in BNF.. then had to write a parser
11:42:08 <faxathisia> wishing I could just run the BNF instead :/
11:43:33 <oklopol> i don't think it'd be hard to automatically make a parser just based on a bnf
11:43:49 <oklopol> don't the parser creator do just that?
11:44:04 <oklopol> yacc or whaddyacallit...
11:44:59 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
11:45:09 <oklopol> would be interesting to have a language where a bnf would correspond to a logic program describing the parser.
11:45:25 <faxathisia> :o
11:45:27 <oklopol> but, where semantics might actually be more complicated
11:45:41 <faxathisia> maybe you could just define the ::= operator in prolog
11:45:48 <oklopol> :D
11:45:52 <oklopol> that would own
11:45:57 <oklopol> actually...
11:46:20 <oklopol> parsing via bnf is basically just trying a branch and backtracking...
11:46:29 <oklopol> it might actually be simple
11:46:48 <oklopol> i don't actually know prolog that well
11:47:01 <oklopol> now did you read the spec? :-)
11:47:11 <faxathisia> no :p
11:47:12 * faxathisia is now
11:51:04 <oklopol> gotta leave soon
11:51:15 <oklopol> in fact, need to shower in exactly 6 minutes.
11:51:41 * faxathisia thinks implicit nested lisp is very cool
11:52:00 <oklopol> (which always signifies a leave of course, since i rarely shower when i'm alone :P)
11:52:13 <oklopol> yeah, i think the expression syntax is great :o
11:53:16 <oklopol> it's not fully nested lisp, since you can still do stuff like 5+(+ 4-2 5*7)*3
11:53:55 <oklopol> i'm not actually sure whether you can just do infix alone with my current implementation... would be kinda sucky if you couldn't :P
11:54:19 <oklopol> although, the way you're supposed to use that, is by using infix for simple expressions, and sexps for the rest.
11:54:27 <oklopol> oh, right, it's not lisp, just sexp.
11:54:37 <oklopol> there's a term for it
12:03:47 <oklopol> okay, wtf... i have *not* written this code...
12:04:02 <faxathisia> hehe
12:04:14 <oklopol> i was splitting a list by the last occurrence of an element
12:04:20 <oklopol> so...
12:04:36 <oklopol> l.index(reversed(s)), where s was what was used as the pivot
12:04:39 <oklopol> wtf xD
12:05:03 <oklopol> and l was the list to split
12:05:37 <oklopol> it's kinda sad if you can't do that with the built-ins in python :\
12:05:51 <oklopol> i don't know of a way, but then again i don't know much built-ins
12:06:38 <oklopol> in general, i don't understand why there's always so little basic operations like this in the language
12:06:54 <oklopol> there's usually just map, reduce and filter, in some form
12:07:04 <oklopol> and a zip
12:08:32 <oklopol> plus, these are things that help you program, immensely in some cases, but they're very high-level, people will just use a less generic solution if something like that isn't supplied
12:08:58 <oklopol> i feel it's the language disegners duty to add more list support
12:09:05 <oklopol> i'm gonna mail the python people ->
12:09:38 * faxathisia doesn't really know python
12:09:49 <oklopol> "we already have that, in a module, idiot" "hey, no one in their right mind is gonna import a module." *no answer*
12:09:51 <faxathisia> I just feel that I won't learn anything from getting good at python
12:10:22 <oklopol> well, after doing c++, python was a great relief
12:10:33 <faxathisia> I can imagine :p
12:10:42 -!- sebbu has quit (Read error: 113 (No route to host)).
12:10:46 <oklopol> stuff that i actually carefully had to plan and write for days, is trivial in python
12:11:04 <oklopol> stuff that i actually *do* in python, i would never even imagine doing in c++.
12:11:50 <oklopol> you're a haskellor, then?
12:12:00 <oklopol> that might just be a guess
12:12:19 <faxathisia> last program I wrote is in haskell
12:12:38 <faxathisia> I wouldn't say that though, I still haven't found my language :)
12:12:38 <oklopol> what was that?
12:12:47 <faxathisia> implementation of the reversible langauge Janus
12:12:51 <oklopol> ah
12:13:52 <oklopol> haskell gets a bit verbose with side-effectful stuff in my experience
12:13:59 <oklopol> but most likely i just suck.
12:14:41 <oklopol> i should try making something less opengl'y and i might actually learn it
12:15:10 <faxathisia> first thing I did in haskell used OpenGL
12:15:40 <oklopol> or something where i actually have some experience with a language i know... i was doing a circuit drawing program
12:16:12 <oklopol> it gets quite complex if you make it good
12:16:16 <faxathisia> I'm probably totally wrong so I'll phase this differently,
12:16:32 <faxathisia> I just use haskell to write langauges
12:16:37 <faxathisia> since it's great for that
12:16:51 <faxathisia> (I was going to say that's what it's best for but I couldn't really know that)
12:17:27 <oklopol> i've actually found multiple favorite languages, erlang, K and haskell are probably the languages i'd most like to use daily
12:17:39 <oklopol> i've never even *tried* erlang/K though :P
12:17:43 <faxathisia> haha
12:17:58 <faxathisia> I think J is a bit like K.. I liked J a lot
12:18:03 <oklopol> yep
12:18:05 <faxathisia> never actually looked at K
12:19:01 <oklopol> the funny thing is, i don't even like python really...
12:19:08 <oklopol> K owns
12:19:11 -!- Sgeo has joined.
12:19:17 <faxathisia> Me neither ^_^
12:19:23 <oklopol> and i just love erlang
12:19:32 <Sgeo> Hi all
12:19:36 * Sgeo didn't get any sleep
12:19:38 <oklopol> yeah, but i program at least 100 lines of python every day :)
12:19:40 <Sgeo> :(
12:19:58 * Sgeo should update some stuff on the PSOX spec
12:20:00 <oklopol> yesterday some 250
12:20:05 <faxathisia> Have you read the doc about how erlang was conceived (via Prolog)?
12:20:13 <oklopol> nope
12:20:23 <faxathisia> ah.. I'll see if I can find it, this is a great paper
12:20:25 <oklopol> do link, although i'm leaving now ->
12:20:40 <Sgeo> Ok, WHY TF is MemoServ looking like it's replying in #haskell ?
12:21:29 <faxathisia> http://www.erlang.se/publications/prac_appl_prolog.ps
12:21:59 * Sgeo goes to write an example for reading in a STRING and turning it into an LBYTES
12:29:02 -!- Hiato has joined.
12:29:34 <Hiato> Just stopping by for two things: Firstly, everyone, have a great new year! :D
12:30:13 <Hiato> Secondly: Full0.8tt.org is down (for reasons unknown to me) so use http://full0.freehostia.com
12:30:28 <Hiato> anyway, cheers
12:30:39 <Hiato> and have a good new year (if you haven't already ;) )
12:30:45 -!- Hiato has quit (Client Quit).
12:35:03 <Sgeo> +>,[<.>.,].
12:35:16 -!- tejeez has joined.
12:35:22 <Sgeo> Hi tejeez
12:35:23 <Sgeo> +>,[<.>.,].
12:39:39 <Sgeo> And the reverse is: ,[,.,].
12:40:14 <faxathisia> ah I see
12:40:35 <faxathisia> +>,[<.>.,].,[,.,]. = ,[.,]. ?
12:40:46 <faxathisia> er sorry
12:40:50 <faxathisia> of course not..
12:41:01 <faxathisia> I'd need to take the output from one into the other
12:41:16 -!- RedDak has joined.
12:41:28 <oklopol> oh, right, faxathisia: also wanna comment the spec :D
12:41:40 <Sgeo> Note that the ",[,.,]." assumes there are no NULs in the body of the LBYTES. If there are, it can't exactly be turned into a STRING, because STRINGs are NUL-terminated
12:42:09 <oklopol> that was a question.
12:43:08 <faxathisia> oklopol: It seems fine
12:43:19 <oklopol> good.
12:43:43 <oklopol> i'll add lists and suchas in the spec and make it my first esowiki donation
12:44:18 <oklopol> although it's not *that* esoteric
12:49:01 -!- tesseracter has quit (calvino.freenode.net irc.freenode.net).
12:49:01 -!- faxathisia has quit (calvino.freenode.net irc.freenode.net).
12:49:04 -!- puzzlet has quit (calvino.freenode.net irc.freenode.net).
12:49:05 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
12:49:05 -!- Possum has quit (calvino.freenode.net irc.freenode.net).
12:49:05 -!- Sgeo has quit (calvino.freenode.net irc.freenode.net).
12:49:06 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
12:49:06 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net).
12:49:06 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
12:49:06 -!- cherez has quit (calvino.freenode.net irc.freenode.net).
12:49:08 -!- Overand has quit (calvino.freenode.net irc.freenode.net).
12:49:09 -!- RedDak has quit (calvino.freenode.net irc.freenode.net).
12:49:11 -!- pikhq has quit (calvino.freenode.net irc.freenode.net).
12:49:13 -!- dbc has quit (calvino.freenode.net irc.freenode.net).
12:49:14 -!- cmeme has quit (calvino.freenode.net irc.freenode.net).
12:49:14 -!- slereah_ has quit (calvino.freenode.net irc.freenode.net).
12:49:16 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net).
12:49:16 -!- lament has quit (calvino.freenode.net irc.freenode.net).
12:49:16 -!- weilawei has quit (calvino.freenode.net irc.freenode.net).
12:49:16 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
12:50:32 -!- Sgeo has joined.
12:50:32 -!- slereah_ has joined.
12:50:32 -!- faxathisia has joined.
12:50:32 -!- oklopol has joined.
12:50:32 -!- puzzlet has joined.
12:50:32 -!- cherez has joined.
12:50:32 -!- bsmntbombdood has joined.
12:50:32 -!- GregorR has joined.
12:50:32 -!- dbc has joined.
12:50:32 -!- tesseracter has joined.
12:50:32 -!- SimonRC has joined.
12:50:32 -!- weilawei has joined.
12:50:32 -!- cmeme has joined.
12:50:32 -!- sekhmet has joined.
12:50:32 -!- lifthrasiir has joined.
12:50:32 -!- Possum has joined.
12:50:32 -!- Overand has joined.
12:50:32 -!- lament has joined.
12:51:09 -!- RedDak has joined.
12:51:09 -!- pikhq has joined.
12:53:46 <Sgeo> re
13:46:14 -!- jix has joined.
13:50:23 <Sgeo> Is (.*?)((?<=(?:[^\x00]|\A)(?:\x00\x00\x00)*)\x00)) an expensive regex?
13:50:24 <Sgeo> Hi jix
13:50:36 * Sgeo isn't even sure if that regex would work
13:50:42 <Sgeo> But it looks expensive :/
13:58:19 <Sgeo> "look-behind requires fixed-width pattern"
14:06:12 * Sgeo comes up with what looks like a much simpler regex
14:06:19 <Sgeo> ((?:[^\x00]|\x00{3})*)(\x00.*)
14:07:36 <Sgeo> ((?:[^\x00]|\x00{3})*)(\x00.*)?
14:07:59 <Sgeo> Nope
14:08:24 <Sgeo> ((?:[^\x00]|\x00{2}.)*)(\x00.*)?
14:09:23 <Sgeo> Close
14:11:42 <Sgeo> ((?:[^\x00]|\x00{2}.?)*)(\x00.*)?
14:11:53 <Sgeo> Since the ? after the . is greedy, that should work
14:11:57 * Sgeo hopes so
14:12:03 <Sgeo> Tests seem to show that it works
14:18:55 * Sgeo changes it to ((?:[^\x00]|\x00{2}(?:.|\Z))*)(\x00.*)?
14:29:44 <Sgeo> Bye all
14:46:23 -!- Slereah has joined.
14:46:51 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
15:03:30 -!- slereah_ has quit (Read error: 110 (Connection timed out)).
15:19:03 -!- jix has quit (Nick collision from services.).
15:19:11 -!- jix has joined.
16:26:44 -!- oerjan has joined.
16:33:22 <Slereah> Oh hell.
16:33:40 <Slereah> One whole night, and the Mandelbrot has barely printed two lines.
16:35:36 <Slereah> Well, they're correct at least.
16:53:44 <faxathisia> What do you mean correct?
16:54:16 <Slereah> Well, the first two lines are the same than the one on any BF interpreter.
16:54:35 <faxathisia> ahh :D
16:54:55 <faxathisia> I thought you were about to have computed the mandelbrot set or something (apprently) impossible like that
16:55:35 <faxathisia> (I never read a proof of that which I understood though, so I can only assume the result is true)
16:56:06 <Slereah> Just the mandelbrot.b program.
17:09:32 -!- slereah_ has joined.
17:20:57 -!- RedDak has quit (Remote closed the connection).
17:27:20 -!- Slereah has quit (Read error: 110 (Connection timed out)).
17:50:53 -!- jix has quit ("Guten Rutsch!").
18:42:11 -!- calamari has joined.
18:49:13 <ehirdsleep> hello
18:49:16 -!- ehirdsleep has changed nick to ehird.
18:55:03 <ehird> bf question: >*N[<*N...code...>*N]<*N is a common idiom, right?
19:16:48 <ehird> oerjan: I think i'd be better off if i formally stated BF syntax then worked from that
19:16:53 <ehird> +-><,. are verbatim
19:17:14 <ehird> [ parses many, recursively, up to the first ] given to it
19:17:19 <ehird> everything else is ignored
19:17:33 <ehird> So.
19:17:44 <ehird> parse :: String -> [BF]
19:17:53 <ehird> parseLoop :: String -> [BF]
19:17:56 <ehird> oerjan: I believe that is correct.
19:18:04 <oerjan> the problem is you were doing the ignoring in the wrong function, basically
19:18:13 <ehird> oerjan: However, that involves the recursion stuff
19:18:26 <ehird> where as you are saying the haskelly way is to return (one, whatsleft) instead of [all]
19:19:16 <oerjan> subparsers need to return what's left for the bigger parser to know where to continue
19:20:07 <ehird> right
19:20:10 <ehird> so
19:20:18 <ehird> parse :: String -> [BF]
19:20:28 <ehird> parseOne :: String -> [(BF, String)]
19:20:33 <oerjan> um no
19:20:40 <ehird> returning only [] or [(one, rest)]
19:20:41 <oerjan> -> ([BF], String)
19:20:47 <ehird> no, parse >ONE<
19:20:48 <oerjan> oh wait
19:20:54 <ehird> and, parseOne "" = []
19:21:03 <ehird> so: parseOne :: String -> [(BF, String)]
19:21:13 <ehird> parseLoop :: String -> [BF]
19:21:15 <oerjan> what about parseOne (']':_) ? >:)
19:21:24 <ehird> no, wait
19:21:29 <ehird> wait. i'll write this down
19:21:56 <oerjan> there is an alternative. -> (Maybe BF, String)
19:22:19 <faxathisia> You could extract the haskell code from http://d.hatena.ne.jp/ku-ma-me/20070813
19:22:29 <ehird> oerjan: isn't Maybe for fails?
19:23:33 <oerjan> sure
19:23:56 <oerjan> and that parseOne "" would be a failure
19:24:09 <ehird> i guess so
19:24:17 <ehird> but it'd be a failure guaranteed to happen every parse :-)
19:24:24 <ehird> http://hpaste.org/4733 this is right
19:24:36 <ehird> hm, should i write it top-down like that?
19:24:40 <ehird> or should i do it down-up
19:24:41 <oerjan> but the subtle point is not _that_ case, but the case " ]..."
19:24:57 <ehird> hm yes
19:25:00 <ehird> since parseLoop will not see it
19:25:11 <ehird> instead parseOne will and signal an error
19:25:15 <ehird> that is puzzling, oerjan.
19:25:26 <faxathisia> something like let bf '<' = [BFBack] ; bf '>' = ... ; _ = bf _ = [] in concatMap bf
19:25:38 <oerjan> the Maybe version works better then
19:25:56 <oerjan> you can return (Nothing, rest) for failure
19:26:10 <ehird> i think my brain is being haskellstretched here
19:26:22 <ehird> BFBack?
19:26:24 <ehird> oh
19:26:25 <ehird> i see
19:26:30 <oerjan> and then parseLoop will know that no command was found, but it might still be that it has reached a ]
19:26:53 <ehird> [19:27:13] <lambdabot> concatMap f = foldr ((++) . f) []
19:26:57 <ehird> i don't think i get that
19:27:07 <ehird> concatMap f lst
19:27:08 <ehird> is
19:27:13 <ehird> map f lst
19:27:17 <ehird> joined together with ++
19:27:19 <ehird> am i right
19:27:22 <faxathisia> concatMap = concat . map
19:27:36 <oerjan> the Prelude definition is just concatMap f l = concat (map f l)
19:27:43 <ehird> wow, a whole 2 keystrokes saved, faxathisia
19:27:47 <oerjan> (report that is)
19:28:06 <oerjan> =<< saves more
19:28:25 <faxathisia> (That is how I'd do it http://rafb.net/p/DnYi0s42.txt )
19:28:42 <faxathisia> (Which is probably horrendously slow or something)
19:28:43 <oerjan> faxathisia: that won't work for loops
19:28:51 <faxathisia> I know
19:28:56 <faxathisia> I only did +-<>
19:29:59 <ehird> uhh i can handle non-loops just fine
19:30:27 <ehird> however, that definition does look quite elegant
19:30:29 <ehird> so i shall expand on it
19:30:29 <oerjan> ehird: that paste looks fine
19:30:49 <oerjan> and i usually do top-down too
19:30:51 <ehird> oerjan: Q: is faxathisia's even capable of handling loops?
19:31:05 <oerjan> a concatMap on single characters? no.
19:31:11 <faxathisia> ehird: No, I only did +-<>
19:31:30 <ehird> oerjan: yes good point :p
19:31:32 <faxathisia> add to data , BFWhile | BFEnd or something
19:31:39 <ehird> faxathisia: that's not parsing
19:31:40 <ehird> that's lexing
19:31:47 <faxathisia> if you want BFLoop [BFStmts]
19:31:50 <ehird> and seperate parsing/lexing is archaic
19:32:06 <faxathisia> then I (personally, though it may not be the best way), you would lex and parse seperately
19:32:14 <faxathisia> s/you //
19:32:28 <faxathisia> what do you mean archaic? I found it to simplify code a lot
19:32:45 <ehird> it's 70s-style
19:32:52 <faxathisia> hehe
19:32:56 <faxathisia> Is that bad?
19:33:04 <ehird> oerjan: http://hpaste.org/4733 parseMany is actually superflous isn't it?
19:33:23 <ehird> since it would not be useful to parseOne or parseLoop, and parse can replace 'outer' usages it might have
19:33:24 <oerjan> should be identical to parseLoop
19:33:28 <ehird> no
19:33:30 <ehird> parseLoop handles ]
19:33:36 <faxathisia> I mean you can always go parse = parseLoop . lex
19:33:49 <ehird> oerjan: parseLoop isn't about haskell loops
19:35:10 <oerjan> i had the idea you could pass a Bool that told if you were inside a loop or not
19:35:15 <oerjan> then you can unify them
19:35:29 <oerjan> and the caller no longer needs to check
19:36:03 <ehird> oh, passing a boolean
19:36:08 <ehird> that's what my scheme code does
19:36:09 <ehird> but..
19:36:13 <ehird> it's kind of unhaskelly.
19:36:16 <ehird> imo.
19:36:18 <ehird> it just looks ugly.
19:36:19 <ehird> parse :: String -> [BF] parse "" = [] parse s = p:(parse s') where (p, s') = parseOne s
19:36:24 <ehird> hmm, pretend that's 3 lines
19:36:43 <ehird> hm wait, i don't check for Maybe BF there
19:36:54 <ehird> wait, that's OK
19:36:59 <ehird> because it'll never occur
19:37:04 <ehird> so parseOne :: String -> (BF, String)
19:37:10 <oerjan> i think it is easier to have parseMany and parseLoop separate then
19:37:22 <oerjan> parseLoop would call parseMany
19:37:32 <ehird> wait, it might
19:37:34 <ehird> I do need Maybe
19:37:38 <oerjan> and itself just do the boundary [ ] checking
19:38:23 <oerjan> note that Maybe is almost the same as my suggestion to parse comment chars into NOPs
19:38:29 <ehird> oerjan: parseMany would see the ] and say 'HAY UNBALANCKD'
19:38:31 <ehird> parse :: String -> [BF] parse s = case parseOne s of (Just p, s') -> p:(parse s') _ -> []
19:38:37 <oerjan> it's just that the NOP is not included in the BF type itself
19:39:34 <oerjan> ehird: the problem with doing that is you duplicate code
19:39:43 <oerjan> instead, let parseMany do no checking
19:39:52 <ehird> oerjan: so how do i choke on unbalanced ]s
19:39:58 <oerjan> and let the caller check the boundaries
19:40:43 <oerjan> parseLoop calls parseMany and checks that the remainder starts with ]
19:40:55 <oerjan> parse calls parseMany and checks that the remainder is empty
19:41:33 <ehird> parseOne ( _ :s) = (Nothing, s)
19:41:35 <ehird> that is right?
19:41:50 <oerjan> um...
19:41:56 <ehird> just asking.
19:42:01 <ehird> otherwise comment handling could f up
19:42:17 <oerjan> you could let parseOne skip comments
19:42:27 <ehird> parseOne ( _ :s) = parseOne s
19:42:38 <ehird> so, the only time i use Nothing is:
19:42:39 <ehird> parseOne "" = (Nothing, "")
19:42:51 <oerjan> also for ]
19:42:59 <oerjan> but only those two
19:43:44 <ehird> ok
19:44:05 <ehird> parseOne ('[':s) =
19:44:22 <oerjan> btw it may be more efficient for parseMany to collect the commands in reverse, tail recursively. Parsec's many uses this trick to avoid stack blowup
19:45:15 <oerjan> ehird: = parseLoop s, essentially
19:45:50 <ehird> KRRR! Wrong!
19:45:55 <ehird> pparseLoop :: String -> ([BF], String)
19:46:00 <ehird> parseOne :: String -> (Maybe BF, String)
19:46:12 <oerjan> hm right a little wrapping needed
19:46:32 <ehird> i don't see how i can stuff [BF] into a Maybe BF
19:46:33 <ehird> :D
19:46:44 <ehird> ergo: my parser architechture is b0rketh! again!
19:46:58 * oerjan hopes you're joking
19:47:44 <oerjan> = let (bfs, s') = parseLoop s in (Just (Loop bfs), s')
19:49:27 <ehird> oh
19:49:28 <ehird> duh
19:49:28 <ehird> of course
19:49:28 <ehird> heh
19:50:04 <ehird> parseOne (']':s) = fail "KRRRRRRRRRRRRRRRRRR!"
19:50:19 <oerjan> er no
19:50:40 <ehird> s/fail/error
19:50:49 <oerjan> especially not that
19:50:55 <ehird> what then
19:51:07 <oerjan> = (Nothing, ']:s)
19:51:15 <oerjan> er, = (Nothing, ']':s)
19:51:46 <ehird> ok, that spirals my current parse into an inf loop
19:51:48 <ehird> :-)
19:51:50 <ehird> parse "]" -> .....
19:52:00 <ehird> (Nothing, s') -> parse s'
19:52:03 <ehird> that's why
19:52:13 <ehird> oerjan: This is where parseMany comes in?
19:52:23 <oerjan> could be
19:52:27 <ehird> :D
19:52:39 <ehird> ok, base case: parseMany "" = ([], "")
19:52:52 <oerjan> fine
19:53:19 <ehird> parseMany s = let (p, s') = parseOne s in p:(parseMany s')
19:53:23 <ehird> + extra checking
19:53:51 <ehird> parseMany s = case parseOne s of
19:54:00 <ehird> (Nothing, ']':_) -> error "KRRRRRRRRRRRRRRR!"
19:54:02 <ehird> right?
19:54:14 <oerjan> no!!!
19:54:18 <ehird> :(
19:54:20 <oerjan> parseMany should _never_ check
19:54:50 <oerjan> it is called both by parse and parseLoop. it does not _know_ whether a ] or end-of-file is allowed
19:54:57 <oerjan> only the caller does
19:55:30 <oerjan> -> ([], ']':_)
19:55:48 <oerjan> er, not quite
19:56:02 <oerjan> whatever actually remains
19:56:30 <ehird> parseMany :: String -> ([BF], String) parseMany "" = ([], "") parseMany s = case parseOne s of (Just p, s') -> let (p', s'') = parseMany s' in (p:p', s'') (Nothing, s') -> ([], s')
19:57:03 <oerjan> yay
19:57:23 <ehird> i remember when type declarations scared me! :-P
19:57:34 <ehird> it was the arg -> arg -> ... -> result, i got that when i got that everything was curried in haskell
19:57:44 -!- pikhq has quit (Read error: 110 (Connection timed out)).
19:58:49 <ehird> oerjan: guess i'd better rework 'parse' for parseMany now
19:58:53 <ehird> oerjan: confuzzling
20:01:48 <ehird> parse :: String -> [BF] parse s = case parseMany s of (p, "") -> p ([], ']':_) -> error "KRRRRRRRRRRRRRRRRRRNK!" ([], _) -> error "wtf"
20:01:54 <ehird> oerjan: i wonder when wtf occurs
20:02:20 <oerjan> hm indeed
20:03:15 <ehird> oh well, time to write parseLoop i guess
20:03:44 <ehird> *Main> parse "+]+<" *** Exception: /Users/ehird/Code/Frainbuck/Frainbuck.hs:(33,10)-(36,35): Non-exhaustive patterns in case
20:03:58 <ehird> that's parse s = case parseMany s of
20:04:14 <oerjan> oh right
20:04:15 <ehird> *Main> parse "+]+<" *** Exception: wtf ([Add 0 1],"]+<")
20:04:21 <ehird> ofc
20:04:25 <oerjan> that first [] should just be _
20:04:28 <ehird> yep
20:04:43 <ehird> now to figure out parseLoop
20:04:57 <ehird> it'll look / a lot/ like parse
20:05:40 -!- pikhq has joined.
20:05:42 <ehird> oerjan: then i'll use some kind of monad to do lines/columns
20:06:43 <oerjan> as you wish
20:10:13 <ehird> oerjan: note to future self. functional parsers are not happy fluffy.
20:11:03 <faxathisia> Parsec makes functional parsers good!
20:11:10 <ehird> yes! but i'm not usinkg parsec
20:12:50 <ehird> oerjan: http://hpaste.org/4734
20:14:04 <oerjan> hm... you don't need the parseMany "" case
20:14:12 <ehird> correct
20:14:39 <ehird> ok, now you teach me about the State monad! or whatveer i'm meant to use here
20:14:41 <ehird> :D
20:15:25 <oerjan> ouch
20:15:36 <ehird> tee hee
20:15:44 * oerjan wants to shout for Cale
20:16:04 <ehird> i have you trap'd
20:16:14 <faxathisia> There is a great doc a bout monad transformers you might use
20:16:18 <oerjan> although you _could_ still use the explicit Int passing from yesterday
20:16:30 <faxathisia> http://uebb.cs.tu-berlin.de/~magr/pub/Transformers.en.html
20:16:55 <ehird> faxathisia: Optimus isPrime
20:17:09 <faxathisia> lol
20:17:25 <ehird> <_<
20:17:33 <ehird> oerjan: not as pretty though
20:17:34 <ehird> :P
20:17:38 <faxathisia> you should consider using state transformer instead of state directly though I think
20:17:57 <faxathisia> cause then you can use IO or whatever inside the middle if you didn't think you needed to before
20:17:59 <ehird> StateTransformer Vehicle Robot
20:18:04 <ehird> ok,. i'll stop with the transformer puns
20:18:59 <oerjan> well as long as you use the overloaded functions changing the monad later is easy
20:19:40 <oerjan> the main work is monadizing the code in the first place...
20:20:32 <ehird> i'm scared
20:28:35 <ehird> oerjan: i must know! :P
20:28:36 <oerjan> ehird: http://hpaste.org/4734#a1
20:28:46 <oerjan> just one function
20:28:59 <ehird> without even looking more it's scary
20:28:59 <ehird> :P
20:29:11 <ehird> anyway, i dont' see how i can plug two ints into that
20:29:15 <ehird> :|
20:29:35 <oerjan> you start by changing to type MM = State (Int,Int)
20:30:13 <oerjan> then your monadic code can use the put/get commands to get the tuple
20:30:28 <oerjan> *to access
20:30:42 <ehird> what does MM stand for?
20:30:43 <ehird> and what would an example parseOne look like?
20:30:55 <oerjan> MyMonad :)
20:31:23 <ehird> groan
20:31:24 <ehird> :P
20:31:32 <oerjan> well without the line/col handling most of the lines would just add a return
20:31:39 <ehird> so what would parseOne look like?
20:31:39 <ehird> i'm betting: ugly
20:31:45 <ehird> with linecol
20:32:14 <oerjan> i think you would want to add a helper function
20:32:24 <ehird> oh dear
20:32:24 <ehird> :P
20:32:37 <oerjan> hm actually...
20:34:56 <oerjan> most of the lines would need to advance the column by 1, so make a helper function for doing that and returning the argument
20:35:27 <ehird> oerjan: do you think this is cleaner than shoving around l and c? :)
20:36:35 <oerjan> well the alternative is adding a lot of extra parameters
20:36:44 <ehird> just l and c
20:36:47 <ehird> that's 2
20:37:52 <ehird> hm
20:37:56 <ehird> addOneColAndSucceed
20:37:58 <ehird> that's an ugly name ;)
20:38:12 <oerjan> yeah a bit long
20:38:28 <oerjan> but anyhow here's how to define it:
20:38:47 <ehird> oh i meant for my parameter passing
20:38:48 <ehird> :|
20:38:53 <ehird> do you think i should use a monad?
20:39:08 <oerjan> addOneColAndSucceed result = do addOneCol; return result
20:39:28 <oerjan> addOneCol = do (l,c) <- get; put (l,c+1)
20:39:48 <ehird> ok fine! i'll go with monads :P
20:39:57 <ehird> hmm, LineColumnMonad?
20:40:01 <ehird> that's a crap name :P
20:40:14 <faxathisia> LineColumnMonad for BF?
20:40:25 <ehird> oerjan: parse is still String -> [BF] right?
20:40:27 <ehird> faxathisia: for error reporting
20:40:30 <oerjan> actually there's a simpler definition:
20:40:39 <oerjan> addOneCol = modify (second (+1))
20:40:40 <faxathisia> oo
20:40:54 <oerjan> though you need import Control.Arrow for second
20:40:55 <ehird> faxathisia: this is meant to be the #1 ideal every-optimization multiple-backend brainfuck compiler :-)
20:40:58 * faxathisia is now confused why you aren't using Parsec
20:40:59 <ehird> we need nice things!
20:41:10 <ehird> because it would report [abc at EOF not the position of the [
20:41:22 <oerjan> yeah i imagined parse would be outside the monads
20:41:24 <ehird> oerjan: how can i import that?
20:41:28 <ehird> should i just import second?
20:41:30 <ehird> or just all of it
20:41:39 <faxathisia> you can annotate your datatypes wityh the column positions
20:41:41 <faxathisia> (with parsec)
20:41:44 <oerjan> import Control.Arrow (second) if you want just that
20:42:29 <ehird> oerjan: got a better name fort aOCAS?
20:42:53 <ehird> also, how do i get the monad implicitly passed to addOneCol?
20:42:56 <ehird> that is, what is their types
20:43:06 <oerjan> addOneCol :: MM ()
20:43:20 <ehird> i see
20:43:21 <oerjan> addOneColAndSucceed :: a -> MM a
20:43:26 <ehird> so i implicitly grab the caller's monad?
20:43:32 <ehird> figuratively
20:43:48 <oerjan> well to be completely general:
20:44:43 <oerjan> addOneCol :: (Num b, MonadState (a,b) m) => m ()
20:44:45 <oerjan> i think
20:45:03 <ehird> i uh think i'll stick to my definition
20:45:04 <ehird> hehehe
20:45:08 <ehird> what's =>
20:45:15 <oerjan> that's the type that would be inferred
20:45:42 <oerjan> => separates class contexts from the type proper
20:45:57 <ehird> oh-kay
20:46:03 <ehird> i have learning to do
20:46:04 <ehird> :-)
20:46:11 <ehird> it's a good thing a bf compiler will be mostly functional
20:48:19 <ehird> oerjan: got a bettter addoM-/andsM-/ name?
20:48:48 <oerjan> hm...
20:48:59 <oerjan> shifting?
20:49:28 <ehird> shiftOneing
20:49:29 <ehird> :P
20:49:33 <ehird> don't think so
20:49:42 <oerjan> advancing?
20:50:10 <ehird> it only advances one though
20:51:47 <oerjan> hm... my idea was that it should be short since you need to add it to all those lines
20:52:09 <ehird> good point
20:52:14 <ehird> advancing it is
20:52:33 <ehird> LineColumnMonad is a bit verbose too
20:52:52 <ehird> (i wouldn't care but most haskell code i've seen has been very concise [but still readable])
20:52:58 <oerjan> and plain advance for the places you just pass a [ or so
20:53:13 <ehird> should you not put spaces in tuple seperators?
20:53:28 <oerjan> er very optional
20:53:38 <ehird> talking about style here
20:54:08 <oerjan> probably
20:54:20 <oerjan> a bit air never hurts
20:55:02 <ehird> probably put them in or probably not
20:55:09 <ehird> 'cause ghci prints them -- and lists -- without spaces
20:55:51 <oerjan> hm right the official show definitions don't use them
20:56:45 <oerjan> but neither does it use newlines...
20:56:54 <ehird> haha, that is a good point
20:57:16 <ehird> oerjan: i'm goign for LineColumnMonad since i cannot think of something smaller
20:57:31 <ehird> Plus I have M-/
20:57:32 <ehird> :-)
20:57:56 <oerjan> very well
20:58:02 <oerjan> hm...
20:58:04 <oerjan> Parser
20:58:23 <ehird> not really a parser monad though
20:58:26 <ehird> it doesn't hold parser stuff
20:58:29 <oerjan> indeed
20:58:48 <oerjan> PosMonad
20:59:59 <ehird> YAEY
21:00:24 <ehird> i'm suprised haskell is implementable, actually
21:00:28 <ehird> let alone compilable
21:00:35 <faxathisia> Why?
21:00:46 <ehird> it's got more 'oh-god-how-can-you-implement-that-sanely' stuff than oklotalk
21:00:49 <ehird> just really powerful stuff
21:01:10 <faxathisia> oh yeah
21:01:16 <faxathisia> lazyness keeps freaking me out
21:01:40 <faxathisia> isInfixOf needle haystack = any (isPrefixOf needle) (tails haystack)
21:01:41 <faxathisia> this is insane
21:02:05 <faxathisia> like in any strict language.. that would be ridiculous
21:02:25 <faxathisia> I think it's got the same complexity as any dynamic programming version you'd do in a strict language though
21:02:35 <ehird> laziness at first made me thought they had intelligent gnomes compiling it
21:02:41 <ehird> 'ah, we need to evaluate just this bit!'
21:02:58 <ehird> in a particle accellerator, which is why its' fast :-)
21:03:08 <oerjan> complete laziness isn't that hard
21:03:14 <ehird> yeah
21:03:23 <ehird> but it appears it, before you study it low-level
21:03:36 <ehird> i.e. continuations are 'WTF' until you just think: 'copy of the call stack'
21:05:52 <ehird> do advance; return x
21:05:56 <ehird> is there a nicer way of writing that?
21:05:59 <ehird> i.e. without the ; :-)
21:06:03 <ehird> well, without adding a new line
21:06:08 <ehird> because that just makes it very thin
21:06:17 <faxathisia> @undo do advance; return x
21:06:21 <oerjan> advance >> return x
21:06:30 <ehird> @help
21:06:36 <ehird> oerjan is a cyborg lambdabot!
21:06:41 <oerjan> I AM NOT LAMBDABOT
21:06:46 <oerjan> that was pure coincidence
21:06:50 <faxathisia> lol!
21:06:52 <ehird> suuuure
21:06:52 <ehird> CYBORG
21:09:19 <ehird> oerjan: i never need advance on its own
21:09:25 <ehird> so i'm refactoring it into advancing
21:09:36 <ehird> wait, did i just say refactoring when talking abotu haskell
21:09:40 <ehird> please forgive me
21:09:46 <oerjan> no need
21:09:53 <faxathisia> uh haskell is great when you refactor
21:09:56 <ehird> no need for what
21:10:01 <ehird> faxathisia: yes, but the terminology :-)
21:10:05 <oerjan> for forgiveness
21:10:15 <faxathisia> Haskell is in fact, 100% Enterprise Ready
21:10:19 <oerjan> i think Philippa used it just earlier today
21:10:26 * ehird tries and figures out where 'where' should go to satisfy the compiler's rules
21:10:34 <oerjan> well someone on #haskell did
21:10:38 <faxathisia> I usually use 2 spaces but I'm probably weird
21:10:45 <faxathisia> well I wrote a brainfuck parser anyway, would you like to see it?
21:10:50 <faxathisia> (It's kind of stupid)
21:10:54 <ehird> Forthers say 'factoring' because forth is so awesome they only ever have to do it once! ;)
21:11:00 <ehird> faxathisia: maybe.
21:12:13 <ehird> so, oerjan, how do i retrieve (line, col)?
21:12:18 <oerjan> get
21:12:22 <ehird> yaey
21:12:27 <oerjan> (line, col) <- get
21:13:39 * oerjan thinks ehird must have used monadic (probably IO) code before, things seem to go easier than he expected
21:14:03 <ehird> eh, i've used it for the toy read-line-then-print-one stuff in YAHT
21:14:08 <ehird> so i was familiar with the basic syntax
21:14:15 <ehird> but i didn't have trouble in the first place :-)_
21:14:42 <oerjan> i guess that syntax may somehow be the _most_ familiar part of haskell to some
21:14:42 <ehird> http://hpaste.org/4735 my error message generating code is fugly :)
21:14:57 <ehird> i should have a reportError function
21:15:00 <ehird> so i would do:
21:15:05 <ehird> reportError "Unmatched ["
21:15:08 <ehird> and it would add that stuff
21:15:48 <oerjan> indeed, so just take that do expression and refactor it :)
21:15:54 <ehird> say, oerjan, if parseMany returns monad stuff, how do I wrap it out of that in parse?
21:16:27 <oerjan> right. that is Monad specific
21:16:49 <oerjan> in this case, runState or evalState
21:16:58 <ehird> i'm, uh, excited
21:16:58 <ehird> which
21:16:58 <ehird> :P
21:17:17 <oerjan> depends on whether you need the line/col at the end
21:17:24 <oerjan> well you probably shouldn't
21:17:25 <ehird> nope, not right now
21:17:27 <oerjan> so evalState
21:17:42 <ehird> evalState (parseMany s) -> tuple?
21:17:53 <oerjan> drop the parens
21:18:05 <oerjan> oh wait no
21:18:14 <oerjan> i mean add the initial (line, col)
21:18:20 <ehird> hey, i'm using monads now - so i can use 'fail'
21:18:22 <ehird> right?
21:18:24 <ehird> in reportError
21:18:25 <oerjan> indeed
21:18:28 <ehird> although, parse uses fail
21:18:34 <faxathisia> Wouldn't use throwError?
21:18:39 <ehird> can i partly use monads in a function?
21:18:44 <ehird> and then return an unwrapped value
21:18:51 <oerjan> throwError doesn't take a String
21:18:52 <ehird> faxathisia: ? why
21:19:03 <faxathisia> oh I'm sorry
21:19:04 <ehird> i mean, it's failure if there are unmatched []s
21:19:08 <oerjan> fail = throwError . strMsg for most error monads
21:19:10 <ehird> not something you can recover from or anyting
21:20:13 <oerjan> sure some monads can be unwrapped
21:20:18 <oerjan> like State
21:20:22 <ehird> yaey
21:20:40 <ehird> so if i have some code with fail calls etc in and then want to unwrap the state and return that, what's my approximate skeleton?
21:21:10 <oerjan> um what do you mean, fail is monadic
21:21:13 <ehird> yes
21:21:19 <ehird> what i'm saying is
21:21:26 <ehird> 'parse' ,the top-level parsing function
21:21:33 <ehird> you said would just return [BF] probably, outside of the monads
21:21:41 <oerjan> if you want it to
21:21:42 <ehird> but it does the unmatched-] checking
21:21:52 <ehird> which will use my reportError
21:21:54 <ehird> which will use fail...
21:22:08 <oerjan> yep so do that checking still inside the monad i guess
21:22:28 <ehird> so what would my code skeleton look like?
21:22:32 <oerjan> hm...
21:23:14 <ehird> (to mirror fail, i have reportError :: PosMonad => String -> PosMonad a -- that is right?)
21:23:37 <oerjan> parse s = flip evalState (1,1) $ do (p,s) <- parseMany
21:24:09 <ehird> oerjan: now THAT is haskell
21:24:22 <ehird> but where's my 'case' to handle errors
21:24:22 <ehird> :-)
21:24:28 <oerjan> case s of (_, "") -> return p
21:24:46 <oerjan> argh
21:24:55 <oerjan> case s of "" -> return p
21:25:08 <ehird> right i get it now
21:25:36 <ehird> grr, i do hate 80-columns
21:25:40 <oerjan> i just used the flip to avoid putting the whole do in parentheses :)
21:26:07 <ehird> the worst part of being over 80 columns:
21:26:11 <ehird> i'm only 1 over
21:26:22 <oerjan> well you can shrink the width
21:26:23 <ehird> this is the problem with off-side languages :P
21:26:42 <ehird> ofc why i'm sticking to such an archaic limit nobody knows
21:26:53 <oerjan> the do doesn't need to be on the same line as $
21:27:09 <ehird> good point
21:27:17 * faxathisia usually sticks the $ directly under the =
21:27:22 <ehird> there, that's nice
21:27:26 <oerjan> (actually there are many ways of rearranging it)
21:27:58 <ehird> The last statement in a 'do' construct must be an expression
21:28:04 <ehird> blargifarg
21:28:15 <ehird> that's from
21:28:17 <ehird> oh
21:28:17 <faxathisia> How about, return $ case s of "" -> p
21:28:18 <ehird> my indentation
21:28:24 <ehird> off by ONE
21:28:32 <oerjan> faxathisia: he want fail inside the case
21:28:34 <ehird> faxathisia: can't, need that unwrapping stuff
21:28:36 <oerjan> *wants
21:28:42 <faxathisia> WHich fail?
21:28:48 <ehird> well, syntax
21:28:49 <oerjan> for the other option
21:28:49 <ehird> err
21:28:52 <ehird> parseError
21:28:53 <ehird> :-)
21:28:57 <faxathisia> oh I didn't know there wa snothe
21:28:58 <ehird> whcih uses fail
21:29:24 <oerjan> i didn't finish the function because ehird said he got the rest
21:29:24 <ehird> now to figure out parseOne ('\n':s) =
21:29:27 <ehird> oh, that's simple
21:29:44 <ehird> modify (first (+1)) :-)
21:29:53 <oerjan> er not quite
21:30:00 <oerjan> you also want to reset the column
21:30:10 <ehird> err, ok
21:30:11 <ehird> yes
21:30:12 <ehird> :-)
21:30:17 <oerjan> modify (\(l,_) -> (l+1,1))
21:30:32 <oerjan> or wait...
21:30:33 <ehird> wow, er, that's impressive.. i didn't know you could patternmatch lambdas
21:30:39 <ehird> oklopol: you'd like that!
21:30:49 <oerjan> modify ((+1) *** const 1)
21:30:57 <ehird> damn
21:30:59 <ehird> what's ***
21:31:00 <oerjan> if you like the arrow operators :)
21:31:16 <oerjan> another Control.Arrow thing
21:31:21 <ehird> qwiz:
21:31:28 <ehird> parseOne ('\n':s) = do modify ((+1) *** const 1); return (parseOne s)
21:31:31 <ehird> remove the ;
21:31:35 <ehird> let me try...
21:31:37 <oerjan> f *** g = first f >>> second g by default
21:31:55 <ehird> parseOne ('\n':s) = modify ((+1) *** const 1) >> parseOne s
21:32:12 <ehird> er, return (parseOne s)
21:32:13 <oerjan> JACKPOT
21:32:42 <ehird> Not in scope: type constructor or class `State'
21:32:44 <ehird> ono
21:32:49 <ehird> what do i need to import? :P
21:33:15 <ehird> hm, i wonder if ghc can tell me
21:33:29 <ehird> eh i'll guess
21:33:31 <ehird> Control.Monad.State
21:33:40 <oerjan> YOU WIN AGAIN
21:33:43 <ehird> :D
21:34:15 <oerjan> although lambdabot's @hoogle and @index would also work
21:34:16 <ehird> Type constructor `PosMonad' used as a class In the type `(PosMonad m) => String -> m a'
21:34:21 <ehird> i guess i need Monad m, right?
21:34:28 <oerjan> no
21:34:29 <ehird> (for parseError, i based it on fail's type)
21:34:38 <oerjan> ok maybe
21:34:58 <ehird> heh
21:35:08 <ehird> i was just trying to make it PosMonad only
21:35:11 <ehird> since it retrieves line,col
21:35:27 <oerjan> that would be just String -> PosMonad a
21:35:29 <ehird> ah
21:35:33 <ehird> thank you
21:35:33 <ehird> :P
21:36:11 <oerjan> you also should have the option of using :t to ask what ghc infers as its type
21:36:32 <oerjan> (remove any declaration first)
21:36:59 <ehird> hm:
21:37:01 <ehird> _ -> parseError "Unmatched ["
21:37:03 <ehird> gives me
21:37:04 <ehird> Parse error in pattern
21:37:12 <oerjan> heh
21:37:22 <ehird> previous 2 lines:
21:37:25 <ehird> parseLoop s = do (p, s') <- parseMany s
21:37:25 <ehird> case s' of ']':s'' -> return (p, s'')
21:37:32 <ehird> with correct indentation
21:37:32 <ehird> heh
21:38:09 <oerjan> and _ is directly under ']' ?
21:38:15 <oerjan> (the ' that is)
21:39:01 <ehird> bastard
21:39:03 <ehird> one character off
21:39:19 <ehird> there should be a haskell-blinkenlights-mode
21:39:24 <ehird> that blinks red things like that
21:40:12 <ehird> Couldn't match expected type `(Maybe BF, String)' against inferred type `PosMonad (Maybe BF, String)' In the first argument of `return', namely `(parseOne s)'
21:40:18 <ehird> talking about:
21:40:19 <ehird> parseOne ('\n':s) = modify ((+1) *** const 1) >> return (parseOne s)
21:40:29 <oerjan> oh. drop the return
21:40:57 <ehird> i did
21:40:59 <oerjan> parseOne is already monadic
21:41:07 <ehird> oh
21:41:09 <ehird> then it gives me
21:41:14 <ehird> another error ,tjat looks the same
21:41:14 <ehird> doh :-)
21:41:22 <ehird> parseOne (_:s) = advancing (parseOne s)
21:41:27 <ehird> obviously i need some kind of trick here
21:41:47 <oerjan> advancing () >> parseOne s
21:41:57 <oerjan> you needed advance anyhow :)
21:42:33 <ehird> oerjan: no use of advance there
21:42:42 <oerjan> advance = advancing ()
21:42:48 <oerjan> essentially
21:42:52 <ehird> ah, good point
21:42:53 <ehird> ok then
21:43:17 <ehird> Loading package mtl-1.0 ... linking ... done.
21:43:20 <ehird> WHAT DID IT DO THERE :O
21:43:35 <oerjan> monad transformer library
21:43:41 <ehird> :O
21:43:43 <oerjan> includes Control.Monad.State
21:43:45 <ehird> anyway, my parser works brilliantly
21:43:54 <oerjan> yay
21:44:20 <ehird> a clear, monadic-error-handling, 43 line brainfuck parser in nice-looking haskell
21:44:29 <ehird> it should be required reading
21:44:29 <ehird> :P
21:44:35 <faxathisia> ah well you've really beaten me
21:44:39 <ehird> well, this line looks a bit ugly:
21:44:41 <faxathisia> Let's see?
21:44:43 <ehird> fail (x ++ " at line " ++ (show line) ++ ", column " ++
21:44:44 <ehird> (show col) ++ ".")
21:44:49 <ehird> because of the (show col) ... line
21:44:52 <ehird> ok, faxathisia
21:45:00 <ehird> i'll jsut paste ll my current code
21:45:05 <oerjan> you don't need the parentheses around (show col)
21:45:26 <oerjan> and you can replace the ones after fail with $
21:45:50 <ehird> what about show line
21:45:52 <ehird> are its parens needed?
21:45:57 <oerjan> no
21:46:22 <ehird> ok then
21:46:26 <ehird> http://hpaste.org/4739
21:46:31 <ehird> note, i didn't count lines before "type PosMonad = ..."
21:46:35 <ehird> since that's the parser bit
21:49:09 <oerjan> oh wait
21:49:31 <faxathisia> it ends early?
21:49:32 <faxathisia> parseError "Unmatched ["
21:49:47 <ehird> nope
21:49:52 <ehird> that's the whole parser
21:50:14 <oerjan> there are still some errors in the line/col handling
21:50:20 <ehird> yes oerjan
21:50:25 <ehird> *Main> parse "]" *** Exception: Unmatched ] at line 1, column 2.
21:50:37 <faxathisia> shall I annotate mine?
21:50:37 <ehird> this is because i advance while still doing ']':s
21:50:42 <ehird> i just need to replace advancing with return
21:50:45 <ehird> faxathisia: sure
21:50:52 <oerjan> right that's the first error
21:51:00 <ehird> the other?
21:51:14 <faxathisia> http://hpaste.org/4739#a1
21:51:20 <oerjan> actually...
21:51:33 <oerjan> you are failing to advance on [ where you should
21:51:42 <ehird> __ = __ -- This entire file is sort of stupid
21:51:45 <ehird> what the HELL is that, faxathisia
21:51:48 <ehird> it scares me
21:51:51 <ehird> i think it's supposed to
21:51:52 <faxathisia> lol
21:51:57 <ehird> also jeez
21:52:05 <faxathisia> *Main> :t let __ = __ in __
21:52:06 <faxathisia> let __ = __ in __ :: t
21:52:11 <ehird> your code looks like what someone who saw yacc output tried to write in a cleaner form in haskell
21:52:26 <ehird> oh jeez you use parsec
21:52:57 <ehird> also mine has more optimization slots in the types
21:52:58 <ehird> :P
21:53:09 <faxathisia> Mine doesn't even optimize correctly
21:53:15 <faxathisia> It does a half assed job and gives up
21:53:28 <ehird> mine does no optimization... just is possible to
21:53:33 <ehird> i'm going to write a backend first, THEN optimize
21:54:07 <oerjan> ehird: in the loop code you don't advance on [ and ]. moreover i think the unmatched error will give the end-of-file position
21:54:08 <ehird> oerjan: for various section headers of my compiler, should i use {- Optimization -}?
21:54:11 <ehird> i.e. multiline comment
21:54:22 <oerjan> why not
21:54:30 <ehird> you are right about the unmatched EOF
21:54:31 <ehird> :(
21:54:46 <ehird> parseError needs to take params
21:55:02 <ehird> actually
21:55:07 <ehird> how do i remember the position in the first place
21:55:10 <ehird> :| shit
21:55:23 <oerjan> with get
21:55:34 <ehird> oh. yes.
21:55:39 <ehird> i need to do it in parseOne though
21:55:41 <ehird> otherwise i'd have to -1
21:55:47 <oerjan> hm?
21:55:53 <ehird> wait, no
21:55:54 <ehird> you are right
21:56:02 <ehird> blargh, parseLoop needs to call advance
21:56:21 <ehird> golly, 'do advance\nstuff' looks ugly :-)
21:56:42 <ehird> parseLoop s (PosMonad (l, c)) -- right?
21:56:50 <ehird> called as parseLoop s get
21:57:11 <oerjan> huh?
21:57:35 <oerjan> no
21:58:18 <oerjan> just do the get inside parseLoop i think
21:58:32 <ehird> oh, right
22:02:37 <ehird> oerjan: faxathisia: http://hpaste.org/4724#a1 all good
22:02:42 <ehird> apart from the 'advance' line on its own
22:02:47 <ehird> doesn't look very good
22:02:47 <ehird> :P
22:04:19 <oerjan> well you can sneak it before parseMany with >>
22:04:26 <oerjan> assuming you still don't like ;'s
22:04:52 <ehird> that's actually a good idea
22:05:01 <ehird> since i am getting the result of an advance-parse
22:05:02 <ehird> or something
22:05:06 <oerjan> i think you still have one advance too little
22:05:11 <oerjan> for the final ]
22:05:21 <ehird> yep
22:05:25 <ehird> *Main> parse "[][" *** Exception: Unmatched [ at line 1, column 2.
22:05:36 <ehird> fixed
22:06:12 <ehird> oerjan: http://hpaste.org/4724#a2 tada
22:06:20 <ehird> i really like that code
22:06:29 <ehird> it's the cleanest code i've ever written, methinks :P
22:06:33 <ehird> i like haskell, i think
22:07:55 <ehird> oerjan: for the backend stuff
22:08:07 <ehird> i'm going to make a: Target String, type
22:08:11 <ehird> and write things like
22:08:21 <ehird> compile (Target "C") p = ...
22:08:30 <ehird> compile (Target "i386") p = ...
22:08:33 <ehird> or is that yuck :P
22:09:00 <oerjan> oh not necessarily
22:09:16 <oerjan> some people would even define datatypes for Line and Col
22:09:39 <oerjan> prevents them being mixed up with other kinds of Ints
22:09:47 <oerjan> or each other
22:09:49 <ehird> yeah, i think that's not very important
22:09:57 <ehird> i was just thinking about Target only having a string
22:10:01 <ehird> instead of like
22:10:06 <ehird> data Target = C | I386
22:10:07 <ehird> or something
22:10:15 <ehird> maybe the latter would be preferable
22:10:16 <faxathisia> That seems better
22:10:27 <faxathisia> you don't have to go compile (Target _) = error
22:11:02 <oerjan> class Target a where ...; instance Target C where... :)
22:11:10 <ehird> haha, oerjan wins i think
22:11:46 <ehird> oerjan: is there a haskell command-line option parsing lib?
22:11:52 <oerjan> that allows the code for a given target to be kept together
22:12:00 <oerjan> yes
22:12:08 <oerjan> System.Console.GetOpt, iirc
22:12:23 <ehird> is it anything like gnu getopt? SAY NO :P
22:12:35 <faxathisia> based on..
22:12:41 <ehird> faxathisia: aieeeeee
22:12:50 <oerjan> "This library provides facilities for parsing the command-line options in a standalone program. It is essentially a Haskell port of the GNU getopt library."
22:12:51 <faxathisia> it seems to work ok though
22:12:58 <ehird> how cRUEL
22:13:16 <ehird> oh wow that example is ugly :|
22:13:30 <oerjan> you also have getArgs for doing it your own way :)
22:13:42 <ehird> oerjan: yes, but option parsing is non-trivial :P
22:13:45 <ehird> --longarg=x
22:13:47 <ehird> --longarg x
22:13:51 <ehird> -s x
22:13:53 <ehird> -sx
22:13:53 <ehird> etc
22:14:01 <ehird> -- --literal
22:14:06 <ehird> - --also-literal
22:14:40 <oerjan> that sounds like "option parsing is non-trivial if you want to be GNU-compatible, and I hate GNU, so I want that"
22:14:50 <ehird> haha
22:14:57 <ehird> well, gnu long options can be useful :|
22:15:03 <ehird> i just hate gnu getopt's C interface!
22:15:03 <ehird> it's horrid
22:15:13 <ehird> admittedly though if i use an option a lot i use its short form 100%
22:15:24 <ehird> really i'll only have two options
22:15:29 <ehird> --arch and --output
22:15:31 <ehird> aka -a and -o
22:15:43 <oerjan> oh well the haskell interface may be different
22:15:55 <ehird> looked a bit crazy
22:15:55 <ehird> but OK
22:16:09 <ehird> hm, damn: i will need to write a mapping of name->class
22:16:23 <ehird> oerjan: hashtable/map/whatever String->uh...ClassClass
22:16:26 <ehird> er
22:16:27 <ehird> InstanceClass
22:16:28 <ehird> :-)
22:16:30 <ehird> no wait
22:16:32 <ehird> String->Target
22:16:33 <ehird> i think.
22:16:42 <ehird> what's the shortest syntax to create one? i don't know of any
22:17:05 <faxathisia> deriving Read -- I guess
22:17:25 * oerjan points at Data.Map
22:17:37 <ehird> actually
22:17:40 <ehird> shouldn't i just do
22:17:46 <ehird> targetFor "c" = C
22:17:49 <faxathisia> Yes
22:17:50 <oerjan> hm oh that may be awkward for classes
22:17:53 <ehird> targetFor "i386" = I386
22:17:53 <faxathisia> but that's not the shortest :p
22:18:00 <ehird> faxathisia: i can do a case
22:18:07 <ehird> targetFor n = case n of
22:18:16 <faxathisia> what you just wrote is better than a case imo
22:18:44 <ehird> i guess, but it's not really pattern matching is it? so maybe it's not appropriate(oerjan?)
22:18:53 <faxathisia> it is pattern matching
22:18:53 <ehird> hmm, /me wonders how to downcase a string
22:19:00 <ehird> targetFor "C" == targetFor "c" :-)
22:19:07 <oerjan> map toLower
22:19:21 <oerjan> (Data.Char)
22:19:26 <ehird> oerjan: for that i do need a case don't i
22:19:30 <ehird> i can't do that in a pattern match
22:19:32 <ehird> without a guard
22:19:33 <faxathisia> It's a nested pattern match like Cons 'i' (Cons '3' (Cons '8' (Cons '6' Nil)))
22:20:13 <ehird> targetFor :: String -> Either String Target -- that's right if i want to return a "Unknown target", yes?
22:20:18 <oerjan> lookup (map toLower t) [("c",C),etc.]
22:20:28 <oerjan> using a list
22:20:30 <faxathisia> Unknown String
22:20:33 <ehird> hm
22:20:35 <faxathisia> in your data ?
22:20:36 <ehird> a case seems nicer to me
22:20:45 <ehird> faxathisia: huh?
22:21:32 <oerjan> Either is fine
22:21:45 <oerjan> indeed it's a monad, with fail = Left
22:21:57 <ehird> Hm you know I'll just use 'fail'
22:21:59 <ehird> much simpler
22:22:00 <ehird> :P
22:22:05 <ehird> Hmm
22:22:09 <ehird> But what monad would that be!
22:22:17 <ehird> ANd why is a function called targetFor being monadic!
22:22:24 <ehird> Much better:
22:22:27 <ehird> Maybe Target
22:22:33 <ehird> OK so maybe is a monad
22:22:36 <ehird> :< but hey
22:22:38 <oerjan> Maybe is a monad too, with fail = const Nothing :D
22:22:54 <faxathisia> data Target = C | I386 | Unknown String
22:23:02 <ehird> faxathisia: ew, no
22:23:02 <faxathisia> but I would just error .. I mean what else are you going to do ?
22:23:10 <ehird> targetFor :: String -> Maybe Target
22:23:14 <faxathisia> why is that ew but Maybe isn?T
22:23:14 <ehird> targetFor n = case map toLower n of
22:23:18 <ehird> "c" -> Just C
22:23:19 <ehird> _ -> Nothing
22:23:26 <ehird> faxathisia: eh, because it's not about the type
22:23:27 <faxathisia> I would make it targetFor :: String -> Target
22:23:28 <ehird> it's about the function
22:24:23 <oerjan> Maybe is fine
22:25:29 <ehird> oerjan: class Target a where
22:25:34 <ehird> do i put my type declarations in there?
22:29:45 <ehird> :|
22:29:54 <oerjan> um
22:30:23 <oerjan> no, method declarations
22:30:42 <ehird> ok, you lost me
22:30:53 <ehird> i know haskell's class/method/instance isn't real OOP, it just shares the names
22:30:55 <ehird> so: do explain
22:31:41 <oerjan> class Target a should declare the types of the functions that every instance of Target needs to define
22:31:53 <oerjan> oh, i may have misunderstood you
22:32:19 <oerjan> it's similar to Java interfaces
22:32:41 <ehird> java, don't say that in front of me
22:32:45 <ehird> however, i get your point
22:33:06 <ehird> i don't /quite/ see ow i'm going to distinguish between different target's functions thoiugh
22:33:09 <faxathisia> You don't like Java???
22:33:25 <oerjan> you may use data instead if you like
22:33:48 <oerjan> the difference is how the definitions for each target are grouped
22:33:55 <oerjan> (well, one difference)
22:34:20 <oerjan> with data, each function must be defined together, for all its targets
22:34:48 <oerjan> with class, each target must be defined together, with all its functions
22:35:03 <ehird> i think perhaps i need an example
22:35:04 <ehird> :-)
22:35:18 <oerjan> ouch
22:36:02 <ehird> haha
22:36:04 <ehird> i am evil
22:36:15 <oerjan> well, like that compile function you had
22:36:34 <oerjan> with data, you would define cases:
22:36:50 <oerjan> compile C prog = ...
22:37:13 <oerjan> compile I386 prog = ...
22:37:17 <oerjan> all together
22:37:32 <ehird> ys
22:37:33 <ehird> yes
22:37:39 <oerjan> hm wait
22:37:58 <ehird> oerjan: ooh, one thing..
22:38:06 <ehird> is Char a unicode char?
22:38:09 <oerjan> yes
22:38:29 <ehird> because the C backend could be outputting unicode C (which is a Good Thing)... but an i386 backend needs binary!
22:38:30 <oerjan> but most I/O functions truncate to 8 bits
22:38:33 <ehird> So how should I define that in Target?
22:39:09 <oerjan> an encoding method perhaps?
22:40:02 <ehird> confuzzled
22:40:36 <oerjan> i think maybe data is simpler for a start
22:41:09 <ehird> aww
22:41:14 <ehird> but class is nicer looking :P
22:41:32 <ehird> a backend will always be generating either a tring or a binary string
22:41:39 <ehird> i just need to encode that in compile's type
22:43:02 <oerjan> encoding :: a -> String -> String
22:43:12 <oerjan> where a is the class parameter
22:43:13 <ehird> hmm
22:43:14 <ehird> what does that do
22:43:29 <ehird> shouldn't it be "compile"
22:43:33 <ehird> wait, what DOES that do
22:43:35 <ehird> what is 'encoding'
22:43:59 <oerjan> a final pass that encodes the String if necessary
22:45:03 <oerjan> excuse me, i'll be going out to watch the fireworks
22:45:08 <ehird> is there a binary string type in haskell?
22:45:09 <oerjan> back in a while
22:45:14 <ehird> hmm, wait, it should just be [Byte]
22:45:18 <ehird> assuming haskell has [Byte]
22:45:45 <oerjan> actually Char is used for most simple I/O. for bigger things there is ByteString
22:46:02 <oerjan> which is not actually a list type, and extremely optimized
22:46:13 <oerjan> cu
22:47:38 <ehird> bye :-)
22:54:42 <SimonRC> so, where's this code that isbeing disgust
22:54:47 <SimonRC> *discussed
22:54:52 <SimonRC> *cussed
22:54:54 <SimonRC> ;-)
22:55:21 <ehird> in an emacs buffer
22:55:23 <ehird> pointing to a file
22:56:26 <SimonRC> right, so HTF are people looking at it?
22:57:17 <ehird> SimonRC: my various pastes in here and to hpaste
22:58:00 * oerjan decides fireworks are highly overrated anyhow, especially when you've neglected to eat in advance
22:58:42 <ehird> oerjan: write a haskell/libcaca (Are there bindings?) ascii-art-fireworks program
22:58:45 <ehird> :P
22:58:55 <ehird> generate the sounds algorithmically
22:59:12 <ehird> only thing is by the time you can run it it'll be too late for fireworks...
22:59:17 -!- pikhq_ has joined.
22:59:41 <SimonRC> ehird: I think that even foru your program it is worth using Parsec
22:59:56 <ehird> SimonRC: it's already working 100% perfectly
23:00:02 <ehird> and parsec would report unmatched [s at EOF
23:00:03 <SimonRC> for clarity etc
23:00:06 <ehird> not at the line/col of the [
23:00:16 <ehird> mine is perfectly ok looking :P
23:00:20 <SimonRC> actually, you can make it work either way
23:00:26 <ehird> meh, whatever
23:00:28 * oerjan still thinks you could fool parsec with try ... <|> ... somehow
23:00:28 <ehird> it's done now.
23:00:46 <ehird> Question: is there an unwords that instead does newlines?
23:00:59 <oerjan> unlines
23:01:06 <oerjan> strangely enough :D
23:01:16 <oerjan> HAPPY NEW YEAR!!!!!!!!!!!!!!!!!!!!!!!
23:01:34 -!- ehird has left (?).
23:01:42 -!- ehird has joined.
23:01:46 <SimonRC> I spy a Scandanavian
23:01:55 <oerjan> where?
23:01:56 -!- pikhq has quit (Nick collision from services.).
23:01:59 -!- pikhq_ has changed nick to pikhq.
23:02:00 <oerjan> you cannot prove it!
23:02:03 <SimonRC> oerjan: you, surely?
23:02:07 <oerjan> i could be - south african!
23:02:08 -!- ehird has changed nick to ehird`.
23:02:16 <ehird`> it is just that,
23:02:22 <ehird`> my c header etc
23:02:23 <SimonRC> only people from wierd places like Scandanavia use TZ+0100 at this time of year
23:02:28 <ehird`> is multiple lines, and having \ns in one long line
23:02:30 <ehird`> o using ++
23:02:32 <ehird`> would be ugly :-)
23:02:49 <oerjan> you mean SA is on daylight saving?
23:03:08 <oerjan> what?
23:03:19 <oerjan> we don't have daylight saving here
23:03:20 <SimonRC> everyone on the net that is not American is Britsh or Scandanavian
23:03:22 <oerjan> now
23:03:24 <SimonRC> there are no others!
23:03:40 <SimonRC> :roll:
23:03:50 <ehird`> question
23:03:58 <ehird`> is it possible to 'save myself' from sigsegv in a c program?
23:04:07 <ehird`> i'm considering expanding the tape on segfaults :-)
23:04:15 <ehird`> which should be more efficient than checking every move
23:05:04 -!- pikhq has quit ("leaving").
23:05:18 <ehird`> i know you can trap sigsegv
23:05:21 <oerjan> oh and btw it's scand-I-navian
23:05:23 <ehird`> but can you break back out of the handler to the program?
23:06:16 -!- pikhq has joined.
23:06:19 <SimonRC> hmm
23:07:03 <ehird`> (because if so, that would be FREAKIN' AWESOME)
23:07:08 <ehird`> and the C code should be /really damn fast/
23:07:17 <ehird`> whcih is the idea!
23:08:12 <SimonRC> I am told that gdb can do it
23:08:21 <ehird`> i'm not gdb
23:08:24 <ehird`> :P
23:08:26 <oerjan> hm actually are you guaranteed that the sigsegv happens exactly when you go beyond the array boundary? what if you instead scramble malloc data first?
23:08:30 <ehird`> anyway gdb does crazy asm stuff
23:08:31 <SimonRC> maybe grep the gdb sources for "SIGSEGV"
23:08:41 <ehird`> oerjan: hmm, i didn't quite understand
23:08:42 * oerjan has no actual idea
23:09:08 <ehird`> tape[345897345893] when tape is length 2 /should/ cause SIGSEGV
23:09:21 <SimonRC> I assume that he is arranging to have an invalid page at the end of the tape
23:09:33 <ehird`> hmm
23:09:33 <ehird`> The library offers a rather nice "free" dynamic memory allocation feature for running brainfuck code.
23:09:33 <ehird`> It works through page protection mechanism and catching of SIGSEGV signals.
23:09:37 <ehird`> http://savannah.nongnu.org/projects/libbf
23:09:39 <oerjan> oh well if you can carefully align things...
23:09:49 <ehird`> SimonRC: as soon as i figure out how to do that. yep!
23:09:53 <ehird`> should just be powers-of-two
23:09:53 * oerjan already mentioned he has no actual idea, right?
23:10:15 <ehird`> this technique reminds me of the Cheney-on-the-MTA Scheme->C compilation stuff
23:10:31 <ehird`> you just let the stack grow and grow, and if you go too high, trash loads of stuff and continue
23:10:49 <ehird`> here, you jsut let the pointer grow and grow, and if you go too high and signal an error, expand the tape and continue
23:10:53 <ehird`> "just in time"
23:12:10 <SimonRC> Actually a good way to cope would be to ask the OS to lazily mmap 16 EB of zeros
23:12:42 -!- pikhq has quit ("leaving").
23:12:50 <SimonRC> I think you can just ask linux to mmap /dev/zero for that effect
23:13:13 <SimonRC> linux mmaps lazily
23:14:30 <ehird`> i run on os x, which is a bsd variant
23:14:40 <ehird`> bsd is very conservative, so i doubt tricks like that will work
23:14:50 <ehird`> (this is a good thing: i want portable code, to as big as degree as possible)
23:15:07 -!- pikhq has joined.
23:15:44 -!- pikhq has quit (Client Quit).
23:17:18 <ehird`> SimonRC: i'm wondering how i could really assure to as much a degree as possible that i have an invalid page at the end
23:17:22 <ehird`> i'm not sure just one trick will work
23:17:29 -!- pikhq has joined.
23:18:31 <SimonRC> maybe you can ask something to be mmapped non-readable
23:18:35 <SimonRC> I don't know really
23:19:59 <ehird`> seems so
23:20:01 <ehird`> if you haev int prot = 0
23:20:03 <ehird`> third arg
23:20:24 <SimonRC> however, I don't know how to make it occur right at the end of the other thing
23:20:33 <SimonRC> unless you can ask for an address
23:20:36 <ehird`> yes
23:20:40 <SimonRC> oh dear...
23:20:41 * SimonRC goes
23:20:47 <ehird`> void *
23:20:48 <ehird`> mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);
23:20:55 * SimonRC goes.
23:20:57 <ehird`> bye.
23:20:58 <ehird`> :)
23:21:10 <ehird`> wait, fuck, it's really almost 2008
23:21:18 <ehird`> 2008. the number looks weird.
23:21:29 <ehird`> i might not release anything in 2008, just so i don't get that horrible number tied to it
23:22:00 <ehird`> bsmntbombdood: you know you said no code for libbf?
23:22:07 <ehird`> http://cvs.savannah.nongnu.org/viewvc/libbf/?root=libbf code, bitch.
23:22:59 <ehird`> http://cvs.savannah.nongnu.org/viewvc/libbf/libbf_interpreter_dynalloc.c?root=libbf&view=markup yow, that's some heavy stuff
23:26:19 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
23:27:26 <bsmntbombdood> ?
23:27:30 <bsmntbombdood> libbf?
23:27:35 -!- pikhq has joined.
23:27:49 <ehird`> bsmntbombdood: you said about it's dynamic allocation stuff
23:27:53 <ehird`> bsmntbombdood: using sigsegv
23:27:58 <ehird`> and said 'damn no code'
23:28:01 <bsmntbombdood> oh
23:28:04 <bsmntbombdood> cool
23:28:08 <bsmntbombdood> like a year ago :P
23:28:33 * bsmntbombdood orgasmums
23:28:51 <bsmntbombdood> holy crap that's a lot of code
23:31:59 <bsmntbombdood> 1.6 megabytes?!
23:33:29 <ehird`> look at that one file i showed you...
23:33:34 <ehird`> that's the feature you were looking for
23:33:38 <ehird`> fukcing crazy code
23:33:40 <ehird`> i'll never understand it
23:33:46 <ehird`> it's like kernel code
23:33:49 <ehird`> well, more like libc code
23:33:52 <ehird`> like malloc or something
23:35:59 <bsmntbombdood> man
23:36:25 <ehird`> f addr is non-zero, it is used as a hint to the system. (As a conve-
23:36:25 <ehird`> nience to the system, the actual address of the region may differ from
23:36:25 <ehird`> the address supplied.)
23:36:29 <ehird`> fucking mmap
23:36:32 <ehird`> i don't want a 'hint'
23:36:35 <ehird`> that doesn't guarantee this will work
23:37:11 <bsmntbombdood> i might not be able to understand it
23:37:25 <ehird`> see what i mean :P
23:38:27 <ehird`> [ehird:~/Code/Frainbuck] % ./test
23:38:28 <ehird`> fuck: Operation not supported by device
23:38:33 <ehird`> that's what i get for doing perror("fuck")
23:39:39 <ehird`> bsmntbombdood: any other bright ideas for more speedy reallocation than just checkig all the time? :-)
23:40:13 <bsmntbombdood> catching sigv is the only way
23:40:20 <bsmntbombdood> *segv
23:41:13 <ehird`> bsmntbombdood: somehow i doubt it's possible to do the catching segv without that mass of crap :P
23:43:08 <ehird`> hm
23:43:11 <ehird`> gnu libc manual
23:43:11 <ehird`> size_t page_size = (size_t) sysconf (_SC_PAGESIZE);
23:43:13 <ehird`> is that portable?
23:43:59 <bsmntbombdood> fuck if i know
←2007-11 2007-12 2008-01→ ↑2007 ↑all