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:58 <pikhq> oerjan: Are you at all familiar with the rules of B Nomic?
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: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: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:52 <pikhq> I have two Agoran offices.
02:59:13 <pikhq> (Ambassador and Scorekeepor, if it means anything to you)
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: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: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: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:33:03 <oerjan> i _have_ seen esperanto used in here, btw
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: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: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: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: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: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: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.
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.
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: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:43 <pikhq> Unless you're solving something too damned simple.
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: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: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: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: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: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: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: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: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: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:21:33 <oerjan> another one: arctan x / (pi/2)
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:26:30 -!- puzzlet_ has joined.
03:27:09 <oerjan> um that n=1 makes little sense?
03:28:45 <oerjan> otoh generalizing to n is obvious i think
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: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:51 <oerjan> or 1 - exp(-x), which i think i already mentioned
03:36:52 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
03:38:31 <oerjan> f(x) = (1 - exp(-x))^(1/n) i think
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:43:07 <oerjan> oh. well you can replace ^n with any other invertible function in both or and f
03:43:31 -!- puzzlet has joined.
03:43:49 <oerjan> ^n by the function and ^(1/n) by its inverse. all of them.
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:46:09 <oerjan> and get g(f(x)) = 1 - exp(-x)
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: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: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: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: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).
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: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: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: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:55 <oklopol> like the corner of 3 faces?
16:01:07 <oerjan> red face up, yellow down right, blue down left
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:54 <oklopol> now the thingie that was below 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:24 <oerjan> i.e. it counts as touched by B if A moves it into position to be touched by B first
16:06:48 <oklopol> it's much more realistic, but much less usable then :)
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: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: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: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: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:34 <oerjan> well partly, since all finite sets are closed in the reals
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: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: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: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: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: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:38:13 * ihope ponders a melding of Redivider and ///
21:11:53 <oklopol> ihope: why code in haskell then, and not in redivider?
21:36:59 -!- chuck has joined.
21:59:20 -!- Jontte has joined.
22:01:31 -!- jix has quit ("CommandQ").
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: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 ("@+").
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:14:10 <faxathisia> I'm not sure this is very good (I didn't know any SQL before)
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: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: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.
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:53 <Sgeo> ~lastspoke ehird`
20:56:11 <Sgeo> !lastspoke ehird`
21:34:57 -!- faxathisia has joined.
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:37 -!- puzzlet_ has joined.
21:45:41 <oklopol> is that whitespace crooked?
21:45:52 <Sgeo> Hi faxathisia and puzzlet
21:46:48 <Sgeo> G'night oklopol k
21:53:50 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
22:00:30 -!- jix has quit ("CommandQ").
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:17:24 <bsmntbombdood> i wonder if anyone else has tried to implement kolgomorov complexity
22:20:22 <bsmntbombdood> how big do you think an lsfr implementation would be in brainfuck
22:21:17 <faxathisia> sounds like it would be really great for medium/longer texts
22:22:27 <bsmntbombdood> so the lsfr would probably be long, but it could have few taps so be shortly implemented
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.
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:19 * pikhq enjoys nomic recursion
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: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:15:15 <pikhq> http://en.wikipedia.org/wiki/Nomic
03:16:08 <faxathisia> if I knew about this .. things would have been better
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:48 <Paro> Please say "Hello, World!" in English
03:21:19 <pikhq> Please say "Hello, world!" in Japanese!
03:22:13 * Paro is filled with sorrow.
03:26:15 <oerjan> Smil til verden og verden smiler til deg
03:26:58 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)).
03:27:16 -!- EgoBot has quit (Excess Flood).
03:27:19 <faxathisia> EgoBot: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬ ®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
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: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: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: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: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:36 <oerjan> or split away [] from brainfuck...
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: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: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:13 <GregorR> Geeze, raggin' on Haskell.
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: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:27:38 <oerjan> seeing as those languages are probably _more_ complicated than many that are TC
16:28:38 <GregorR> Come now, pushdown automata aren't more complicated than Turing machines.
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:51 <oerjan> *cough*, *cack*, *aackpthoo*
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: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:38:49 -!- RedDak has joined.
21:41:30 <Jontte> http://support.microsoft.com/kb/261186
21:50:56 -!- jix has quit ("CommandQ").
22:08:04 -!- RedDak has quit (Remote closed the connection).
23:39:36 -!- sebbu has quit ("@+").
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:24:47 <oerjan> basically you have all boolean operators, so you can calculate the xor and test for emptiness :)
06:25:51 <oerjan> probably want to convert it into an FSA first
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: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: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: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:29:05 <RodgerTheGreat> hm... I've had some vivid ones recently- I'll see if I can remember anything specific...
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: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:55:47 <iEhird> I shall implement Plof in... Smalltalk! Or maybe lisp. but you get the idea.
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: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:16:22 -!- iEhird has quit (Read error: 113 (No route to host)).
21:18:47 -!- maximander has joined.
21:21:33 -!- IrregularR has changed nick to GregorR.
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: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: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:53 <SimonRC> some PDFs have an anti copy-and-paste mechanism
21:42:29 <maximander> so do people ever show up and ask for things?
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: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 <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:12 <SimonRC> GregorR: alas, your remark is out-of-date now
21:51:22 <maximander> Grrr.. i was hoping there'd be more people here asking for things
21:52:28 <SimonRC> nah, we don't get that much
21:53:10 <SimonRC> yeah, IRD is a mailing list at work, oops
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:56:11 <SimonRC> he is the guy that proved it turing-complete?
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:01:55 <SimonRC> ah, the contraversy is whether the pre-processing is cheating
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: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:59 <GregorR> Preprocessing -> machine isn't remotely similar to PDA<->PDA. Note the arrow directions ^^
23:18:16 -!- sebbu has quit ("Leaving").
23:33:07 -!- maximander has left (?).
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:54:13 -!- Bigcheese has joined.
02:55:50 <MrArmadillo> Someone please find my IP and display it here in the channel.
02:56:36 -!- MrArmadillo has left (?).
03:11:06 <Bigcheese> I don't think you can connect to freenode with ipv6
03:26:14 <pikhq> Too bad ISPs hate us all, and won't do 10BASE-T to the home.
03:26:26 <pikhq> (much less some nice fiber)
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: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:58 <pikhq> Colorado Springs, CO.
03:29:05 <pikhq> 5 MBs down, 512K up.
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: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:24:47 <Sabskm> EGOBOT! SPEAK TO MEEEEE!
11:26:27 -!- Slereah has joined.
11:44:15 -!- Sabskm has quit (Read error: 110 (Connection timed out)).
11:59:35 <oklopol> it's so sad Sabskm is gone :<
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: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:59 <oerjan> a category that includes the others
19:22:19 <oerjan> in the hierarchical sense, not the category theory sense
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: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: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: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: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: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:31 <faxathisia> I think that turing complete is a good thing to avoid, as well!
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:23:52 <oerjan> bsmntbombdood: i think you should drop those plans
20:24:48 <oerjan> i am just leaping to the natural conclusion given the current conversation + your nick :D
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:31:21 <ihope> oklopol: a Turing machine where all symbol transitions go into a "lower" symbol is Turing-complete.
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:32 <ihope> You can delete cells but you can't add them.
20:33:02 <ihope> You can't turn 11 into 00 or 01.
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: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: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: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: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: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:23 <oklopol> and then just as long a sequence as can possibly be used... that's definately
20:38:32 <oklopol> now how can you make a port...
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: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: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: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: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: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:48:16 <oklopol> you need 4 sticks for a sticksize*sticksize cell
20:48:30 <oklopol> plus 1 extra @ each termination point
20:49:13 <oklopol> and have you made anything with them=
20:49:22 <ihope> They are currently not in a "made" form.
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:49 <oklopol> that was like a 3-minute job
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: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: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:55:14 <ihope> I think I've pondered that.
20:56:21 <ihope> Oh, that's an interesting terminator.
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: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: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: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: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:34 <ihope> Oh. What's it mean?
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:35 <ihope> But top/negative doesn't make much sense.
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: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:58 <ihope> If we ever make a wiki, we could have {{tyonto}} be "työntö".
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: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:56 <ihope> And yet how practical.
21:28:09 <oklopol> you saying it'd be easy to make a cube bomb? :O
21:28:21 <ihope> I didn't say a bomb. :-)
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:58 <oklopol> but it won't fully detonate.
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:52 <oklopol> and an HH with the other termination shared with the first one
21:31:05 <ihope> Term, HH, term, HH, term, then?
21:31:26 <oklopol> heh, i see the formal grammar is beginning to form ;)
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:40 <oklopol> then we realize a H never exists alone
21:32:56 <ihope> There are multiple ways to make a |H|H|.
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: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:42 <ihope> We need a machine that can churn out an |HHHHHHHHHHHHH| in fifteen seconds.
21:34:50 -!- AnMaster has quit (Success).
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:24 <oklopol> have you made anything but straight lines?
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: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: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:42:54 <ihope> Well then, the major thing is a cross with interfaces around it.
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: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: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.
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: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: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:24 <Slereah> So there should be one for that.
09:06:51 <oerjan> actually that one is just Rule 34
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: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: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: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:44 <Slereah> Is it just made to annoy then?
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: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:30:27 <Slereah> Nah. Just a stupid calculator.
11:30:43 <Slereah> That prints every step with the Peano axioms.
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:32:24 <oklopol> i'm 99% sure there is something like that for python
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: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: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:43:36 -!- GregorR has joined.
21:44:04 -!- Sgeo has joined.
21:44:33 -!- bsmntbombdood has joined.
21:45:24 -!- AnMaster has joined.
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").
00:24:31 -!- iEhird has joined.
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:37:13 <GregorR> iEhird: How 'bout PDP-11 ASM?
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: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:41:49 <GregorR> That'll take a bit of a mental exercise.
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: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: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 <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:46:03 <GregorR> I think you can only say when something is /over/engineered once it's implemented :P
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:03 <GregorR> (Since I haven't gotten to the user language yet)
00:48:17 <GregorR> Runtime parser == gone too far?
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: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:43 <iEhird> you make little 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:53:50 <ihope> Yeah, you can't really define things like words in terms of other things.
00:54:08 <ihope> Unless the system automatically decides that certain things could be words.
00:54:49 <iEhird> provide a crazy minimal core and a stdlub in plof
00:55:29 <GregorR> That doesn't solve the fundamental problem.
00:55:47 <GregorR> The code has a '3', I want that to evaluate to something derived from the Number prototype.
00:56:32 <ihope> So if the code has a '3', it's passed to some function that interprets that somehow?
00:56:48 <iEhird> make your parade do it greg
00:57:03 <ihope> So it's a matrioshka thingy?
00:57:17 <iEhird> ruby python smalltalk ... do this fine
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: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: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: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: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:07:01 <GregorR> If the language only supports decimal, you can just add support for hex.
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: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: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: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: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: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:44 <oklopol> faxathisia: i don't know about that, but i know a bit about reversible programming in general
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: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:44:37 <Slereah> My ridiculously complicated calculator can now multiply!
09:44:37 <Slereah> http://membres.lycos.fr/bewulf/Russell/Calc6.txt
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:52 <oerjan> as well as Category:reversible computing
10:04:37 <faxathisia> But I'm sure others are capable of the same
10:04:57 <oklopol> i totally get the reference xDD
10:05:38 <oklopol> i can't do palindromes in english :<
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: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: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: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: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: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:25:36 <oerjan> leaving: befunge, brainfuck, kipple, minus, subleq, um-32, underload, unlambda
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: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: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: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:13 -!- iEhird_ has quit (Remote closed the connection).
10:31:21 <faxathisia> why not unlambda interpreter in brainfuck
10:31:37 <oklopol> perhaps, shouldn't be too hard
10:31:51 <faxathisia> maybe I should try brainfuck in unlambda?
10:32:00 <oklopol> or, perhaps i'll use bitchanger
10:32:09 <oklopol> i think bitchanger is much sexier
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:50 <faxathisia> There's gotta be a really neat way in APL/J to find the longest cycle in a graph...
10:40:38 <oklopol> i had an (somewhat) interesting idea for specifying graphs
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: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:37 <oerjan> but to know if it _is_ biggest, you need to solve the HCP
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:35 <faxathisia> oklopol, Is that the same thing in my paste?
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: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
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:11:18 <faxathisia> cool I think your notation makes sense then
11:11:27 <oklopol> nice, how about the lambda one? :)
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: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: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: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:16 <oklopol> but, it's not necessary, no
11:22:44 <faxathisia> What (finite) graph would you need turing completness to express
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:24:08 <oklopol> hohoho, lazy infinite graphs!
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: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:22 <faxathisia> well this code is crap http://paste.lisp.org/display/52132
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: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: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: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: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:49:26 <oklopol> well, actually i'd assume any programmer to have the powers of two as a reflex
11:49:57 <oklopol> i guess mapcar is more descriptive
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: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:57:04 <oerjan> back when my brain is refilled :)
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: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:41:59 <faxathisia> there is befunge in zetaplex, brainfuck in befunge, and BCT, Underload, UTM in brainfuck
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: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:19 <oklopol> the grid thing in the beginning should be easy
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:55:20 <oklopol> the transition part will definitely change anyway, so no use explaining that
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: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
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: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:05:15 <oklopol> it'd be notoriously complicated and weird, but i'd feel pure again
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: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: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:39 <oerjan> if ais523 were here, i'm sure he could help
16:24:00 <oerjan> he's the C-INTERCAL maintainer
16:24:25 <oerjan> or so he claimed in an email i got the other day :)
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: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: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: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: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: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)).
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: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: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:50:44 <pikhq> Oooh, retrocomputing.
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: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: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:15 <Slereah> For some metatheorems, I had to read about Turing machines and such!
18:38:20 * oerjan dances a skeleton dance
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:41:17 <Slereah> "Pump harder! I need those results!"
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:54 <Slereah> Infinite tape isn't cheap.
18:43:09 <Slereah> But you can sell half of it, and still have infinite tape!
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:53:20 <Slereah> http://www.monochrom.at/turingtrainterminal/pictures_eng.htm
18:53:57 <Slereah> http://www.monochrom.at/turingtrainterminal/schematics_eng.htm
18:57:56 -!- pikhq_ has changed nick to pikhq.
18:58:10 <naerian> have you saw any other projects of TM? :D
19:00:49 <Slereah> I still have some code that was supposed to emulate a Turing machine.
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: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:03:04 <naerian> and i'm thinking about making a small brainfuck system for Nintendo DS xD
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: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:23 -!- thucydides has quit (Client Quit).
19:16:08 -!- naerian has quit (Remote closed the connection).
19:16:27 * oerjan thinks some people need tab completion
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: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:22:49 <Slereah> Well, Metamath can decompose 2+2 in 23.000 steps.
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:51 <pikhq> First, one needs to define your numbers.
19:24:04 <pikhq> Then define addition. As a recursive algorithm.
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:51 <oerjan> yay, Schnhage-Strassen
19:28:11 -!- oklopol_ has joined.
19:28:36 <oerjan> ALL YOUR B*HIT BY FALLING PIANO*
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:50:47 <Slereah> Problem is, I kinda suck right now too :o
20:58:09 <oklopol> Slereah: were you the one who started at the age of 19?
20:59:08 <Slereah> And even right now, we don't learn any programming.
20:59:18 <Slereah> Just some integration algorithm.
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:57 <oklopol> they're cancelling everything interesting here too
21:01:10 <oklopol> the institute is prolly empty once i get there :P
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: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: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 ("@+").
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: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: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: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: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: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: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: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: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: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: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: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:07 <oklopol> i didn't know python had that as a function
00:48:17 <oklopol> neither does my python interp :\
00:48:29 <ehird`> it was a direct translation
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: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: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:46 <oerjan> we are approaching a black hole, strange time dilation observed
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: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:36 <oklopol> some people ask, i give incorrect information and wait for things to happen
01:08:45 <oklopol> age doesn't work that way.
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: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:15:09 <oklopol> wonder if i should read one chapter more, watch an fg or go to sleep
01:16:39 -!- RobHu has joined.
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:28:37 <oerjan> now, i mean the one on our wiki.
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:32:43 <oklopol> well, yes, that's what i meant with "bob wyatt"
01:32:45 <oerjan> we're having an argument. :)
01:33:05 <oklopol> oerjan: shut up you disoriented fool!
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:41:46 <pikhq> Although I love how Brainhype seems to profess to claim to solve the halting problem for Brainhype.
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: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:34 <oklopol> [<-[+<<-]+<[[->+<]+[>[->>+<<]>]>[->>+<<]>[>[->>+<<]>]>[-<+>]<-[<<]<]<]>>>[>>]<<[->>+<<]>>
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: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: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: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: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: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: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: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:49 <oklopol> not sure whether i need to 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: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: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: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: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: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:20:07 <oklopol> i have the algo a bit further on paper, shouldn't be hard to make, but fucking tedious
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: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:14 <Slereah> I succeeded with that first Turing machine program on mine!
16:04:46 -!- Jontte has quit ("Konversation terminated!").
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: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: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: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:28 <ehird`> also: make it read from the 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: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: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: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: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: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: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: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:41 -!- Slereah has quit (Nick collision from services.).
19:51:05 -!- Slereah- has changed nick to Slereah.
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: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:30:07 -!- ehird` has joined.
20:32:12 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
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: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:52 <oerjan> oh wait, it was Breshnev
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: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.
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:55 -!- call-cc has quit (Read error: 104 (Connection reset by peer)).
01:34:24 -!- call-cc has joined.
01:34:26 -!- call-cc has quit (Remote closed the connection).
01:35:20 -!- call-cc has joined.
01:35:25 <ehird`> excellent. very excellent
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: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:52 <immibis> when it's up that is. where is cia-5 anyway?
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:51:58 <Slereah_> Also is that a "1000" used as a character?
05:52:24 <dbc> "carriage return".
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: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.
06:02:26 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
06:08:27 <Slereah_> Damn. List index out of range.
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: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:15 <ELIZA> How do you do. Please state your problem.
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: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: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: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:49:15 <ELIZA> You believe I can be don't you ?
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 <ELIZA> Do you dream often ?
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:35 <ELIZA> You don't seem quite certain.
07:50:49 <ELIZA> You're not really talking about me -- are you ?
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:57:00 <ELIZA> Do you think its likely that if ?
07:57:03 <ELIZA> Do you wish that if ?
07:57:05 <ELIZA> What do you know about 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: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: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: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:05 <ELIZA> I'm not sure I understand you fully.
08:03:12 <ELIZA> Don't you really care ?
08:03:17 <ELIZA> Are you saying no just to be negative?
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:47 <immibis> eliza: you are very stupid
08:03:48 <ELIZA> Does it please you to believe I am very stupid ?
08:04:00 <ELIZA> What do you think ?
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 ?
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: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:37:06 <Slereah_> The question is, what is a bottle of bear?
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: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: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: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: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: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: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: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: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: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: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:37 <SimonRC> RodgerTheGreat: will it comtain the "removed" ones?
19:59:41 <SimonRC> RodgerTheGreat: the former
20:00:28 -!- ehird` has joined.
20:00:29 -!- oerjan has joined.
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:29 <SimonRC> will the PBF book comtain the "removed" ones?
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: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: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: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: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: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: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:12:05 <oerjan> Now _that_ she understood.
20:12:16 <immibis> pikhq: No, it's a java applet hooked up to irc.
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:54 <ELIZA> We were discussing you -- not 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: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: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:15 <pikhq> Elisp: Emacs Lisp.
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:21:11 <SimonRC> and Canute's demonstration of non-godlike powers would not have worked had he used ^C
20:21:45 <oerjan> which canute would that be?
20:21:49 <SimonRC> In British cafes, ^T comes in handy
20:22:00 <oerjan> moses was big on ^C, of course
20:22:21 * SimonRC considers drawing a comic to illustrate
20:22:27 <oerjan> and GregorR tries to ^D, i guess
20:22:43 <pikhq> Oh, yeah! End that file!
20:23:40 <oerjan> but be _very_ wary of people who try to ^U.
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:36 <SimonRC> oerjan: another homonym of U
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: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: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: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: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: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: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:40:53 * oerjan was hoping for a kimian quine
20:41:19 <pikhq> immibis: A quine that relies upon error alerting.
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:13 <EgoBot> ./unlambda/unlambda: file ./tmp/egobot.9JHJpL: parse error
20:42:14 <ehird`> pikhq: Indeed. A kimian quine
20:42:39 <ehird`> oerjan: ha ha, random string, you're fucked
20:42:50 <pikhq> ehird`: We were just discussing that.
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:45:47 <ehird`> this may be a slow markov chain, but it's /pretty/ and /elegant/, damn it
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: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:29 <ehird`> did someone say RTL unicode char?
20:49:40 <SimonRC> hmm, seems to be borked here...
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:30 <ehird`> and has horrible custom blue gradients
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: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: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:29 -!- immibis has joined.
20:54:00 <immibis> any better? I'm using JWIRC
20:54:17 <immibis> http://jwirc.com/chat.html
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: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: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:57 <immibis> the language or the platform?
20:58:25 <immibis> toBogE is written in java, as is ELIZA and HadjinLog.
20:59:39 <ehird`> its an irc client with themes
20:59:50 <ehird`> graphical, you can even change how buttons look
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: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:06:16 <ehird`> oerjan: that's default config
21:06:23 <SimonRC> ehird`: José Christé that is ugly
21:06:26 <immibis> i could use irssi, bitchx, or pidgin if you want.
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: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:37 <immibis> so part of it is still commercial software.
21:08:46 -!- immibis_ has quit (Nick collision from services.).
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:10:01 <ehird`> someone explain to immibis why he's wrong
21:10:22 <oerjan> er, because he can compile the source himself, i assume
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:34 <ehird`> it's part of what 'XChat builds for Windows that happen to be praised by the official XChat people' are
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:14:00 <ehird`> immibis: try and send nul over irc
21:14:03 <ehird`> come on, i'll wait here
21:14:45 <ehird`> !daemon cat_for_people_who_do_not_regularly_send_nul_bytes_over_irc_to_bots bf ,[.,]
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: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:53 <ehird`> EXPOSED AGAIN, IMMIBIS
21:15:57 <EgoBot> my cat died this morning
21:16:41 <immibis> <EgoBot> ... mine ... <--- means EgoBot's
21:17:47 * immibis accidently set up cat daemon to a query.
21:18:51 <Slereah> Damn you EgoBot and your kitten-killing ways!
21:18:53 <EgoBot> BECAUSE I HATE KITTENS
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: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: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:28:05 <immibis> !daemon ctcp bf +[.,----------[++++++++++.,----------]+.+++++++++.+++.------------]
21:28:17 <immibis> !ctcp ACTION tests some more
21:28:22 <EgoBot> <CTCP>ACTION tests some more<CTCP>
21:28:38 <ehird`> !ctcp VERSION #esoteric
21:28:43 <ehird`> !daemon ctcp bf +[.,----------[++++++++++.,----------]+.+++++++++.+++.------------]
21:28:45 <immibis> now what is wrong with it.......
21:28:47 <ehird`> !ctcp VERSION #esoteric
21:29:08 <ehird`> !daemon ctcp bf +[.,----------[++++++++++.,----------]+.+++++++++.+++.------------]
21:29:40 <EgoBot> <CTCP>PING 12345<CTCP>
21:29:45 <immibis> why does it only work once?
21:31:18 <immibis> !daemon ctcp bf +[.,----------[++++++++++.,----------]+.++++++++++++.---.---------]
21:33:02 * EgoBot helps his uncle jack off a horse
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:39:07 <EgoBot> 1 immibis: daemon cat bf
21:39:29 <ELIZA> I am at a loss for words.
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 <ELIZA> Is it because you are egobot that you came to me ?
21:41:43 <ELIZA> Are you saying no just to be negative?
21:41:51 <ELIZA> You are being a bit negative.
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 <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:43:00 <ELIZA> Does that question interest you ?
21:43:11 <SimonRC> ELIZA: Does that question interest you ?
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: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:48 <SimonRC> ELIZA: Did you think they might not be such questions much on my 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: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:51 <SimonRC> ELIZA: EgoBot is way smarter than you.
21:47:01 <ELIZA> Perhaps you would like to be shit .
21:47:07 <ELIZA> You seem to be quite positive.
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 <ELIZA> Earlier you said your word I are shit .
21:48:15 <ELIZA> I'm not sure I understand you fully.
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 <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:23 <immibis> lament: see http://en.wikipedia.org/wiki/ELIZa
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:51:02 <ELIZA> What if they were not xs ?
21:51:19 <ELIZA> Possibly they are are are .
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 <ELIZA> Does it please you to believe I am shit ?
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 <ELIZA> Do you feel strongly about discussing such things ?
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:32 <ELIZA> Is it important that your word ?
21:52:38 <ELIZA> Lets discuss further why your word .
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 <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:20 <ihope_> ELIZA: Please what the heck?
21:53:21 <ELIZA> What is it you really wanted to know ?
21:53:30 <ELIZA> I'm not sure I understand you fully.
21:53:44 <oklopol> ELIZA: o, what's there to understand
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:54:05 <oklopol> heeeey where my toy go?!?!
21:54:20 <ihope_> immibis: You cruel, cruel person, you!
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: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:43 -!- ELIZA has joined.
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: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:48 <immibis> my gateway just crashed so why am i still connected?
21:59:28 <ihope_> "Human: Please say this sentence twice."
21:59:34 <ihope_> You can guess what happened next.
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:34 <oklopol> you know what i just realized?
22:01:43 <oklopol> ELIZA is almost like ALICE!
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: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: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:43 <ehird`> I have decided to write the Most Simple Chat Protocol Evar.
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:13 <oklopol> morse over long metal pipe?
22:05:16 <immibis> can't get much lower han that.
22:05:40 <immibis> and i mean raw chat not molmp.
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 <ehird`> (doesn't have to be THAT uncommon..)
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: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:40 <ehird`> ihope_: not yet, maybe
22:08:10 <immibis> eliza is a ghost right now.
22:08:39 <oklopol> hmm, actually, you can't get a custom word to start a sentence
22:09:01 <ihope_> That means no quines already?
22:09:31 -!- RedDak has quit ("I'm quitting... Bye all").
22:09:33 <oklopol> actually! apples are apples
22:09:59 <oklopol> so... eliza are apple, and i hope it responds without colon as well?
22:10:35 <oklopol> that was lament, me fucking idiot
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: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:45 <ihope_> === The nickname ```'' is already in use, use the /nick command to pick a new one.
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: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:54 <ihope_> <message sender="ehird`" channel="#esoteric">Hello, everyone.</message>
22:19:09 <immibis> what about: ehird` esoteric Hello, everyone.
22:19:18 <ehird`> i like my current one :P
22:19:24 <ehird`> \s = semicolon, \b = backslash
22:19:44 <ihope_> Do you mean channel=say or...
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 <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:42 <ehird`> "channel unsubscribe" would be IRC's "part"
22:20:49 <ehird`> also you'll have "channel create", "channel destroy" etc
22:20:55 <ELIZA> What does that suggest to you ?
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:23:06 <immibis> it should reconnect as ELIZA1, but you still address it as ELIZA.
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:11 <GregorR> ihope_: How does plx make you feel?
22:24:50 <GregorR> ihope_: Tell me more about lol :.
22:28:19 <ehird`> http://rafb.net/p/QDW7Jr58.html spec so far
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: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:34:46 <ehird`> immibis: too open to exploits
22:34:51 <ehird`> one client could mess up a channel
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: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:58 <oklopol> bsmntbombdood: you can change my nick anytime you want
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: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:47 <EgoBot> you mean "!nick oklopol oklopoo" don't you?
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: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: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:51 -!- ELIZA has quit (Read error: 110 (Connection timed out)).
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: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:44:17 -!- ELIZA849 has joined.
22:45:29 <EgoBot> Program contains no instructions
22:45:38 <ehird`> {'id': 1, 'command': 'say', 'channel': 'main', 'message': 'hello world'}
22:46:29 <immibis> i still think "ehird` say esoteric Hello World!" is simple.
22:46:40 <immibis> "ehird` subscribe esoteric"
22:47:00 <ehird`> why do you need the prefix
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:51 <ehird`> libiberty is taken by the gnu project, of course
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: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 <ELIZA849> I'm not sure I understand you fully.
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 <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: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: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 <ihope_> ELIZA: Who is you -- not me?
22:53:49 <ELIZA849> Earlier you said your word I are loud .
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:54:12 <immibis> ELIZA: You eat, shoot and leave.
22:54:23 <immibis> ELIZA: No you don't want to eat?
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: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:57:59 <ehird`> Writing a multiprotocol chat client:
22:58:04 <ehird`> STEP 1. Implement Scheme-alike.
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: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:29 <ELIZA849> Sorry, I ate too much for dinner last night.
22:59:30 <faxathisia> Do you have a protocol specification language?
22:59:34 <ELIZA849> It's fun to talk about oral sex, but I want to talk about something else.
22:59:51 <ehird`> faxathisia: just define Scheme-alike classes that have the right functions! :-)
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:18 <immibis> i just added it to see how many people would mention santa.
23:02:21 <ehird`> Damnit, this means I have to implement a hashtable doesn't it
23:02:25 <ehird`> I'll magically require glib
23:04:23 <ELIZA849> Sorry, I ate too much for dinner last night.
23:04:23 <ELIZA849> It's fun to talk about oral sex, but I want to talk about something else.
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:51 <faxathisia> so it's basically half way between IRC client and ball of mud
23:07:35 <ehird`> faxathisia: an extensible ball of mud!
23:07:55 <ehird`> i'm going to be a good, lazy programmer and use ghashtable
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: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:43 <ehird`> 1. all functions should be generics and everything objects, methinks... too much work otherwise
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:29:04 <ELIZA849> Does that have anything to do with the fact that your word I are loud ?
23:29:32 <ELIZA849> Does that question interest you ?
23:29:41 <immibis> eliza: yes or why would i have asked it
23:29:45 <ELIZA849> Are you saying no just to be negative?
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:32 <immibis> ELIZA: What are your feelings now ?
23:31:32 <ELIZA849> What answer would please you most ?
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: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:37:00 <faxathisia> !bf >+++++++[<++++++++++>-]<-.+++++++.---.>++++[<++++>-]<+.>+++++[<----->-]<.-------.>+++++[<----->-]<-.>+++++[<++++++++>-]<.>+++++[<+++++++++>-]<.-------------.>+++++[<-------->-]<-.
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:08 <ELIZA849> What does that suggest to you ?
23:39:50 <ELIZA849> Do you feel strongly about discussing such things ?
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:54:29 <GregorR> Somebody thinks they're clever because they figured out how to make !cat work remotely.
23:55:35 <ehird`> GregorR: Suprise suprise.
23:56:00 <ehird`> faxathisia: It's a linked list of stack frames. :-)
23:57:55 <ELIZA849> I'm not sure I understand you fully.
23:59:43 <EgoBot> ELIZA: Can I fuck you?
00:01:34 <ELIZA849> We were discussing you -- not me.
00:01:41 <immibis> eliza: is bsmntbombdood telling the truth?
00:02:15 * immibis wonders what eliza is on about
00:03:23 <immibis> eliza: What are you on about?
00:03:35 <ELIZA849> Lets discuss further why your uncle is getting a colostomy .
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: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: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 <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:13:30 <pikhq> GregorR: When was this?
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:45 <GregorR> I believe it was ... EHIRD`!
00:15:19 <GregorR> 12:49 in the logger's timezone, whenever the bork that is.
00:16:10 * pikhq isn't seeing an RTL.
00:16:16 <ehird`> It wasn't 12;49 though
00:16:41 <pikhq> See it in Firefox, though.
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:35 <ehird`> GregorR: I'll fix it from now on
00:17:52 <ehird`> there, that should do it
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:41 <immibis> we are talking about http://tunes.org/~nef/logs/esoteric/07.12.11 right?
00:20:57 <ehird`> GregorR: you are meant to view them with a good reader
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:32 <immibis> it is interpreted as iso-8859-1 not ansi sorry
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 <ELIZA849> Why are you interested in whether I am ok or not ?
00:23:05 <ELIZA849> Does that have anything to do with the fact that your brain is thinking ?
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:52 <ehird`> it feels like i should be having to do more WORK here
00:28:07 <ihope_> ELIZA849: My tree is wonderful.
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:40 <GregorR> ELIZA: Offborp monglo foque blem.
00:28:40 <ELIZA849> Earlier you said your life was complete .
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:30:06 <ELIZA849> You're not really talking about me -- are you ?
00:30:15 <ihope_> ELIZA: don't you deny it!
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: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:58:01 <immibis> i'm not testing hhhere i'm tttesting in #eliza
00:58:23 -!- hurtful has changed nick to ELIZA.
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: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: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: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:08:28 <immibis> java.lang.reflect.mirrors.LightRay.AddMirror(new java.lang.reflect.mirrors.Mirror())
01:09:03 <oerjan> what _is_ the smiley for rolling eyes anyhow.
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:53:34 -!- Tritonio_ has quit ("Bye...").
02:04:15 <pikhq> Apparently Java has too many classes.
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: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: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: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: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: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: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: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:14:08 <oerjan> randomness can of course be explained with chaos theory
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: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: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: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:58:40 <oerjan> i guess is still something squiggly to you
03:59:37 <immibis> no, is a shorter double quote.
04:00:27 <immibis> or two dots depending on what you call it.
04:00:41 <oerjan> so what is schrdinger?
04:02:23 <immibis> schr-o with two dots-dinger.
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: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: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: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:34:00 <ELIZA197> Hello. Please state your problem.
07:34:45 <Slereah> Heh. A friend rewrote my Turing machine in Ruby.
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: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: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: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: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:11 <dbc> Haven't tried. Not 100% sure I should chance it.
08:03:02 <ELIZA197> But your neck is swollen to the size of an elephant!
08:06:26 <dbc> Wow did I underestimate. I have 158 tabs open now, in two windows.
08:06:58 <immibis> and where do you find so many sites to browse?
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.
10:28:16 -!- jix has joined.
11:41:11 -!- jix has quit (Nick collision from services.).
11:41:19 -!- jix has joined.
12:57:04 -!- Sgeo has joined.
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:34:30 -!- ais523 has joined.
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: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: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: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: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: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: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:49:00 <ais523> (and I forgot about nano even though I'd used it on a different computer the previous day)
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: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:53 <ais523> in that case, it should be spelt wotot from now on
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: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: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: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: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: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: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:24 <faxathisia> I would have fixed it but the maintainer freaked me out
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:37:06 <faxathisia> do you want a brainfuck evaluator in CL
20:37:23 <ehird`> it'll have the regular bot convenience things (google, etc.), some esolang interps, lots of lisp-related stuff, ...
20:39:23 -!- Tritonio_ has joined.
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: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: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: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: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
21:00:08 <ehird`> blah being, 'google' or 'eval' or something
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:10 <ehird`> parenbot: plugin-based or i just put commands in it
21:15:30 <ehird`> But that's woooorrrk! :P
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:53 * ehird` is getting tired of writing (X :accessor X :initarg :X :initform nil)
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: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: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:42 * faxathisia is baffled by all this, wonders why you don't just want it to do everything :p
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: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: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: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: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: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: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: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: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:09 <ihope> Just ignore the first two writes.
21:49:31 <oerjan> ah, but naturally it should require the three writes to be the same
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:39 <GregorR> ihope: You should only be able to read after all three writes?
21:50:46 <faxathisia> honestly CLOS is just making things hard for you :p
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:57:09 * ehird` wonders where he should add the code to scan for plugins
21:58:32 <ihope> Scan for plugins? My.
21:59:32 <ehird`> oh wait, asdf will load them
21:59:40 <ehird`> so all i need to do is define a plugin superclass that takes note
22:00:00 <ehird`> faxathisia: well. in the loosest sense.
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:30 <ehird`> (instead of a brainfuck plugin i think i'll have an esolangs plugin. does that sound ok?)
22:05:27 <faxathisia> A whole bunch of esolang interpreters written in CL would be a nice package
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: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:13 <faxathisia> I mkdir on someone elses computer cause they had a lisp with eval
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:05 -!- ihioe_ has changed nick to ihope_.
22:22:18 -!- Tobias_Thanos has joined.
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:26:01 <ihope_> I don't know Oregano, but my good friend Alfredo Linguini is.
22:31:23 <ehird`> see 22:18-22:20 (it's 22:30)
22:32:42 <ehird`> i'm asking if its a good idea :P
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: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: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: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: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:41:02 <ehird`> faxathisia: i like having files
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:45:01 <faxathisia> reflective dynamic cool stuff undneath/backstage CLOS
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: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 ("@+").
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: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> 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?
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: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 ?
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: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: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:41 <dbc> "does anyone knows where I can find the grammar for brainfuck ?"
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:58 <oklopol> "nope"? don't you mean "exactly"?
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: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: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: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: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: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: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: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: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:24:47 <oklopol> the rest is repetition, plus a guitar solo, which is prolly improvised
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: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:38 <oklopol> means what value the wave flunctuates around'
14:25:46 <dbc> Fluctuates.
14:25:51 <dbc> They don't fluctuate around zero?
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: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: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: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:38 <oklopol> you mean, when i start the note, am i sending the wave function 0 or the number of cycles sofar=
14:37:52 <dbc> That's what I'm asking.
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: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: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: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: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: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: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:40 <dbc> Just in case you want to output a file format that things will know what the hell it is.
14:55:09 <oklopol> i think wav is supported more widely
14:55:28 <oklopol> a wav is nice to create... but hell to play.
14:55:31 <dbc> 80 bytes of what?
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: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: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: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:30:14 <oklopol> #1 is 4 notes a second, 0.5 is 8 notes etc
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: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.
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: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: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: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:24:19 <oerjan> getContents and friends.
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/
05:00:06 <pikhq> Cherez, though shalt Plof it up.
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: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: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: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: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:49:26 <faxathisia> this thing http://eigenratios.blogspot.com/
20:54:21 -!- pikhq_ has joined.
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: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)).
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: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'!
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:17 <Maxdamantus> What's a logical method for checking if the pointer is 0 in BrainFuck?
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: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:39:44 -!- somerandomperson has changed nick to anotherrandomper.
16:40:05 <Slereah> There's plenty of random people!
16:48:38 -!- pikhq has quit (Read error: 110 (Connection timed out)).
16:51:36 -!- pikhq has joined.
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: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: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: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:18:39 -!- oklopol_ has changed nick to oklopol.
23:19:32 <ehird`> ValueError: chr() arg not in range(256)
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:26 <oklopol> have no idea why, and don't really feel like debugging
23:30:09 <oklopol> points are calculated amt**2/time
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: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:59:12 <ehird`> what i really want is a pygame wrapper, that is pythonic
00:01:04 <oklopol> heh, pygame is a wrapper over sdl
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:02:43 <ehird`> wrapper adds sugar to everything and hides the icky internals
00:06:16 <ehird`> pygame is just so low level
00:07:57 <oklopol> making games would be so easy if there was a fucking set_pixel built-in...
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: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: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:19:17 <pikhq> oklopol: r&1 b&2 g&3 ? :0 // does not parse. ;p
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:25:38 <pikhq> foo ?: bar; returns foo if foo is nonzero, bar otherwise.
00:26:48 <oklopol> pikhq: so... did you try my game? :O
00:27:11 <oklopol> i need someone to test it goddammit :P
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: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: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: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:30 <oklopol> it gives you more balls if you do good
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: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: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: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: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: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: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: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: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: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: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: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: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:15 <bsmntbombdood> http://en.wikipedia.org/wiki/Wikipedia:Wikington_Crescent
06:14:43 <pikhq> The name of the game is Mao; play will continue to my left.
06:15:22 <pikhq> Talking. Asking questions about the rules.
06:15:27 * pikhq hands bsmntbombdood two cards
06:15:38 * pikhq hands bsmntbombdood a card
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: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:19 <pikhq> It's got a modifiable ruleset.
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: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:34:08 <pikhq> oerjan: Certaintly.
06:34:25 <pikhq> First, we define any move *towards* Mornington Crescent as illegal.
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)
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:30:02 -!- oklopol_ has changed nick to oklopol.
15:31:07 <oklopol> wish i didn't have any hobbies, i wanna code up some wicked 2d games
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: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:34:28 <Slereah> "PRESS THE BUTTON, WIN ONE POINT"
15:34:58 <oklopol> either of you tried my other one-button game?
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:37 <oklopol> www.vjn.fi/gz guess i'll link
15:36:57 <ihope_> Can't play it alone? Blasphemy!
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: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:39:42 <Slereah> Soooo... If it's one button, what button is it?
15:40:23 <oklopol> if you press the button, the ball's smaller balls should start going astray
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:11 <ihope_> What were those words for "push" and "lift" starting with T and N?
15:43:32 <Slereah> Also that until I heard the rules, I had no idea of what was going on
15:44:22 <oklopol> btw i don't think anyone has yet been able to decrypt how to move the balls.
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:45:20 <oklopol> i can move to any point of the screen in like 3 seconds
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:13 <ihope_> Something to do with repulsion, I think, maybe, though maybe not.
15:49:40 <oklopol> you have half of it correct
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: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:42 <oklopol> also, if you tried that, try rzff.zip too, if you have pygame :P
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:57:13 <oklopol> except no one repels anyone.
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: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:42 <ihope_> Immortal is black with all your small ones flashing crazily?
15:59:57 <ihope_> I became immortal within a few minutes of not playing. :-P
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:09:26 <ihope_> Ooh, rzff is insane :-P
16:16:36 -!- Tritonio_ has quit (Remote closed the connection).
16:22:10 <oerjan> oklopol's games, apparently
16:22:50 * oerjan watches as the hairball crawls away
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:40:08 <SimonRC> there were some people in fursuits collecting for the RSPCA
16:41:13 <ihope_> lament wrote the original one, I think.
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: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: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:47 <ihope_> Why not have it randomize the cells instead, starting from the location of the function? :-)
17:17:56 <Jontte> for(int *p;;*(++p)=(p-1));
17:18:14 <Jontte> give it a pointer to an array of ints
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: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:40:37 <oerjan> hm... but will the malloc actually _be_ allocated if it is never used?
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: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:47:00 <Jontte> but.. fork can fail, imo
19:47:13 <Jontte> i think there is a restriction
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:21 <pikhq> So, basically, that breaks all code.
19:48:29 <oerjan> that's what i was recalling
19:48:36 <Jontte> i havent had any trouble with mallocs though >_<
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:22 <Jontte> i once tried doing a while(1){new int;}
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: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:28 <Jontte> you could examine the source
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: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: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: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: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:51 <oklopol> i've seen some of your projects, i think :O
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: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:49 <oklopol> hmm, exam in 9 hours, the question is, should i get some coke and code all night.
20:34:58 <Slereah_> Depends what you mean by "coke".
20:36:08 <lucas-> i haven't tried coding on drugs yet
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:29 <Slereah_> oklopol : What are his motives?
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: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: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:30 <oklopol> i don't like games with a plot
20:41:44 <lucas-> maybe, throughout the game, he could discover that the path traveled is more important than the destination
20:42:05 <Slereah_> All games end up with some sort of plot if they're succesful.
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: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: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:45:08 <Slereah_> What, no thermalisation of the kinetic energy?
20:45:13 <oklopol> it doesn't have to bounce a lot.
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:59 <oklopol> <oklopol> >>> choose koed sleap
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:48:03 <oklopol> i've never even *seen* drugs.
20:48:36 <Slereah_> You don't have the right friends!
20:49:24 <Slereah_> Well, "drugs" usually refers to the illegal ones.
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: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:55:29 <oklopol> nah, i prefer asking random people to do my balls
20:55:42 <oklopol> (pun as intended as possible)
20:55:46 <tejeez> just generate a red circle in the code of the game
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: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: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: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:55 -!- ehird` has quit (Remote closed the connection).
21:10:53 -!- ehird` has joined.
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:18:42 <ehird`> (oh -- including call/cc, yes.)
21:29:20 <ehird`> Slereah_: Tell me. Am I crazy? :)
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: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: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: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:41:45 <ehird`> ihope_: a scheme stack frame is just object-being-evaluated + bindings + upper frame, right?
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: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:43 <chuck> oh so you mean keep on using M's memory cell for E?
21:53:57 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
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:33 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [318]
21:54:52 <oklopol> sucks for strings that short
21:55:04 <chuck> aww +++++++[>+++++++++++<-]>.++++++++++[>+++<-]>. doesn't work
21:55:16 <ehird`> it should evolve something better :-)
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: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:53 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [59]
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:45 <ehird`> hmm, if you made subtle cough
21:58:49 <ehird`> then I guess not a good question!
21:58:55 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [684]
21:58:57 <EgoBot> 44 +++++++++++[>+++++++>+++++++++>><<<<-]>.>++. [789]
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: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: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: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: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:44:01 <ihope_> Hey, they even differentiate between expressions and statements.
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:21:24 -!- calamari has joined.
23:33:07 -!- GreaseMonkey has quit ("bbl").
23:43:18 * pikhq writes up the Kinda-Sorta-Blackish repeals
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:58:40 -!- puzzlet has joined.
03:58:42 -!- puzzlet_ has quit (Remote closed the connection).
04:39:51 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
05:07:03 <pikhq> RodgerTheGreat: NEW. DC.
05:07:36 -!- calamari has quit ("Leaving").
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:15:33 <RodgerTheGreat> good night, everyone- wish me luck on my finals tomorrow morning
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: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: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:47:03 <oklopol> halting = entering a predetermined special state where the machine stops moving ?
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: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: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:23:19 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
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: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:24 <SimonRC> I initially got today's Xkcd backwards
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
20:12:31 -!- JontteG has joined.
20:12:31 -!- Jontte has quit (Read error: 104 (Connection reset by peer)).
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: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: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:15:35 <Slereah> oerjan : There was a game.
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: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: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: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: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: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:36 <Slereah> Dude, I was just thinking that.
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: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:58:27 <oerjan> but also ssh to linux -> irssi
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: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: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:10:37 <oklopol> guess i'll up it just in case, i'm sure everyone is interested as hell ;))))
23:13:48 <oerjan> Gravity. It's not just a good idea, it's the LAW. Unless you press this switch...
23:15:24 <Slereah> A blue ball. On the run from the law.
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: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:29 <immibis> gravity on = like a vertical plane. gravity off = like a horizontal one.
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:45 <oklopol> that's the problem with using python
23:18:18 <Slereah> ImportError: No module named pygame
23:18:47 <oklopol> you didn't miss a lot, believe me :)
23:20:18 <Slereah> With nothing left to lose?
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:28:49 <oklopol> oerjan: character suggestion?
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:59 <oerjan> ah, there are the rolling eyes i was looking for. 9_9
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:54 <oklopol> you should be careful with balls, if not deliberately making puns.
23:36:18 <oklopol> "my eyes goin thattaway, me going thisaway"
23:37:08 <DocWilco> is there a smiley programming language yet?
23:38:21 <oklopol> ^_^ enters obfuscation mode, but that's pretty much all i remember
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:29 <DocWilco> I think my favorite on that site so far is Piet
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:51:42 <Slereah> So, mastered your ball hey?
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:59:49 <Slereah> It is quite procrastinating.
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:52 <oklopol> i should add some to my game
00:10:28 <Slereah> Or possibly get compressed
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: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: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:29 <gavial> Quelqu'un connais Brainfuck?
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:14:21 -!- gavial has left (?).
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.
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:34:40 -!- oerjan has joined.
20:03:58 -!- oerjan has quit ("leaving").
20:31:14 -!- puzzlet has joined.
20:31:15 -!- puzzlet_ has quit (Remote closed the connection).
20:41:50 <Sgeo> Why are you saying it in the channel then>?
20:44:06 * Sgeo wants the Universe =P
20:45:20 <bsmntbombdood> http://commons.wikimedia.org/wiki/Image:Fernscheiber_01.jpg
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
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:11 <SimonRC> you could carry it and some car batteries onto the train, then act like it's just a laptop
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:05:03 <SimonRC> or the rms-and-katanas thing
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:15:24 * SimonRC wonders how that works, as her body consists of just lines
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.
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:12:19 <oerjan> ELIZA842: have you learned to recognize your nick yet? ;)
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 -!- 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:56 -!- ELIZA842 has changed nick to ELIZa.
04:16:59 -!- ELIZa has changed nick to ELIZA.
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: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 <ELIZA> Does that have anything to do with the fact that your head is about to explode ?
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: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: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:28 -!- Slereah has joined.
05:36:37 <oerjan> assuming Agora doesn't currently have it, of course
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:41:21 <pikhq> (especially since B Nomic recently entered its *4th* era. . .)
05:42:29 <pikhq> "e" is a gender-neutral pronoun.
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: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: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: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: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:48 <oklopol> always wanted a fully extendable legal system enforced by the computer
06:45:37 <immibis> legal system...i still say to try inform 7.
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: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: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: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: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: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: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:52:00 <oklopol> that's just the output of my program
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: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: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: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: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: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:32:22 -!- jix has joined.
16:39:21 -!- porfus271 has joined.
16:42:27 <Slereah-> Plus, why always "Hello world"?
16:42:38 <porfus271> and its my first program... tradition
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: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: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:15:22 -!- porfus271 has quit.
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: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:24 <lament> oklopol: 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: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: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: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: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:09 <RodgerTheGreat> like GOTO, it should be used carefully, sparingly, and where it's the most effective solution
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: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:16:01 <RodgerTheGreat> but most C programmers tend to be very closed-minded about languages in general
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: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: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:26:41 <RodgerTheGreat> it's like discovering that you can crack open a word document and find a beautiful scripting language inside
20:27:24 <Slereah-> Is it nice for such a language, or actually 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: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: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: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:45 <faxathisia> oh yea hI wrote factorial I think thats all :p
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:38:10 -!- GreaseMonkey has joined.
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: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: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: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: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:25 <Slereah> Do not fear, I am not going away
22:13:30 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
22:15:07 <oklopol> bsmntbombdood: do you consider anything strange?
22:15:36 <oklopol> even if i told you i wanna gruzel you gnuzels? ;)
22:16:26 <oklopol> kinda like frumbling you quilzers
22:16:44 <Slereah> You're going to do his taxes with your penis?
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: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: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: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: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: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:49 <oklopol> i program just two languages at a time if possible...
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: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: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)).
00:11:49 -!- oerjan has joined.
00:14:17 <Slereah-> What's the other instructions on a multi-tape Turing machine?
00:15:53 <oklopol> going to sleep, most likely ->
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: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: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: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: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:57 * ais523 has also loaded up a copy of ELIZZ
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: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: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:38 <ais523> Can you elaborate on that?
17:16:01 <ais523> I see... Well, are you sure that this is so?
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: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: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:26:00 <ais523> it was actually a bunch of students pretending to be a computer pretending to be a human
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: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: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:19 <oklopol> >>> bf ;>;<[>>+>+<<<-]>[>>>+>+<<<<-]>>[>>>+<<<-]>>>[<[>>+<<<<<<<+>>>>>-]<<<<<[>>>>>+<<<<<-]>>>>>>>[<<<<<<<+>>>>>>-[<<<<<<[-]>+>>>>>-]<<<<<[>>>>>+<<<<<-]<[>>>>>>>-[<<<<->>>>[-]]+<<<<<<<-]>>>>>>>-]<<<<+>>>]<[-]<[>>>+<<<-]>>>[<<<<[>+>>+<<<-]>>>[<<<+>>>-]>-]<<<<[-]>[-<<->>]<<* <<< 27 3
18:32:24 <oklopol> >>> bf ;>;<[>>+>+<<<-]>[>>>+>+<<<<-]>>[>>>+<<<-]>>>[<[>>+<<<<<<<+>>>>>-]<<<<<[>>>>>+<<<<<-]>>>>>>>[<<<<<<<+>>>>>>-[<<<<<<[-]>+>>>>>-]<<<<<[>>>>>+<<<<<-]<[>>>>>>>-[<<<<->>>>[-]]+<<<<<<<-]>>>>>>>-]<<<<+>>>]<[-]<[>>>+<<<-]>>>[<<<<[>+>>+<<<-]>>>[<<<+>>>-]>-]<<<<[-]>[-<<->>]<<* <<< 27 7
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:35:18 <oklopol> >>> hf [0] [1] * ||| 2:* 3:*
18:35:18 <ololobot__> >>[-]>[-]<<<[>>>+<<<-]>>>[<<[<+>>+<-]>[<+>-]>-]<<[-]< ||| 1:0 2:* 3:*
18:36:40 <oklopol> i need to add threading...
18:37:59 -!- pikhq has joined.
18:38:03 <oklopol> >>> hf [0] [0] - ||| 1: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 <oklopol> S-combinators' urges are mainly to make others populate
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:47:06 <Slereah-> Good. Right now, that arrow points to your name. But not anymore once I enter this text!
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:56 <Slereah-> But it was for mathematical concepts.
21:50:12 <Slereah-> Combinators were used in the mythological creation of the world.
21:50:34 <Slereah-> It was a giant Turing machine elsewhere.
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:50 <oklopol> the same for mathematical concepts would be so awesome :D
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: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:43 <Slereah-> "To mock a mockingbird" has some sort of story, with combinators as birds.
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:03:39 <oklopol> that's all you need baby ;)
22:04:53 * ehird` continues writing his Python R5RS interpreter
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)).
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: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:31:47 <Slereah-> PLEASE SAY HELLO WORLD, LOUSY INTERPRETER
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:21:32 <oklopol> oh, oklotalk, of course :)
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).
15:04:20 <faxathisia> It's very nice but I don't know what I'm doing :p
15:06:59 <SimonRC> http://www.cs.chalmers.se/~ulfn/talks/agda2-060510.pdf ??
15:11:07 -!- RedDak has joined.
15:12:17 -!- puzzlet has quit (Remote closed the connection).
15:12:19 -!- puzzlet has joined.
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:22 * faxathisia reads about Generalised Algebraic Data Types
15:15:53 <SimonRC> well I think you need some lambdas in there...
15:16:14 <SimonRC> faxathisia: you seem to have mixed up a type sig and a definition
15:18:14 <SimonRC> pikhq: what was the last thing you said before I said that to you?
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:48 <pikhq> It's a patent title in Agora.
15:20:53 <pikhq> (newly defined for my sake)
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:23:02 <SimonRC> is it possible to make it undefined using temporar loops
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: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:25:00 <pikhq> I believe that one requires unanimous support.
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: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: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: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: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: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: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:19 <SimonRC> it is a simple recursive method
15:39:32 <Slereah-> I suppose it's under "Abstraction elimination"
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:57:45 <oklopol> ololobot_ does the conversion with pl
15:57:56 <oklopol> i mean, the one described on the unlambda page
16:20:16 <faxathisia> I couldn't get epigram to run though >:|
17:01:54 -!- Sgeo has joined.
17:50:30 <Slereah-> Holy fuck. Abstraction elimination is some ugly business.
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: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: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: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: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: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: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: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:18:10 <SimonRC> as in: 5 = \x\y.x(x(x(x(xy)))) ?
18:19:44 <SimonRC> surely if m and n are church numerals, (mn)f == m(nf)?
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:22:14 <SimonRC> multiplication of church numerals is composition
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:24:03 <Slereah-> I forgot Unlambda's notation. Is `ab = (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:51:43 -!- jix has quit ("CommandQ").
18:53:23 <Slereah-> I just can't keep track of the parenthesis.
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:48 <Slereah-> They are different thing, that is.
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.
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: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: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: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: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: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: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: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:07 <faxathisia> especially awkward in c, javascript and python
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: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: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:43 <oklopol> add descriptive lambdas into the language like i did with oklotalk for comments
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:44 <faxathisia> sometimes they are required though, like: Don't give an empty list to this!
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: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: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: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 :)
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: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: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:24 * oerjan must have greatly misremembered the time zone of germany
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: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: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: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: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: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: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: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: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: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: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: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: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: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:45 <tejeez> this if brainfuck, not some (brain)fucking steampunk
20:37:50 <tesseracter> Slereah-: you need 2 different density fluids
20:38:04 <oerjan> aka: the indifference engine
20:39:02 -!- sekhmet has joined.
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:45 * oerjan is disappointed brainpunk does not appear to denote a musical genre
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:28 <weilawei> in space though.. once it was spinning..
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: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: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: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:18 <weilawei> if you're so busy @work, what're you doing here?
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: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: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: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:46 <ehird`_> (if cond (begin (display 1) (display 2)) (begin (display 3) (display 4)))
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: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: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: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:36:01 <ehird`_> oerjan: make a language with that, now
21:36:51 <faxathisia> i thought that's the definition of compiling
21:37:06 <ehird`_> compiling would remove the need for the scheme interpreter underneath all that :-)
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: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: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: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: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: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.
22:00:01 <oerjan> even if you allocate scheme frames on the heap there could still be plenty of them
22:00:11 <ehird`_> it returns a SCM_RETURN structure
22:00:16 <ehird`_> a trampoline handles the rest
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:53 <oerjan> but still it uses plenty of scheme "stack"
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:21 <oerjan> it must remember the n's somewhere
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: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.
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: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:40 <pikhq> Simplify what you can. ;)
03:01:18 <pikhq> Hmm. SKKI? s k k i -> k i (k k) -> i
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:04:10 <pikhq> It's called 'eval'.
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: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: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: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:35 <Slereah-> I gives a contradiction with the omega combinator IIRC
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:21:35 <Slereah-> Just wondered if there was a way to do it without applyin it.
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:32 <oklopol> errr don't think i actually know anything
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:21:04 -!- RedDak has quit (Remote closed the connection).
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:50 <faxathisia> but I thought inspecting the types should give a way to reduce the expressions
15:05:19 <faxathisia> s :: (a -> b -> c) -> (a -> b) -> a -> c
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:10 <faxathisia> but I didn't realize expressions can diverge :p
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: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:36:05 <pikhq> oerjan: It appears that I have won the game, and may well earn the title 'Scamster'.
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:38:37 <pikhq> Also, I have earned the patent title 'Agoran Spy'. Tell me, is there anything here to spy on?
16:38:57 <oerjan> I could tell you, but then I would have to kill you.
16:39:45 <pikhq> I see that you've been playing Paranomic.
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: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: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: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)).
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: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:09:22 <CakeProphet> to replace all isntances of one string with another in all files in the current directory and its subdirectories
23:11:33 -!- RedDak has joined.
23:29:05 -!- jfm3 has joined.
23:31:00 -!- jfm3 has left (?).
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 (?).
00:23:40 -!- CakeProphet has quit ("haaaaaaaaaa").
00:38:30 -!- RedDak has quit (Remote closed the connection).
01:50:23 -!- duerig has joined.
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: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:38 <duerig> fail (int file_failure)
01:58:48 <duerig> // Handle failure (retry, etc.)
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:47 <duerig> In what ways do you think it is broken?
02:00:16 <faxathisia> We already do this in programming though, so I don't think it's something new?
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: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: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: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: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: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:44 <duerig> fail (f_type || g_type)
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: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: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:29:58 * pikhq wonders what card you have that lets you do that
06:55:49 <lament> anybody plays violin here?
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").
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: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: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:38 * oerjan briefly entertains the idea of pretending that was _not_ on the wrong channel
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:56 <pikhq> I can create any number of points in my posession. Fun stuff.
06:11:12 -!- DocWilco has left (?).
06:54:11 <faxathisia> could have a programming language with regex as the type system ?
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:07:31 <pikhq> Although I must wonder: why is function application an overloadable operator? :p
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: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:25 <pikhq> It's Gregor's plaything. . .
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:26 -!- Sgeo has quit (Client Quit).
07:37:28 <faxathisia> r"((?:\x01" + some_type_regex + r")*?\x00)"
07:47:07 <oerjan> i mean, general positive attitude
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: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: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: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: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:57:56 <oerjan> http://en.wikipedia.org/wiki/Busy_beaver
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").
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: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...
22:00:13 <SimonRC> bsmntbombdood: what is "duh duh dee cee"?
22:01:51 <oklopol> don't you know bsmntbombdood at all :\
22:03:44 <SimonRC> The only book that is so crazy its proper spelling includes a colour change
22:04:32 <oklopol> heard from my good friend wikipedia
22:04:42 <oklopol> last time someone mentioned it here
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:06:37 <Slereah-> SimonRC : It's my Turing machine.
22:07:40 <Slereah-> Does Lazy K only output combinators?
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:22 <oklopol> b'ing is like being, but without the e
22:12:53 <oklopol> and i don't mean that literally
22:13:13 <oklopol> also tired, doesn't show, right? thought so, definately not
22:18:50 <Slereah-> Meh. My FTP account doesn't work.
22:26:02 <Slereah-> SimonRC : http://paste-it.net/5432/raw/
22:26:32 <Slereah-> That's the big reason why I wrote that Turing machine. I couldn't do it by hand.
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: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:33:14 <oklopol> a simple interpreter for osl
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:07 <oklopol> my python does not support tail recursion
22:43:29 <oklopol> i think it's a bit ironical considering the naim
22:52:28 <SimonRC> If you create a version of Python that supports tail recursion, it is mandatory to call it "Oroborous"
22:54:23 -!- ihope has joined.
22:54:29 <oklopol> i don't think that's its name
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: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:36 <oklopol> actually, not exactly a homonym :)
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: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:58 <Slereah-> Head is a number, tape is not.
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: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:31 <Slereah-> They're not part of the syntax.
23:10:40 <Slereah-> I just needed a lot of markers.
23:12:22 <Slereah-> Shit. Even my old version doesn't work anymore.
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: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:52:39 -!- RedDak has quit (Remote closed the connection).
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?
01:04:42 -!- Slereah has joined.
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:42:42 -!- oklopol has quit (Remote closed the connection).
04:58:43 -!- Sgeo has quit (Success).
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: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: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:21 <Slereah> What's the size of a Python integer
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: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: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:41 <pikhq> It's not esoteric, it's merely a crime against humanity.
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: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:56:18 <pikhq> Good morning, H. Champion Oerjan.
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
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: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:13:59 <oerjan> may have been someone in Agora that pointed it out
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.
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: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:32:02 <pikhq> However, I'm Ploffing ATM.
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.
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)).
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: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: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: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: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: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 <GregorR> oklopol: It's a giant slide flute.
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: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 <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:28:13 <Sgeo> Don't know if you can type it in, but the problem's still there
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:33:16 <oklopol> "That would be just convert the slide flute into a slide whistle" i failed to parse this
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: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:39:01 <GregorR> My sentence was correct as is.
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:34 <GregorR> "Performing the action you've mentioned would be just convert the slide flute into a slide whistle"
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: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:41 <oklopol> i'm actually coding naked as we speak.
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:46 <oklopol> omg, hope i don't get kb's
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: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:53:09 <Sgeo> I'm assuming that the bf interpreter is in the same directory
01:54:02 <oklopol> ./psox.py opens the psox server and runs the command given piping stdio to the server?
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:45 <Slereah-> "The limited budget boys" or something.
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: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 <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:11:07 <pikhq> proc foo {bar baz} {puts "Hello, world!"};foo
02:11:19 <pikhq> proc foo {bar baz} {puts "$bar, $baz!"
02:11:50 <pikhq> Extra newlines not withstanding.
02:15:33 <oklopol> Slereah-: there's a finnish translation of vba for microsoft word!
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:17:27 -!- Slereah has joined.
02:21:58 <Slereah> http://www.flickr.com/photo_zoom.gne?id=2142109719&size=o
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: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:49:45 -!- Slereah- has joined.
03:05:44 <GregorR> How to build a trombute: http://www.codu.org/pvcinstruments/ (ping oklopol)
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:52 <GregorR> OK, I took the word "trom" from "trombone" genius X_X
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: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: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: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: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: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: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:43:44 <ihope> Looks like Agora has a Rulekeepor instead of a Rulekeeper?
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:51 <pikhq> Complicated ruleset, one must admit.
04:54:29 <pikhq> My favorite rule is rule 2029.
04:55:26 <ihope> Is it the only rule with power 4?
04:55:52 <pikhq> The scam that put it in place changed the rules to *allow* for a power 4 rule.
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: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:42 <pikhq> Nor does Mitchell High; the point is that I have college lined up already. . .
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:54 <pikhq> I'm perhaps the only non-Gregor person involved in it.
05:54:02 <pikhq> http://www.codu.org/plof/
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:37 <pikhq> Just need to finalise the C API.
05:56:15 <Sgeo> Would anyone appreciate PSOX?
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:02:21 <Sgeo> Is PSOX useful at all?
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:06:37 <ihope> Though I do rather expect that I consider it less useful than the average esolanger would.
06:07:39 <ihope> As I perceive things, PSOX has many unnecessary features.
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:17:19 -!- calamari has quit ("Leaving").
06:17:28 * Sgeo CTCP TIME's pikhq
06:17:43 <pikhq> It's the same as bsmntbombdood.
06:20:05 -!- ihope has quit ("CGI:IRC (EOF)").
06:20:36 <pikhq> State buddies too, last I checked.
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: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: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: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)).
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:32:31 <Hiato> anyway, I would like to get some feedback from you about my esolang http://www.full0.8tt.org
17:35:01 <pikhq> From what I gather so far, that is a diabolically clever language.
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:57 <pikhq> I suspect that there isn't anyone here who *uses* Windows. :p
17:37:14 <pikhq> Erm. Delphi for the interpreter?
17:37:33 <Hiato> but that should work in Freepascal
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:35 <pikhq> You prepended a \ before them for no good reason.
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: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: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: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: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: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: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: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:24:10 -!- calamari has quit ("Leaving").
20:24:21 <ehird`> the most useless unneeded vaporware there is
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:28:30 -!- dbc has quit (Read error: 110 (Connection timed out)).
20:32:42 -!- calamari has joined.
20:36:37 <calamari> oerjan: :P ascii art has its limitations
20:38:36 -!- RedDak has quit ("I'm quitting... Bye all").
20:41:32 -!- RedDak has joined.
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:48 <oerjan> well the two last ones never were judged...
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: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:40:28 * Slereah reads the Malbolge description.
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: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:48 <ehird`> what's the interpreter written in
21:44:24 <faxathisia> It's got assignment, if_then_else_fi_, from_do_loop_until_, call_, uncall_ and skip
21:45:22 -!- calamari has joined.
21:46:50 <faxathisia> there's a self interpreter I need to get that running :D
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: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: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:59:38 <Sgeo> I meant, ideas wrt PSOX
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: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: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:21:15 <Hiato> (that seemed to quiet everyone down...)
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: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: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: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:52:24 <oklofok> if you can calculate the limit, then yes
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:56:10 <ehird`> instead of lambda arg val
22:56:13 <oklofok> like, no forming new lambdas, just a given set of lambdas you can use
22:56:41 -!- ihope has joined.
22:57:07 <ehird`> oklofok: instead of (lambda arg. val)
22:57:24 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
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
23:00:02 <ehird`> oklofok: yeah i don't know what functions 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:52 <ehird`> these primitive-creators /must be implementable/ in 'pure' lambda calculus
23:03:26 <ehird`> define my-creator (lambda x. do 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:15:08 -!- Jalude has joined.
23:16:57 <Slereah> http://paste-it.net/5459/raw/
23:17:18 <Slereah> Although writing chars is annoying.
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:17 <ehird`> or any list of them even
23:18:26 <Slereah> ehird` : Nop. Just a Turing machine.
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: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: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: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: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: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:10 <ehird`> yay, you'r ealive, now answer my other qs too :P
23:50:01 <oklofok> lol, that was never valid :)
23:50:11 <oklofok> {->[];L->'({_<:L}\L)+.L+'({_>:L}\L)}
23:50:27 <ehird`> what about {->$;'(._<\:_)+.:+'$._<\:_}
23:50:47 <oklofok> oklotalk is soooo fun to read...
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: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: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: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...
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: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: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: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: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: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: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:57 <ehird`> i mean, the function factorial, + 5
00:10:06 * ehird` renames C-oklotalk to C-Oklotalk
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: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:26 <oklofok> there's just lambdas, but no difference
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: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: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:28 <ehird`> (Overtalk, an Oklotalk successor? oh fuck no)
00:17:41 <ehird`> oklofok: it means you can reason about programs better
00:18:07 <oklofok> nah, oklotalk is too dynamic for that to be true
00:18:18 <oklofok> and too conciseness-oriented
00:18:40 <ehird`> (also, Oklotalk should not be actor-based. actor model == function model)
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: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: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: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: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:26:04 <ehird`> by the way a while ago you posted a parsing spec, where's that?
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: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:29:01 <oklofok> heh, i actually realized that later myself
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:53 <ehird`> i might make an emacs mode that lets me type that stuff :P
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: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: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:35 <ehird`> also, what if i wrote a program to delete the hd
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:35:09 <ehird`> DSA:P{}AWO)(_)(U)(~*(HE(AJHWEC }}LÅ’Í”ÒÎ{:!@"E:OP$U)($)($)(@£_$(_+
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: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: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: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:44:12 <ehird`> strict.ot is a file that you include in your oklotalk programs, like perl's "use strict"
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: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: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: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:46 <ehird`> A(m+1, n+1) = A(m, A(m+1, n))
00:57:09 <oklofok> you need to have vars uppercase
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:52 <ehird`> A = { 0 N -> N+1; M 0 -> '(M-1, 1); M N -> '(M-1 '(M, N-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: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: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:13 <oklofok> yes, although there is not *byte* in oklotalk, really, well, there is, but you don't see it.
01:00:30 <oklofok> i mean, any stream will have to handle any object.
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: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:43 <ehird`> what about loading files
01:03:16 <ehird`> also, i have the tentatively-named ehirdtalk to implement too :P
01:03:56 <ehird`> fact<-{<3->1=>*$-1} is factorial, iirc
01:04:03 <oklofok> you can add the sanity i lack :)
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:50 <ehird`> but the evaluation is weird
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:26 <ehird`> fact<-{<2->1=>*$-1} is factorial, iirc
01:06:53 <oklofok> what implies the implicit _ after => there?
01:07:10 <oklofok> ah, not everything can be any-ary
01:07:25 <ehird`> any left-out dangling params are _
01:07:55 <ehird`> i forgot how i did param names :(
01:10:00 <ehird`> an actually clear ehirdtalk program:
01:10:02 <ehird`> fib <- { 0 -> 0 => 1 -> 1 => > 1 -> $(-1) + $(-2) }
01:11:20 <ehird`> or you could just do 0-
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:35 <ehird`> fact<-{?<2->1=>?*$?-1}
01:13:13 <oklofok> \ is a primitive that does map when preprended to an oper
01:13:28 <oklofok> it's 3 years since i looked at taht
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:36 <oklofok> everything must be possible
01:20:59 <Slereah> I think I have a BF interpreter now.
01:21:12 <ehird`> oklofok: just make the call-stack accessable
01:21:18 <Slereah> But writing the + and - function in full is awfully boring.
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: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: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:31:31 <ehird`> so, any callcc oklofok ? :)
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:33:14 <ehird`> feel free to give a more concise definition :P
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:34:25 <oklofok> oh, actually doesn't matter, i think
01:34:33 <ehird`> oklofok: oklotalk booleans
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: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:19 <oklofok> i've never seen a keyboard without it.
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:51 -!- GregorR has quit (Remote closed the connection).
01:37:53 <ehird`> just tell me the ismplest way :P
01:38:33 <ehird`> just the oklotalkian way to print a number then a newline
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: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:59 <ehird`> pretty pleez :( it'd make my repl display nicer
01:48:00 <ehird`> -- could be ambigiouuuuusssss
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:54:14 <ehird`> where's your fact-tutorial again?
01:54:46 <oklofok> http://www.vjn.fi/pb/p551122163.txt
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: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:26 <oklofok> it basically doesn't do anything...
01:58:04 <oklofok> just use TehContinuation <- instead of =
01:58:18 <oklofok> <- is for setting a new value without making the var local
02:00:47 <ehird`> so how should i pretty print a function, oklofok?
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: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: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:48 <ehird`> give me some unused braces!
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: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: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:12 <oklofok> nice work, i see no syntactic errors
02:17:25 <oklofok> i mean, nothing that would behave incorrectly :P
02:17:32 <Slereah> I'll try the 99 bottle program to see if it works, after some conversion.
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: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: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: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:24:46 -!- ehird` has quit.
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:33:36 <Slereah> Although it is painfully long to watch.
02:36:51 -!- Slereah- has joined.
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:13 <oklofok> there's a digit root by keymaker
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:49 -!- GregorR has joined.
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:45 -!- Slereah has quit (Read error: 110 (Connection timed out)).
02:55:20 <Sgeo> Incidentally, that doesn't work
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:38 <User333> I found this place through "searchIRC"
03:06:59 <ihope> Programming languages that are intentionally weird somehow, more or less.
03:07:24 <ihope> Do you know the meaning of "esoteric"?
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: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: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: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:18:11 <Sgeo> Any OCD that I may have is completely unrelated to computer use >.>
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: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:17 <User333> you should meet my friends, they think hacking is memory editing
03:20:32 <pikhq> That's amusingly horrid.
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:27 <pikhq> Sgeo: Alright, PSOX works.
03:24:29 -!- Slereah has joined.
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: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: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: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: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:26 <Slereah> I need to test my BF interpreter.
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:25 <Slereah> I'll stop bitching about it.
03:41:20 <oklofok> nah, just trying to be 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: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: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: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: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: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: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: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: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: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:51 <oklofok> also, 3 31 * 5 7 * +, and you just need a list
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: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:44 <oklofok> Slereah: python AND turing machines
04:40:58 <Slereah> But a Turing machine on Python!
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:34 <oklofok> the <-> applies to that too
04:41:45 <oklofok> it's just not necessary, since it's indented
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:34 <faxathisia> maybe this should be Ring68 0 m :: #Mid m <-> #Outer n
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:26 <oklofok> sorry, i now realize what you said :)
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: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: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:56:06 <faxathisia> like just define some functions and then it parses oh wait :: you couldn't use
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:55 <oklofok> nah, i make my parsers raw
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 :)
05:03:27 <bsmntbombdood> "it doesn't take most people very long to notice that I am not in fact crazy"
05:05:09 <oklofok> faxathisia: not good ones, and none parse very generically
05:06:04 <faxathisia> I can write if_then_else_ :: Bool -> a -> a -- or something
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: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: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:38 <Slereah> Well, I changed it when I noticed that it needed one instruction less, but it's a Bitchanger compiler.
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:33:54 -!- oerjan has joined.
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: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: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: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: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: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
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: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: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> I'll have to set up a Pascal compiler sometime; currently waking up, and soon going to try getting Plof working.
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: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: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:28:11 <pikhq> If you want to use that system sanely, at the *very* least, get Cygwin.
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: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: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: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:54 <pikhq> Hiato: I love the syntax. Truly.
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: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:35 -!- cherez has joined.
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: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: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: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:37:43 <pikhq> I'm going to guess that {} contains a loop?
19:37:59 <Hiato> nope, sorry ;) the / and \ do
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:44:42 <Hiato> is that a no? Should I modify the language, anything you hate, replace a symbol etc...
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:25:55 <Hiato> actually it starts at 10:34:25
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: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: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: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: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: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: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:29 <Sgeo> pikhq, when PSOX comes out, will he write a BF-in-BF interpreter for PSOX?
20:58:31 <faxathisia> What does "equivalent in skill to sand" mean?
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: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: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:02:02 * pikhq wonders if he should do a Function.opCastTo(). :p
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: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: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: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:57 <Slereah> Just replace the c:/e.txt at the end by the textfle you want.
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: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: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: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: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: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: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: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:58 <Slereah> Here's the chart : http://paste-it.net/5463/raw/
21:22:18 <Slereah> As I said, I couldn't make a +/- in ASCII.
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:55 <Slereah> >++++++[<+++++++>-]<++.>>+++++[<+++>-]<.+++++++..+++.<<++++[>+++++<-]>-.>++++++++.--------.+++.------.--------.<++++++.
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:15 <Slereah> Maybe those musical notes I was thinking about.
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:37 <Hiato> that's the python help
21:26:42 <Hiato> tralalalalaallalalala
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:58 <Slereah> http://paste-it.net/5459/raw/
21:28:12 <Slereah> Although it cannot stop at all.
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: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: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: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:59 <Sgeo> somestring = somestring.replace("\n", "")
21:37:29 <Slereah> (Just put prog=prog.replace("\n", "") on line 167 of the love machine)
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:41:07 <Slereah> I could just make a version with a "do not move" instruction, but where's the fun in that!
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: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: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:47:06 <Slereah> I think I know what went wrong.
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: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: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:12 <Hiato> true, and a useful feeature too :)
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:20 <Hiato> Well, I don't real;why mind that much Sgeo. But as iHope pointed out, it can become alot
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: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: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 <Hiato> Yes, make them suffer for using hard languages
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:27 <Hiato> to be able to acces the web from malbolge :P
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: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: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: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: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: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: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: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: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: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: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: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: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:18 <ehird`> oklofok! distract me from annoyance with oklotalk talk
22:50:44 <Slereah> OKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLO
22:50:48 <Sgeo> I might end up preventing a PSOX 1.10 from existing..
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: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:56 <oklofok> i do agree, although i do that myself all the time
22:53:04 <oklofok> not that i knwo what bikeshedding is.
22:53:42 <Sgeo> You mean asking for trivial opinions?
22:53:45 <Sgeo> erm, opinions with trivial impact?
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:57:08 <Slereah> How awesome would that be!
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: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:01:32 <faxathisia> apart from MLs are there are languages specifically designed for writing other languages in?
23:03:18 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
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:04:26 <Slereah> Will this handshake language include high fives?
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: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: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: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:34:11 <oklofok> output of the graphica 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: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: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: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:48 <Sgeo> I started the PSOX.py interpreter already
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: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: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:59:36 -!- ehird`_ has joined.
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:09:41 <ehird`_> oklofok: I took up the task of making a language like oklotalk, but logical and cleaner
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:35 <Sgeo> Would that work or fail on Windows, though?
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:14:14 -!- puzzlet_ has quit (Remote closed the connection).
00:14:26 -!- puzzlet has joined.
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: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:21:35 -!- puzzlet_ has joined.
00:21:36 <oklofok> faxathisia: i already show them in a similar fashion, i meant graphically
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:40 <oklofok> you don't need to know python to be able to
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: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: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:17 <ehird`_> in C \n does not mean 0x0A
00:29:29 <ehird`_> the compiler does this, it is standard
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:47:59 <ehird`_> GregorR: it was opened in binary mode
00:51:20 <oklofok> faxathisia: did you try it? :D
00:51:48 <faxathisia> I'm still trying to make this thing without infinitelooping
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: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: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: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:05:18 <ihope> I'm going to check up on just what it is.
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: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: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:21:32 <oklofok> i wondered whether it gets it circle, or if it'd be eight'y or something
01:26:31 <ehird`_> A lambda calculus CPS transformer
01:29:17 <ehird`_> oklofok: your bot has lambdacalculus infrastructure
01:29:24 <Slereah> What, a giant robot that can transformate into a lambda expression?
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: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: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:34 <ehird`_> Hmm. I want to implement ISWIM
01:37:01 <ehird`_> it's the 'the next 700 programming languages' language
01:38:23 <Sgeo> Once PSOX 1.0 is out, would anyone here be willing to make an IRC domain?
01:39:28 * Sgeo thinks an answer from someone who thinks positively of PSOX would be more useful
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:26 <ehird`_> i said no point in the irc domain
01:42:37 <oklofok> oh, right, guess it's just bsmnt
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:46:14 <faxathisia> http://www.cs.utah.edu/~eeide/compilers/old/papers/p157-landin.pdf
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: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: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: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: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:56 <Sgeo> faxathisia, because I need the PSOX server on both sides
01:58:04 <Sgeo> on both stdin and stdout
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: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: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: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:47 <Slereah> I don't really want to program some N->ZxZ isomorphism.
02:04:12 <ehird`_> faxathisia: do you know scheme? :P
02:04:25 <Slereah> N-> NxN isn't, but the function already exist, it's the pairing function.
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: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: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:42 <Sgeo> Or for finalization of psox.txt?
03:46:20 <Sgeo> I think psox.txt is final
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: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:58 <Sgeo> When the implementation exits, the client is killed >.>
03:57:14 * pikhq has the psox.bfm header set up.
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:07:47 <Sgeo> pikhq, updating the header?
04:11:31 <Overand> PSOX is a fantastic concept =]
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: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: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: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: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: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:58 <Slereah> The Turing constant is just a bunch of numbers.
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: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:47 <Slereah> It's a paradox only if you assume that god can do anything.
04:36:53 -!- oklofok has changed nick to oklopol.
04:36:54 <Sgeo> My "proof" was against omniscience
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: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: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: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:48 <Slereah> So my code is prefix free then.
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:31 <Sgeo> what does "exit" do?
04:53:56 <pikhq> It calls the "exit" function in PSOX-System.
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: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: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: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: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:38:02 <Sgeo> Did you see the recent updates to the PSOX specZ?
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:42:12 <calamari> did you get the pesoix code working?
05:42:26 <Slereah> Yes, but can you use it to find out what machines halt?
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: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: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:24 <Sgeo> My implementation is going to violate my spec a bit :/
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:51:08 * pikhq is coming up with a C library to use it for no good reason
05:51:35 <calamari> I hadn't even really started on the "spec" part
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: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:16 <Sgeo> Who was EsoAPI?
06:11:40 <Sgeo> Well, thank you very much for something that inspired something that inspired PSOX
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: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: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: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:29 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
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:19:13 <oklopol> oh, right, i just forgot i need to fix the evaluator too
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: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: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: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: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`_> ((in 0) (loop 0 ((out 0) (in 0))))
17:16:49 <ehird`_> >>,<< will be optimized to (in +2)
17:17:01 -!- helios_24c3 has quit ("Leaving").
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: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: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: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: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: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:47:36 <ehird`_> does egobf have a compiler?
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: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: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:15:06 <ehird`_> I don't know a simple tutorial to the mach-o format for writing out executables actually
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:29:53 <ehird`_> haskell seems really suited to that
18:30:01 <ehird`_> since bf optimization is pattern matching
18:34:19 <pikhq> Where's mandelbrot.b?
18:34:51 <ehird`_> http://esoteric.sange.fi/brainfuck/bf-source/prog/mandelbrot.b
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: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:37:09 <oklopol> graphica is getting quite awesome now, i'm fairly sure you can do an n dimensional hypercube now
18:37:18 <ehird`_> show me a graphica 3d hello world
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:42:25 <pikhq> http://pikhq.nonlogic.org/mandelbrot.c
18:48:25 <ihope> Graphica and graph rewriting, eh?
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: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
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:35 <ehird`_> oklopol: not interp: compiler
19:00:47 <oklopol> well, interp in that it's used as one
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:55 <ehird`_> egobfc8, someone give me it as a c file :P
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:08:33 <pikhq> GregorR: I thought you *fixed* that bug.
19:08:50 <oklopol> it's not about working, it's about how great it would be if it works!
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: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: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: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:12:10 <oerjan> ehird`_: apparently you need to cycle through possible indentations
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: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: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:39 <oerjan> as for +++++ i would just match on the first + and use span or something to get the rest
19:17:27 <ehird`_> oerjan: i'll be applying optimization iteratively anyway
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:24 <ehird`_> oerjan: it was just pseudocode
19:18:30 <ehird`_> to demonstrate what i meant
19:22:15 <ehird`_> oerjan: do you know anyting about yi?
19:23:15 <oerjan> only that it's a haskell editor
19:24:23 <ehird`_> http://haskell.org/haskellwiki/Haskell_mode_for_Emacs i'm going to do that haskell unicode thing
19:28:09 <oerjan> be careful not to mess up indentation with characters with the wrong width
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:04:02 <ehird`_> Damn, bf2c.hs optimizes /loads/
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:16:49 -!- Hiato has joined.
20:17:32 <oerjan> i hear it's quite strong
20:17:37 <ehird`_> oerjan: how do i add an instance? i'm trying to get show working :-)
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: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: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: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:47 <oklopol> mitä helvettiä tää mun irssi sekoilee == what the hell is my irssi doing
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:46 <oklopol> in case anyone happened to start reading the spec, tell me ;)
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:29:01 <oklopol> i'll include the example progs i made
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:59 <oerjan> pastebin.ca rolls off my tongue
20:31:59 <oklopol> http://www.vjn.fi/pb/p123363511.txt
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:10 <oerjan> ehird`_: replicate b '+'
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: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: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:03 <oerjan> ehird`_: need ++ not : at least
20:37:04 <ehird`_> oerjan: before and after: http://hpaste.org/4720
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: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: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:29 <ehird`_> oerjan: there has to be a better way to od that
20:42:30 <oerjan> and amusingly colored :)
20:43:40 <ehird`_> bsmntbombdood: Rodger Nintendo
20:43:42 * oerjan wonders if he exists :)
20:43:50 <oerjan> Hiato: i don't think you can
20:44:13 <oerjan> the author identification is not working...
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:25 <Hiato> http://rafb.net/p/x491Ou33.html
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:49:06 <oerjan> showMoveBrak a s = show (Move a) ++ s ++ show (Move (-a))
20:49:25 <oerjan> couldn't think of a good name
20:49:44 <oklopol> Hiato: what country is .za? just wondered about your name :)
20:50:01 <Hiato> sure, its South Africa
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:53 <Slereah> Are you the only guy on the esomap from South Africa?
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: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:53:08 <Hiato> but I prefer No-Op
20:53:24 <ehird`_> oerjan: showMoveBrak :: Int -> String -> String
20:53:42 <Hiato> Sleereah, I'm in Johannesburg, not Klerksdorp ;)
20:54:06 <ehird`_> *Main> parse ",[.,]" [,,[[.,,]],.,,]
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:54 <ehird`_> i really want an instance of Show [BF] too
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: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: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:57:02 <Hiato> where you have a row containing say 6 4 5
20:57:07 <Hiato> then you shift left
20:57:13 <ehird`_> oerjan: unwords adds a space
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: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: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: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 <Hiato> cool, thanks Slereah
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: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: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:46 <ehird`_> yes oerjan but i missed the param too :-)
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: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: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: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: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:55 <ehird`_> oklopol: does oklotalk have objects?
21:09:09 <oklopol> prototype-based oo is possible
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: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:16 <ehird`_> alternatively, this is an idea:
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: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: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: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:39 <ehird`_> alternatively, release an oklotalk spec using them and i'll write an editor in it that lets you type them
21:14:47 * Sgeo is a bit too irritated to really work on PSOX
21:14:52 <Sgeo> pikhq, what do you have?
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:33 <oklopol> you can make those synthetically
21:15:43 <oklopol> and they'll be there as built-ins.
21:16:18 <oklopol> there are lots of ways to calla function
21:16:21 <Hiato> Sgeo : http://www.rafb.net/p/x491Ou33.html tell me what you tink
21:16:26 <ehird`_> is there a 'returning x as y, z'?
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:38 <Sgeo> I mean, read stdin
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: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:33 <ehird`_> oklopol: what about instance vars
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: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: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: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: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: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: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: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:35 <oklopol> and i want onions about it.
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: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: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: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: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:28 <ehird`_> someone get lambdabot in here
21:30:38 * Sgeo considers PSOX.py to be a bit of a project
21:31:40 <Sgeo> Have you read the specs at any time after it came into existance from being branched off of PESOIX?
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:21 <Hiato> the explination, that is
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: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: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: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:37:25 <Hiato> or have I had one too many
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:54 <ehird`_> Actually, I think for BF i should just repeat the readS type
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:40:24 <oerjan> er... no that's not how it's used
21:40:37 <ehird`_> welp, it should work fine actually
21:40:54 <oerjan> you want ([BF], String)
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:24 <ehird`_> that makes parse String -> [BF]
21:41:28 <oklopol> the evaluation part is top-down too.
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: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: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:47 <oerjan> if you call parse recursively, it should stop at ]
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: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: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: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:54 <Hiato> we see the same things :)
21:47:59 <ehird`_> Oklowiki will solve that! it shall be trivial!
21:48:06 <ehird`_> With my fictional web framework
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: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: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:21 <Hiato> well, it will with PSOX and some genetic algorithms :)
21:49:22 <oklopol> ehird`_: don't use + for concatenation!
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 <oklopol> ehird`_: and what i said was totally serious.
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: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:53:13 <Hiato> how do I create a new labguage page?
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: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:56:07 <oerjan> but maybe it depends on browser
21:56:12 <Hiato> don't make me google it :P
21:57:38 <Hiato> Tor: anonymity online
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: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:26 <Hiato> freenet is a step way too far
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:32 <ehird`_> oerjan: what i already had was close, interestingly
22:02:44 <oerjan> ehird`_: i based it on yours
22:03:01 <ehird`_> also, i'll replace ; with 'in'
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:21 <ehird`_> doing that, where does 'in' line up, oerjan ?
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:07:47 <ehird`_> *Main> parse ",[.,]" (,[.,],"]")
22:07:53 <oerjan> yep, although that error should never be triggered
22:08:19 <ehird`_> not: parse s@(']':_) = ([], s)
22:08:54 <ehird`_> *Main> parse ",[.[-],]" (,[.[-],],"")
22:09:22 <ehird`_> well. that should be an error anyway
22:10:10 <ehird`_> no, [s don't magically close
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: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: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: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:15:03 <oerjan> then you need another function
22:15:57 <ehird`_> to be equal to the current parse?
22:16:10 <ehird`_> ok, now tell me how i check for errors from parse
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:49 <oerjan> you want to keep track of file positions?
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: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:20:06 <ehird`_> the [ is the thing that is unmatched
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:22:05 <ehird`_> i guess parseCmd and parseCmdList could take line/col args
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:24:25 <oerjan> i'm not sure i am ready to explain monads practically
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: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:42 <oerjan> type ReadS a = [Char] -> [(a,[Char])]
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: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: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:42 <ehird`_> So how does this help me with line and col numbers!
22:32:14 <oerjan> maybe a bit mixup there
22:33:55 <oerjan> well let's say we have some data SourcePos = SourcePos SourceName !Line !Column
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: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: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: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:21 <ehird`_> parseCmd :: String -> ([BF], String, Int, Int)
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:59 <oerjan> unmatched ]'s are easy
22:45:11 <oerjan> but unmatched ['s need to search to the end.
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:48:08 <Hiato> http://esoteric.voxelperfect.net/wiki/Full_0
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:32 * ehird`_ parseCmdList (']':s) = ([], ']':s)
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:10 <ehird`_> ok, but which is 'better'? :P
22:51:14 <ehird`_> Hiato: ok - full 0 interpreter in brainfuck
22:51:39 <Hiato> err... right... perhaps one in Malbolge then :P ?
22:51:54 <ehird`_> Hiato: full 0 interpreter in glass
22:52:04 <Hiato> hrmm... still hellish
22:52:16 <Hiato> even id delphi, it was allot of code
22:52:36 <Hiato> but sure, ehird`_ , don't let me get in the way
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:55:12 <ehird`_> oerjan: So, when a ] is found and we're not in ['s loop, what would be called?
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:07 <Hiato> well, unfortunately
22:59:19 <Hiato> as it is nearing 1 am where I am
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: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:01:01 <Hiato> implement the features
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: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 <Hiato> and the wiki is up (against my best instincts)
23:01:45 <Hiato> but tomorrow=31 no?
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:10 <ehird`_> oerjan: do i need to advance l or c there?
23:02:18 <Hiato> im a day behind at 1am
23:02:20 <oklopol> to be specific, it's 31. already
23:02:32 <Hiato> Hppy New Year to ye all
23:02:41 -!- Hiato has quit ("Leaving.").
23:03:30 <ehird`_> oerjan: parseCmd ('[':s) l c must change correct?
23:03:34 <ehird`_> wait, i'll dump my current code
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: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:35 <ehird`_> > (define x (delay (force x)))
23:12:45 <ehird`_> ............................................
23:13:03 <ehird`_> So, oerjan -- what do I do? :P Maybe if you gave me an example I'd understand better
23:14:44 <oerjan> i'll be going to bed i think
23:15:58 <oklopol> lol, i didn't even have to do anything for that to work :P
23:16:21 -!- oerjan has quit ("Good night").
23:16:21 <ehird`_> what's that, oklopol? haskell? :P
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:19 <oklopol> quite trivial ones, now that it has lists, you can easily get much more complicated stuff
23:24:48 <oklopol> i haven't actually *tried* anything :P
23:25:10 <oklopol> ehird`_: the examples are at the bottom
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:31:14 <ehird`_> H connected to e ... connected to d
23:31:42 <oklopol> that'll be easier with the shorthands, but i can write it
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: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:32 <oklopol> Main = String [72 101 108 108 111 44 32 119 111 114 108 100 33]
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: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:11 <ehird`_> oklopol: But can you actually have "H" in there?
23:50:28 <oklopol> there's ints, lists and graphs
23:50:42 <ehird`_> oklopol: use atoms for chars
23:50:45 <oklopol> i'll make atoms be datatype tags, yes
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:14 <ehird`_> String [H e l l o 44 32 W o r l d]
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: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:32 <oklopol> oh, right, the n-dimensional hypercube
00:12:18 <oklopol> RNode n t p = RNode 0 n t p
00:12:19 <oklopol> RNode n m t p :: #node n t -> RNode n+1 m t p
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: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:19:06 <ehird`_> or: functions, mainly, i guess
00:19:33 <oklopol> typing makes things concise because it allows for massive overloading.
00:20:50 <oklopol> well, definately not explicit typing :)
00:21:16 <ehird`_> type inference could be fun
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:30 <ehird`_> let's get some sort of grammar
00:22:37 <ehird`_> we want prefix, binary, and postfix operators
00:22:58 <ehird`_> i don't think ARG ARG ... op ARG ARG ..., though
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: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:23 <ehird`_> what about the 'function' operator
00:28:50 <oklopol> but that's a given since there's no sidestep from K :P
00:29:05 <ehird`_> ok, now let's define two functions over lists
00:29:09 <ehird`_> specifically, map and fold
00:29:42 <ehird`_> f called with a list does fold over that list with func
00:30:15 <oklopol> that works as long as you can't change the meaning of \ during the program
00:30:26 <oklopol> well, as long as it always is a postfix oper.
00:30:44 <oklopol> well, i mean if you want to make your own postfixors.
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:28 <ehird`_> oklopol: you can define all kinds of ops
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: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:33:11 <oklopol> i don't think proverbs are first class
00:33:50 <ehird`_> ok, well then parsing can be changed at runtime
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: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:37 <ehird`_> upi can get a free K interpreter from Kx
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:39:18 <ehird`_> http://www.nsl.com/misc/k/kwin.zip
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: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:46:12 <oklopol> whellll the k-tree is a tree
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:26 <ehird`_> how do i use it in place of pattern matching
00:48:56 <oklopol> when i said "k-tree <3", it had nothing to do with pattern matching.
00:50:31 <oklopol> kinda like pi calculus, but... less calculus'y :-)
00:50:57 <oklopol> something involving a linda-like global tuplespace
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: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: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:33 <ehird`_> point-free code isn't consicer though
00:55:47 <ehird`_> certainly not quicker to write either
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: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*
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: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:32 <oklopol> well, i can give you extreme examples, ones that are fully declarative...
01:03:41 <oklopol> ![] means "do something that makes this return true"
01:03:56 <ehird`_> let's devise an algorithm for sorting
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:53 <ehird`_> specifically, near-brute-force
01:05:31 <ehird`_> anyway, let's do what i said
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: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:24 <ehird`_> you figure that one out :-)
01:11:16 <oklopol> i'm having a hard time coming up with a syntax.
01:12:55 <oklopol> let's say that's a function, l\2 splits a list [1, 2, 3 ,]
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:17:01 <oklopol> the declarative one i had was less concise :P
01:17:11 <oklopol> list splicing is sooooo mucho fun
01:20:43 <ehird`_> tell me the syntax for car and cdr
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:18 <ehird`_> qs^naive:[l:r:(). :?_<2[_][p:_#?_/2. [:_<p[l:l~_][r:r~_]/_. (qs^naive l)~(qs^naive r)]]
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:39 <ehird`_> qs^naive:[l:r:(). :?_<2[_][p:_#?_/2. [:_<p[l:l~_][r:r~_]/_. (qs^naive l)~(qs^naive r)]]
01:27:00 <ehird`_> () just being the null expression
01:27:12 <ehird`_> since scalars = list 1-order,
01:27:17 <oklopol> mine was imperative and 9 characters :)
01:27:32 <ehird`_> and yes but mine's not relying on bizzare things
01:27:42 <ehird`_> ?_ being length of the arg
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:34 <ehird`_> then, qs l and r and concat them together
01:28:53 <oklopol> it's not fully imperative really
01:29:14 <oklopol> qs is much harder in my lang stub.
01:29:49 <oklopol> i already did, but i'll redo that
01:30:33 <oklopol> also, it's a parametrizable mergesort of any amount of splits
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:54 <oklopol> okay, first split by ',' to get the statements
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: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: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: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: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:37:20 <ehird`_> we can algorithmically define how to look up a key
01:38:03 <ehird`_> fact = [_<2 = 1; n = n * fact(n-1)]
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:43 <ehird`_> because it's still a function
01:38:48 <ehird`_> it's still called and returned from, etc
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:36 <ehird`_> you don't 'execute and match'
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:40:15 <ehird`_> it's a different way of thinking about it
01:40:19 <ehird`_> instead of factorial being an algorithm
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:41:05 <ehird`_> don't think of fact(n) matching
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: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: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: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:44:14 <oklopol> well yeah, that provides for interesting, infinite lazy lists
01:44:27 <oklopol> but haskell already has those, and you can even use them exactly like lists
01:44:44 <oklopol> with a look-up table like that, with random-access type indexing, it's very hard to be lazy.
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: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:56 -!- mtve has quit ("Terminated with extreme prejudice - dircproxy 1.0.5").
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
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: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:41:44 <Slereah> Ah. There's an error in the - instruction.
02:42:15 <Slereah> Let's see if the programs run better!
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: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: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: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: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: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:09 <Slereah> The CH function prints CH 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
07:39:43 -!- calamari has quit ("Leaving").
07:48:05 -!- Sgeo has joined.
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: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..
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:25 <faxathisia> I just personally don't like because it's not execyutable
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: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:27 <oklopol> but, where semantics might actually be more complicated
11:45:41 <faxathisia> maybe you could just define the ::= operator in prolog
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: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.
12:03:47 <oklopol> okay, wtf... i have *not* written this code...
12:04:14 <oklopol> i was splitting a list by the last occurrence of an element
12:04:36 <oklopol> l.index(reversed(s)), where s was what was used as the pivot
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: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: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: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:12:00 <oklopol> that might just be a guess
12:12:38 <faxathisia> I wouldn't say that though, I still haven't found my language :)
12:12:47 <faxathisia> implementation of the reversible langauge Janus
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: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:58 <faxathisia> I think J is a bit like K.. I liked J a lot
12:19:01 <oklopol> the funny thing is, i don't even like python really...
12:19:11 -!- Sgeo has joined.
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:58 * Sgeo should update some stuff on the PSOX spec
12:20:05 <faxathisia> Have you read the doc about how erlang was conceived (via Prolog)?
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:39 <Hiato> and have a good new year (if you haven't already ;) )
12:30:45 -!- Hiato has quit (Client Quit).
12:35:16 -!- tejeez has joined.
12:39:39 <Sgeo> And the reverse is: ,[,.,].
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: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.
13:46:14 -!- jix has joined.
13:50:23 <Sgeo> Is (.*?)((?<=(?:[^\x00]|\A)(?:\x00\x00\x00)*)\x00)) an expensive regex?
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:08:24 <Sgeo> ((?:[^\x00]|\x00{2}.)*)(\x00.*)?
14:11:42 <Sgeo> ((?:[^\x00]|\x00{2}.?)*)(\x00.*)?
14:11:53 <Sgeo> Since the ? after the . is greedy, that should work
14:12:03 <Sgeo> Tests seem to show that it works
14:18:55 * Sgeo changes it to ((?:[^\x00]|\x00{2}(?:.|\Z))*)(\x00.*)?
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:40 <Slereah> One whole night, and the Mandelbrot has barely printed two lines.
16:35:36 <Slereah> Well, they're correct at least.
16:54:16 <Slereah> Well, the first two lines are the same than the one on any BF interpreter.
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: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: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:18 <ehird> parse :: String -> [BF]
19:20:28 <ehird> parseOne :: String -> [(BF, String)]
19:20:40 <ehird> returning only [] or [(one, rest)]
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: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:56 <oerjan> and that parseOne "" would be a failure
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: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: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:17 <ehird> joined together with ++
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: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: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: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: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:28 <faxathisia> what do you mean archaic? I found it to simplify code a lot
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: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:13 <ehird> it's kind of unhaskelly.
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: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: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: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: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: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:44 <ehird> ergo: my parser architechture is b0rketh! again!
19:47:44 <oerjan> = let (bfs, s') = parseLoop s in (Just (Loop bfs), s')
19:50:04 <ehird> parseOne (']':s) = fail "KRRRRRRRRRRRRRRRRRR!"
19:51:15 <oerjan> er, = (Nothing, ']':s)
19:51:46 <ehird> ok, that spirals my current parse into an inf loop
19:51:50 <ehird> parse "]" -> .....
19:52:00 <ehird> (Nothing, s') -> parse s'
19:52:13 <ehird> oerjan: This is where parseMany comes in?
19:52:39 <ehird> ok, base case: parseMany "" = ([], "")
19:53:19 <ehird> parseMany s = let (p, s') = parseOne s in p:(parseMany s')
19:53:51 <ehird> parseMany s = case parseOne s of
19:54:00 <ehird> (Nothing, ']':_) -> error "KRRRRRRRRRRRRRRR!"
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: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: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: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:15 <ehird> *Main> parse "+]+<" *** Exception: wtf ([Add 0 1],"]+<")
20:04:25 <oerjan> that first [] should just be _
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:10:13 <ehird> oerjan: note to future self. functional parsers are not happy fluffy.
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:39 <ehird> ok, now you teach me about the State monad! or whatveer i'm meant to use here
20:15:44 * oerjan wants to shout for Cale
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:33 <ehird> oerjan: not as pretty though
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:28:35 <ehird> oerjan: i must know! :P
20:28:36 <oerjan> ehird: http://hpaste.org/4734#a1
20:28:59 <ehird> without even looking more it's scary
20:29:11 <ehird> anyway, i dont' see how i can plug two ints into that
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:42 <ehird> what does MM stand for?
20:30:43 <ehird> and what would an example parseOne look like?
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:32:14 <oerjan> i think you would want to add a helper function
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:37:56 <ehird> addOneColAndSucceed
20:37:58 <ehird> that's an ugly name ;)
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: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: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: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:39 <faxathisia> you can annotate your datatypes wityh the column positions
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:21 <oerjan> addOneColAndSucceed :: a -> MM a
20:43:26 <ehird> so i implicitly grab the caller's monad?
20:43:48 <oerjan> well to be completely general:
20:44:43 <oerjan> addOneCol :: (Num b, MonadState (a,b) m) => m ()
20:45:03 <ehird> i uh think i'll stick to my definition
20:45:15 <oerjan> that's the type that would be inferred
20:45:42 <oerjan> => separates class contexts from the type proper
20:46:03 <ehird> i have learning to do
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: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: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:38 <ehird> talking about style here
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:58:23 <ehird> not really a parser monad though
20:58:26 <ehird> it doesn't hold parser stuff
21:00:24 <ehird> i'm suprised haskell is implementable, actually
21:00:28 <ehird> let alone compilable
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:40 <faxathisia> isInfixOf needle haystack = any (isPrefixOf needle) (tails haystack)
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: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:36 <ehird> oerjan is a cyborg lambdabot!
21:06:46 <oerjan> that was pure coincidence
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:10:01 <ehird> faxathisia: yes, but the terminology :-)
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: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: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: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: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:42 <ehird> evalState (parseMany s) -> tuple?
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:28 <ehird> although, parse uses fail
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: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: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: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: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: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:28 <oerjan> case s of (_, "") -> return p
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: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: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:32 <oerjan> faxathisia: he want fail inside the case
21:28:34 <ehird> faxathisia: can't, need that unwrapping stuff
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:44 <ehird> modify (first (+1)) :-)
21:30:00 <oerjan> you also want to reset the column
21:30:17 <oerjan> modify (\(l,_) -> (l+1,1))
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:31:00 <oerjan> if you like the arrow operators :)
21:31:16 <oerjan> another Control.Arrow thing
21:31:28 <ehird> parseOne ('\n':s) = do modify ((+1) *** const 1); return (parseOne s)
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:42 <ehird> Not in scope: type constructor or class `State'
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:31 <ehird> Control.Monad.State
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:29 <ehird> (for parseError, i based it on fail's type)
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: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:37:01 <ehird> _ -> parseError "Unmatched ["
21:37:04 <ehird> Parse error in pattern
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:38:09 <oerjan> and _ is directly under ']' ?
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:19 <ehird> parseOne ('\n':s) = modify ((+1) *** const 1) >> return (parseOne s)
21:40:59 <oerjan> parseOne is already monadic
21:41:14 <ehird> another error ,tjat looks the same
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: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:43 <oerjan> includes Control.Monad.State
21:43:45 <ehird> anyway, my parser works brilliantly
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:39 <ehird> well, this line looks a bit ugly:
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: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: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:52 <ehird> that's the whole parser
21:50:14 <oerjan> there are still some errors in the line/col handling
21:50:25 <ehird> *Main> parse "]" *** Exception: Unmatched ] at line 1, column 2.
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:52 <oerjan> right that's the first error
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:51 <ehird> i think it's supposed to
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: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:30 <ehird> you are right about the unmatched EOF
21:54:46 <ehird> parseError needs to take params
21:55:07 <ehird> how do i remember the position in the first place
21:55:39 <ehird> i need to do it in parseOne though
21:55:41 <ehird> otherwise i'd have to -1
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:58:18 <oerjan> just do the get inside parseLoop i think
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: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:06 <oerjan> i think you still have one advance too little
22:05:25 <ehird> *Main> parse "[][" *** Exception: Unmatched [ at line 1, column 2.
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: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: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:06 <ehird> data Target = C | I386
22:10:15 <ehird> maybe the latter would be preferable
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:08 <oerjan> System.Console.GetOpt, iirc
22:12:23 <ehird> is it anything like gnu getopt? SAY NO :P
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: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: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:57 <ehird> well, gnu long options can be useful :|
22:15:03 <ehird> i just hate gnu getopt's C interface!
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:43 <oerjan> oh well the haskell interface may be different
22:15:55 <ehird> looked a bit crazy
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:42 <ehird> what's the shortest syntax to create one? i don't know of any
22:17:40 <ehird> shouldn't i just do
22:17:50 <oerjan> hm oh that may be awkward for classes
22:17:53 <ehird> targetFor "i386" = I386
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 <ehird> hmm, /me wonders how to downcase a string
22:19:00 <ehird> targetFor "C" == targetFor "c" :-)
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: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:36 <ehird> a case seems nicer to me
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:22:09 <ehird> But what monad would that be!
22:22:17 <ehird> ANd why is a function called targetFor being monadic!
22:22:33 <ehird> OK so maybe is a monad
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 <ehird> targetFor n = case map toLower n of
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:25:29 <ehird> oerjan: class Target a where
22:25:34 <ehird> do i put my type declarations in there?
22:30:23 <oerjan> no, method declarations
22:30:53 <ehird> i know haskell's class/method/instance isn't real OOP, it just shares the names
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: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:36:15 <oerjan> well, like that compile function you had
22:36:34 <oerjan> with data, you would define cases:
22:37:13 <oerjan> compile I386 prog = ...
22:37:58 <ehird> oerjan: ooh, one thing..
22:38:06 <ehird> is Char a unicode char?
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:36 <oerjan> i think maybe data is simpler for a start
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: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: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:54:42 <SimonRC> so, where's this code that isbeing disgust
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: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: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:28 * oerjan still thinks you could fool parsec with try ... <|> ... somehow
23:00:46 <ehird> Question: is there an unwords that instead does newlines?
23:01:16 <oerjan> HAPPY NEW YEAR!!!!!!!!!!!!!!!!!!!!!!!
23:01:34 -!- ehird has left (?).
23:01:42 -!- ehird has joined.
23:01:56 -!- pikhq has quit (Nick collision from services.).
23:01:59 -!- pikhq_ has changed nick to pikhq.
23:02:07 <oerjan> i could be - south african!
23:02:08 -!- ehird has changed nick to ehird`.
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:49 <oerjan> you mean SA is on daylight saving?
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: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: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:08:12 <SimonRC> I am told that gdb can do it
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: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`> 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: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: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:20:01 <ehird`> if you haev int prot = 0
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:48 <ehird`> mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);
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: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: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:40 <ehird`> i'll never understand it
23:33:49 <ehird`> well, more like libc code
23:33:52 <ehird`> like malloc or something
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:35 <ehird`> that doesn't guarantee this will work
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:41:13 <ehird`> bsmntbombdood: somehow i doubt it's possible to do the catching segv without that mass of crap :P
23:43:11 <ehird`> size_t page_size = (size_t) sysconf (_SC_PAGESIZE);